Repository navigation
Growatt SPH 6000-TL BL UP Inverter #4290
fuzzysb
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
I would like to thank the developer(s) of this software.
I will be making a donation on the 1st of the month as i feel very strongly to do so, as this software is excellent and i would like to get involved.
However i thought i would share a solution for the Growatt SPH 6000-TL BL UP inverter that i have, but will also work with the original Growatt SPH 3000-6000 inverters as the modbus configuration is the same.
I have an ESP32 device conencted to a RS485 board
the A+ and B+ connect to the following pins on the RJ45
I then use this wirelessly with ESPHome
the config for the ESP is as follows.
https://github.com/fuzzysb/growatt_sph_esphome/blob/main/growatt.yaml
I then configured Predbat with the following config. you will need to amend the car configurations as i have 3 and theyt are configured here.
`
pred_bat:
module: predbat
class: PredBat
#Sets the prefix for all created entities in HA - only change if you want to run more than once instance
prefix: predbat
#XXX: This is a configuration template, delete this line once you edit your configuration
template: false
timezone: Europe/London
currency_symbols:
threads: auto
load_filter_threshold: 30
load_today:
- sensor.growatt_local_load_today
import_today:
- sensor.growatt_energy_to_user_today
export_today:
- sensor.growatt_energy_to_grid_today
pv_today:
- sensor.growatt_pv_energy_today
charge_start_time: input_datetime.battery_first_start_time_1
charge_end_time: input_datetime.battery_first_end_time_1
discharge_start_time: input_datetime.grid_first_start_time_1
discharge_end_time: input_datetime.grid_first_end_time_1
battery_temperature: sensor.growatt_battery_temperature
num_inverters: 1
inverter_type: "MINE"
inverter:
name: "MINE"
has_rest_api: False
has_mqtt_api: False
has_service_api: False
has_charge_enable_time: True #Enables start/end time window control
has_discharge_enable_time: True #Enables discharge time window control
has_target_soc: True #Tells Predbat it can set charge target %
has_reserve_soc: True #Tells Predbat it can set reserve %
charge_time_format: "HH:MM" #Format expected by your input_datetime helpers
soc_max: 24
inverter_limit: 6000 #SPH6000 rated max power (Watts)
inverter_limit_charge: 4000 #Max AC charge power (Watts)
inverter_limit_discharge: 4000 #Max AC discharge power (Watts)
set_inverter_mode:
- False
inverter_mode:
- select.predbat_dummy_inverter_mode
charge_enable:
- select.growatt_battery_first_timeslot_1_on_off
discharge_enable:
- select.growatt_control_growatt_grid_first_timeslot_1_on_off
scheduled_charge_enable:
- select.growatt_battery_first_timeslot_1_on_off
scheduled_discharge_enable:
- select.growatt_control_growatt_grid_first_timeslot_1_on_off
battery_rate_max_charge: 4000 #Max continuous battery charge power (W)
battery_rate_max_discharge: 4000 #Max continuous battery discharge power (W)
charge_start_service:
service: select.select_option
entity_id: "select.growatt_battery_first_timeslot_1_on_off"
option: "On"
charge_stop_service:
service: select.select_option
entity_id: "select.growatt_battery_first_timeslot_1_on_off"
option: "Off"
discharge_start_service:
service: select.select_option
entity_id: "select.growatt_control_growatt_grid_first_timeslot_1_on_off"
option: "On"
discharge_start_service:
service: select.select_option
entity_id: "select.growatt_control_growatt_grid_first_timeslot_1_on_off"
option: "Off"
battery_power:
- sensor.growatt_battery_net_power
charge_rate_percent:
- number.growatt_charge_power_rate
discharge_rate_percent:
- number.growatt_discharge_power_rate
pv_power:
- sensor.growatt_pv_power
load_power:
- sensor.myenergi_home_home_consumption
grid_power:
- sensor.myenergi_home_power_grid
grid_power_invert: true
ac_charge:
- select.growatt_ac_battery_charging
soc_kw:
- sensor.growatt_battery_state_of_charge_kwh
soc_percent:
- sensor.growatt_battery_soc
charge_limit:
- number.growatt_charge_soc
reserve:
- number.growatt_discharge_soc
set_reserve_min: 10
charge_start_time: input_datetime.battery_first_start_time_1
charge_end_time: input_datetime.battery_first_end_time_1
discharge_start_time: input_datetime.grid_first_start_time_1
discharge_end_time: input_datetime.grid_first_end_time_1
battery_temperature: sensor.growatt_battery_temperature
pv_forecast_today: re:(sensor.(solcast_|)(pv_forecast_|)forecast_today)
pv_forecast_tomorrow: re:(sensor.(solcast_|)(pv_forecast_|)forecast_tomorrow)
pv_forecast_d3: re:(sensor.(solcast_|)(pv_forecast_|)forecast_(day_3|d3))
pv_forecast_d4: re:(sensor.(solcast_|)(pv_forecast_|)forecast_(day_4|d4))
octopus_saving_session: 're:(event.octopus_energy([0-9a-z_]+|)saving_session_event(s|))'
octopus_saving_session_octopoints_per_penny: 8
octopus_free_session: 're:(event.octopus_energy([0-9a-z_]+|)octoplus_free_electricity_session_events)'
metric_octopus_import: 're:(sensor.(octopus_energy|)electricity_[0-9a-z]+[0-9a-z]+current_rate)'
metric_octopus_export: 're:(sensor.(octopus_energy|)electricity[0-9a-z]+[0-9a-z]+export_current_rate)'
metric_standing_charge: 're:(sensor.(octopus_energy|)electricity[0-9a-z]+[0-9a-z]+current_standing_charge)'
days_previous:
- 7
forecast_hours: 48
battery_scaling:
- 1.0
import_export_scaling: 1.0
metric_octopus_gas: 're:(sensor.(octopus_energy|)gas[0-9a-z]+_[0-9a-z]+_current_rate)'
`
I did also have to create a custom template for the battery charge discharge to display correctly which i put in my configuration.yaml
template: - sensor: - name: "Growatt Battery Net Power" unique_id: growatt_battery_net_power unit_of_measurement: "W" device_class: power state_class: measurement state: > {{ (states('sensor.growatt_battery_discharging_power') | float(0)) - (states('sensor.growatt_battery_charging_power') | float(0)) }}but other than that it negates the need for me to use solar assistant. and allowed me to switch from my existing automation rules by simply disabling the automations and setting predbat to to control charge and discharge
this works well for me and allows me to simplify the hardware requirements for a wireless network solution to connect to my inverter and prevent my data being sent externally.
I am not 100% sure i have everything predbat configured but it does work as i would expect.
All reactions