hello,伙伴們最近一直在弄AiPi-Eyes-R3的資料,渲染、3D 外殼設計......一直沒時間開發(fā)新的 HomeAssistant MQTT 實體,最新的實體估計也是在本月初開發(fā)完的,一直沒來得及給大家寫使用教程!
不過在寫教程之前,有必要給大家看看上周的成果:
Text 實體介紹
Text 實體,也就是文本實體,它支持在 HomeAssistant 輸入文字之后,通過 MQTT 下發(fā)內(nèi)容到設備當中。可以理解成一個文本輸入框,我們可以輸入任意文字,然后發(fā)給設備。
也可以利用自動化,更新文本,例如:天氣信息更新到設備。之所以叫它文本輸入框,是因為在 HomeAssitant 它呈現(xiàn)的方式是這樣的:
Text 實體創(chuàng)建
1.開啟資源
和其他實體一樣,在 HomeAssistant-C 當中,默認不開啟 Text 資源,需要自行啟用,在 homeAssistantDevConfig.h 中把 #define CONFIG_ENTITY_ENABLE_TEXT 置 1,就能啟用 Text 資源:
2.實體創(chuàng)建
創(chuàng)建 Text 實體也是在連接上 MQTT 服務器之后創(chuàng)建,只需要對 name 和 unique_id 就行,然后添加以下實體:
static ha_text_entity_t text_1 = { .name = "文字", .unique_id = "text1", }; homeAssistant_device_add_entity(CONFIG_HA_ENTITY_TEXT, &text_1);
![wKgZomaUvE6AQ3ilAABaYW3oU-Y67.jpeg](https://file1.elecfans.com//web2/M00/FC/88/wKgZomaUvE6AQ3ilAABaYW3oU-Y67.jpeg)
燒錄并啟動之后,就能看到 HomeAssistant 有文本實體。
Text 實體使用
1.接收 Text 內(nèi)容
同樣的 Text 內(nèi)容下發(fā)也會觸發(fā)事件,Text 的內(nèi)容下發(fā)事件為 HA_EVENT_MQTT_COMMAND_TEXT_VALUE,所以需要在 HA 事件回調(diào)函數(shù)(ha_event_cb)當中添加 HA_EVENT_MQTT_COMMAND_TEXT_VALUE 的事件處理,并打印內(nèi)容:
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;
![wKgaomaUvE-ASXG6AAA3j2jqcek33.jpeg](https://file1.elecfans.com//web2/M00/FD/73/wKgaomaUvE-ASXG6AAA3j2jqcek33.jpeg)
有細心的同學可能發(fā)現(xiàn)了,信息獲取的來源都是通過一個以 command_xx 命名的結構體來獲取的!所以以后獲取信息內(nèi)容,就是用對應結構體的 command_xx 成員來讀取就行。
驗證示例:
2.Text 內(nèi)容更新
和其他實體更新的方法一樣,也是用 homeAssistant_device_send_entity_state 函數(shù)進行發(fā)布,只不過需要重新給 Text 實體的 text_value 參數(shù)進行賦值
使用示例:
讀取到 HomeAssistant 下發(fā)的內(nèi)容之后,返回 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"); //清空原有的內(nèi)容 memset(text->text_value, 0, strlen(text->text_value)); //賦值內(nèi)容為 12345678 sprintf(text->text_value, "%d", 12345678); //更新內(nèi)容 homeAssistant_device_send_entity_state(CONFIG_HA_ENTITY_TEXT, text, 0); break;
驗證結果
輸入之后下發(fā),然后刷新一下網(wǎng)頁就能發(fā)現(xiàn),文字備改變了。
總結
Text 實體的使用和其他實體差不多,沒有什么特殊的參數(shù)需要配置,所以簡單說說就行,這周給大家開發(fā) number 實體!
審核編輯 黃宇
-
智能家居
+關注
關注
1930文章
9607瀏覽量
186425 -
MQTT
+關注
關注
5文章
653瀏覽量
22698
發(fā)布評論請先 登錄
相關推薦
洞悉智能家居發(fā)展新趨勢
智能家居燈
究竟什么才是智能家居的“入口”?
【MiCOKit申請】智能家居的遠程控制系統(tǒng)
小米不玩期貨 靠線下玩智能家居?
【藍牙4.1申請】智能家居項目開發(fā)
【DragonBoard 410c申請】基于DragonBoard的智能家居原型機設計
智能家居系統(tǒng)、智能家居解決方案及智能家居定制開發(fā)
智能家居合適可以真正進入我們生活?
【HarmonyOS HiSpark Wi-Fi IoT HarmonyOS 智能家居套件試用 】 基于HarmonyOS智能家居應用探索和開發(fā)
STM32+ESP8266+小程序的智能家居學習
2023年,智能家居實體門店如何選品?
![2023年,<b class='flag-5'>智能家居</b><b class='flag-5'>實體</b>門店如何選品?](https://file.elecfans.com/web2/M00/93/6E/pYYBAGP0wZCAAfr_AACyY7DnBec995.png)
智能家居之旅(15):HA傳感器采集主板低功耗設計的遭遇
![<b class='flag-5'>智能家居</b>之旅(15):HA傳感器采集主板低功耗設計的遭遇](https://file1.elecfans.com//web2/M00/05/54/wKgZombZFxKAI7_sAABnhaoHtUw37.jpeg)
評論