hello,伙伴們最近一直在弄AiPi-Eyes-R3的資料,渲染、3D 外殼設(shè)計(jì)......一直沒時(shí)間開發(fā)新的 HomeAssistant MQTT 實(shí)體,最新的實(shí)體估計(jì)也是在本月初開發(fā)完的,一直沒來得及給大家寫使用教程!
不過在寫教程之前,有必要給大家看看上周的成果:
Text 實(shí)體介紹
Text 實(shí)體,也就是文本實(shí)體,它支持在 HomeAssistant 輸入文字之后,通過 MQTT 下發(fā)內(nèi)容到設(shè)備當(dāng)中。可以理解成一個(gè)文本輸入框,我們可以輸入任意文字,然后發(fā)給設(shè)備。
也可以利用自動(dòng)化,更新文本,例如:天氣信息更新到設(shè)備。之所以叫它文本輸入框,是因?yàn)樵?HomeAssitant 它呈現(xiàn)的方式是這樣的:
Text 實(shí)體創(chuàng)建
1.開啟資源
和其他實(shí)體一樣,在 HomeAssistant-C 當(dāng)中,默認(rèn)不開啟 Text 資源,需要自行啟用,在 homeAssistantDevConfig.h 中把 #define CONFIG_ENTITY_ENABLE_TEXT 置 1,就能啟用 Text 資源:
2.實(shí)體創(chuàng)建
創(chuàng)建 Text 實(shí)體也是在連接上 MQTT 服務(wù)器之后創(chuàng)建,只需要對(duì) name 和 unique_id 就行,然后添加以下實(shí)體:
static ha_text_entity_t text_1 = { .name = "文字", .unique_id = "text1", }; homeAssistant_device_add_entity(CONFIG_HA_ENTITY_TEXT, &text_1);

燒錄并啟動(dòng)之后,就能看到 HomeAssistant 有文本實(shí)體。
Text 實(shí)體使用
1.接收 Text 內(nèi)容
同樣的 Text 內(nèi)容下發(fā)也會(huì)觸發(fā)事件,Text 的內(nèi)容下發(fā)事件為 HA_EVENT_MQTT_COMMAND_TEXT_VALUE,所以需要在 HA 事件回調(diào)函數(shù)(ha_event_cb)當(dāng)中添加 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;

有細(xì)心的同學(xué)可能發(fā)現(xiàn)了,信息獲取的來源都是通過一個(gè)以 command_xx 命名的結(jié)構(gòu)體來獲取的!所以以后獲取信息內(nèi)容,就是用對(duì)應(yīng)結(jié)構(gòu)體的 command_xx 成員來讀取就行。
驗(yàn)證示例:
2.Text 內(nèi)容更新
和其他實(shí)體更新的方法一樣,也是用 homeAssistant_device_send_entity_state 函數(shù)進(jìn)行發(fā)布,只不過需要重新給 Text 實(shí)體的 text_value 參數(shù)進(jìn)行賦值
使用示例:
讀取到 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); //查找實(shí)體 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;
驗(yàn)證結(jié)果
輸入之后下發(fā),然后刷新一下網(wǎng)頁就能發(fā)現(xiàn),文字備改變了。
總結(jié)
Text 實(shí)體的使用和其他實(shí)體差不多,沒有什么特殊的參數(shù)需要配置,所以簡單說說就行,這周給大家開發(fā) number 實(shí)體!
審核編輯 黃宇
-
智能家居
+關(guān)注
關(guān)注
1934文章
9759瀏覽量
189829 -
MQTT
+關(guān)注
關(guān)注
5文章
672瀏覽量
23514
發(fā)布評(píng)論請(qǐng)先 登錄
洞悉智能家居發(fā)展新趨勢(shì)
智能家居燈
究竟什么才是智能家居的“入口”?
【MiCOKit申請(qǐng)】智能家居的遠(yuǎn)程控制系統(tǒng)
小米不玩期貨 靠線下玩智能家居?
【藍(lán)牙4.1申請(qǐng)】智能家居項(xiàng)目開發(fā)
【DragonBoard 410c申請(qǐng)】基于DragonBoard的智能家居原型機(jī)設(shè)計(jì)
智能家居系統(tǒng)、智能家居解決方案及智能家居定制開發(fā)
智能家居合適可以真正進(jìn)入我們生活?
【HarmonyOS HiSpark Wi-Fi IoT HarmonyOS 智能家居套件試用 】 基于HarmonyOS智能家居應(yīng)用探索和開發(fā)
STM32+ESP8266+小程序的智能家居學(xué)習(xí)
2023年,智能家居實(shí)體門店如何選品?

智能家居之旅(15):HA傳感器采集主板低功耗設(shè)計(jì)的遭遇

評(píng)論