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

 找回密码
 立即注册
查看: 9325|回复: 10

[经验分享] Pzem模块通讯地址修改中存在的坑

[复制链接]

69

主题

691

帖子

4242

积分

论坛元老

Rank: 8Rank: 8

积分
4242
金钱
3546
HASS币
80
发表于 2020-7-16 00:33:50 | 显示全部楼层 |阅读模式
本帖最后由 zhenxiwen 于 2020-7-16 00:37 编辑

问题:
我家是三相四线入户,我主要参考大神的帖子:新版本Tasmota是可以接三路PZEM https://bbs.hassbian.com/thread-8882-1-1.html (出处: 『瀚思彼岸』» 智能家居技术论坛),经过反复摸索,我用三个pzem V3通过Tasmota成功接入HA并运行了几个月,我还把我认为是全国最复杂的峰-谷-平用电和三段阶梯用电的电量和计费配置写了出来,打算有空写个帖子与大家分享。可是,非常奇怪的事发生了:前几天突然停电恢复后,三相电量数据再也无法读取:


我按照原来的方法重做,再次修改三个pzem模块的通讯地址为1、2、3, 并在控制台输入 moduleaddress 1/2/3, 三个pzem并联时也仍然读不到数据,只能是单个pzem时能够读取数据。





问题解决过程:


几经折腾,重装Tasmota,多次修改通讯地址,都无济于事。


但是,我反复琢磨,我还是觉得问题应该出在pzem通讯地址上,果不其然:


1、原来用上位机修改三个模块为1、2、3,并且Tasmota中并联成功,能够读取数据,可是,停电后,无法读取数据,实际上是模块断电后都自动恢复了默认的1。

2、上位机很难成功,但多次操作后,偶尔提示写入成功,我按确认后再打开数值也显示已经修改,但是,我从电脑上拔pzem模块下来,再连接到电箱里,Tasmota仍然读不到数据,实际上是因为没有成功修改或保存不了,或者是断电后自动回复默认值。


3、由于上位机太差劲了,总是无法读取参数或参数写入失败,我改用串口助手在电脑上输入指令,很容易修改成功,可是拔下来再连到电箱里,又是恢复默认1,Tasmota仍然读不到数据。


4、最后,我把笔记本电脑放到电箱旁边,直接连着电箱,用串口助手输入指令,成功修改了模块地址,并且断开以后,再拿到电脑上用上位机查看,发现通讯地址仍是修改成功后的2、3,却没有回复默认的1。


真是莫名其妙,anyway,实际上问题是出在pzem模块地址修改不成功上。这应该是pzem模块问题,或者是上位机软件太老掉牙了。


通过串口助手,暂时修改成功,Tasmota也能正确读取数据了。可是,不知道再停电的话,模块地址还会自动回复默认值1。


说来也奇怪,好像很多别人没有的问题,却都被我碰上了,幸好虽然折腾,问题还是解决了。


这里我把过程写出来,以备碰到同样问题的同学们参考。



评分

参与人数 2金钱 +30 HASS币 +10 收起 理由
+ 20 + 10 感谢楼主分享!
chinyaolin + 10 正打算搞全戶用電偵測 謝謝樓主的經驗.

查看全部评分

回复

使用道具 举报

73

主题

1165

帖子

6641

积分

论坛元老

Rank: 8Rank: 8

积分
6641
金钱
5471
HASS币
30
发表于 2020-7-16 03:22:39 | 显示全部楼层
我是用esphome,连接三个,没有遇到这样的问题。
esphome:
  name: esp8266_214
  platform: ESP8266
  board: nodemcuv2

uart:
  - id: pzem004t1
    tx_pin: GPIO1
    rx_pin: GPIO3
    baud_rate: 9600
    stop_bits: 1
  - id: pzem004t2
    tx_pin: D1
    rx_pin: D3
    baud_rate: 9600
    stop_bits: 1
  - id: pzem004t3
    tx_pin: D2
    rx_pin: D4
    baud_rate: 9600
    stop_bits: 1
wifi:
  ssid: "ddd"
  password: "ddd"
  manual_ip:
    static_ip: 192.168.222.214
    gateway: 192.168.222.1
    subnet: 255.255.255.0

sensor:
  - platform: dht
    pin: D5
    model: DHT11
    temperature:
      name: "214_wd"
      accuracy_decimals: 1
    humidity:
      name: "214_sd"
      accuracy_decimals: 1
    update_interval: 20s
  - platform: pzem004t
    current:
      name: "214_dl1"
    voltage:
      name: "214_dy1"
    power:
      name: "214_gl1"
    update_interval: 10s
    uart_id: pzem004t1
  - platform: pzem004t
    current:
      name: "214_dl2"
    voltage:
      name: "214_dy2"
    power:
      name: "214_gl2"

    update_interval: 10s
    uart_id: pzem004t2
  - platform: pzem004t
    current:
      name: "214_dl3"
    voltage:
      name: "214_dy3"
    power:
      name: "214_gl3"
    update_interval: 10s
    uart_id: pzem004t3
# Enable logging
#logger:

# Enable Home Assistant API
api:

ota:

回复

使用道具 举报

4

主题

100

帖子

818

积分

高级会员

Rank: 4

积分
818
金钱
718
HASS币
0
发表于 2020-7-16 09:50:51 | 显示全部楼层
同用ESPHome但是没有试过停电, 魔都的电网还是蛮给力的..

配了十几个实例才把平谷+三段的计费写出来, 本来想分享的不过感觉太复杂了还是作罢
回复

使用道具 举报

57

主题

403

帖子

3041

积分

论坛元老

Rank: 8Rank: 8

积分
3041
金钱
2638
HASS币
0
发表于 2020-7-16 12:06:51 | 显示全部楼层
这种问题大概念就是PZEM里面闪存挂了,写入的信息无法保存。我有一个sonoff也是这种情况,在一次闪电之后,家里的一堆电器挂掉,然后有一个sonoff还可以用,但是每次修改信息,都无法正常保存,一断电就恢复成默认的了。
回复

使用道具 举报

69

主题

691

帖子

4242

积分

论坛元老

Rank: 8Rank: 8

积分
4242
金钱
3546
HASS币
80
 楼主| 发表于 2020-7-16 12:55:03 | 显示全部楼层
xuyang 发表于 2020-7-16 03:22
我是用esphome,连接三个,没有遇到这样的问题。

你这个没有用电量(energy),也没有总用电量、昨天用电量,你是怎么计算总用电量、今天用电量、昨天用电量的呢。
回复

使用道具 举报

69

主题

691

帖子

4242

积分

论坛元老

Rank: 8Rank: 8

积分
4242
金钱
3546
HASS币
80
 楼主| 发表于 2020-7-16 12:57:03 | 显示全部楼层
李丑男 发表于 2020-7-16 12:06
这种问题大概念就是PZEM里面闪存挂了,写入的信息无法保存。我有一个sonoff也是这种情况,在一次闪电之后, ...

可能是,但是奇怪的怎么三个模块都一样,这么巧都同时坏了吗
回复

使用道具 举报

73

主题

1165

帖子

6641

积分

论坛元老

Rank: 8Rank: 8

积分
6641
金钱
5471
HASS币
30
发表于 2020-7-16 16:02:01 | 显示全部楼层
zhenxiwen 发表于 2020-7-16 12:55
你这个没有用电量(energy),也没有总用电量、昨天用电量,你是怎么计算总用电量、今天用电量、昨天用电 ...

自己修改组件,已经实现。
回复

使用道具 举报

69

主题

691

帖子

4242

积分

论坛元老

Rank: 8Rank: 8

积分
4242
金钱
3546
HASS币
80
 楼主| 发表于 2020-7-16 16:09:22 | 显示全部楼层
xuyang 发表于 2020-7-16 16:02
自己修改组件,已经实现。

分享一下方法和修改的组件
回复

使用道具 举报

73

主题

1165

帖子

6641

积分

论坛元老

Rank: 8Rank: 8

积分
6641
金钱
5471
HASS币
30
发表于 2020-7-16 16:30:23 | 显示全部楼层
zhenxiwen 发表于 2020-7-16 16:09
分享一下方法和修改的组件

pzemac.rar (3.75 KB, 下载次数: 22)
将附件中文件夹覆盖原文件夹。
将/usr/src/app/esphome/const.py中增加
UNIT_WATTH = 'KwH'
CONF_ENERGY = 'energy'

回复

使用道具 举报

69

主题

691

帖子

4242

积分

论坛元老

Rank: 8Rank: 8

积分
4242
金钱
3546
HASS币
80
 楼主| 发表于 2020-12-22 03:01:29 | 显示全部楼层
本帖最后由 zhenxiwen 于 2020-12-22 03:04 编辑
xuyang 发表于 2020-7-16 03:22
我是用esphome,连接三个,没有遇到这样的问题。

大佬,我的esphome是在群晖docker中安装的,找不到您说的文件夹和文件。所以,一直不折腾它,直到现在还没搞好,请指点,谢谢了。


tasmota太操蛋了,折腾来折腾去,还是不能用,老莫名其妙你出问题。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 16:22 , Processed in 0.059223 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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