hello,伙伴們最近一直在弄AiPi-Eyes-R3的資料,渲染、3D 外殼設(shè)計......一直沒時間開發(fā)新的 HomeAssistant MQTT 實體,最新的實體估計也是在本月初開發(fā)完的,一直沒來得及給大家寫使用教程!
不過在寫教程之前,有必要給大家看看上周的成果:
Text 實體介紹
Text 實體,也就是文本實體,它支持在 HomeAssistant 輸入文字之后,通過 MQTT 下發(fā)內(nèi)容到設(shè)備當中??梢岳斫獬梢粋€文本輸入框,我們可以輸入任意文字,然后發(fā)給設(shè)備。
也可以利用自動化,更新文本,例如:天氣信息更新到設(shè)備。之所以叫它文本輸入框,是因為在 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 服務(wù)器之后創(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);
燒錄并啟動之后,就能看到 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;
有細心的同學(xué)可能發(fā)現(xiàn)了,信息獲取的來源都是通過一個以 command_xx 命名的結(jié)構(gòu)體來獲取的!所以以后獲取信息內(nèi)容,就是用對應(yīng)結(jié)構(gòu)體的 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;
驗證結(jié)果
輸入之后下發(fā),然后刷新一下網(wǎng)頁就能發(fā)現(xiàn),文字備改變了。
總結(jié)
Text 實體的使用和其他實體差不多,沒有什么特殊的參數(shù)需要配置,所以簡單說說就行,這周給大家開發(fā) number 實體!
審核編輯 黃宇
-
智能家居
+關(guān)注
關(guān)注
1928文章
9601瀏覽量
185962 -
MQTT
+關(guān)注
關(guān)注
5文章
653瀏覽量
22605
發(fā)布評論請先 登錄
相關(guān)推薦
評論