看到论坛上有大佬把燃气使用量接入HA的,自己也想试试,但是发现都是使用Wi-Fi协议的,没有zigbee的,于是就开始尝试了。
最开始选用zigbee是想用电池供电,且燃气表的位置Wi-Fi信号不是很好,并且已经有zigbee网络。
想用电池的话,Wi-Fi模块那个功耗,就算是深度休眠,也顶不住燃气使用高峰时的频繁上报,肯定不太行,寻思着zigbee休眠的功耗极低,之前也尝试过电池供电的光照传感器,没啥问题,却没想到光电传感器模块耗电量太大了,因为是要全天计量,也不能让传感器休眠,最后还是用常电了
总的来说,既然都要接常电,还是用esp8266(32)接入来的方便简单成本低,zigbee版适用于家里已经有zigbee网关,并搭建了z2m(ZHA的quirk太难写了,会写的也可以试试)的小伙伴。
前置知识
zigbee固件烧录方法
z2m基础使用方法
使用到的硬件
CC2530模块(如XL2530-D01) 也可以用Ebyte的zigbeb开发板
顺便说一下XL2530-D01的引脚是1.27mm的
烧录器(ccdebugger/SmartRF04E)也有看到有教程用esp8266来烧录,但是身边没有esp模块就没有尝试,感兴趣的小伙伴可以尝试一下
光电传感器(小车寻迹模块)(如 TCRT5000)
合适的电源转换器(模块) 用开发版的话直接USB供电就可以
接线
把光电传感器的数字输出连接到CC2530模块上的P1.4(用于脉冲计数)和P1.5(用于外部唤醒,可不接,原本为电池供电准备的)
如不接P1.5,则60秒上报一次数据,接P1.5则感应到脉冲时立即上报
推荐接上外部唤醒,方便HA里去抖动
固件
由于最后使用了常电,所以配置成了路由器,可以中继zigbee网络
固件使用ptvo配置而成
z2m转换文件由ptvo生成
燃气计数器(zigbee版).zip
(251.77 KB, 下载次数: 26)
z2m
烧录好固件后,模块会自动进入配对模式,在z2m中打开允许配对
HA部分
z2m会在HA中自动发现
脉冲计数开和关分别算一次,在HA要做好过滤。
我的处理是设置了一个定时器
在5秒内多次计数只会算作一次
自动化的yaml(仅供参考)
alias: 燃气自动计量
description: ""
trigger:
- platform: state
entity_id:
- sensor.ran_qi_ji_shu_qi_l4
condition:
- condition: state
entity_id: timer.ran_qi_qu_dou_dong_ji_shi_qi
state: idle
action:
- service: timer.start
data: {}
target:
entity_id: timer.ran_qi_qu_dou_dong_ji_shi_qi
- service: input_number.increment
data: {}
target:
entity_id: input_number.gas
mode: single
图形化
思路就是脉冲计数有变化,并且计时器处于空闲状态,就启动计时器,并增加燃气使用量
如果5秒内多次变化,会因为计时器处于激活状态而不触发自动化
计时器设定多久取决于燃气表转的速度
另外,也有看到通过模拟输出的电压来判断是否计数的帖子,但是这次买的模块没有带模拟输出,就暂时没有实验,固件也还没有配置读取模拟输出,之后有机会再加上。
效果图
最后
稍微说一下ZHA和z2m
一开始尝试zigbee的时候,选用的ZHA集成,确实方便,插上协调器,自动发现,舒服。渐渐的就发现问题了,一些偏离zigbee标准的设备,似乎在ZHA上支持的不是很好,比如aqara的单火开关不能设置快速响应模式,涂鸦光感门磁缺失光照数据等。
然后一些DIY设备原生不支持,想要写quirk,好家伙 会一点python的我看完教程一脸懵逼,不会js的我看完z2m的drive的写法,都能明白个大概,开始调试或自己写。
在我看来ZHA适用于遵守zigbee协议的zigbee设备,在标准集群上的功能使用起来十分良好。而z2m适配的设备很多,偏离标准的设备或DIY的设备也能通过较为好理解的js文件添加支持。
以上
参考帖子
【学习-记录-分享】燃气DIY篇2-巧读天然气表
燃气表末位字轮数字 0上的贴片的作用是什么
|