involute 发表于 2021-8-20 23:20:10

支持HA2021.8.X能源功能的培正用电信息采集方案

本帖最后由 involute 于 2023-8-15 18:54 编辑

Peacefair Energy Monitor



# 2021.9.5更新

- 修改state_class适配HA2021.9.X,下载附件0.7.2或者HACS更新

# 2021.9.3更新


- 修改了可能无法建立存储目录从而导致插件失败的BUG,需要更新的直接下载附件的0.7.1或者从HACS更新


使用培正PZEM-004T交流通讯盒进行用电信息采集的Home Assistant集成,支持Home Assistant 2021.8.X后新增的能源功能。

支持通过ModbusRTU over UDP/TCP访问PZEM-004T,不支持串口访问方式。

成本低廉,整套东西硬件投入不足70元。

警告

**以下操作仅适于有一定强电电路知识的人,涉及强电操作,注意人身安全。**


硬件准备

用电信息采集

用电信息采集采用的是培正PZEM-004T,论坛中已有很多解决方案,本方案中采用的是100A使用互感器非接触采集的方案。
非接触采集不用接触强电接线,安全性较好。如果采用互感器,选那种可以打开的互感器,比较方便往线上套。
**互感器与PZEM模块断开时,可能会产生高压感应电流,要从电路中取下互感器。不要从PZEM上摘下,应该连着PZEM模块一起取下,然后再摘下互感器**
**互感器从PZEM模块摘下后,不得开路,应把线圈的红黑线互相短接在一起**

信息传输

PZEM-004T使用TTL进行通讯,但大老远的拉根USB-TTL线到HA主机,显然不现实,所以这里采用的是WiFi-TTL无线传输模块。
因为PZEM-004T的TTL是5V供电,因此没有直接采用3.3V的ESP-01(S)模块,而是使用了一款基于ESP-M2的DT-06 WiFi-TTL无线传输模块,自带透传固件,5V供电,省掉了5V-3.3V降压模块。当然你可以根据喜好自主选择无线传输模块。

如果使用DT-06做为透传模块,记得选要透传固件的,配置文档找卖家要即可。

如何配置透传模块,透传模块使用的端口、协议,要记清楚,后续配置要用。
很多小伙伴表示弄不懂透传,我介绍一下DT-06模块的透传设置。
1、DT-06接5V通电
2、无线网搜索热点"Doit_WiFi_xxxxxx"并连接,热点无密码
3、如果没有自动弹出网页,则在浏览器输入默认地址"192.168.4.1"
4、网页如图所示

5、MODULE菜单下有Serial(串口)/WiFi(无线网)/Networks(网络三个选项),一个个配置
6、串口设置如下,要符合PZEM模块的串口要求


7、无线网设置如下,只用打开STA模式就行,填写你自己的无线网SSID和密码,下边DHCP相关选项是由路由器分配IP还是设定固定IP

8、网络设置如下,这一步是设置透传模式,下拉列表中选择UDP Server或者TCP Server,我推荐使用UDP Server。
然后如果是TCP Server,就在下方TCP Server Local Port填写TCP透传端口,如果是UDP Server,就在下方UDP Server填写UDP透传端口。
无论使用TCP或者UDP,用的哪个端口,随后安装集成的时候要填写对应的设置。



接线图




接线实拍

照片中是拆掉了弱电箱的门,互感器直接套在入户主线的火线上,从插座的空开下接了一个带USB的小插座,用于给PZEM-004T提供220V/5V供电。看起来乱七八糟,外边挂一幅画就全挡住了。




有盆友反应004T的RX灯常亮,可以考虑在DT-06的TX到004T的RX之间串接一个1K左右电阻,没做精确阻抗匹配,但1K左右应该都可以。



集成安装

使用HACS自定义存储库安装,或者从Latest release下载最新的Release版本,将其中的custom_components/peacefair_energy下所有文件放到<Your Home Assistant Config Folder>/custom_components/peacefair_energy中,重新启动Home Assistant。


配置

安装
在Home Assistant的集成界面,点击添加集成,搜索”Peacefair Energy Monitor”进行添加。需要填写的数据包括:

[*]透传模块的IP地址
[*]透传模块的端口
[*]协议(TCP或UDP)
[*]模块从站地址(一般为1)



选项
选项是采集间隔,默认为15秒钟采集一次,可根据需要自行调整。


特性
- 支持Home Assistant 2021.8.x之后的能源面板
- 自动记录日、周、月、年度的实时用电量
- 提供昨日、上周、上月、去年的历史用电量

误差
根据长期测试,该集成的月度统计数据与国网电力的数据误差低于3%。


实时用电信息
实时信息包含以下传感器

传感器名称 默认名称 含义
sensor.<IP>_energy Energy 总用电量
sensor.<IP>_voltage Voltage 当前电压
sensor.<IP>_current Current 当前电流
sensor.<IP>_power Power 当前功率
sensor.<IP>_frequency Power Frequency 交流频率
sensor.<IP>_power_factor Power Factor 当前功率因数


统计信息
统计信息包含以下传感器

传感器名称 默认名称 含义
sensor.<IP>_day_real Energy Consumption Today 今日用电量
sensor.<IP>_day_history Energy Consumption Yesterday 昨日用电量
sensor.<IP>_week_real Energy Consumption This Week 本周用电量
sensor.<IP>_week_history Energy Consumption Last Week 上周用电量
sensor.<IP>_month_real Energy Consumption This Month 本月用电量
sensor.<IP>_month_history Energy Consumption Last Month 上月用电量
sensor.<IP>_year_real Energy Consumption This Year 今年用电量
sensor.<IP>_year_history Energy Consumption Last Year 去年用电量


服务
包含一个服务

peacefair_energy.reset_energy

作用为重置总用电量


参数 描述 示例
entity_id 要重置的总用电量实体 sensor.IP_energy


注意:重置总用电量不会影响各实时传感器及统计信息传感器的数值


Home Asssitant的能源

在Home Assistant 2021.8.X中新增的能源功能,可以使用集成中的"总用电量"传感器作为能源消耗的统计依据。
如果你是国网北京电力的用户,可以使用(https://github.com/georgezhao2010/bj_sgcc_energy)作为电费单价实体。
不是国网北京电力的用户也没关系,可以使用本集成中的本月用电量、今年用电量,根据当地的用电收费政策,使用模版计算出用电单价来。



调试
要打开调试日志输出,在configuration.yaml中做如下配置

logger:
default: warn
logs:
    custom_components.peacefair_energy: debug


传感器信息显示
以下为示例






github
https://github.com/georgezhao2010/peacefair_energy/
如果有用,请点个星

本地压缩包
懒得更新压缩包,自己去github下载最新release吧









involute 发表于 2021-8-21 17:44:19

xiaopi 发表于 2021-8-21 16:43
我是按照这个方法装的,怎么设置透传呢https://bbs.hassbian.com/thread-6081-1-1.html

你是啥Wifi模块?如果是ESP系列的,可以用这个ESPHome的组件刷TCP透传
https://github.com/oxan/esphome-stream-server

别的配网设置就是ESPHome那一套

如果实在不会,又想弄透传,直接某宝上买个透传固件的DT-06就行。

花落花空 发表于 2021-8-31 00:18:58

感谢大神的集成,之前用esphome读的培正,得自己搞月用电数据啥的。看到帖子试了下改成透传,很容易就成功了。贴一个esphome下ttl透传的代码吧,方便手头有8266的朋友,就不用再买个dt-06了
external_components:
- source: github://oxan/esphome-stream-server

stream_server:
    uart_id: pzem
    port: 1234
uart:
rx_pin: 4
tx_pin: 5
baud_rate: 9600
id: pzem

rx_pin和tx_pin根据实际接线修改,id随意。大佬勿喷。

firewater 发表于 2021-8-21 00:39:02

想用这个能源方案,但找不到硬件解决方案,不是太贵, 就是要接线,这个正好!一定要试试,感谢分享!

dscao 发表于 2021-8-21 01:32:36

牛,把这个改成插件形式了,硬件接好后,使用上就更方便了。
之前我用的PZ004电表误差太大,达到了10%左右。后来用立新电表(涂鸦版),误差基本小于1%,安装后也很简洁,就是要动强电的线路。pz004就一直闲置在那了。

wfx 发表于 2021-8-21 08:39:40

大佬,使用nodemcu模块可以刷您的固件吗?

xiaopi 发表于 2021-8-21 16:43:29

我是按照这个方法装的,怎么设置透传呢https://bbs.hassbian.com/thread-6081-1-1.html

jjcs 发表于 2021-8-21 22:38:18

培正的5v供电好像3.3v也可以

jjcs 发表于 2021-8-21 22:42:02

楼主我没搞懂TCP透穿,之前大部分教程不都是ttl转到8266上吗,那么你这个模块是为了?

involute 发表于 2021-8-22 01:41:55

jjcs 发表于 2021-8-21 22:38
培正的5v供电好像3.3v也可以

问题在于5V电源有现成的USB可以提供,你又去哪方便的弄3.3V电源?

involute 发表于 2021-8-22 01:45:03

本帖最后由 involute 于 2021-8-22 04:06 编辑

jjcs 发表于 2021-8-21 22:42
楼主我没搞懂TCP透穿,之前大部分教程不都是ttl转到8266上吗,那么你这个模块是为了? ...
所谓透传就是WiFi-TTL双向透明传输,HA用Modbus-RTU over TCP/UDP直接采集培正的数据。

以往的方案大部分是是TTL转MQTT,我不喜欢MQTT,就酱。
透传也并非必须要TCP透传,配置成UDP透传和TCP透传都可以,让我看,UDP透传效果更好。


页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 支持HA2021.8.X能源功能的培正用电信息采集方案