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

 找回密码
 立即注册
楼主: involute

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

  [复制链接]

16

主题

292

帖子

2174

积分

金牌会员

Rank: 6Rank: 6

积分
2174
金钱
1882
HASS币
20
发表于 2021-9-5 19:31:58 | 显示全部楼层

OK 可以了 谢谢
回复

使用道具 举报

4

主题

260

帖子

2671

积分

论坛积极会员

积分
2671
金钱
2411
HASS币
0
发表于 2021-9-5 19:59:20 | 显示全部楼层
georgewu57 发表于 2021-9-5 11:09
其他的gpio应该是能用的,我加了一块SSD1306的屏加了配置之后还是能用的!

收到,明白了,谢谢
回复

使用道具 举报

4

主题

260

帖子

2671

积分

论坛积极会员

积分
2671
金钱
2411
HASS币
0
发表于 2021-9-6 20:43:02 | 显示全部楼层
经过一个星期的不断测试,发现硬件连接上存在DT-06电流倒灌到pzem-00t的可能,问题出现在DT-06 TX口->>>pzem RX口,具体表现为:通电后pzem RX的led灯珠常亮,亮度可能较暗不易察觉,亮度根据两口之间连接导线的阻抗不同可能略有不同。可正常通讯,插件正常工作。分析原因:应该是两口之间TTL电平阻抗不匹配造成,pzem rx口电势较低导致DT-06 tx口电流倒灌。初步结论:倒灌电流有一定几率损坏pzem的rx口,可能要考虑在两个io之间设置缓冲电路。
回复

使用道具 举报

0

主题

13

帖子

46

积分

新手上路

Rank: 1

积分
46
金钱
33
HASS币
0
发表于 2021-9-8 13:03:41 | 显示全部楼层
感谢分享
回复

使用道具 举报

22

主题

232

帖子

2130

积分

金牌会员

Rank: 6Rank: 6

积分
2130
金钱
1898
HASS币
0
发表于 2021-9-10 21:19:57 | 显示全部楼层
正好有两块HC-25的WIFI模块用不上了,通过配置一次连接上培正了,hass出数据了
回复

使用道具 举报

22

主题

414

帖子

2238

积分

金牌会员

Rank: 6Rank: 6

积分
2238
金钱
1824
HASS币
30
发表于 2021-9-14 16:57:49 | 显示全部楼层
感谢楼主的插件,很好用,以前用的esphome接入,现在用插件更好了。

在这里斗胆分享一下自己的配置文件,帮助需要的人。

第一个是完全的esphome导入,没有用楼主的集成(我已经没有使用了),第二个是利用esphome第三方的透传,可以配合楼主的集成,完美!我个人往上面挂了个bmp280传感器,

没有的删除i2c配置即可。

esphome:
  name: pzem-004t-v3-bmp280-esp-zhilian
  platform: ESP8266
  board: nodemcuv2

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  password: "75ecb9cee9717d0da9b5e830bece8ef2"
web_server:
  port: 80  

wifi:
  ssid: "Test"
  password: "11223300"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Pzem-004T-V3 Fallback Hotspot"
    password: "rkjSXhhvx4rL"

captive_portal:
i2c:
  sda: 4
  scl: 5
  scan: true
  id: bus_a

uart:
  id: uart_bus
  rx_pin: D6
  tx_pin: D5
  baud_rate: 9600
  stop_bits: 1

time:
  - platform: homeassistant
    timezone: Asia/Shanghai
    id: time1
switch:
  - platform: gpio
    name: "Chip ights"
    pin: GPIO2
  - platform: restart
    name: "Living Room Restart"
  - platform: gpio
    pin: GPIO16
    name: "Board lights"  
  - platform: uart
    uart_id: uart_bus
    name: "Reset data"
    data: [0x01, 0x42, 0x80, 0x11]    
    
text_sensor:
  - platform: wifi_info
    ip_address:
      name: "ESP IP Address"
    ssid:
      name: "ESP Connected SSID"
    mac_address:
      name: "ESP Mac Wifi Address"
  - platform: template
    name: Uptime Human Readable
    id: uptime_human
    icon: mdi:clock-start      
sensor:
  - platform: pzemac
    current:
      name: "IN_current" 
      id: IN_current
    voltage:
      name: "IN_voltage"
      id: IN_voltage
    energy:
      name: "IN_energy"
      filters:
        - lambda: return x /1000;
      unit_of_measurement: "kWh"  
    power:
      name: "IN_power"
      id: IN_power
    frequency:
      name: "IN_Fr"
      id: IN_Fr
    power_factor:
      name: "IN_PF"
      id: IN_PF
    update_interval: 10s
  - platform: adc
    pin: VCC
    name: "VCC Voltage"
  - platform: wifi_signal
    name: "WiFi Signal Sensor"
  - platform: uptime
    name: Uptime Sensor
    id: uptime_sensor
    update_interval: 60s
    on_raw_value:
      then:
        - text_sensor.template.publish:
            id: uptime_human
            state: !lambda |-
              int seconds = round(id(uptime_sensor).raw_state);
              int days = seconds / (24 * 3600);
              seconds = seconds % (24 * 3600);
              int hours = seconds / 3600;
              seconds = seconds % 3600;
              int minutes = seconds /  60;
              seconds = seconds % 60;
              return (
                (days ? String(days) + "d " : "") +
                (hours ? String(hours) + "h " : "") +
                (minutes ? String(minutes) + "m " : "") +
                (String(seconds) + "s")
              ).c_str();
  - platform: bmp280
    i2c_id: bus_a
    address: 0x76   
    temperature:
      name: "BMP280 Temperature"
      id: bmp280_temperature
      oversampling: 16x
    pressure:
      name: "BMP280 Pressure"
      id: bmp280_pressure
    update_interval: 5s
  - platform: template
    name: "Altitude"
    lambda: |-
      const float STANDARD_SEA_LEVEL_PRESSURE = 1013.25; //in hPa, see note
      return ((id(bmp280_temperature).state + 273.15) / 0.0065) *
        (powf((STANDARD_SEA_LEVEL_PRESSURE / id(bmp280_pressure).state), 0.190234) - 1); // in meter
    update_interval: 15s
    icon: 'mdi:signal'
    unit_of_measurement: 'm'    

esphome:
  name: pzem-004t-v3-bmp280-stream-server
  platform: ESP8266
  board: nodemcuv2

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  password: "75ecb9cee9717d0da9b5e830bece8ef2"

wifi:
  ssid: "Test"
  password: "11223300"
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Pzem-004T-V3"
    password: "11223300"
captive_portal:

external_components:
  - source: github://oxan/esphome-stream-server
stream_server:
    uart_id: pzem
    port: 1234
uart:
  id: pzem
  rx_pin: D7
  tx_pin: D6
  baud_rate: 9600
  stop_bits: 1

i2c:
  sda: 4
  scl: 5
  scan: true
  id: bus_a
  
time:
  - platform: homeassistant
    timezone: Asia/Shanghai
    id: time1
switch:
  - platform: gpio
    name: "Chip ights"
    pin: GPIO2
  - platform: restart
    name: "Living Room Restart"
  - platform: gpio
    pin: GPIO16
    name: "Board lights"
    
text_sensor:
  - platform: wifi_info
    ip_address:
      name: "ESP IP Address"
  - platform: template
    name: Uptime Human Readable
    id: uptime_human
    icon: mdi:clock-start    
light:
  - platform: fastled_clockless
    chipset: WS2811
    pin: GPIO14
    num_leds: 60
    rgb_order: BRG
    name: "FastLED WS2811 Light"    
sensor:
  - platform: wifi_signal
    name: "WiFi Signal Sensor"
  - platform: uptime
    name: Uptime Sensor
    id: uptime_sensor
    update_interval: 60s
    on_raw_value:
      then:
        - text_sensor.template.publish:
            id: uptime_human
            state: !lambda |-
              int seconds = round(id(uptime_sensor).raw_state);
              int days = seconds / (24 * 3600);
              seconds = seconds % (24 * 3600);
              int hours = seconds / 3600;
              seconds = seconds % 3600;
              int minutes = seconds /  60;
              seconds = seconds % 60;
              return (
                (days ? String(days) + "天" : "") +
                (hours ? String(hours) + "时" : "") +
                (minutes ? String(minutes) + "分" : "") +
                (String(seconds) + "秒")
              ).c_str();
  - platform: bmp280
    i2c_id: bus_a
    address: 0x76   
    temperature:
      name: "BMP280 Temperature"
      id: bmp280_temperature
      oversampling: 16x
    pressure:
      name: "BMP280 Pressure"
      id: bmp280_pressure
    update_interval: 5s
  - platform: template
    name: "Altitude"
    lambda: |-
      const float STANDARD_SEA_LEVEL_PRESSURE = 1013.25; //in hPa, see note
      return ((id(bmp280_temperature).state + 273.15) / 0.0065) *
        (powf((STANDARD_SEA_LEVEL_PRESSURE / id(bmp280_pressure).state), 0.190234) - 1); // in meter
    update_interval: 15s
    icon: 'mdi:signal'
    unit_of_measurement: 'm'    
你有所不知,小米设备带屏幕都是为了后期广告投送的。
灵长类退散
回复

使用道具 举报

0

主题

95

帖子

1727

积分

金牌会员

Rank: 6Rank: 6

积分
1727
金钱
1632
HASS币
0
发表于 2021-9-19 10:13:18 | 显示全部楼层
楼主,我用的是HAOS,版本:Home Assistant 2021.9.6
把配置文件:custom_components\peacefair_energy目录下

但是在集成里没有eacefair Energy Monitor





回复

使用道具 举报

8

主题

229

帖子

1994

积分

金牌会员

Rank: 6Rank: 6

积分
1994
金钱
1765
HASS币
0
发表于 2021-9-26 12:25:48 | 显示全部楼层
按照教程设置后没有效果,是和我modbus继电器冲突吗
QQ图片20210926115235.png QQ图片20210926122517.png
回复

使用道具 举报

22

主题

114

帖子

726

积分

高级会员

Rank: 4

积分
726
金钱
612
HASS币
10
发表于 2021-10-9 15:00:19 来自手机 | 显示全部楼层
本帖最后由 testss 于 2021-10-9 21:09 编辑
花落花空 发表于 2021-8-31 00:18
感谢大神的集成,之前用esphome读的培正,得自己搞月用电数据啥的。看到帖子试了下改成透传,很容易就成功 ...

请问ESPHOME直接按这配置写入(透传)就能在HASS读取到数据?还是需要用楼主的集成?
原来是ESPHOME上采集TLL各种数据然后处理好然后发送给HASS,透传是不是所有数据都交给HASS处理了?
回复

使用道具 举报

11

主题

224

帖子

2229

积分

论坛DIY达人

积分
2229
金钱
1995
HASS币
40
发表于 2021-10-9 22:38:22 来自手机 | 显示全部楼层
testss 发表于 2021-10-9 15:00
请问ESPHOME直接按这配置写入(透传)就能在HASS读取到数据?还是需要用楼主的集成?
原来是ESPHOME上采集 ...

透传需要配合楼主的集成
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-22 08:46 , Processed in 4.823716 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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