『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 627|回复: 2

[基础教程] 智能家居之旅,第六站:HomeAssistant-C传感器实体使用方法

[复制链接]

11

主题

27

帖子

152

积分

注册会员

Rank: 2

积分
152
金钱
125
HASS币
0
发表于 2024-6-26 09:23:38 | 显示全部楼层 |阅读模式
日常前言
前段时间的外设移植活动中,有不少大佬给 Ai-M61 移植了很多传感器设备,应该还很少人把传感器的监控信息实现远程查看吧!那么今天,就带大家把传感器读取到的值上传到 HomeAssistant,实现远程监控。
如果还没有搭建好 HomeAssistant 的,请看完 智能家居之旅 系列的其他帖子:

                               
登录/注册后可看大图

传感器实体创建

1.开启传感器资源
在 HomeAssistant-C 当中,默认不开启传感器资源,需要自行启用,在 homeAssistantDevConfig.h 中把 #define CONFIG_ENTITY_ENABLE_SENSOR 置 1,就能启用传感器资源:

                               
登录/注册后可看大图


2.创建传感器实体
和创建开关实体一样,创建传感器实体也是在连接上 MQTT 服务器之后创建,只需要对 name 和 unique_id  就行,然后添加以下实体:
//创建传感器实体
            static ha_sensor_entity_t sensor1 = {
                .name = "温度",
                .unique_id = "tmp1",
            };
            homeAssistant_device_add_entity(CONFIG_HA_ENTITY_SENSOR, &sensor1);


                               
登录/注册后可看大图
烧录程序平且上电之后,就能在 HomeAssistant 的 MQTT 集成当中看到具有传感器的设备:

                               
登录/注册后可看大图


3.上传传感器值
在实际应用当中,希望在读取传感器成功之后,马上上传当前值,所以我推荐使用 unique_id 查找实体的方式来上传传感器的值,使用 homeAssistant_device_send_entity_state 函数和 homeAssistant_fine_entity 函数的结合来上传数据,比如上传数值:95:

homeAssistant_device_send_entity_state(CONFIG_HA_ENTITY_SENSOR,homeAssistant_fine_entity(CONFIG_HA_ENTITY_SENSOR, "tmp1"), 95);

函数会自动找到 unique_id=tmp1 的传感器实体,然后上传 95 这个值,效果如下:


                               
登录/注册后可看大图

传感器种类设置
在 HomeAssistant 当中,给传感器实体定义了很多种类(Class),定义了种类的话,HomeAssistant 会自动配置该传感器的图标,单位等信息。例如:

                               
登录/注册后可看大图

HomeAssistant 支持的传感器种类可以参考:https://www.home-assistant.io/integrations/sensor/#device-class
所以 HomeAssistant-C 也给大家加入了传感器种类配置,在 homeAssistantMQTT.h 文件中有个 ha_sensor_class_t 枚举类型,里面描述了 HomeAssistant 传感器的所有类型,因此,大家只需要在创建实体的时候,对 device_class 进行赋值即可,例如:

static ha_sensor_entity_t sensor1 = {
                .name = "温度",
                .unique_id = "tmp1",
                .device_class=Class_temperature,//配置为温度传感器
            };



                               
登录/注册后可看大图

其他类型的传感器大家可以根据枚举来试试!




回复

使用道具 举报

2

主题

55

帖子

497

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
497
金钱
442
HASS币
0
发表于 2024-6-26 10:11:45 | 显示全部楼层
发教程就好好发,不要引流!
回复

使用道具 举报

11

主题

27

帖子

152

积分

注册会员

Rank: 2

积分
152
金钱
125
HASS币
0
 楼主| 发表于 2024-6-26 10:19:49 | 显示全部楼层
admin 发表于 2024-6-26 10:11
发教程就好好发,不要引流!

您好,我查看了并未涉及到外部平台引导的内容,何来引流一说?如有不妥可提出来,我这边进行修改
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 16:45 , Processed in 0.318760 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表