专栏/培正直流电表pzem-017如何esphome接入Homeassistant

培正直流电表pzem-017如何esphome接入Homeassistant

2023年09月14日 17:47--浏览 · --点赞 · --评论
粉丝:1257文章:15

我PZEM-017已经测试完毕。测试结果如下:这个是测直流的,用在电池端口比较好用,用在光伏端测光伏不好用,经常发生数据丢失,卡死等现象。

接入方法两种:一种是加上485转ttl,a=a,b=b,然后rx-tx对着接,(不行对调)可以用;第二种是丢掉原厂的485,直接从光藕上面到数据,这个是我从国外的教程里面调回来的,(他们原来的还要加上拉电阻什么的,但是不加也能用),他们接的方法是tasmota+mqtt。

方法一:
方法二:在光藕上面取数据,将485芯片4脚拆开,整个拆开也行。注意小圆点。

先说方法一:一个tasmota+mqtt接入的,这个类似于pzem-004,方法他们有教程,不说了,这个简单易懂。数据也比较多。今日昨天数据都有;

   

第二种方法是是esphome,用原生esphome的api写入代码,esphome也写有一个platform,叫pzemdc,网址如下:
https://esphome.io/components/sensor/pzemdc.html?highlight=pzemdc,很简单。

ESPhome的代码:(前面的板子,密码自己补填写)

web_server:
  port: 80

button:
  - platform: restart
    name: system_reboot

time:
  - platform: sntp
    id: pezmsolar_time

uart:
 tx_pin: GPIO1
 rx_pin: GPIO3
 baud_rate: 9600
 stop_bits: 2

text_sensor:
- platform: wifi_info
  ip_address:
   name: system_ip
  mac_address:
   name: system_mac

sensor:
- platform: pzemdc
  current:
    name: pezmsolar Current
    disabled_by_default: false
    force_update: false
    unit_of_measurement: A
    accuracy_decimals: 3
    device_class: current
    state_class: measurement
  voltage:
    name: PZEMSOLAR Voltage
    disabled_by_default: false
    force_update: false
    unit_of_measurement: V
    accuracy_decimals: 1
    device_class: voltage
    state_class: measurement
  power:
    name: PZEMSOLAR Power
    disabled_by_default: false
    force_update: false
    unit_of_measurement: W
    accuracy_decimals: 1
    device_class: power
    state_class: measurement
  energy:
    name: PZEMSOLAR Energy
    disabled_by_default: false
    force_update: false
    unit_of_measurement: kWh
    accuracy_decimals: 3
    device_class: energy
    state_class: total_increasing
  #更新频率时间
  update_interval: 20s
  #地址
  address: 0x01

以上是代码,自己调试修改。

如果用在电池端:可以设计一个soc,方法类似:

#第6个字段Lambda匿名函数,solar effiency发电效率,单位是%,1050是总设计功率,id后面是实时功率
 - platform: template
   name: "sl_effiency"
   unit_of_measurement: '%'
   update_interval: 5s
   lambda: |-
     return ((id(${device_name}_p).state /1050) * 100.00);

如果上面的energy是累计的,你可用辅助元素来增加一个当日的电量,

如果要装入能源模块,还要增加id之类的。看他们的log的要求。

如有需求,欢迎交流。

联络方法在第一篇稿。

文章加载失败


投诉或建议