本帖最后由 luckyn 于 2023-12-29 23:39 编辑
机缘巧合之下拿到一个WIFI款的电能表。正好刚开始学HA,就尝试将电表接入HA。没想到效果还挺好.目前使用2星期,很稳定,就分享给大家。因为第一次发文,可能排版不好请大家见谅。
方案很简单,因为电能表是支持wifi的,直接将数据接入HA 就可以了,而且因为使用的正规计量电表,精度很高,目前和国网APP对比日用电量,误差在0.1度以内。
先展示下接入后的效果,各个参数的曲线都可以自由展开,日、月、年用电量可以通过辅助元素切割总用电量统计出来,很方便.
这是电表型号和样式,2P导轨表
这个是安装后的样子,一群正泰里面混入了一个奇怪的东西。。。这里注意一下我差点翻车,电能表高度是100,我用的空开是85mm..差点装不进去几乎是刚刚好挤进去
发帖字节限制了,安装图就放附件了
电表安装还是请正式电工操作,接线很简单下进上出,接在总闸前后都可以.网络配置就按照说明书长按按钮进入蓝牙配网,微信小程序就可以了
下面正式开始数据配置。因为这只电表数据是走MQTT协议 且数据推送地址不可配置。
1.需要自己搭建MQTT服务器,这里就不展开了。 直接docker EMQX 就行了,需要注意的是数据开启了TLS/SSL ,所以需要用emqx的 8883端口.
2.因为地址不可配置,所以需要自己劫持下域名,大家根据自己家庭网络情况进行设置。dm.delixi-electric.com 强制解析到自己的MQTT服务器地址就行。
数据接入HA 很简单,只要再集成里搜索MQTT 添加服务器就可以了. 然后电能表就会将数据推入 HA
这个是具体数据转成传感器实体的代码 将123456789012 改成自己实际的表号就行
mqtt:
sensor:
- name: '电压'
unique_id: delixi_voltage
state_topic: '/delixi/direct/123456789012/up'
unit_of_measurement: 'V'
icon: mdi:flash-triangle
value_template: '{{ value_json.params.voltageA }}'
- name: '电流'
unique_id: delixi_current
state_topic: '/delixi/direct/123456789012/up'
unit_of_measurement: 'A'
icon: mdi:lightning-bolt
value_template: '{{ value_json.params.currentA }}'
- name: '功率'
unique_id: delixi_power
state_topic: '/delixi/direct/123456789012/up'
unit_of_measurement: 'kW'
icon: mdi:lightning-bolt
value_template: '{{ value_json.params.instantActivePowerA }}'
- name: '因素'
unique_id: delixi_power_factor
state_topic: '/delixi/direct/123456789012/up'
unit_of_measurement: ' '
icon: mdi:lightning-bolt
value_template: '{{ value_json.params.totalPowerfactor }}'
- name: '总电量'
unique_id: delixi_energy
state_topic: '/delixi/direct/123456789012/up'
unit_of_measurement: 'kWh'
icon: mdi:transmission-tower
value_template: '{{ value_json.params.used }}'
- name: '信号'
unique_id: delixi_signal
state_topic: '/delixi/direct/123456789012/up'
unit_of_measurement: ''
icon: mdi:signal-variant
value_template: '{{ value_json.params.signalStrength}}'
到了这一步,数据其实已经会正产推送到HA,但是实际上电表的推送频率很低,具体我也没测试,反正是10分钟以上的频率
需要加快速度的 可以增加一个自动化去读取数据,反正是wifi的 没有流量负担。
我这里设置成每20S 读取一次数据。大家可以自由发挥。
- alias: get delexi_data
trigger:
platform: time_pattern
seconds: /20
action:
- service: mqtt.publish
data_template:
topic: /delixi/direct/123456789012/down
retain: true
payload: '{"cmd":"read","child": "123456789012"}'
id: b94cf0dd5771455ca689b85002940022
|