如何学习智能家居?8:Text文本实体使用方法

发布时间:2024-08-02  

hello,伙伴们最近一直在弄AiPi-Eyes-R3的资料,渲染、3D 外壳设计......一直没时间开发新的 HomeAssistant MQTT 实体,最新的实体估计也是在本月初开发完的,一直没来得及给大家写使用教程!


不过在写教程之前,有必要给大家看看上周的成果:

wKgaomaUvEuAFegJAABWBpWi5v480.jpeg

Text 实体介绍

Text 实体,也就是文本实体,它支持在 HomeAssistant 输入文字之后,通过 MQTT 下发内容到设备当中。可以理解成一个文本输入框,我们可以输入任意文字,然后发给设备。

也可以利用自动化,更新文本,例如:天气信息更新到设备。之所以叫它文本输入框,是因为在 HomeAssitant 它呈现的方式是这样的:

wKgZomaUvE2AXmp3AABV8Rq1a1I47.jpeg

Text 实体创建

1.开启资源

和其他实体一样,在 HomeAssistant-C 当中,默认不开启 Text 资源,需要自行启用,在 homeAssistantDevConfig.h 中把 #define CONFIG_ENTITY_ENABLE_TEXT 置 1,就能启用 Text 资源:

wKgaomaUvE6AQJ7WAAB9hyojyAc35.jpeg

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);

wKgZomaUvE6AQ3ilAABaYW3oU-Y67.jpeg


烧录并启动之后,就能看到 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;


wKgaomaUvE-ASXG6AAA3j2jqcek33.jpeg


有细心的同学可能发现了,信息获取的来源都是通过一个以 command_xx 命名的结构体来获取的!所以以后获取信息内容,就是用对应结构体的 command_xx 成员来读取就行。

验证示例:

wKgZomaUvE-AMJd7AABj2upm7hg76.jpeg

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;


验证结果

输入之后下发,然后刷新一下网页就能发现,文字备改变了。

wKgaomaUvFCAaDqiAABfjwRMw0w564.gif

总结

Text 实体的使用和其他实体差不多,没有什么特殊的参数需要配置,所以简单说说就行,这周给大家开发 number 实体!


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>