hello,伙伴們最近一直在弄AiPi-Eyes-R3的資料,渲染、3D 外殼設計......一直沒時間開發新的 HomeAssistant MQTT 實體,最新的實體估計也是在本月初開發完的,一直沒來得及給大家寫使用教程!
不過在寫教程之前,有必要給大家看看上周的成果:

Text 實體介紹
Text 實體,也就是文本實體,它支持在 HomeAssistant 輸入文字之后,通過 MQTT 下發內容到設備當中。可以理解成一個文本輸入框,我們可以輸入任意文字,然后發給設備。
也可以利用自動化,更新文本,例如:天氣信息更新到設備。之所以叫它文本輸入框,是因為在 HomeAssitant 它呈現的方式是這樣的:

Text 實體創建
1.開啟資源
和其他實體一樣,在 HomeAssistant-C 當中,默認不開啟 Text 資源,需要自行啟用,在 homeAssistantDevConfig.h 中把 #define CONFIG_ENTITY_ENABLE_TEXT 置 1,就能啟用 Text 資源:

2.實體創建
創建 Text 實體也是在連接上 MQTT 服務器之后創建,只需要對 name 和 unique_id 就行,然后添加以下實體:
static ha_text_entity_t text_1 = {
.name = "文字",
.unique_id = "text1",
};
homeAssistant_device_add_entity(CONFIG_HA_ENTITY_TEXT, &text_1);

燒錄并啟動之后,就能看到 HomeAssistant 有文本實體。
Text 實體使用
1.接收 Text 內容
同樣的 Text 內容下發也會觸發事件,Text 的內容下發事件為 HA_EVENT_MQTT_COMMAND_TEXT_VALUE,所以需要在 HA 事件回調函數(ha_event_cb)當中添加 HA_EVENT_MQTT_COMMAND_TEXT_VALUE 的事件處理,并打印內容:
case HA_EVENT_MQTT_COMMAND_TEXT_VALUE:
LOG_I("<<<<< HA_EVENT_MQTT_COMMAND_TEXT_VALUE,value=%s", ha_dev-?>entity_text->command_text->text_value);
break;

有細心的同學可能發現了,信息獲取的來源都是通過一個以 command_xx 命名的結構體來獲取的!所以以后獲取信息內容,就是用對應結構體的 command_xx 成員來讀取就行。
驗證示例:

2.Text 內容更新
和其他實體更新的方法一樣,也是用 homeAssistant_device_send_entity_state 函數進行發布,只不過需要重新給 Text 實體的 text_value 參數進行賦值
使用示例:
讀取到 HomeAssistant 下發的內容之后,返回 12345678 給 HomeAssistant。
case HA_EVENT_MQTT_COMMAND_TEXT_VALUE:
LOG_I("<<<<< HA_EVENT_MQTT_COMMAND_TEXT_VALUE,value=%s", ha_dev-?>entity_text->command_text->text_value);
//查找實體
ha_text_entity_t* text = homeAssistant_fine_entity(CONFIG_HA_ENTITY_TEXT, "text1");
//清空原有的內容
memset(text->text_value, 0, strlen(text->text_value));
//賦值內容為 12345678
sprintf(text->text_value, "%d", 12345678);
//更新內容
homeAssistant_device_send_entity_state(CONFIG_HA_ENTITY_TEXT, text, 0);
break;
驗證結果
輸入之后下發,然后刷新一下網頁就能發現,文字備改變了。

總結
Text 實體的使用和其他實體差不多,沒有什么特殊的參數需要配置,所以簡單說說就行,這周給大家開發 number 實體!
審核編輯 黃宇
-
智能家居
+關注
關注
1943文章
9995瀏覽量
197435 -
MQTT
+關注
關注
5文章
733瀏覽量
25092
發布評論請先 登錄
洞悉智能家居發展新趨勢
智能家居燈
究竟什么才是智能家居的“入口”?
【MiCOKit申請】智能家居的遠程控制系統
小米不玩期貨 靠線下玩智能家居?
【藍牙4.1申請】智能家居項目開發
【DragonBoard 410c申請】基于DragonBoard的智能家居原型機設計
智能家居系統、智能家居解決方案及智能家居定制開發
智能家居合適可以真正進入我們生活?
【HarmonyOS HiSpark Wi-Fi IoT HarmonyOS 智能家居套件試用 】 基于HarmonyOS智能家居應用探索和開發
STM32+ESP8266+小程序的智能家居學習
2023年,智能家居實體門店如何選品?
如何學習智能家居?8:Text文本實體使用方法
評論