esphome: name: modbus friendly_name: ModBus globals: - id: deye_sn type: std::string initial_value: '""' - id: last_deye_reading type: unsigned long initial_value: "0" substitutions: name: deyeinverterreader device_description: "Esphome component for Deye SUN-6K-SG04LP1" #Description in ESPhome modbus_controller_id: sg04lp1 #just a random name for the modbus controler esp8266: board: nodemcuv2 # Enable logging logger: level: INFO baud_rate: 0 hardware_uart: UART1 web_server: port: 80 captive_portal: uart: id: modbus_uart rx_pin: number: GPIO13 mode: INPUT_PULLUP tx_pin: GPIO1 # D10 — Default UART0 TX baud_rate: 9600 data_bits: 8 parity: NONE stop_bits: 1 # ❌ REMOVED hardware_uart: UART0 — this line caused the error # Modbus modbus: id: modbus_bus uart_id: modbus_uart flow_control_pin: GPIO5 # D1 — MAX485 DE+RE pin send_wait_time: 400ms # ⬅️ Increase from 200 to 300 or 400 modbus_controller: - id: deye address: 1 # Deye default slave ID modbus_id: modbus_bus update_interval: 30s # Example Sensors sensor: - platform: modbus_controller modbus_controller_id: deye name: "Battery SOC" device_class: battery state_class: measurement address: 184 register_type: holding value_type: U_WORD unit_of_measurement: "%" - platform: modbus_controller modbus_controller_id: deye name: "Battery Power" device_class: power state_class: measurement address: 190 register_type: holding value_type: S_WORD unit_of_measurement: "W" - platform: modbus_controller modbus_controller_id: deye name: "Battery Current" device_class: current state_class: measurement address: 191 register_type: holding value_type: S_WORD filters: multiply: 0.01 unit_of_measurement: "A" accuracy_decimals: 1 - platform: modbus_controller modbus_controller_id: deye name: "Grid Power" device_class: power state_class: measurement address: 169 register_type: holding value_type: S_WORD unit_of_measurement: "W" - platform: modbus_controller modbus_controller_id: deye name: "Grid Power (Total)" device_class: energy address: 78 register_type: holding value_type: U_WORD filters: - multiply: 0.0001 unit_of_measurement: "MWh" accuracy_decimals: 2 state_class: total_increasing - platform: modbus_controller modbus_controller_id: deye name: "Grid Power (Daily)" device_class: energy state_class: total_increasing address: 76 register_type: holding value_type: U_WORD unit_of_measurement: "kWh" filters: - multiply: 0.1 accuracy_decimals: 1 - platform: modbus_controller modbus_controller_id: deye name: "Grid Voltage" address: 150 device_class: voltage state_class: measurement filters: - multiply: 0.1 accuracy_decimals: 1 register_type: holding value_type: U_WORD unit_of_measurement: "V" - platform: modbus_controller modbus_controller_id: deye name: "Load Power (Daily)" device_class: energy state_class: total_increasing address: 84 register_type: holding filters: - multiply: 0.1 value_type: U_WORD accuracy_decimals: 1 unit_of_measurement: "kWh" - platform: modbus_controller modbus_controller_id: deye name: "Load Power" device_class: power state_class: measurement address: 178 register_type: holding value_type: U_WORD unit_of_measurement: "W" - platform: modbus_controller name: "Load Power (Total)" device_class: energy state_class: total_increasing modbus_controller_id: deye address: 85 register_type: holding value_type: U_DWORD_R unit_of_measurement: "MWh" filters: multiply: 0.0001 accuracy_decimals: 2 - platform: modbus_controller modbus_controller_id: deye name: "PV Production (Daily)" state_class: total_increasing device_class: energy address: 108 register_type: holding value_type: U_WORD unit_of_measurement: "kWh" filters: - multiply: 0.1 accuracy_decimals: 1 - platform: modbus_controller modbus_controller_id: deye name: "PV Production (Total)" device_class: energy state_class: total_increasing address: 96 register_type: holding value_type: U_DWORD_R unit_of_measurement: "MWh" filters: - multiply: 0.0001 accuracy_decimals: 2 - platform: modbus_controller modbus_controller_id: deye name: "PV1 Power" device_class: power state_class: measurement address: 186 register_type: holding value_type: U_WORD unit_of_measurement: "W" id: pv1 - platform: modbus_controller modbus_controller_id: deye name: "PV2 Power" device_class: power state_class: measurement address: 187 register_type: holding value_type: U_WORD unit_of_measurement: "W" id: pv2 - platform: modbus_controller modbus_controller_id: deye name: "Battery Temperature" device_class: temperature state_class: measurement address: 182 register_type: holding value_type: U_WORD unit_of_measurement: "°C" filters: - lambda: return (x - 1000.0) / 10.0; accuracy_decimals: 1 - platform: modbus_controller modbus_controller_id: deye name: "Inverter Temperature" device_class: temperature state_class: measurement address: 90 register_type: holding value_type: U_WORD unit_of_measurement: "°C" filters: - lambda: return (x - 1000.0) / 10.0; accuracy_decimals: 1 - platform: template name: "PV Power" id: pv_power unit_of_measurement: "W" device_class: power state_class: measurement lambda: |- return id(pv1).state + id(pv2).state; # added - platform: modbus_controller modbus_controller_id: deye register_type: holding address: 70 name: "Battery Charge (Daily)" device_class: energy state_class: total_increasing unit_of_measurement: kWh value_type: U_WORD accuracy_decimals: 1 filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: deye register_type: holding address: 71 name: "Battery Discharge (Daily)" device_class: energy state_class: total_increasing unit_of_measurement: kWh value_type: U_WORD accuracy_decimals: 1 filters: - multiply: 0.1