找回密碼
 立即註冊
惟家LINE群QRCODE
    查看: 2303|回覆: 1

    8266+ESPHOME+3xPZEM-004T家庭用電監控

    [複製鏈接]

    !lvup!   100%

    13

    主題

    17

    回帖

    232

    積分

    版主

    積分
    232
    發表於 2021-9-22 11:28:35 | 顯示全部樓層 |閱讀模式
    本帖最後由 diba 於 2021-11-22 16:05 編輯

    先上圖, 這是我家的用電監控:


    再來進入主題:
    1. 用原廠的上位機軟件設定各個PZEM-004T的address,本例設定為4、5、6


    2. 參考原廠圖示接線,其實3.3V就可以了,不一定非要5V,三顆PZEM怎麼並聯就不用細說了吧


    3. 重點是YAML,整個COPY回去name跟id改一改就能用了

    1. substitutions:
    2.   device_name: energy-ac46

    3. esphome:
    4.   name: ${device_name}
    5.   platform: ESP8266
    6.   board: nodemcuv2  

    7. logger:
    8.   baud_rate: 0 # (UART logging interferes with pzem)
    9.   level: DEBUG
    10.   #hardware_uart: uart1

    11. api:

    12. ota:
    13.   password: !secret wifi_pw

    14. web_server:
    15.   port: 80  

    16. wifi:
    17.   ssid: !secret wifi_ssid
    18.   password: !secret wifi_pw
    19.   ap:
    20.     ssid: ${device_name}_Fallback
    21.     password: !secret wifi_pw
    22.   #manual_ip:
    23.     #static_ip: 192.168.200.111
    24.     #gateway: 192.168.200.254
    25.     #subnet: 255.255.255.0

    26. captive_portal:

    27. uart:
    28.   - tx_pin: D1
    29.     rx_pin: D2
    30.     baud_rate: 9600
    31.     stop_bits: 1
    32.    
    33. modbus:

    34. binary_sensor:
    35.   - platform: status
    36.     name: "${device_name} Status"

    37. sensor:
    38.   - platform: pzemac
    39.     id: pzemac4
    40.     energy:
    41.       name: "energy_ac4"
    42.       filters:
    43.         - multiply: 0.002
    44.       unit_of_measurement: kWh
    45.       accuracy_decimals: 1
    46.     current:
    47.       name: "current_ac4"
    48.       id: "current_ac4"
    49.       accuracy_decimals: 1
    50.     voltage:
    51.       name: "voltage_ac4"
    52.       filters:
    53.         - multiply: 2   
    54.       accuracy_decimals: 1
    55.     frequency:
    56.       name: "frequency_ac4"
    57.       accuracy_decimals: 1
    58.     power_factor:
    59.       name: "factor_ac4"
    60.       accuracy_decimals: 1
    61.     power:
    62.       name: "power_ac4"
    63.       id: "power_ac4"
    64.       filters:
    65.         - multiply: 2      
    66.       accuracy_decimals: 0
    67.     update_interval: never
    68.     address: 4
    69.    
    70.   - platform: pzemac
    71.     id: pzemac5
    72.     energy:
    73.       name: "energy_ac5"
    74.       filters:
    75.         - multiply: 0.002
    76.       unit_of_measurement: kWh
    77.       accuracy_decimals: 1
    78.     current:
    79.       name: "current_ac5"
    80.       id: "current_ac5"
    81.       accuracy_decimals: 1
    82.     voltage:
    83.       name: "voltage_ac5"
    84.       filters:
    85.         - multiply: 2      
    86.       accuracy_decimals: 1
    87.     frequency:
    88.       name: "frequency_ac5"
    89.       accuracy_decimals: 1
    90.     power_factor:
    91.       name: "factor_ac5"
    92.       accuracy_decimals: 1
    93.     power:
    94.       name: "power_ac5"
    95.       id: "power_ac5"
    96.       filters:
    97.         - multiply: 2      
    98.       accuracy_decimals: 0
    99.     update_interval: never
    100.     address: 5

    101.   - platform: pzemac
    102.     id: pzemac6
    103.     energy:
    104.       name: "energy_ac6"
    105.       filters:
    106.         - multiply: 0.002
    107.       unit_of_measurement: kWh
    108.       accuracy_decimals: 1
    109.     current:
    110.       id: "current_ac6"
    111.       name: "current_ac6"
    112.       accuracy_decimals: 1
    113.     voltage:
    114.       name: "voltage_ac6"
    115.       filters:
    116.         - multiply: 2      
    117.       accuracy_decimals: 1
    118.     frequency:
    119.       name: "frequency_ac6"
    120.       accuracy_decimals: 1
    121.     power_factor:
    122.       name: "factor_ac6"
    123.       accuracy_decimals: 1
    124.     power:
    125.       name: "power_ac6"
    126.       id: "power_ac6"
    127.       filters:
    128.         - multiply: 2      
    129.       accuracy_decimals: 0
    130.     update_interval: never
    131.     address: 6

    132.   - platform: total_daily_energy
    133.     name: "energy_ac4_daily"
    134.     power_id: power_ac4
    135.     id: energy_ac4_daily
    136.     unit_of_measurement: kWh
    137.     accuracy_decimals: 1
    138.     icon: mdi:counter
    139.     filters:
    140.       - multiply: 0.001

    141.   - platform: total_daily_energy
    142.     name: "energy_ac5_daily"
    143.     power_id: power_ac5
    144.     id: energy_ac5_daily
    145.     unit_of_measurement: kWh
    146.     accuracy_decimals: 1
    147.     icon: mdi:counter
    148.     filters:
    149.       - multiply: 0.001

    150.   - platform: total_daily_energy
    151.     name: "energy_ac6_daily"
    152.     power_id: power_ac6
    153.     id: energy_ac6_daily
    154.     unit_of_measurement: kWh
    155.     accuracy_decimals: 1
    156.     icon: mdi:counter
    157.     filters:
    158.       - multiply: 0.001

    159.   - platform: template
    160.     name: "today_ac46"
    161.     id: "today_ac46"
    162.     icon: mdi:counter
    163.     device_class: energy
    164.     state_class: measurement
    165.     unit_of_measurement: kWh
    166.     accuracy_decimals: 1
    167.     lambda: |-
    168.             return id(energy_ac4_daily).state + id(energy_ac5_daily).state + id(energy_ac6_daily).state ;
    169. #           return id(energy1_all_daily).raw_state + id(energy2_all_daily).raw_state

    170. #################################
    171. #SLOW SENSORS FOR HOME ASSISTANT#
    172. #################################
    173.   - platform: template #########################
    174.     name: "current_ac4_slow"
    175.     lambda: |-
    176.       if (id(current_ac4).state) {
    177.         return (id(current_ac4).state);
    178.       } else {
    179.         return 0;
    180.       }
    181.     unit_of_measurement: A
    182.     icon: "mdi:alpha-a-circle"
    183.     update_interval: 60s
    184.   - platform: template #########################
    185.     name: "current_ac5_slow"
    186.     lambda: |-
    187.       if (id(current_ac5).state) {
    188.         return (id(current_ac5).state);
    189.       } else {
    190.         return 0;
    191.       }
    192.     unit_of_measurement: A
    193.     icon: "mdi:alpha-a-circle"
    194.     update_interval: 60s
    195.   - platform: template #########################
    196.     name: "current_ac6_slow"
    197.     lambda: |-
    198.       if (id(current_ac6).state) {
    199.         return (id(current_ac6).state);
    200.       } else {
    201.         return 0;
    202.       }
    203.     unit_of_measurement: A
    204.     icon: "mdi:alpha-a-circle"
    205.     update_interval: 60s

    206. time:
    207.   - platform: homeassistant
    208.     id: homeassistant_time

    209. switch:
    210.   - platform: restart
    211.     name: "${device_name}_Restart"

    212.   - platform: uart
    213.     name: "${device_name}_Reset"
    214.     data: [0x01, 0x42, 0x80, 0x11]
    215.   
    216. interval:
    217.   - interval: 5s
    218.     then:
    219.        - lambda: 'id(pzemac4).update();'
    220.        - delay: 150ms
    221.        - lambda: 'id(pzemac5).update();'
    222.        - delay: 150ms
    223.        - lambda: 'id(pzemac6).update();'
    224.       
    複製代碼




    本帖子中包含更多資源

    您需要 登入 纔可以下載或查看,沒有賬號?立即註冊

    ×

    !lvup!   100%

    363

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005752
    發表於 2021-9-24 03:42:12 | 顯示全部樓層
    Diba真強!!!!讚!!
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-9-24 11:28 , Processed in 0.083837 second(s), 31 queries .

    快速回覆 返回頂部 返回列表