Hello,
It is my first topic, to Ask for help.
I’m trying to connect my growatt inverter (spf 5000 es) with an esp32 (esp32dev) with the rs485 connector.
So i add a max485 to ttl to be able to comunicate with my inverter.
For the moment i’m still not able to get information from esp32.
I make a configuration over esphome, my esp32 is well discovered and can be accessed by OTA.
First question : is my growatt inverter able to communicate with my battery by CAN and also with my esp32 with RS485 simultaneously?
I would like to keep my usb dongle wifi shine s to communicate with growatt server without modification (as my inverter and my dongle under warranty).
What i did :
use GPIO16 and 17 as TX/RX connectors.
use GPIO4 as sens detector (as max485 is not able to detector auto-sens)
use GND as ground for my MAX485
use VIN as +5v for my MAX485
on my MAX485 i did connect pin 1 and pin 2 of RS485 câble coming from inverter
In the logs i still obtain “no respond”
Can someone help me ?
substitutions:
name: growatt-spf-5000es
device_name: growatt #name for all sensors in Home assistant
device_description: "Esphome for growatt"
modbus_controller_id: controller1
modbus_update_interval: 15s #normal update
skip_updates_slow: "6" #how many times to skip normal update for slow updating sensors
update_fast: 15s
update_slow: 60s
esphome:
name: ${name}
friendly_name: Growatt-spf-5000es
esp32:
board: esp32dev
framework:
type: esp-idf
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "BTdytLiSzeFUJVSApEK1nPXcWP/xpNbUslT8ItpZkjg="
ota:
- platform: esphome
password: "d154aaa014917281620313b967a50e6b"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: ${name}
password: "Su2cyKVUVtzv"
captive_portal:
web_server:
port: 80
uart:
id: mod_bus
tx_pin: 17
rx_pin: 16
baud_rate: 9600
stop_bits: 1
modbus:
id: modbus1
flow_control_pin: 4 #for use when you use a rs485 board without auto flow control. Like the rs485 max board.
modbus_controller:
- id: ${modbus_controller_id}
address: 0x1
modbus_id: modbus1
setup_priority: -10
update_interval: ${modbus_update_interval}
# CAPTEURS
sensor:
- platform: modbus_controller
name: ${device_name} status_code
skip_updates: $skip_updates_slow
address: 0
register_type: "read"
internal: true
accuracy_decimals: 0
id: status
- platform: modbus_controller
name: "${device_name} Input Power"
address: 1
register_type: "read"
unit_of_measurement: W
device_class: power
state_class: measurement
icon: mdi:solar-power-variant
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} PV1 voltage"
address: 3
register_type: "read"
unit_of_measurement: V
device_class: voltage
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} PV1 current"
address: 4
register_type: "read"
unit_of_measurement: A
device_class: current
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} PV1 power"
id: pv1_power
address: 5
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: template
id: pv_power
name: "${device_name} PV Power"
unit_of_measurement: W
device_class: power
state_class: measurement
icon: mdi:solar-power-variant
accuracy_decimals: 0
lambda: |-
return float((id(pv1_power).state));
update_interval: ${update_fast}
- platform: modbus_controller
name: "${device_name} Output power"
address: 35
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:solar-power
value_type: U_DWORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} Energy total"
skip_updates: $skip_updates_slow
address: 55
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:solar-power
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} PV1 energy total"
skip_updates: $skip_updates_slow
id: pv1_energy_total
address: 61
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:solar-power
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: template
id: pv_energy_total
name: "${device_name} PV Energy Total"
unit_of_measurement: kWh
device_class: energy
state_class: total_increasing
icon: mdi:solar-power-variant
accuracy_decimals: 1
lambda: |-
return float((id(pv1_energy_total).state));
update_interval: ${update_slow}
- platform: modbus_controller
name: "${device_name} Temperature"
address: 93
register_type: "read"
unit_of_measurement: °C
device_class: temperature
entity_category: diagnostic
icon: mdi:thermometer
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
skip_updates: $skip_updates_slow
- platform: modbus_controller
name: "${device_name} Battery Discharging Power"
address: 1009
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:battery-arrow-down
value_type: U_DWORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} Battery Charging Power"
address: 1011
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:battery-arrow-up-outline
value_type: U_DWORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} Battery SoC"
skip_updates: $skip_updates_slow
address: 1014
register_type: "read"
unit_of_measurement: "%"
icon: mdi:home-battery
value_type: U_WORD
accuracy_decimals: 0
- platform: modbus_controller
name: "${device_name} AC Power to User Total"
address: 1021
register_type: "read"
unit_of_measurement: W
device_class: power
state_class: measurement
icon: mdi:transmission-tower-export
value_type: U_DWORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} AC Power to Grid Total"
address: 1029
register_type: "read"
unit_of_measurement: W
device_class: power
state_class: measurement
icon: mdi:transmission-tower-import
value_type: U_DWORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} INV Power to Local Load Total"
address: 1037
register_type: "read"
unit_of_measurement: W
device_class: power
state_class: measurement
icon: mdi:home-import-outline
value_type: U_DWORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} Battery Temperature"
address: 1040
register_type: "read"
unit_of_measurement: °C
device_class: temperature
state_class: measurement
icon: mdi:thermometer
skip_updates: $skip_updates_slow
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} Battery State"
skip_updates: $skip_updates_slow
address: 1041
register_type: "read"
icon: mdi:home-battery
value_type: U_WORD
- platform: modbus_controller
name: "${device_name} Energy to User Total"
skip_updates: $skip_updates_slow
address: 1046
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:transmission-tower-export
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} Energy to Grid Total"
skip_updates: $skip_updates_slow
address: 1050
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:transmission-tower-import
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} Battery Discharge Total"
skip_updates: $skip_updates_slow
address: 1054
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:battery-arrow-down
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} Battery Charge Total"
skip_updates: $skip_updates_slow
address: 1058
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:battery-arrow-up-outline
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${device_name} Local Load Total"
skip_updates: $skip_updates_slow
address: 1062
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:home-import-outline
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
number:
- platform: modbus_controller
name: "${device_name} Discharge SoC"
address: 1071
value_type: U_WORD
min_value: 10
max_value: 100
step: 1
skip_updates: $skip_updates_slow
- platform: modbus_controller
name: "${device_name} Discharge Power Rate"
address: 1070
value_type: U_WORD
min_value: 10
max_value: 100
step: 1
skip_updates: $skip_updates_slow
- platform: modbus_controller
name: "${device_name} Charge SoC"
address: 1091
value_type: U_WORD
min_value: 10
max_value: 100
step: 1
skip_updates: $skip_updates_slow
- platform: modbus_controller
name: "${device_name} Charge Power Rate"
address: 1090
value_type: U_WORD
min_value: 10
max_value: 100
step: 1
skip_updates: $skip_updates_slow
select:
- platform: modbus_controller
name: "${device_name} AC Charging"
icon: mdi:battery-charging-100
address: 1092
value_type: U_WORD
optionsmap:
"Disabled": 0
"Enabled": 1
skip_updates: $skip_updates_slow
- platform: modbus_controller
name: "${device_name} Inverter Priority"
icon: mdi:arrow-decision-outline
address: 1044
value_type: U_WORD
optionsmap:
"Load First": 0
"Battery First": 1
"Grid First": 2
skip_updates: $skip_updates_slow
text_sensor:
- platform: template
name: "${device_name} Status state"
icon: mdi:eye
entity_category: diagnostic
lambda: |-
if ((id(status).state) == 1) {
return {"Normal"};
} else if ((id(status).state) == 0) {
return {"Standby"};
} else if ((id(status).state) == 2) {
return {"Discharge"};
} else if ((id(status).state) == 3) {
return {"Fault"};
} else if ((id(status).state) == 4) {
return {"Flash"};
} else if ((id(status).state) == 5) {
return {"PV Charging"};
} else if ((id(status).state) == 6) {
return {"AC Charging"};
} else if ((id(status).state) == 7) {
return {"Combined Charging"};
} else if ((id(status).state) == 8) {
return {"Combined Charging & Bypass"};
} else if ((id(status).state) == 9) {
return {"PV Charging & Bypass"};
} else if ((id(status).state) == 10) {
return {"AC Charging & Bypass"};
} else if ((id(status).state) == 11) {
return {"Bypass"};
} else if (id(status).state == 12) {
return {"PV Charge and Discharge"};
} else {
return {"Unknown"};
}
- platform: modbus_controller
name: "${device_name} Fault code"
skip_updates: $skip_updates_slow
address: 105
register_type: "read"
icon: mdi:eye
entity_category: diagnostic
raw_encode: HEXBYTES
lambda: |-
uint16_t value = modbus_controller::word_from_hex_str(x, 0);
switch (value) {
case 0: return std::string("No error");
case 24: return std::string("Auto test failed");
case 25: return std::string("No AC connection");
case 26: return std::string("PV isolation low");
case 27: return std::string("Residual I high");
case 28: return std::string("Output high DCI");
case 29: return std::string("PV voltage high");
case 30: return std::string("AC voltage out of range");
case 31: return std::string("AC frequency out of range");
case 32: return std::string("Module too hot");
// case 1~23 " Error: 99+x
default: return std::string("Fault code: " + to_string(value));
}
return x;
Logs growatt-spf-5000es.yaml
INFO ESPHome 2025.12.2
INFO Reading configuration /config/esphome/growatt-spf-5000es.yaml...
INFO Starting log output from growatt-spf-5000es.local using esphome API
INFO Successfully resolved growatt-spf-5000es.local in 0.163s
INFO Successfully connected to growatt-spf-5000es @ 192.168.1.52 in 0.006s
INFO Successful handshake with growatt-spf-5000es @ 192.168.1.52 in 0.424s
[14:55:56.852][I][app:194]: ESPHome version 2025.12.2 compiled on Dec 30 2025, 12:13:13
[14:55:56.852][C][logger:261]: Logger:
[14:55:56.852][C][logger:261]: Max Level: DEBUG
[14:55:56.852][C][logger:261]: Initial Level: DEBUG
[14:55:56.856][C][logger:267]: Log Baud Rate: 115200
[14:55:56.856][C][logger:267]: Hardware UART: UART0
[14:55:56.858][C][logger:274]: Task Log Buffer Size: 768
[14:55:56.863][C][uart.idf:238]: UART Bus 1:
[14:55:56.864][C][uart.idf:239]: TX Pin: GPIO17
[14:55:56.868][C][uart.idf:240]: RX Pin: GPIO16
[14:55:56.870][C][uart.idf:243]: RX Buffer Size: 256
[14:55:56.870][C][uart.idf:243]: RX Full Threshold: 8
[14:55:56.870][C][uart.idf:243]: RX Timeout: 2
[14:55:56.876][C][uart.idf:249]: Baud Rate: 9600 baud
[14:55:56.876][C][uart.idf:249]: Data Bits: 8
[14:55:56.876][C][uart.idf:249]: Parity: NONE
[14:55:56.876][C][uart.idf:249]: Stop bits: 1
[14:55:56.893][C][modbus:196]: Modbus:
[14:55:56.904][C][modbus:197]: Flow Control Pin: GPIO4
[14:55:56.904][C][modbus:198]: Send Wait Time: 250 ms
[14:55:56.904][C][modbus:198]: CRC Disabled: NO
[14:55:56.904][C][template.sensor:017]: Template Sensor 'growatt PV Power'
[14:55:56.904][C][template.sensor:017]: State Class: 'measurement'
[14:55:56.904][C][template.sensor:017]: Unit of Measurement: 'W'
[14:55:56.904][C][template.sensor:017]: Accuracy Decimals: 0
[14:55:56.911][C][template.sensor:027]: Device Class: 'power'
[14:55:56.911][C][template.sensor:031]: Icon: 'mdi:solar-power-variant'
[14:55:56.912][C][template.sensor:399]: Update Interval: 15.0s
[14:55:56.923][C][template.sensor:017]: Template Sensor 'growatt PV Energy Total'
[14:55:56.923][C][template.sensor:017]: State Class: 'total_increasing'
[14:55:56.923][C][template.sensor:017]: Unit of Measurement: 'kWh'
[14:55:56.923][C][template.sensor:017]: Accuracy Decimals: 1
[14:55:56.930][C][template.sensor:027]: Device Class: 'energy'
[14:55:56.939][C][template.sensor:031]: Icon: 'mdi:solar-power-variant'
[14:55:56.945][C][template.sensor:399]: Update Interval: 60.0s
[14:55:56.946][C][modbus.number:016]: modbus.numberModbus Number 'growatt Discharge SoC'
[14:55:56.969][C][modbus.number:016]: modbus.numberModbus Number 'growatt Discharge Power Rate'
[14:55:56.985][C][modbus.number:016]: modbus.numberModbus Number 'growatt Charge SoC'
[14:55:56.986][C][modbus.number:016]: modbus.numberModbus Number 'growatt Charge Power Rate'
[14:55:57.002][C][template.text_sensor:016]: Template Sensor 'growatt Status state'
[14:55:57.005][C][template.text_sensor:023]: Icon: 'mdi:eye'
[14:55:57.014][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt status_code'
[14:55:57.014]modbus_controller.sensor State Class: ''
[14:55:57.014]modbus_controller.sensor Unit of Measurement: ''
[14:55:57.014]modbus_controller.sensor Accuracy Decimals: 0
[14:55:57.026][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Input Power'
[14:55:57.026]modbus_controller.sensor State Class: 'measurement'
[14:55:57.026]modbus_controller.sensor Unit of Measurement: 'W'
[14:55:57.026]modbus_controller.sensor Accuracy Decimals: 0
[14:55:57.040][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[14:55:57.042][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:solar-power-variant'
[14:55:57.056][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt PV1 voltage'
[14:55:57.056]modbus_controller.sensor State Class: ''
[14:55:57.056]modbus_controller.sensor Unit of Measurement: 'V'
[14:55:57.056]modbus_controller.sensor Accuracy Decimals: 0
[14:55:57.076][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'voltage'
[14:55:57.082][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:flash'
[14:55:57.098][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt PV1 current'
[14:55:57.098]modbus_controller.sensor State Class: ''
[14:55:57.098]modbus_controller.sensor Unit of Measurement: 'A'
[14:55:57.098]modbus_controller.sensor Accuracy Decimals: 1
[14:55:57.116][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'current'
[14:55:57.122][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:flash'
[14:55:57.133][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt PV1 power'
[14:55:57.133]modbus_controller.sensor State Class: ''
[14:55:57.133]modbus_controller.sensor Unit of Measurement: 'W'
[14:55:57.133]modbus_controller.sensor Accuracy Decimals: 0
[14:55:57.157][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[14:55:57.157][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:flash'
[14:55:57.165][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Output power'
[14:55:57.165]modbus_controller.sensor State Class: ''
[14:55:57.165]modbus_controller.sensor Unit of Measurement: 'W'
[14:55:57.165]modbus_controller.sensor Accuracy Decimals: 0
[14:55:57.183][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[14:55:57.195][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:solar-power'
[14:55:57.205][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Energy total'
[14:55:57.205]modbus_controller.sensor State Class: 'total_increasing'
[14:55:57.205]modbus_controller.sensor Unit of Measurement: 'kWh'
[14:55:57.205]modbus_controller.sensor Accuracy Decimals: 1
[14:55:57.235][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'energy'
[14:55:57.245][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:solar-power'
[14:55:57.249][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt PV1 energy total'
[14:55:57.249]modbus_controller.sensor State Class: 'total_increasing'
[14:55:57.249]modbus_controller.sensor Unit of Measurement: 'kWh'
[14:55:57.249]modbus_controller.sensor Accuracy Decimals: 1
[14:55:57.265][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'energy'
[14:55:57.276][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:solar-power'
[14:55:57.296][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Temperature'
[14:55:57.296]modbus_controller.sensor State Class: ''
[14:55:57.296]modbus_controller.sensor Unit of Measurement: '°C'
[14:55:57.296]modbus_controller.sensor Accuracy Decimals: 1
[14:55:57.306][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'temperature'
[14:55:57.319][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:thermometer'
[14:55:57.331][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Battery Discharging Power'
[14:55:57.331]modbus_controller.sensor State Class: ''
[14:55:57.331]modbus_controller.sensor Unit of Measurement: 'W'
[14:55:57.331]modbus_controller.sensor Accuracy Decimals: 0
[14:55:57.355][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[14:55:57.359][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:battery-arrow-down'
[14:55:57.374][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Battery Charging Power'
[14:55:57.374]modbus_controller.sensor State Class: ''
[14:55:57.374]modbus_controller.sensor Unit of Measurement: 'W'
[14:55:57.374]modbus_controller.sensor Accuracy Decimals: 0
[14:55:57.390][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[14:55:57.398][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:battery-arrow-up-outline'
[14:55:57.413][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Battery SoC'
[14:55:57.413]modbus_controller.sensor State Class: ''
[14:55:57.413]modbus_controller.sensor Unit of Measurement: '%'
[14:55:57.413]modbus_controller.sensor Accuracy Decimals: 0
[14:55:57.429][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:home-battery'
[14:55:57.441][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt AC Power to User Total'
[14:55:57.441]modbus_controller.sensor State Class: 'measurement'
[14:55:57.441]modbus_controller.sensor Unit of Measurement: 'W'
[14:55:57.441]modbus_controller.sensor Accuracy Decimals: 0
[14:55:57.460][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[14:55:57.480][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:transmission-tower-export'
[14:55:57.488][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt AC Power to Grid Total'
[14:55:57.488]modbus_controller.sensor State Class: 'measurement'
[14:55:57.488]modbus_controller.sensor Unit of Measurement: 'W'
[14:55:57.488]modbus_controller.sensor Accuracy Decimals: 0
[14:55:57.514][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[14:55:57.521][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:transmission-tower-import'
[14:55:57.534][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt INV Power to Local Load Total'
[14:55:57.534]modbus_controller.sensor State Class: 'measurement'
[14:55:57.534]modbus_controller.sensor Unit of Measurement: 'W'
[14:55:57.534]modbus_controller.sensor Accuracy Decimals: 0
[14:55:57.542][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[14:55:57.552][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:home-import-outline'
[14:55:57.563][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Battery Temperature'
[14:55:57.563]modbus_controller.sensor State Class: 'measurement'
[14:55:57.563]modbus_controller.sensor Unit of Measurement: '°C'
[14:55:57.563]modbus_controller.sensor Accuracy Decimals: 1
[14:55:57.583][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'temperature'
[14:55:57.598][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:thermometer'
[14:55:57.604][D][modbus_controller:039]: Modbus command to device=1 register=0x40D no response received - removed from send queue
[14:55:57.617][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Battery State'
[14:55:57.617]modbus_controller.sensor State Class: ''
[14:55:57.617]modbus_controller.sensor Unit of Measurement: ''
[14:55:57.617]modbus_controller.sensor Accuracy Decimals: 0
[14:55:57.644][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:home-battery'
[14:55:57.649][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Energy to User Total'
[14:55:57.649]modbus_controller.sensor State Class: 'total_increasing'
[14:55:57.649]modbus_controller.sensor Unit of Measurement: 'kWh'
[14:55:57.649]modbus_controller.sensor Accuracy Decimals: 1
[14:55:57.680][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'energy'
[14:55:57.680][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:transmission-tower-export'
[14:55:57.688][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Energy to Grid Total'
[14:55:57.688]modbus_controller.sensor State Class: 'total_increasing'
[14:55:57.688]modbus_controller.sensor Unit of Measurement: 'kWh'
[14:55:57.688]modbus_controller.sensor Accuracy Decimals: 1
[14:55:57.705][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'energy'
[14:55:57.722][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:transmission-tower-import'
[14:55:57.727][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Battery Discharge Total'
[14:55:57.727]modbus_controller.sensor State Class: 'total_increasing'
[14:55:57.727]modbus_controller.sensor Unit of Measurement: 'kWh'
[14:55:57.727]modbus_controller.sensor Accuracy Decimals: 1
[14:55:57.757][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'energy'
[14:55:57.769][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:battery-arrow-down'
[14:55:57.785][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Battery Charge Total'
[14:55:57.785]modbus_controller.sensor State Class: 'total_increasing'
[14:55:57.785]modbus_controller.sensor Unit of Measurement: 'kWh'
[14:55:57.785]modbus_controller.sensor Accuracy Decimals: 1
[14:55:57.802][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'energy'
[14:55:57.802][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:battery-arrow-up-outline'
[14:55:57.811][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Local Load Total'
[14:55:57.811]modbus_controller.sensor State Class: 'total_increasing'
[14:55:57.811]modbus_controller.sensor Unit of Measurement: 'kWh'
[14:55:57.811]modbus_controller.sensor Accuracy Decimals: 1
[14:55:57.845][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'energy'
[14:55:57.849][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:home-import-outline'
[14:55:57.862][C][modbus_controller.select:009]: modbus_controller.selectModbus Controller Select 'growatt AC Charging'
[14:55:57.870][C][modbus_controller.select:009]: modbus_controller.select Icon: 'mdi:battery-charging-100'
[14:55:57.886][C][modbus_controller.select:009]: modbus_controller.selectModbus Controller Select 'growatt Inverter Priority'
[14:55:57.902][C][modbus_controller.select:009]: modbus_controller.select Icon: 'mdi:arrow-decision-outline'
[14:55:57.905][C][modbus_controller.text_sensor:016]: Modbus Controller Text Sensor 'growatt Fault code'
[14:55:57.906][C][modbus_controller.text_sensor:023]: Icon: 'mdi:eye'
[14:55:57.939][C][captive_portal:118]: Captive Portal:
[14:55:57.944][C][wifi:1132]: WiFi:
[14:55:57.944][C][wifi:1132]: Connected: YES
[14:55:57.947][C][wifi:897]: Local MAC: EC:E3:34:45:EA:78
[14:55:57.950][C][wifi:904]: IP Address: 192.168.1.52
[14:55:57.953][C][wifi:908]: SSID: [redacted]
[14:55:57.953][C][wifi:908]: BSSID: [redacted]
[14:55:57.953][C][wifi:908]: Hostname: 'growatt-spf-5000es'
[14:55:57.953][C][wifi:908]: Signal strength: -17 dB ▂▄▆█
[14:55:57.953][C][wifi:908]: Channel: 11
[14:55:57.953][C][wifi:908]: Subnet: 255.255.255.0
[14:55:57.953][C][wifi:908]: Gateway: 192.168.1.254
[14:55:57.953][C][wifi:908]: DNS1: 192.168.1.254
[14:55:57.953][C][wifi:908]: DNS2: 0.0.0.0
[14:55:57.964][C][web_server:335]: Web Server:
[14:55:57.964][C][web_server:335]: Address: growatt-spf-5000es.local:80
[14:55:57.976][C][esphome.ota:092]: Over-The-Air updates:
[14:55:57.976][C][esphome.ota:092]: Address: growatt-spf-5000es.local:3232
[14:55:57.976][C][esphome.ota:092]: Version: 2
[14:55:57.977][C][esphome.ota:099]: Password configured
[14:55:57.982][C][safe_mode:018]: Safe Mode:
[14:55:57.982][C][safe_mode:018]: Successful after: 60s
[14:55:57.982][C][safe_mode:018]: Invoke after: 10 attempts
[14:55:57.982][C][safe_mode:018]: Duration: 300s
[14:55:58.000][C][web_server.ota:241]: Web Server OTA
[14:55:58.003][C][api:211]: Server:
[14:55:58.003][C][api:211]: Address: growatt-spf-5000es.local:6053
[14:55:58.003][C][api:211]: Listen backlog: 4
[14:55:58.003][C][api:211]: Max connections: 8
[14:55:58.006][C][api:218]: Noise encryption: YES
[14:55:58.020][C][mdns:177]: mDNS:
[14:55:58.020][C][mdns:177]: Hostname: growatt-spf-5000es
[14:55:58.029][C][modbus_controller:448]: ModbusController:
[14:55:58.029][C][modbus_controller:448]: Address: 0x01
[14:55:58.029][C][modbus_controller:448]: Max Command Retries: 4
[14:55:58.029][C][modbus_controller:448]: Offline Skip Updates: 0
[14:55:58.029][C][modbus_controller:448]: Server Courtesy Response:
[14:55:58.029][C][modbus_controller:448]: Enabled: false
[14:55:58.029][C][modbus_controller:448]: Register Last Address: 0xFFFF
[14:55:58.029][C][modbus_controller:448]: Register Value: 0
[14:56:03.220][D][sensor:135]: 'growatt PV Power': Sending state nan W with 0 decimals of accuracy
[14:56:05.827][D][modbus_controller:039]: Modbus command to device=1 register=0x414 no response received - removed from send queue
[14:56:07.166][D][modbus_controller:039]: Modbus command to device=1 register=0x42E no response received - removed from send queue
[14:56:08.504][D][modbus_controller:039]: Modbus command to device=1 register=0x442 no response received - removed from send queue
[14:56:09.841][D][modbus_controller:039]: Modbus command to device=1 register=0x00 no response received - removed from send queue
[14:56:11.181][D][modbus_controller:039]: Modbus command to device=1 register=0x03 no response received - removed from send queue
AshaiRey
(Ashai Rey)
December 31, 2025, 12:13pm
4
Please, please use the code format tags because how the code is added now is useless.
Same goes for the log file.
Can you tell me how to do so ?
Karosm
(Karosm)
December 31, 2025, 12:49pm
6
Also, how is your wiring? Where does gpio16 connect? Where gpio4? How long, soldered or jumpers?
You should power the max485 at esp32 operating voltage, 3.3V.
Did you try to invert RS485 lines? How long are they? Do you use termination resistors?
The connector GPIO16 is connected to RX on rs485 and the connector GPIO17 to TX, yes i tried to invert them.
The connector GPIO4 is connected on both sens transmit and receive connectors to rs485
I don’t insert a resistor between them, should i do ? If so on which pin and for which resistor value?
For the moment everything is connected by jumpers about 20 centimeters.
The MAX485 is powered by 5 volts from esp32 and is lighting.
AshaiRey
(Ashai Rey)
December 31, 2025, 1:40pm
8
The answer is in the FAQ of this forum.
(Or using the editor provided by the forum)
[Forum FAQ](How to help us help you - or How to ask a good question - Configuration - Home Assistant Community How to help us help you - or How to ask a good question - Configuration - Home Assistant Community )
1 Like
Here are some pictures of testing plateform.
Karosm
(Karosm)
December 31, 2025, 1:56pm
10
Common max485 converters without automatic flow control usually have pins DI and RO… Yours not?
Depends on you RS485 wiring length, if it’s short, keep it without termination for now.
And Esp eventually frying. Go with 3.3V (or carefully add level shifter).
Also, where did you get those register addresses, they don’t make sense to me. Do you have protocol sheet for your model?
i modified the logs and the configuration respecting format.
yes they do have DO and RI.
when you say to insert a resistor it is on every connector ?
i will try with 3.3V instead of 5V, i did connect on 5V because merchandiser told it was under 5V.
register address have been found under some configuration describe in this forum in another topic, but, effectively from some body like me where it wasn’t working…
Karosm
(Karosm)
December 31, 2025, 2:00pm
13
So where is your gpio16 connecting then…?
GPIO16 ---- RO
GPIO17 ---- DI
GPIO4 ---- DE+RE
i connected to 3.3V instead of 5V it is lightning also, but still not value in HOME ASSIST.
Karosm
(Karosm)
December 31, 2025, 2:20pm
15
ok, that part is correct
You are far from that, stay with esphome logs. 3.3V power doesn’t solve your problems, but it prevents your Esp dying.
Two things now:
your registers don’t match with this, so do you have some other reference to spf5000 register map?
https://watts247.com/manuals/gw/GrowattModBusProtocol.pdf
this is from one spf5000es project in github:
“According to SPF5000ES User Guide RS485 pins to be used are 1 and 2 but I find out that pins are 8 (RS485B) nad 7 (RS485A) are the one used.”
i saw this topic telling that pin 7 and 8 from inverter where ok instead of pin 1 and 2, in my configuration book it is written that pin 1 and 2 should be use to communicate from RS485, but i also tried to use pin 7 and 8.
This triying happened in a older session and wasn’t working.
i will retry now.
and i will try to match the modbus protocol you gave to me.
if i take an example (extracted from my configuration) :
- platform: modbus_controller
name: "${device_name} PV1 current"
**address: 4**
register_type: "read"
unit_of_measurement: A
device_class: current
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
the register address to use is in bold in this example ?
and should have been :
I make some change with bus address modified and i’m compiling to deploy and see if some values are now right, i will let you know about the issue
here is the result :
Install growatt-spf-5000es.yaml
INFO ESPHome 2025.12.2
INFO Reading configuration /config/esphome/growatt-spf-5000es.yaml...
INFO Generating C++ source...
INFO Setting CONFIG_LWIP_MAX_SOCKETS to 14 (registered: api=4, captive_portal=4, mdns=2, ota=1, web_server=3)
INFO Compiling app... Build path: /data/build/growatt-spf-5000es
Processing growatt-spf-5000es (board: esp32dev; framework: espidf; platform: https://github.com/pioarduino/platform-espressif32/releases/download/55.03.31-2/platform-espressif32.zip)
--------------------------------------------------------------------------------
Created pioarduino Python virtual environment using uv: /root/.platformio/penv
Installed esptool from tl-install path: /data/cache/platformio/packages/tool-esptoolpy
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
- contrib-piohome @ 3.4.4
- framework-espidf @ 3.50501.0 (5.5.1)
- tool-cmake @ 4.0.3
- tool-esp-rom-elfs @ 2024.10.11
- tool-esptoolpy @ 5.1.0
- tool-mklittlefs @ 3.2.0
- tool-ninja @ 1.13.1
- tool-scons @ 4.40801.0 (4.8.1)
- toolchain-xtensa-esp-elf @ 14.2.0+20241119
Creating a new virtual environment for IDF Python dependencies using uv
Using Python 3.12.10 environment at: /root/.platformio/penv/.espidf-5.5.1
Installing ESP-IDF's Python dependencies with uv
Using Python 3.12.10 environment at: /root/.platformio/penv/.espidf-5.5.1
Resolved 27 packages in 396ms
Downloading cryptography (3.8MiB)
Downloading pydantic-core (1.8MiB)
Downloaded pydantic-core
Downloaded cryptography
Prepared 17 packages in 316ms
Installed 27 packages in 54ms
+ annotated-types==0.7.0
+ certifi==2025.11.12
+ cffi==2.0.0
+ charset-normalizer==3.4.4
+ click==8.3.1
+ colorama==0.4.6
+ cryptography==44.0.3
+ esp-idf-kconfig==2.5.0
+ idf-component-manager==2.4.3
+ idna==3.11
+ jsonref==1.1.0
+ pycparser==2.23
+ pydantic==2.11.10
+ pydantic-core==2.33.2
+ pydantic-settings==2.12.0
+ pyparsing==3.3.1
+ python-dotenv==1.2.1
+ requests==2.32.5
+ requests-file==3.0.1
+ requests-toolbelt==1.0.0
+ ruamel-yaml==0.18.17
+ ruamel-yaml-clib==0.2.15
+ tqdm==4.67.1
+ truststore==0.10.4
+ typing-extensions==4.15.0
+ typing-inspection==0.4.2
+ urllib3==1.26.20
Reading CMake configuration...
Dependency Graph
|-- noise-c @ 0.1.10
|-- ArduinoJson @ 7.4.2
Compiling .pioenvs/growatt-spf-5000es/src/main.cpp.o
Linking .pioenvs/growatt-spf-5000es/firmware.elf
Memory Type Usage Summary
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Memory Type/Section ┃ Used [bytes] ┃ Used [%] ┃ Remain [bytes] ┃ Total [bytes] ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ Flash Code │ 725028 │ │ │ │
│ .text │ 725028 │ │ │ │
│ Flash Data │ 154292 │ │ │ │
│ .rodata │ 154036 │ │ │ │
│ .appdesc │ 256 │ │ │ │
│ IRAM │ 83495 │ 63.7 │ 47577 │ 131072 │
│ .text │ 82467 │ 62.92 │ │ │
│ .vectors │ 1028 │ 0.78 │ │ │
│ DRAM │ 34720 │ 19.21 │ 146016 │ 180736 │
│ .bss │ 18856 │ 10.43 │ │ │
│ .data │ 15864 │ 8.78 │ │ │
└─────────────────────┴──────────────┴──────────┴────────────────┴───────────────┘
Total image size: 978679 bytes (.bin may be padded larger)
Note: The reported total sizes may be smaller than those in the technical reference manual due to reserved memory and application configuration. The total flash size available for the application is not included by default, as it cannot be reliably determined due to the presence of other data like the bootloader, partition table, and application partition size.
RAM: [= ] 10.6% (used 34720 bytes from 327680 bytes)
Flash: [===== ] 53.3% (used 978423 bytes from 1835008 bytes)
Building .pioenvs/growatt-spf-5000es/firmware.bin
Creating ESP32 image...
Successfully created ESP32 image.
merge_factory_bin([".pioenvs/growatt-spf-5000es/firmware.bin"], [".pioenvs/growatt-spf-5000es/firmware.elf"])
Info: bootloader.bin not found - skipping
Info: partition-table.bin not found - skipping
Info: ota_data_initial.bin not found - skipping
Info: growatt-spf-5000es.bin not found - skipping
Using FLASH_EXTRA_IMAGES from PlatformIO environment
Merging binaries into /data/build/growatt-spf-5000es/.pioenvs/growatt-spf-5000es/firmware.factory.bin
Merging binaries with esptool
SHA digest in image updated.
Wrote 0xfef90 bytes to file '/data/build/growatt-spf-5000es/.pioenvs/growatt-spf-5000es/firmware.factory.bin', ready to flash to offset 0x0.
Successfully created /data/build/growatt-spf-5000es/.pioenvs/growatt-spf-5000es/firmware.factory.bin
esp32_copy_ota_bin([".pioenvs/growatt-spf-5000es/firmware.bin"], [".pioenvs/growatt-spf-5000es/firmware.elf"])
Copied firmware to /data/build/growatt-spf-5000es/.pioenvs/growatt-spf-5000es/firmware.ota.bin
======================== [SUCCESS] Took 120.21 seconds ========================
INFO Successfully compiled program.
INFO Connecting to 192.168.1.52 port 3232...
INFO Connected to 192.168.1.52
INFO Uploading /data/build/growatt-spf-5000es/.pioenvs/growatt-spf-5000es/firmware.bin (978832 bytes)
Uploading: [============================================================] 100% Done...
INFO Upload took 8.17 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.1.52 using esphome API
INFO Successfully resolved growatt-spf-5000es @ 192.168.1.52 in 0.000s
INFO Successfully connected to growatt-spf-5000es @ 192.168.1.52 in 7.128s
INFO Successful handshake with growatt-spf-5000es @ 192.168.1.52 in 0.075s
[15:57:03.078][I][app:194]: ESPHome version 2025.12.2 compiled on Dec 31 2025, 15:55:56
[15:57:03.078][C][logger:261]: Logger:
[15:57:03.078][C][logger:261]: Max Level: DEBUG
[15:57:03.078][C][logger:261]: Initial Level: DEBUG
[15:57:03.079][C][logger:267]: Log Baud Rate: 115200
[15:57:03.079][C][logger:267]: Hardware UART: UART0
[15:57:03.083][C][logger:274]: Task Log Buffer Size: 768
[15:57:03.087][C][uart.idf:238]: UART Bus 1:
[15:57:03.089][C][uart.idf:239]: TX Pin: GPIO17
[15:57:03.093][C][uart.idf:240]: RX Pin: GPIO16
[15:57:03.097][C][uart.idf:243]: RX Buffer Size: 256
[15:57:03.097][C][uart.idf:243]: RX Full Threshold: 8
[15:57:03.097][C][uart.idf:243]: RX Timeout: 2
[15:57:03.105][C][uart.idf:249]: Baud Rate: 9600 baud
[15:57:03.105][C][uart.idf:249]: Data Bits: 8
[15:57:03.105][C][uart.idf:249]: Parity: NONE
[15:57:03.105][C][uart.idf:249]: Stop bits: 1
[15:57:03.115][C][modbus:196]: Modbus:
[15:57:03.117][C][modbus:197]: Flow Control Pin: GPIO4
[15:57:03.120][C][modbus:198]: Send Wait Time: 250 ms
[15:57:03.120][C][modbus:198]: CRC Disabled: NO
[15:57:03.125][D][api:136]: Accept 192.168.1.82
[15:57:03.133][C][template.sensor:017]: Template Sensor 'growatt PV Power'
[15:57:03.133][C][template.sensor:017]: State Class: 'measurement'
[15:57:03.133][C][template.sensor:017]: Unit of Measurement: 'W'
[15:57:03.133][C][template.sensor:017]: Accuracy Decimals: 0
[15:57:03.133][C][template.sensor:027]: Device Class: 'power'
[15:57:03.133][C][template.sensor:031]: Icon: 'mdi:solar-power-variant'
[15:57:03.137][C][template.sensor:399]: Update Interval: 15.0s
[15:57:03.199][C][template.sensor:017]: Template Sensor 'growatt PV Energy Total'
[15:57:03.199][C][template.sensor:017]: State Class: 'total_increasing'
[15:57:03.199][C][template.sensor:017]: Unit of Measurement: 'kWh'
[15:57:03.199][C][template.sensor:017]: Accuracy Decimals: 1
[15:57:03.203][C][template.sensor:027]: Device Class: 'energy'
[15:57:03.210][C][template.sensor:031]: Icon: 'mdi:solar-power-variant'
[15:57:03.212][C][template.sensor:399]: Update Interval: 60.0s
[15:57:03.216][C][modbus.number:016]: modbus.numberModbus Number 'growatt Discharge SoC'
[15:57:03.221][D][api.connection:1398]: Home Assistant 2025.12.5 (192.168.1.82) connected
[15:57:03.235][C][modbus.number:016]: modbus.numberModbus Number 'growatt Discharge Power Rate'
[15:57:03.237][C][modbus.number:016]: modbus.numberModbus Number 'growatt Charge SoC'
[15:57:03.255][C][modbus.number:016]: modbus.numberModbus Number 'growatt Charge Power Rate'
[15:57:03.266][C][template.text_sensor:016]: Template Sensor 'growatt Status state'
[15:57:03.271][C][template.text_sensor:023]: Icon: 'mdi:eye'
[15:57:03.278][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt status_code'
[15:57:03.278]modbus_controller.sensor State Class: ''
[15:57:03.278]modbus_controller.sensor Unit of Measurement: ''
[15:57:03.278]modbus_controller.sensor Accuracy Decimals: 0
[15:57:03.292][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Input Power'
[15:57:03.292]modbus_controller.sensor State Class: 'measurement'
[15:57:03.292]modbus_controller.sensor Unit of Measurement: 'W'
[15:57:03.292]modbus_controller.sensor Accuracy Decimals: 0
[15:57:03.303][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[15:57:03.313][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:solar-power-variant'
[15:57:03.318][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt PV1 voltage'
[15:57:03.318]modbus_controller.sensor State Class: ''
[15:57:03.318]modbus_controller.sensor Unit of Measurement: 'V'
[15:57:03.318]modbus_controller.sensor Accuracy Decimals: 0
[15:57:03.333][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'voltage'
[15:57:03.343][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:flash'
[15:57:03.359][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt PV1 current'
[15:57:03.359]modbus_controller.sensor State Class: ''
[15:57:03.359]modbus_controller.sensor Unit of Measurement: 'A'
[15:57:03.359]modbus_controller.sensor Accuracy Decimals: 1
[15:57:03.376][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'current'
[15:57:03.376][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:flash'
[15:57:03.391][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt PV1 power'
[15:57:03.391]modbus_controller.sensor State Class: ''
[15:57:03.391]modbus_controller.sensor Unit of Measurement: 'W'
[15:57:03.391]modbus_controller.sensor Accuracy Decimals: 0
[15:57:03.410][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[15:57:03.415][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:flash'
[15:57:03.436][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Output power'
[15:57:03.436]modbus_controller.sensor State Class: ''
[15:57:03.436]modbus_controller.sensor Unit of Measurement: 'W'
[15:57:03.436]modbus_controller.sensor Accuracy Decimals: 0
[15:57:03.446][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[15:57:03.456][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:solar-power'
[15:57:03.476][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Energy total'
[15:57:03.476]modbus_controller.sensor State Class: 'total_increasing'
[15:57:03.476]modbus_controller.sensor Unit of Measurement: 'kWh'
[15:57:03.476]modbus_controller.sensor Accuracy Decimals: 1
[15:57:03.488][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'energy'
[15:57:03.497][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:solar-power'
[15:57:03.513][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt PV1 energy total'
[15:57:03.513]modbus_controller.sensor State Class: 'total_increasing'
[15:57:03.513]modbus_controller.sensor Unit of Measurement: 'kWh'
[15:57:03.513]modbus_controller.sensor Accuracy Decimals: 1
[15:57:03.528][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'energy'
[15:57:03.538][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:solar-power'
[15:57:03.550][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Temperature'
[15:57:03.550]modbus_controller.sensor State Class: ''
[15:57:03.550]modbus_controller.sensor Unit of Measurement: '°C'
[15:57:03.550]modbus_controller.sensor Accuracy Decimals: 1
[15:57:03.569][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'temperature'
[15:57:03.579][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:thermometer'
[15:57:03.591][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Battery Discharging Power'
[15:57:03.591]modbus_controller.sensor State Class: ''
[15:57:03.591]modbus_controller.sensor Unit of Measurement: 'W'
[15:57:03.591]modbus_controller.sensor Accuracy Decimals: 0
[15:57:03.614][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[15:57:03.614][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:battery-arrow-down'
[15:57:03.622][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Battery Charging Power'
[15:57:03.622]modbus_controller.sensor State Class: ''
[15:57:03.622]modbus_controller.sensor Unit of Measurement: 'W'
[15:57:03.622]modbus_controller.sensor Accuracy Decimals: 0
[15:57:03.651][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[15:57:03.654][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:battery-arrow-up-outline'
[15:57:03.664][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Battery SoC'
[15:57:03.664]modbus_controller.sensor State Class: ''
[15:57:03.664]modbus_controller.sensor Unit of Measurement: '%'
[15:57:03.664]modbus_controller.sensor Accuracy Decimals: 0
[15:57:03.694][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:home-battery'
[15:57:03.703][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt AC Power to User Total'
[15:57:03.703]modbus_controller.sensor State Class: 'measurement'
[15:57:03.703]modbus_controller.sensor Unit of Measurement: 'W'
[15:57:03.703]modbus_controller.sensor Accuracy Decimals: 0
[15:57:03.725][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[15:57:03.727][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:transmission-tower-export'
[15:57:03.763][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt AC Power to Grid Total'
[15:57:03.763]modbus_controller.sensor State Class: 'measurement'
[15:57:03.763]modbus_controller.sensor Unit of Measurement: 'W'
[15:57:03.763]modbus_controller.sensor Accuracy Decimals: 0
[15:57:03.765][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[15:57:03.773][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:transmission-tower-import'
[15:57:03.784][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt INV Power to Local Load Total'
[15:57:03.784]modbus_controller.sensor State Class: 'measurement'
[15:57:03.784]modbus_controller.sensor Unit of Measurement: 'W'
[15:57:03.784]modbus_controller.sensor Accuracy Decimals: 0
[15:57:03.814][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'power'
[15:57:03.817][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:home-import-outline'
[15:57:03.826][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Battery Temperature'
[15:57:03.826]modbus_controller.sensor State Class: 'measurement'
[15:57:03.826]modbus_controller.sensor Unit of Measurement: '°C'
[15:57:03.826]modbus_controller.sensor Accuracy Decimals: 1
[15:57:03.855][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'temperature'
[15:57:03.865][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:thermometer'
[15:57:03.876][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Battery State'
[15:57:03.876]modbus_controller.sensor State Class: ''
[15:57:03.876]modbus_controller.sensor Unit of Measurement: ''
[15:57:03.876]modbus_controller.sensor Accuracy Decimals: 0
[15:57:03.886][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:home-battery'
[15:57:03.897][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Energy to User Total'
[15:57:03.897]modbus_controller.sensor State Class: 'total_increasing'
[15:57:03.897]modbus_controller.sensor Unit of Measurement: 'kWh'
[15:57:03.897]modbus_controller.sensor Accuracy Decimals: 1
[15:57:03.927][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'energy'
[15:57:03.929][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:transmission-tower-export'
[15:57:03.938][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Energy to Grid Total'
[15:57:03.938]modbus_controller.sensor State Class: 'total_increasing'
[15:57:03.938]modbus_controller.sensor Unit of Measurement: 'kWh'
[15:57:03.938]modbus_controller.sensor Accuracy Decimals: 1
[15:57:03.959][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'energy'
[15:57:03.968][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:transmission-tower-import'
[15:57:03.979][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Battery Discharge Total'
[15:57:03.979]modbus_controller.sensor State Class: 'total_increasing'
[15:57:03.979]modbus_controller.sensor Unit of Measurement: 'kWh'
[15:57:03.979]modbus_controller.sensor Accuracy Decimals: 1
[15:57:04.008][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'energy'
[15:57:04.022][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:battery-arrow-down'
[15:57:04.031][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Battery Charge Total'
[15:57:04.031]modbus_controller.sensor State Class: 'total_increasing'
[15:57:04.031]modbus_controller.sensor Unit of Measurement: 'kWh'
[15:57:04.031]modbus_controller.sensor Accuracy Decimals: 1
[15:57:04.039][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'energy'
[15:57:04.049][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:battery-arrow-up-outline'
[15:57:04.071][C][modbus_controller.sensor:017]: modbus_controller.sensorModbus Controller Sensor 'growatt Local Load Total'
[15:57:04.071]modbus_controller.sensor State Class: 'total_increasing'
[15:57:04.071]modbus_controller.sensor Unit of Measurement: 'kWh'
[15:57:04.071]modbus_controller.sensor Accuracy Decimals: 1
[15:57:04.080][C][modbus_controller.sensor:027]: modbus_controller.sensor Device Class: 'energy'
[15:57:04.090][C][modbus_controller.sensor:031]: modbus_controller.sensor Icon: 'mdi:home-import-outline'
[15:57:04.103][C][modbus_controller.select:009]: modbus_controller.selectModbus Controller Select 'growatt AC Charging'
[15:57:04.111][C][modbus_controller.select:009]: modbus_controller.select Icon: 'mdi:battery-charging-100'
[15:57:04.133][C][modbus_controller.select:009]: modbus_controller.selectModbus Controller Select 'growatt Inverter Priority'
[15:57:04.143][C][modbus_controller.select:009]: modbus_controller.select Icon: 'mdi:arrow-decision-outline'
[15:57:04.151][C][modbus_controller.text_sensor:016]: Modbus Controller Text Sensor 'growatt Fault code'
[15:57:04.153][C][modbus_controller.text_sensor:023]: Icon: 'mdi:eye'
[15:57:04.181][C][captive_portal:118]: Captive Portal:
[15:57:04.188][C][wifi:1132]: WiFi:
[15:57:04.188][C][wifi:1132]: Connected: YES
[15:57:04.189][C][wifi:897]: Local MAC: EC:E3:34:45:EA:78
[15:57:04.190][C][wifi:904]: IP Address: 192.168.1.52
[15:57:04.195][C][wifi:908]: SSID: [redacted]
[15:57:04.195][C][wifi:908]: BSSID: [redacted]
[15:57:04.195][C][wifi:908]: Hostname: 'growatt-spf-5000es'
[15:57:04.195][C][wifi:908]: Signal strength: -26 dB ▂▄▆█
[15:57:04.195][C][wifi:908]: Channel: 11
[15:57:04.195][C][wifi:908]: Subnet: 255.255.255.0
[15:57:04.195][C][wifi:908]: Gateway: 192.168.1.254
[15:57:04.195][C][wifi:908]: DNS1: 192.168.1.254
[15:57:04.195][C][wifi:908]: DNS2: 0.0.0.0
[15:57:04.208][C][web_server:335]: Web Server:
[15:57:04.208][C][web_server:335]: Address: growatt-spf-5000es.local:80
[15:57:04.223][C][esphome.ota:092]: Over-The-Air updates:
[15:57:04.223][C][esphome.ota:092]: Address: growatt-spf-5000es.local:3232
[15:57:04.223][C][esphome.ota:092]: Version: 2
[15:57:04.228][C][esphome.ota:099]: Password configured
[15:57:04.237][C][safe_mode:018]: Safe Mode:
[15:57:04.237][C][safe_mode:018]: Successful after: 60s
[15:57:04.237][C][safe_mode:018]: Invoke after: 10 attempts
[15:57:04.237][C][safe_mode:018]: Duration: 300s
[15:57:04.251][C][web_server.ota:241]: Web Server OTA
[15:57:04.256][C][api:211]: Server:
[15:57:04.256][C][api:211]: Address: growatt-spf-5000es.local:6053
[15:57:04.256][C][api:211]: Listen backlog: 4
[15:57:04.256][C][api:211]: Max connections: 8
[15:57:04.259][C][api:218]: Noise encryption: YES
[15:57:04.273][C][mdns:177]: mDNS:
[15:57:04.273][C][mdns:177]: Hostname: growatt-spf-5000es
[15:57:04.280][C][modbus_controller:448]: ModbusController:
[15:57:04.280][C][modbus_controller:448]: Address: 0x01
[15:57:04.280][C][modbus_controller:448]: Max Command Retries: 4
[15:57:04.280][C][modbus_controller:448]: Offline Skip Updates: 0
[15:57:04.280][C][modbus_controller:448]: Server Courtesy Response:
[15:57:04.280][C][modbus_controller:448]: Enabled: false
[15:57:04.280][C][modbus_controller:448]: Register Last Address: 0xFFFF
[15:57:04.280][C][modbus_controller:448]: Register Value: 0
[15:57:04.336][D][modbus_controller:039]: Modbus command to device=1 register=0x09 no response received - removed from send queue
[15:57:05.669][D][modbus_controller:039]: Modbus command to device=1 register=0x12 no response received - removed from send queue
[15:57:07.007][D][modbus_controller:039]: Modbus command to device=1 register=0x19 no response received - removed from send queue
[15:57:08.343][D][modbus_controller:039]: Modbus command to device=1 register=0x32 no response received - removed from send queue
[15:57:09.683][D][modbus_controller:039]: Modbus command to device=1 register=0x37 no response received - removed from send queue
[15:57:11.021][D][modbus_controller:039]: Modbus command to device=1 register=0x49 no response received - removed from send queue
[15:57:11.090][D][sensor:135]: 'growatt PV Power': Sending state nan W with 0 decimals of accuracy
[15:57:12.358][D][modbus_controller:039]: Modbus command to device=1 register=0x4D no response received - removed from send queue
[15:57:12.438][W][modbus_controller:284]: Duplicate modbus command found: type=0x4 address=184 count=1
[15:57:12.440][W][modbus_controller:284]: Duplicate modbus command found: type=0x4 address=186 count=1
[15:57:12.441][W][modbus_controller:284]: Duplicate modbus command found: type=0x4 address=188 count=2
[15:57:12.443][W][modbus_controller:284]: Duplicate modbus command found: type=0x4 address=1021 count=2
[15:57:12.447][W][modbus_controller:284]: Duplicate modbus command found: type=0x4 address=1029 count=2
[15:57:12.450][W][modbus_controller:284]: Duplicate modbus command found: type=0x4 address=1037 count=2
[15:57:13.702][D][modbus_controller:039]: Modbus command to device=1 register=0x69 no response received - removed from send queue
[15:57:15.037][D][modbus_controller:039]: Modbus command to device=1 register=0xB8 no response received - removed from send queue
[15:57:16.376][D][modbus_controller:039]: Modbus command to device=1 register=0xBA no response received - removed from send queue
[15:57:17.716][D][modbus_controller:039]: Modbus command to device=1 register=0xBC no response received - removed from send queue
[15:57:19.055][D][modbus_controller:039]: Modbus command to device=1 register=0x3FD no response received - removed from send queue
[15:57:20.393][D][modbus_controller:039]: Modbus command to device=1 register=0x405 no response received - removed from send queue
[15:57:21.729][D][modbus_controller:039]: Modbus command to device=1 register=0x40D no response received - removed from send queue
[15:57:23.076][D][modbus_controller:039]: Modbus command to device=1 register=0x411 no response received - removed from send queue
[15:57:24.407][D][modbus_controller:039]: Modbus command to device=1 register=0x416 no response received - removed from send queue
[15:57:25.743][D][modbus_controller:039]: Modbus command to device=1 register=0x41A no response received - removed from send queue
[15:57:26.093][D][sensor:135]: 'growatt PV Power': Sending state nan W with 0 decimals of accuracy
[15:57:27.080][D][modbus_controller:039]: Modbus command to device=1 register=0x41E no response received - removed from send queue
[15:57:27.438][W][modbus_controller:284]: Duplicate modbus command found: type=0x4 address=9 count=2
[15:57:27.440][W][modbus_controller:284]: Duplicate modbus command found: type=0x4 address=73 count=2
[15:57:27.442][W][modbus_controller:284]: Duplicate modbus command found: type=0x4 address=77 count=2
[15:57:28.415][D][modbus_controller:039]: Modbus command to device=1 register=0x422 no response received - removed from send queue
[15:57:29.755][D][modbus_controller:039]: Modbus command to device=1 register=0x426 no response received - removed from send queue
[15:57:31.094][D][modbus_controller:039]: Modbus command to device=1 register=0x09 no response received - removed from send queue
[15:57:32.429][D][modbus_controller:039]: Modbus command to device=1 register=0x49 no response received - removed from send queue
[15:57:33.766][D][modbus_controller:039]: Modbus command to device=1 register=0x4D no response received - removed from send queue
[15:57:35.107][D][modbus_controller:039]: Modbus command to device=1 register=0xB8 no response received - removed from send queue
[15:57:36.444][D][modbus_controller:039]: Modbus command to device=1 register=0xBA no response received - removed from send queue
[15:57:37.786][D][modbus_controller:039]: Modbus command to device=1 register=0xBC no response received - removed from send queue
[15:57:39.123][D][modbus_controller:039]: Modbus command to device=1 register=0x3FD no response received - removed from send queue
[15:57:40.456][D][modbus_controller:039]: Modbus command to device=1 register=0x405 no response received - removed from send queue
[15:57:41.097][D][sensor:135]: 'growatt PV Power': Sending state nan W with 0 decimals of accuracy
[15:57:41.812][D][modbus_controller:039]: Modbus command to device=1 register=0x40D no response received - removed from send queue
[15:57:43.761][D][modbus_controller:039]: Modbus command to device=1 register=0x09 no response received - removed from send queue
[15:57:45.100][D][modbus_controller:039]: Modbus command to device=1 register=0x49 no response received - removed from send queue
[15:57:46.436][D][modbus_controller:039]: Modbus command to device=1 register=0x4D no response received - removed from send queue
[15:57:47.778][D][modbus_controller:039]: Modbus command to device=1 register=0xB8 no response received - removed from send queue
[15:57:49.117][D][modbus_controller:039]: Modbus command to device=1 register=0xBA no response received - removed from send queue
[15:57:50.456][D][modbus_controller:039]: Modbus command to device=1 register=0xBC no response received - removed from send queue
[15:57:51.806][D][modbus_controller:039]: Modbus command to device=1 register=0x3FD no response received - removed from send queue
[15:57:53.139][D][modbus_controller:039]: Modbus command to device=1 register=0x405 no response received - removed from send queue
[15:57:54.477][D][modbus_controller:039]: Modbus command to device=1 register=0x40D no response received - removed from send queue
[15:57:55.759][I][safe_mode:042]: Boot seems successful; resetting boot loop counter
[15:57:55.768][D][esp32.preferences:149]: Writing 1 items: 0 cached, 1 written, 0 failed
[15:57:56.092][D][sensor:135]: 'growatt PV Energy Total': Sending state nan kWh with 1 decimals of accuracy
[15:57:56.104][D][sensor:135]: 'growatt PV Power': Sending state nan W with 0 decimals of accuracy
[15:57:57.887][D][text_sensor:097]: 'growatt Status state': Sending state 'Unknown'
[15:57:58.764][D][modbus_controller:039]: Modbus command to device=1 register=0x09 no response received - removed from send queue
[15:58:00.115][D][modbus_controller:039]: Modbus command to device=1 register=0x49 no response received - removed from send queue
[15:58:01.456][D][modbus_controller:039]: Modbus command to device=1 register=0x4D no response received - removed from send queue
[15:58:02.791][D][modbus_controller:039]: Modbus command to device=1 register=0xB8 no response received - removed from send queue
[15:58:04.133][D][modbus_controller:039]: Modbus command to device=1 register=0xBA no response received - removed from send queue
[15:58:05.471][D][modbus_controller:039]: Modbus command to device=1 register=0xBC no response received - removed from send queue
[15:58:06.802][D][modbus_controller:039]: Modbus command to device=1 register=0x3FD no response received - removed from send queue
[15:58:08.144][D][modbus_controller:039]: Modbus command to device=1 register=0x405 no response received - removed from send queue
[15:58:09.482][D][modbus_controller:039]: Modbus command to device=1 register=0x40D no response received - removed from send queue
[15:58:11.102][D][sensor:135]: 'growatt PV Power': Sending state nan W with 0 decimals of accuracy
[15:58:13.762][D][modbus_controller:039]: Modbus command to device=1 register=0x09 no response received - removed from send queue
[15:58:15.101][D][modbus_controller:039]: Modbus command to device=1 register=0x49 no response received - removed from send queue
[15:58:16.446][D][modbus_controller:039]: Modbus command to device=1 register=0x4D no response received - removed from send queue
[15:58:17.779][D][modbus_controller:039]: Modbus command to device=1 register=0xB8 no response received - removed from send queue
[15:58:19.117][D][modbus_controller:039]: Modbus command to device=1 register=0xBA no response received - removed from send queue
[15:58:20.457][D][modbus_controller:039]: Modbus command to device=1 register=0xBC no response received - removed from send queue
[15:58:21.793][D][modbus_controller:039]: Modbus command to device=1 register=0x3FD no response received - removed from send queue
[15:58:23.132][D][modbus_controller:039]: Modbus command to device=1 register=0x405 no response received - removed from send queue
[15:58:24.472][D][modbus_controller:039]: Modbus command to device=1 register=0x40D no response received - removed from send queue
[15:58:26.102][D][sensor:135]: 'growatt PV Power': Sending state nan W with 0 decimals of accuracy
Karosm
(Karosm)
December 31, 2025, 3:01pm
20
I would expect the range from 0 to <100 is correct.
If I was you I would remove all sensors except one (or few) until you get response. You likely need to try both, contacts 1/2 and 7/8 to A/B and to B/A (4 combinations altogether).
1 Like