esphome: name: deye-esp32 platform: ESP32 board: nodemcu-32s logger: level: INFO substitutions: modbus_update_interval: "10s" settings_skipped_updates: "10" query_throttle: "50ms" device_name: deye device_type: sun12k device_description: "Esphome component for Deye sun-10k-sg04lp3" modbus_controller_id: sg04lp3 #https://esphome.io/components/mqtt.html# #Warning #If you enable MQTT and you do not use the “native API” for Home Assistant, you must remove the api: line from your ESPHome configuration, #otherwise the ESP will reboot every 15 minutes because no client connected to the native API. #api: #The captive portal component in ESPHome is a fallback mechanism for when connecting to the configured WiFi fails. #https://esphome.io/components/captive_portal.html captive_portal: uart: - id: uartdeye tx_pin: 27 rx_pin: 26 baud_rate: 9600 modbus_controller: - id: ${modbus_controller_id} address: 0x01 modbus_id: modbus1 setup_priority: -10 update_interval: ${modbus_update_interval} command_throttle: ${query_throttle} modbus: id: modbus1 uart_id: uartdeye ota: password: "" mqtt: broker: !secret my_broker port: !secret my_port topic_prefix: "/DEYE" username: !secret my_username password: !secret my_password on_message: - topic: /DEYE/Batt/off then: - select.set: id: ${device_type}_Battery_Mode option: "No Batt" - mqtt.publish: topic: /DEYE/Batt/state payload: "Battery is OFF!" - topic: /DEYE/Batt/on then: - select.set: id: ${device_type}_Battery_Mode option: "Use Batt V" - mqtt.publish: topic: /DEYE/Batt/state payload: "Battery is ON!" - topic: /DEYE/GeneratorPort payload: "GeneratorInput" then: - select.set: id: ${device_type}_Generator_Port_Use option: "Generator Input" - topic: /DEYE/GeneratorPort payload: "MicroInverterInput" then: - select.set: id: ${device_type}_Generator_Port_Use option: "Micro Inverter Input" - topic: /DEYE/MaxBattCharge/current payload: "80" then: - number.set: id: ${device_type}_Maximum_battery_charge_current value: 80 - topic: /DEYE/MaxBattCharge/current payload: "40" then: - number.set: id: ${device_type}_Maximum_battery_charge_current value: 40 - topic: /DEYE/MaxBattCharge/current payload: "30" then: - number.set: id: ${device_type}_Maximum_battery_charge_current value: 30 - topic: /DEYE/MaxBattCharge/current payload: "20" then: - number.set: id: ${device_type}_Maximum_battery_charge_current value: 20 - topic: /DEYE/MaxBattCharge/current payload: "10" then: - number.set: id: ${device_type}_Maximum_battery_charge_current value: 10 - topic: /DEYE/MaxBattCharge/current payload: "0" then: - number.set: id: ${device_type}_Maximum_battery_charge_current value: 0 - topic: /DEYE/MaxBattDischarge/current payload: "100" then: - number.set: id: ${device_type}_Maximum_battery_discharge_current value: 100 - topic: /DEYE/MaxBattDischarge/current payload: "0" then: - number.set: id: ${device_type}_Maximum_battery_discharge_current value: 0 - topic: /DEYE/battery_float/voltage payload: "55" then: - number.set: id: ${device_type}_Battery_float_voltage value: 55 - topic: /DEYE/battery_float/voltage payload: "55.4" then: - number.set: id: ${device_type}_Battery_float_voltage value: 55.4 - topic: /DEYE/battery_float/voltage payload: "55.8" then: - number.set: id: ${device_type}_Battery_float_voltage value: 55.8 wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Optional manual IP - damit gelingt ein wireless update in ESPHome manual_ip: static_ip: 192.168.2.54 gateway: 192.168.2.1 subnet: 255.255.255.0 web_server: port: 80 time: - platform: sntp id: sntp_time timezone: Europe/Berlin servers: - pool.ntp.org switch: - platform: restart name: "Restart ESP32-Deye Bridge" - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} name: ${device_type}_Solar_sell register_type: holding address: 145 bitmask: 1 entity_category: config icon: "mdi:toggle-switch" # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # name: ${device_type}-Grid_Charge # register_type: holding # address: 130 # bitmask: 1 # entity_category: config # icon: "mdi:toggle-switch" # # - platform: modbus_controller # Advanced peak shaving and valley filling function enabled # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # name: ${device_type}-Time of Use # id: ${device_type}_Time_of_Use # register_type: holding # address: 146 # bitmask: 1 # entity_category: config # icon: "mdi:toggle-switch" # # - platform: modbus_controller # Time point 1 charge enable - grid charging enable # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # name: ${device_type}-Time point 1 charge enable # register_type: holding # address: 172 # bitmask: 1 # 2 hvis man ønsker Gen charging enable i sted for. # entity_category: config # icon: "mdi:toggle-switch" # # - platform: modbus_controller # Time point 2 charge enable - grid charging enable # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # name: ${device_type}-Time point 2 charge enable # register_type: holding # address: 173 # bitmask: 1 # 2 hvis man ønsker Gen charging enable i sted for. # entity_category: config # icon: "mdi:toggle-switch" # # - platform: modbus_controller # Time point 3 charge enable - grid charging enable # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # name: ${device_type}-Time point 3 charge enable # register_type: holding # address: 174 # bitmask: 1 # 2 hvis man ønsker Gen charging enable i sted for. # entity_category: config # icon: "mdi:toggle-switch" # # - platform: modbus_controller # Time point 4 charge enable - grid charging enable # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # name: ${device_type}-Time point 4 charge enable # register_type: holding # address: 175 # bitmask: 1 # 2 hvis man ønsker Gen charging enable i sted for. # entity_category: config # icon: "mdi:toggle-switch" # # - platform: modbus_controller # Time point 5 charge enable - grid charging enable # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # name: ${device_type}-Time point 5 charge enable # register_type: holding # address: 176 # bitmask: 1 # 2 hvis man ønsker Gen charging enable i sted for. # entity_category: config # icon: "mdi:toggle-switch" # # - platform: modbus_controller # Time point 6 charge enable - grid charging enable # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # name: ${device_type}-Time point 6 charge enable # register_type: holding # address: 177 # bitmask: 1 # 2 hvis man ønsker Gen charging enable i sted for. # entity_category: config # icon: "mdi:toggle-switch" # #Hier der Code für den Schalter #https://www.akkudoktor.net/forum/deye-wechselrichter/deye-nachts-ausschalten-wenn-akku-leer-ist-haesphome-ha-automatisierungen/ # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # name: ${device_type}-power-on # register_type: holding # address: 80 # bitmask: 1 # entity_category: config # icon: "mdi:toggle-switch" # #Register 98: 1=Lithium, 0=Lead #https://www.akkudoktor.net/forum/postid/169630/ - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} name: ${device_type}-battery-typ register_type: holding address: 98 bitmask: 1 entity_category: config icon: "mdi:toggle-switch" binary_sensor: # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: ${device_type}-AC INV relay # bit 0 # id: ${device_type}_AC_INV_relay # register_type: holding # address: 552 # bitmask: 0x1 # # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: ${device_type}-AC Load relay Reserved # bit 1 # id: ${device_type}_AC_Load_relay_Reserved # register_type: holding # address: 552 # bitmask: 0x2 # # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: ${device_type}-AC grid relay # bit 2 # id: ${device_type}_AC_grid_relay # register_type: holding # address: 552 # bitmask: 0x4 # # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: ${device_type}-AC Generator relay # bit 3 # id: ${device_type}_AC_Generator_relay # register_type: holding # address: 552 # bitmask: 0x8 # # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: ${device_type}-Turn off/on status #The lower 4 bits represent the switch signal # id: ${device_type}_Turn_off_on_status # register_type: holding # address: 551 # bitmask: 0x1 # text_sensor: - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} id: ${device_type}_Running_Status bitmask: 0 register_type: holding address: 500 raw_encode: HEXBYTES name: ${device_type}-Running Status lambda: |- uint16_t value = modbus_controller::word_from_hex_str(x, 0); switch (value) { case 0: return std::string("standby"); case 1: return std::string("selfcheck"); case 2: return std::string("normal"); case 3: return std::string("alarm"); case 4: return std::string("fault"); default: return std::string("----"); } return x; number: - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: ${device_type}_Battery_equalization_voltage name: "${device_type}-Battery equalization voltage" address: 99 unit_of_measurement: V value_type: U_WORD max_value: 58.4 min_value: 52.8 step: 0.1 mode: box lambda: "return x * 0.01;" write_lambda: "return x * 100;" - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: ${device_type}_Battery_absorption_voltage name: "${device_type}-Battery absorption voltage" address: 100 unit_of_measurement: V value_type: U_WORD max_value: 58.4 min_value: 52.8 step: 0.1 mode: box lambda: "return x * 0.01;" write_lambda: "return x * 100;" - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: ${device_type}_Battery_float_voltage name: "${device_type}-Battery float voltage" address: 101 unit_of_measurement: V value_type: U_WORD max_value: 58.4 min_value: 52.8 step: 0.1 mode: box lambda: "return x * 0.01;" write_lambda: "return x * 100;" # https://www.akkudoktor.net/forum/deye-wechselrichter/idee-zum-verhindern-des-20w-netz-bezugs-des-deye/paged/6/#post-218818 - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: ${device_type}_Maximum_zero_export_power name: "${device_type}-ZeroExport power" address: 104 unit_of_measurement: W min_value: 20 max_value: 50 step: 1 mode: box value_type: S_WORD - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: ${device_type}_Maximum_battery_charge_current name: "${device_type}-Maximum battery charge current" address: 108 unit_of_measurement: A value_type: U_WORD max_value: 100 min_value: 0 step: 1 mode: box - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: ${device_type}_Maximum_battery_discharge_current name: "${device_type}-Maximum battery discharge current" address: 109 unit_of_measurement: A value_type: U_WORD max_value: 100 min_value: 0 step: 1 mode: box - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Max Solar Sell Power" unit_of_measurement: W device_class: power address: 143 value_type: U_WORD max_value: 15600 min_value: 400 step: 100 mode: box # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Maximum_battery_grid_charge_current # name: "${device_type}-Maximum battery_grid charge current" # address: 128 # unit_of_measurement: A # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_1 # name: "${device_type}-Time point 1 start" # address: 148 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_2 # name: "${device_type}-Time point 2 start" # address: 149 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_3 # name: "${device_type}-Time point 3 start" # address: 150 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_4 # name: "${device_type}-Time point 4 start" # address: 151 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_5 # name: "${device_type}-Time point 5 start" # address: 152 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_6 # name: "${device_type}-Time point 6 start" # address: 153 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_1_power # name: "${device_type}-Time point 1 power" # unit_of_measurement: W # address: 154 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_2_power # name: "${device_type}-Time point 2 power" # unit_of_measurement: W # address: 155 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_3_power # name: "${device_type}-Time point 3 power" # unit_of_measurement: W # address: 156 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_4_power # name: "${device_type}-Time point 4 power" # unit_of_measurement: W # address: 157 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_5_power # name: "${device_type}-Time point 5 power" # unit_of_measurement: W # address: 158 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_6_power # name: "${device_type}-Time point 6 power" # unit_of_measurement: W # address: 159 # value_type: U_WORD # #Zum Einschalten und Ausschalten des Alarmtones müssen bestimmte Werte gesendet werden #https://www.akkudoktor.net/forum/deye-wechselrichter/deye-nachts-ausschalten-wenn-akku-leer-ist-haesphome-ha-automatisierungen/ # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Beep1 # name: "${device_type}-beep1" # address: 228 # bitmask: 2 # value_type: U_WORD # ####### # NEEDED IF YOU USE BatV% ####### # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_1_volts # name: "${device_type}-Time point 1 volts" # unit_of_measurement: V # address: 160 # min_value: 40 # max_value: 58.4 # step: 0.1 # mode: box # lambda: "return x * 0.01;" # write_lambda: "return x * 100;" # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_2_volts # name: "${device_type}-Time point 2 volts" # unit_of_measurement: V # address: 161 # min_value: 40 # max_value: 58.4 # step: 0.1 # mode: box # lambda: "return x * 0.01;" # write_lambda: "return x * 100;" # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_3_volts # name: "${device_type}-Time point 3 volts" # unit_of_measurement: V # address: 162 # min_value: 40 # max_value: 58.4 # step: 0.1 # mode: box # lambda: "return x * 0.01;" # write_lambda: "return x * 100;" # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_4_volts # name: "${device_type}-Time point 4 volts" # unit_of_measurement: V # address: 163 # min_value: 40 # max_value: 58.4 # step: 0.1 # mode: box # lambda: "return x * 0.01;" # write_lambda: "return x * 100;" # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_5_volts # name: "${device_type}-Time point 5 volts" # unit_of_measurement: V # address: 164 # min_value: 40 # max_value: 58.4 # step: 0.1 # mode: box # lambda: "return x * 0.01;" # write_lambda: "return x * 100;" # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_6_volts # name: "${device_type}-Time point 6 volts" # unit_of_measurement: V # address: 165 # min_value: 40 # max_value: 58.4 # step: 0.1 # mode: box # lambda: "return x * 0.01;" # write_lambda: "return x * 100;" # value_type: U_WORD # ####### # NEEDED IF YOU USE Lithium or Bat% ####### # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_1_capacity # name: "${device_type}-Time point 1 capacity" # unit_of_measurement: "%" # address: 166 # min_value: 0 # max_value: 100 # step: 5 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_2_capacity # name: "${device_type}-Time point 2 capacity" # unit_of_measurement: "%" # address: 167 # min_value: 0 # max_value: 100 # step: 5 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_3_capacity # name: "${device_type}-Time point 3 capacity" # unit_of_measurement: "%" # address: 168 # min_value: 0 # max_value: 100 # step: 5 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_4_capacity # name: "${device_type}-Time point 4 capacity" # unit_of_measurement: "%" # address: 169 # min_value: 0 # max_value: 100 # step: 5 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_5_capacity # name: "${device_type}-Time point 5 capacity" # unit_of_measurement: "%" # address: 170 # min_value: 0 # max_value: 100 # step: 5 # value_type: U_WORD # # - platform: modbus_controller # use_write_multiple: true # modbus_controller_id: ${modbus_controller_id} # id: ${device_type}_Time_point_6_capacity # name: "${device_type}-Time point 6 capacity" # unit_of_measurement: "%" # address: 171 # min_value: 0 # max_value: 100 # step: 5 # value_type: U_WORD # sensor: - platform: template name: "${device_type}-PV Total Power" unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 lambda: |- return (int)((id(${device_type}_PV1_Power).state + id(${device_type}_PV2_Power).state)); update_interval: 5s - platform: modbus_controller #${device_type}-køleplade temeratur modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Heat sink temperature" # id: ${device_type}_koleplade_temeratur register_type: holding address: 541 unit_of_measurement: "°C" value_type: S_WORD accuracy_decimals: 2 filters: - offset: -1000 - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Grid Frequency" register_type: holding address: 609 unit_of_measurement: "Hz" # device_class: frequency accuracy_decimals: 2 filters: - multiply: 0.01 value_type: U_WORD state_class: "measurement" - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Inverter Power" register_type: holding address: 636 unit_of_measurement: "W" # device_class: power state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller #${device_type}-load frequency modbus_controller_id: ${modbus_controller_id} name: "${device_type}-load frequency" id: ${device_type}_load_frequency register_type: holding address: 655 unit_of_measurement: "Hz" state_class: "measurement" accuracy_decimals: 2 filters: - multiply: 0.01 value_type: U_WORD - platform: modbus_controller #${device_type}-inverter-frequency modbus_controller_id: ${modbus_controller_id} name: "${device_type}-inverter-frequency" id: ${device_type}_inverter_frequency register_type: holding address: 638 unit_of_measurement: "Hz" state_class: "measurement" accuracy_decimals: 2 filters: - multiply: 0.01 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Generator Power" register_type: holding address: 667 unit_of_measurement: "W" accuracy_decimals: 0 # device_class: power state_class: "measurement" value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-PV1 Power" id: ${device_type}_PV1_Power register_type: holding address: 672 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-PV2 Power" id: ${device_type}_PV2_Power register_type: holding address: 673 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-PV1 Voltage" id: ${device_type}_PV1_Voltage register_type: holding address: 676 unit_of_measurement: "V" state_class: "measurement" accuracy_decimals: 0 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-PV2 Voltage" id: ${device_type}_PV2_Voltage register_type: holding address: 678 unit_of_measurement: "V" state_class: "measurement" accuracy_decimals: 0 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-PV1 Current" id: ${device_type}_PV1_Current register_type: holding address: 677 unit_of_measurement: "A" state_class: "measurement" accuracy_decimals: 1 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-PV2 Current" id: ${device_type}_PV2_Current register_type: holding address: 679 unit_of_measurement: "A" state_class: "measurement" accuracy_decimals: 1 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Daily PV Production" id: ${device_type}_Daily_PV_Production register_type: holding address: 529 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Total PV Production" #Cumulative Production id: ${device_type}_Total_PV_Production register_type: holding address: 534 unit_of_measurement: "kWh" state_class: "measurement" device_class: energy accuracy_decimals: 1 value_type: U_DWORD_R filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Total Grid Power" # Grid side total power id: ${device_type}_Total_Grid_Power register_type: holding address: 625 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Daily Energy Bought" id: ${device_type}_Daily_Energy_Bought register_type: holding address: 520 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_WORD filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Daily Energy Sold" id: ${device_type}_Daily_Energy_Sold register_type: holding address: 521 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_WORD filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Total Energy Bought" id: ${device_type}_Total_Energy_Bought register_type: holding address: 522 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_WORD filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Total Energy Sold" id: ${device_type}_Total_Energy_Sold register_type: holding address: 524 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_WORD filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Daily Load Consumption" register_type: holding address: 526 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_WORD filters: - multiply: 0.1 - platform: modbus_controller #Total Consumption modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Total Consumption" id: ${device_type}_Total_Consumption register_type: holding address: 527 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_DWORD_R filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Daily Generator Production" register_type: holding address: 536 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Total Generator Production" register_type: holding address: 537 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_DWORD_R filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-active power generation of today" id: ${device_type}_active_power_generation_of_today register_type: holding address: 502 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: S_WORD filters: - multiply: 0.1 # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: "${device_type}-Grid Current L1" # id: ${device_type}_Grid_Current_L1 # register_type: holding # address: 630 # unit_of_measurement: "A" # state_class: "measurement" # accuracy_decimals: 1 # filters: # - multiply: 0.01 # value_type: S_WORD # # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: "${device_type}-Grid Current L2" # id: ${device_type}_Grid_Current_L2 # register_type: holding # address: 631 # unit_of_measurement: "A" # state_class: "measurement" # accuracy_decimals: 1 # filters: # - multiply: 0.01 # value_type: S_WORD # # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: "${device_type}-Grid Current L3" # id: ${device_type}_Grid_Current_L3 # register_type: holding # address: 632 # unit_of_measurement: "A" # state_class: "measurement" # accuracy_decimals: 1 # filters: # - multiply: 0.01 # value_type: S_WORD # - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Grid Voltage L1" id: ${device_type}_Grid_Voltage_L1 register_type: holding address: 598 unit_of_measurement: "V" state_class: "measurement" accuracy_decimals: 0 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Grid Voltage L2" id: ${device_type}_Grid_Voltage_L2 register_type: holding address: 599 unit_of_measurement: "V" state_class: "measurement" accuracy_decimals: 0 filters: - multiply: 0.1 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Grid Voltage L3" id: ${device_type}_Grid_Voltage_L3 register_type: holding address: 600 unit_of_measurement: "V" state_class: "measurement" accuracy_decimals: 0 filters: - multiply: 0.1 value_type: U_WORD # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: "${device_type}-Internal CT L1 Power" # id: ${device_type}_Internal_CT_L1_Power # register_type: holding # address: 604 # unit_of_measurement: "W" # state_class: "measurement" # accuracy_decimals: 0 # value_type: S_WORD # # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: "${device_type}-Internal CT L2 Power" # id: ${device_type}_Internal_CT_L2_Power # register_type: holding # address: 605 # unit_of_measurement: "W" # state_class: "measurement" # accuracy_decimals: 0 # value_type: S_WORD # # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: "${device_type}-Internal CT L3 Power" # id: ${device_type}_Internal_CT_L3_Power # register_type: holding # address: 606 # unit_of_measurement: "W" # state_class: "measurement" # accuracy_decimals: 0 # value_type: S_WORD # - platform: modbus_controller # Grid internal - total active power modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Internal total Power" id: ${device_type}_Internal_total_Power register_type: holding address: 607 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: "${device_type}-External CT L1 Power" # id: ${device_type}_External_CT_L1_Power # register_type: holding # address: 616 # unit_of_measurement: "W" # state_class: "measurement" # accuracy_decimals: 0 # value_type: S_WORD # # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: "${device_type}-External CT L2 Power" # id: ${device_type}_External_CT_L2_Power # register_type: holding # address: 617 # unit_of_measurement: "W" # state_class: "measurement" # accuracy_decimals: 0 # value_type: S_WORD # # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: "${device_type}-External CT L3 Power" # id: ${device_type}_External_CT_L3_Power # register_type: holding # address: 618 # unit_of_measurement: "W" # state_class: "measurement" # accuracy_decimals: 0 # value_type: S_WORD # - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-out of grid total power" id: ${device_type}_out_of_grid_total_power register_type: holding address: 619 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller # Load totalpower modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Load totalpower" id: ${device_type}_Load_totalpower register_type: holding address: 653 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Warning1" id: ${device_type}_Warning1 register_type: holding address: 553 accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Warning2" id: ${device_type}_Warning2 register_type: holding address: 554 accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Warning3" id: ${device_type}_Warning3 register_type: holding address: 555 accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Error1" id: ${device_type}_Error1 register_type: holding address: 556 accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Error2" id: ${device_type}_Error2 register_type: holding address: 557 accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Error3" id: ${device_type}_Error3 register_type: holding address: 558 accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Failure status of communication board" id: ${device_type}_Failure_status_of_communication_board register_type: holding address: 548 accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Minimum insulation impedance" id: ${device_type}_Minimum_insulation_impedance register_type: holding unit_of_measurement: "kΩ" state_class: "measurement" address: 65 accuracy_decimals: 0 value_type: U_WORD filters: - multiply: 0.1 # Batterie - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Today charge of the battery" id: ${device_type}_Today_charge_of_the_battery register_type: holding address: 514 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_WORD filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Today discharge of the battery" id: ${device_type}_Today_discharge_of_the_battery register_type: holding address: 515 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_WORD filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} skip_updates: 5 name: "${device_type}-Total charge of the battery" id: ${device_type}_battery_total_charge register_type: holding address: 516 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_DWORD_R filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} skip_updates: 5 name: "${device_type}-Total discharge of the battery" id: ${device_type}_battery_total_discharge register_type: holding address: 518 unit_of_measurement: "kWh" state_class: "total_increasing" device_class: energy accuracy_decimals: 1 value_type: U_DWORD_R filters: - multiply: 0.1 # - platform: modbus_controller # modbus_controller_id: ${modbus_controller_id} # name: "${device_type}-battery temperature" # id: ${device_type}_battery_temperature # register_type: holding # address: 586 # unit_of_measurement: "°C" # accuracy_decimals: 1 # value_type: U_WORD # filters: # - offset: -1000 # - multiply: 0.1 # - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-battery voltage" id: ${device_type}_battery_voltage register_type: holding address: 587 unit_of_measurement: "V" state_class: "measurement" accuracy_decimals: 2 filters: - multiply: 0.01 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-battery capacity" id: ${device_type}_battery_capacity register_type: holding address: 588 unit_of_measurement: "%" state_class: "measurement" accuracy_decimals: 0 value_type: U_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Battery output power" id: ${device_type}_Battery_output_power register_type: holding address: 590 unit_of_measurement: "W" state_class: "measurement" accuracy_decimals: 0 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-Battery output current" id: ${device_type}_Battery_output_current register_type: holding address: 591 unit_of_measurement: "A" state_class: "measurement" accuracy_decimals: 2 filters: - multiply: 0.01 value_type: S_WORD - platform: modbus_controller modbus_controller_id: ${modbus_controller_id} name: "${device_type}-The corrected capacity of the battery" id: ${device_type}_The_corrected_capacity_of_the_battery register_type: holding address: 592 unit_of_measurement: "Ah" state_class: "measurement" accuracy_decimals: 0 value_type: U_WORD select: #Register 111 #https://www.akkudoktor.net/forum/postid/169630/ #https://www.akkudoktor.net/forum/deye-wechselrichter/deye-nachts-ausschalten-wenn-akku-leer-ist-haesphome-ha-automatisierungen/paged/2/ #https://dy-support.org/community/allgemeine-fragen/idee-auto-shutdown-des-wr-wenn-battery-leer-und-kein-pv-bezug/ - platform: modbus_controller optimistic: true use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: ${device_type}_Battery_Mode name: "${device_type}-battery-mode" address: 111 value_type: U_WORD optionsmap: "Use Batt V": 0 "Use Batt %": 1 "No Batt": 2 - platform: modbus_controller use_write_multiple: true modbus_controller_id: ${modbus_controller_id} id: ${device_type}_Generator_Port_Use name: "${device_type}-Generator Port Use" address: 133 value_type: U_WORD optionsmap: "Generator Input": 0 "SmartLoad Output": 1 "Micro Inverter Input": 2