Off-Grid.
2 PV входи по 16А.
Вхід для генератора.
Є функція паралельної роботи, сухі контакти, додатковий порт RS485, порт USB та в комплекті є донг Wifi.
Офіційний постачальник -
https://bootuse.com/GrowattSPF6000ESPlus
Код інсталятора ZAKUPUS - EDWJP5.
Growatt SPF 6000 ES Plus
Re: Growatt SPF 6000 ES Plus
Через вільний порт RS485 можна додати до Home Assistant і моніторити його без обмежень по частоті зчитування інформації та без блокування аккаунта на 24 години.
Для підключення потрібен RS485-TTL адаптер та esp32 (я використовую esp32c6 але правильну).
Живлення RS485-TTL адаптера - 5В, підключення до інвертора - лише лінії А та В (без GND).
RS485-TTL - https://s.click.aliexpress.com/e/_c3yN9U9d
esp32c6 - https://s.click.aliexpress.com/e/_c3HYdofD
Увага! В програмі лише частина регістрів витягується з інвертора, якщо потрібно ще якість регістри, то тут вже додавайте їх самостійно.
Для підключення потрібен RS485-TTL адаптер та esp32 (я використовую esp32c6 але правильну).
Живлення RS485-TTL адаптера - 5В, підключення до інвертора - лише лінії А та В (без GND).
RS485-TTL - https://s.click.aliexpress.com/e/_c3yN9U9d
esp32c6 - https://s.click.aliexpress.com/e/_c3HYdofD
Увага! В програмі лише частина регістрів витягується з інвертора, якщо потрібно ще якість регістри, то тут вже додавайте їх самостійно.
Код: Виділити все
substitutions:
device_name: Growatt
device_description: "Esphome for Growatt"
modbus_update_interval: 10s
update_fast: 15s
update_slow: 60s
skip_updates_slow: "6"
tx_pin: GPIO19
rx_pin: GPIO20
esphome:
name: growattspf6000
friendly_name: Growatt
esp32:
board: esp32-c6-devkitm-1
framework:
type: esp-idf
# Enable Home Assistant API
api:
encryption:
key: #insert your data
ota:
- platform: esphome
password: #insert your data
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Rs232Battery Fallback Hotspot"
password: "Kj9hbVNQxKzr"
captive_portal:
# Enable logging
logger:
baud_rate: 0
level: DEBUG
uart:
id: uart_bus
rx_pin: ${rx_pin}
tx_pin: ${tx_pin}
baud_rate: 9600
stop_bits: 1
rx_buffer_size: 512
debug:
direction: both
modbus:
id: modbus1
uart_id: uart_bus
send_wait_time: 200ms
modbus_controller:
- id: modbus_pv
address: 1
modbus_id: modbus1
update_interval: 5s
# Growatt read-only sensors with home assistant config
sensor:
- platform: modbus_controller
address: 0
register_type: "read"
internal: true
accuracy_decimals: 0
id: status
- platform: modbus_controller
modbus_controller_id: modbus_pv
name: "Growatt AC Output Power"
address: 09
register_count: 2
register_type: "read"
unit_of_measurement: W
device_class: power
state_class: measurement
icon: mdi:power-plug
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "Load"
address: 27
register_type: "read"
unit_of_measurement: "%"
value_type: U_WORD
accuracy_decimals: 0
- platform: modbus_controller
modbus_controller_id: modbus_pv
name: "Growatt Inverter Temperature"
address: 25
register_type: "read"
unit_of_measurement: °C
device_class: temperature
state_class: measurement
icon: mdi:thermometer
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_pv
name: "Battery Temperature"
address: 206
register_type: "read"
unit_of_measurement: °C
device_class: temperature
state_class: measurement
icon: mdi:thermometer
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_pv
name: "Growatt Grid Voltage"
address: 20 # Vac1
register_type: "read"
unit_of_measurement: V
device_class: voltage
state_class: measurement
icon: mdi:sine-wave
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_pv
name: "Growatt Grid Frequency"
address: 21 # Fac
register_type: "read"
unit_of_measurement: Hz
device_class: frequency
state_class: measurement
icon: mdi:waveform
value_type: U_WORD
accuracy_decimals: 2
filters:
- multiply: 0.01
- platform: modbus_controller
modbus_controller_id: modbus_pv
name: "Growatt Fault Code"
address: 105
register_type: "read"
value_type: U_WORD
entity_category: diagnostic
- platform: modbus_controller
name: "DC Voltage"
address: 17
register_type: "read"
unit_of_measurement: V
device_class: voltage
icon: mdi:sine-wave
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.01
- platform: modbus_controller
name: "Battery SoC"
skip_updates: $skip_updates_slow
address: 18
register_type: "read"
unit_of_measurement: "%"
icon: mdi:home-battery
value_type: U_WORD
accuracy_decimals: 0
- platform: modbus_controller
name: "Battery Charge Current"
address: 83
register_type: "read"
value_type: U_WORD
unit_of_measurement: A
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "Battery Discharge Current"
address: 84
register_type: "read"
value_type: U_WORD
unit_of_measurement: A
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "Inverter fan speed"
address: 82
register_type: "read"
unit_of_measurement: "%"
device_class: POWER_FACTOR
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1
text_sensor:
- platform: template
name: "Growatt Status"
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"};
}