大数跨境
0
0

智能家居之旅(8):Text(文本)实体使用方法

智能家居之旅(8):Text(文本)实体使用方法 安信可科技
2024-07-12
1
导读:学智能家居,到安信可社区
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 实体!

微信改版,容易错过最新资讯和福利?

快将“安信可科技”设为星标

可以第一时间接收小安的推送!






往期回顾

通讯距离414m的星闪Dongle,可用于PC配件和IoT智能终端

体积小、功耗低、高度集成的NB-IoT模组

这款产品我们做了二十多年,你可能还不知道





安信可更多产品信息可进入以下链接查阅:

●开发资料:https://docs.ai-thinker.com/

●官方教程:https://blog.csdn.net/Boantong_

●安信可官网:www.ai-thinker.com

●安信可社区:https://bbs.ai-thinker.com

●业务咨询请联系:18022036575



【声明】内容源于网络
0
0
安信可科技
全球领先的联网模组、智能家居等物联网硬件方案提供商。
内容 393
粉丝 0
安信可科技 全球领先的联网模组、智能家居等物联网硬件方案提供商。
总阅读1
粉丝0
内容393