AutomationDataset/mkaiser/mkaiser_automations.yaml

1453 lines
50 KiB
YAML

- alias: Sungrow_Go_to_Standby_quirk
description: ''
triggers:
- trigger: time_pattern
minutes: /10
conditions:
- condition: state
entity_id: sensor.sungrow_inverter_state
state: Running
for:
hours: 1
minutes: 0
seconds: 0
- condition: state
entity_id: binary_sensor.battery_discharging_delay
state: 'off'
for:
hours: 0
minutes: 10
seconds: 0
- condition: state
entity_id: binary_sensor.pv_generating_delay
state: 'off'
for:
hours: 0
minutes: 10
seconds: 0
- condition: numeric_state
entity_id: sensor.mppt1_voltage
below: 10
- condition: numeric_state
entity_id: sensor.mppt2_voltage
below: 10
- condition: state
entity_id: sensor.ems_mode_selection
state: Self-consumption mode (default)
- condition: state
entity_id: sun.sun
state: below_horizon
- condition: state
entity_id: sensor.backup_mode
state: Disabled
actions:
- action: input_select.select_option
metadata: {}
data:
option: Shutdown
target:
entity_id: input_select.set_sg_inverter_run_mode
- delay:
hours: 0
minutes: 1
seconds: 0
- action: input_select.select_option
metadata: {}
data:
option: Enabled
target:
entity_id: input_select.set_sg_inverter_run_mode
mode: single
- id: automation_sungrow_inverter_state
alias: sungrow inverter state
description: Enables/ stops the inverter
triggers:
- trigger: state
entity_id:
- input_select.set_sg_inverter_run_mode
conditions: []
variables:
sg_start: 207
sg_stop: 206
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 12999
value: "{% if is_state('input_select.set_sg_inverter_run_mode', \"Enabled\"\
) %}\n {{sg_start}}\n{% else %}\n {{sg_stop}}\n{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.system_state
mode: single
- id: automation_sungrow_inverter_state_input_selector_update
alias: sungrow inverter enable/ stop input selector update
description: Updates enable/ stops input selector
triggers:
- trigger: state
entity_id:
- sensor.sungrow_inverter_state
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.sungrow_inverter_state'', ''unavailable'')
}}'
actions:
- action: input_select.select_option
target:
entity_id: input_select.set_sg_inverter_run_mode
data:
option: "{% if is_state('sensor.sungrow_inverter_state', \"Shutdown\") %}\n\
\ Shutdown\n{% else %}\n Enabled\n{% endif %}\n"
mode: single
- id: automation_sungrow_inverter_update_max_soc
alias: sungrow inverter update max SoC
description: Updates Sungrow max Soc holding register
triggers:
- trigger: state
entity_id:
- input_number.set_sg_max_soc
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 13057
value: '{{ states(''input_number.set_sg_max_soc'') | int *10}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.max_soc
mode: single
- id: automation_sungrow_inverter_update_max_soc_input_slider_update
alias: sungrow inverter max SoC input slider update
description: Updates Sungrow max Soc input slider
triggers:
- trigger: state
entity_id:
- sensor.max_soc
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.max_soc'', ''unavailable'') }}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_max_soc
data:
value: '{{ states(''sensor.max_soc'') }}'
mode: single
- id: automation_sungrow_inverter_update_min_soc
alias: sungrow inverter update min SoC
description: Updates Sungrow min Soc holding register
triggers:
- trigger: state
entity_id:
- input_number.set_sg_min_soc
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 13058
value: '{{ states(''input_number.set_sg_min_soc'') | int *10}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.min_soc
mode: single
- id: automation_sungrow_inverter_update_min_soc_input_slider_update
alias: sungrow inverter min SoC input slider update
description: Updates Sungrow min Soc input slider
triggers:
- trigger: state
entity_id:
- sensor.min_soc
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.min_soc'', ''unavailable'') }}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_min_soc
data:
value: '{{ states(''sensor.min_soc'') }}'
mode: single
- id: automation_sungrow_inverter_update_reserved_soc_for_backup
alias: sungrow inverter update reserved soc for backup
description: Updates reserved SoC for backup register
triggers:
- trigger: state
entity_id:
- input_number.set_sg_reserved_soc_for_backup
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 13099
value: '{{ states(''input_number.set_sg_reserved_soc_for_backup'') | int}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.reserved_soc_for_backup
mode: single
- id: automation_sungrow_inverter_update_reserved_backup_soc_input_slider_update
alias: sungrow inverter reserved backup SoC input slider update
description: Updates Sungrow reserved backup Soc input slider
triggers:
- trigger: state
entity_id:
- sensor.reserved_soc_for_backup
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.reserved_soc_for_backup'', ''unavailable'')
}}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_reserved_soc_for_backup
data:
value: '{{ states(''sensor.reserved_soc_for_backup'') }}'
mode: single
- id: automation_sungrow_inverter_update_battery_forced_charge_discharge_cmd
alias: sungrow inverter update battery forced charge discharge cmd
description: Updates Sungrow holding register for battery forced charge discharge
command
triggers:
- trigger: state
entity_id:
- input_select.set_sg_battery_forced_charge_discharge_cmd
conditions: []
variables:
ems_forced_charge: 170
ems_forced_discharge: 187
ems_stop_default: 204
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 13050
value: "{% if is_state('input_select.set_sg_battery_forced_charge_discharge_cmd',\
\ \"Stop (default)\") %} \n {{ems_stop_default}}\n{% elif is_state('input_select.set_sg_battery_forced_charge_discharge_cmd',\
\ \"Forced charge\") %} \n {{ems_forced_charge}}\n{% elif is_state('input_select.set_sg_battery_forced_charge_discharge_cmd',\
\ \"Forced discharge\") %} \n {{ems_forced_discharge}}\n{% else %}\n {{ems_stop_default}}\n\
{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.battery_forced_charge_discharge_cmd_raw
mode: single
- id: automation_sungrow_inverter_update_battery_forced_charge_discharge_cmd_input_select_update
alias: sungrow inverter update battery forced charge discharge cmd input select
update
description: Updates Sungrow battery forced charge discharge cmd input select
triggers:
- trigger: state
entity_id:
- sensor.battery_forced_charge_discharge_cmd
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.battery_forced_charge_discharge_cmd'',
''unavailable'') }}'
actions:
- action: input_select.select_option
target:
entity_id: input_select.set_sg_battery_forced_charge_discharge_cmd
data:
option: '{{ states(''sensor.battery_forced_charge_discharge_cmd'') }}'
mode: single
- id: automation_sungrow_inverter_update_ems_mode
alias: sungrow inverter update EMS mode
description: Updates EMS mode
triggers:
- trigger: state
entity_id:
- input_select.set_sg_ems_mode
conditions: []
variables:
ems_mode_self_consume: 0
ems_mode_forced: 2
ems_mode_external: 3
ems_mode_vpp: 4
ems_mode_microgrid: 8
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 13049
value: "{% if is_state('input_select.set_sg_ems_mode', \"Self-consumption mode\
\ (default)\") %} \n {{ems_mode_self_consume}}\n{% elif is_state('input_select.set_sg_ems_mode',\
\ \"Forced mode\") %} \n {{ems_mode_forced}}\n{% elif is_state('input_select.set_sg_ems_mode',\
\ \"External EMS\") %} \n {{ems_mode_external}}\n{% elif is_state('input_select.set_sg_ems_mode',\
\ \"VPP\") %} \n {{ems_mode_vpp}}\n{% elif is_state('input_select.set_sg_ems_mode',\
\ \"MicroGrid\") %} \n {{ems_mode_microgrid}}\n{% else %} \n {{ems_mode_self_consume}}\n\
{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.ems_mode_selection_raw
mode: single
- id: automation_sungrow_inverter_update_load_adjustment_mode
alias: sungrow inverter update Load adjustment mode
description: Updates Load adjustment mode
triggers:
- trigger: state
entity_id:
- input_select.set_sg_load_adjustment_mode
conditions: []
variables:
load_adjustment_mode_timing: 0
load_adjustment_on_off: 1
load_adjustment_power_optimized: 2
load_adjustment_disabled: 3
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 13001
value: "{% if is_state('input_select.set_sg_load_adjustment_mode', \"Timing\"\
) %} \n {{load_adjustment_mode_timing}}\n{% elif is_state('input_select.set_sg_load_adjustment_mode',\
\ \"ON/OFF\") %} \n {{load_adjustment_on_off}}\n{% elif is_state('input_select.set_sg_load_adjustment_mode',\
\ \"Power optimization\") %} \n {{load_adjustment_power_optimized}}\n{% elif\
\ is_state('input_select.set_sg_load_adjustment_mode', \"Disabled\") %} \n\
\ {{load_adjustment_disabled}}\n{% else %} \n {{load_adjustment_disabled}}\n\
{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.load_adjustment_mode_selection_raw
mode: single
- id: automation_sungrow_inverter_update_load_adjustment_mode_on_off
alias: sungrow inverter update Load adjustment mode ON/OFF
description: Updates Load adjustment mode ON/OFF
triggers:
- trigger: state
entity_id:
- input_select.set_sg_load_adjustment_mode_on_off
conditions: []
variables:
load_adjustment_mode_on_off_on: 170
load_adjustment_mode_on_off_off: 85
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 13010
value: "{% if is_state('input_select.set_sg_load_adjustment_mode_on_off', \"\
ON\") %} \n {{load_adjustment_mode_on_off_on}}\n{% elif is_state('input_select.set_sg_load_adjustment_mode_on_off',\
\ \"OFF\") %} \n {{load_adjustment_mode_on_off_off}}\n{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.load_adjustment_mode_on_off_selection_raw
mode: single
- id: automation_sungrow_inverter_export_power_limit_mode_update
alias: sungrow inverter export power limit mode update
description: Updates Enable/Disable for export power limit mode
triggers:
- trigger: state
entity_id:
- sensor.export_power_limit_mode_raw
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.export_power_limit_mode_raw'', ''unavailable'')
}}'
actions:
- action: input_select.select_option
target:
entity_id: input_select.set_sg_export_power_limit_mode
data:
option: "{% if ((states('sensor.export_power_limit_mode_raw') |int) == 0x00AA)\
\ %} \n Enabled\n{% elif ((states('sensor.export_power_limit_mode_raw') |int)\
\ == 0x0055) %} \n Disabled\n{% endif %}\n"
mode: single
- id: automation_sungrow_inverter_backup_mode
alias: sungrow inverter backup mode
description: Set backup mode
triggers:
- trigger: state
entity_id:
- input_select.set_sg_backup_mode
conditions: []
variables:
enable: 170
disable: 85
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 13074
value: "{% if is_state('input_select.set_sg_backup_mode', \"Enabled\") %} \n\
\ {{enable}}\n{% elif is_state('input_select.set_sg_backup_mode', \"Disabled\"\
) %}\n {{disable}}\n{% else %}\n {{disable}}\n{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.backup_mode_raw
mode: single
- id: automation_sungrow_inverter_backup_mode_update
alias: sungrow inverter backup mode mode update
description: Updates Enable/Disable for backup mode
triggers:
- trigger: state
entity_id:
- sensor.backup_mode_raw
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.backup_mode_raw'', ''unavailable'')
}}'
actions:
- action: input_select.select_option
target:
entity_id: input_select.set_sg_backup_mode
data:
option: "{% if ((states('sensor.backup_mode_raw') |int) == 0xAA) %} \n Enabled\n\
{% elif ((states('sensor.backup_mode_raw') |int) == 0x55) %} \n Disabled\n\
{% endif %}\n"
mode: single
- id: automation_sungrow_inverter_export_power_limit_mode
alias: sungrow inverter export power limit mode
description: Set export power limit mode
triggers:
- trigger: state
entity_id:
- input_select.set_sg_export_power_limit_mode
conditions: []
variables:
export_limit_enable: 170
export_limit_disable: 85
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 13086
value: "{% if is_state('input_select.set_sg_export_power_limit_mode', \"Enabled\"\
) %} \n {{export_limit_enable}}\n{% elif is_state('input_select.set_sg_export_power_limit_mode',\
\ \"Disabled\") %}\n {{export_limit_disable}}\n{% else %}\n {{export_limit_disable}}\n\
{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.export_power_limit_mode_raw
mode: single
- id: automation_sungrow_inverter_export_power_limit_update
alias: sungrow inverter export power limit update
description: Updates export power limit slider
triggers:
- trigger: state
entity_id:
- sensor.export_power_limit
conditions:
- condition: template
value_template: '{{ states(''sensor.export_power_limit'') | is_number }}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_export_power_limit
data:
value: '{{ states(''sensor.export_power_limit'') }}'
mode: single
- id: automation_sungrow_inverter_set_export_power_limit
alias: sungrow inverter export power limit
description: Sets export power limit
triggers:
- trigger: state
entity_id:
- input_number.set_sg_export_power_limit
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 13073
value: '{{ states(''input_number.set_sg_export_power_limit'') }}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.export_power_limit
mode: single
- id: automation_sungrow_inverter_update_load_adjustment_mode_input_select_update
alias: sungrow inverter update Load adjustment mode input select update
description: Updates Load adjustment mode input select
triggers:
- trigger: state
entity_id:
- sensor.load_adjustment_mode_selection
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.load_adjustment_mode_selection'', ''unavailable'')
}}'
actions:
- action: input_select.select_option
target:
entity_id: input_select.set_sg_load_adjustment_mode
data:
option: '{{ states(''sensor.load_adjustment_mode_selection'') }}'
mode: single
- id: automation_sungrow_inverter_update_ems_mode_input_select_update
alias: sungrow inverter update EMS mode input select update
description: Updates EMS mode input select
triggers:
- trigger: state
entity_id:
- sensor.ems_mode_selection
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.ems_mode_selection'', ''unavailable'')
}}'
actions:
- action: input_select.select_option
target:
entity_id: input_select.set_sg_ems_mode
data:
option: '{{ states(''sensor.ems_mode_selection'') }}'
mode: single
- id: automation_sungrow_inverter_update_battery_forced_charge_discharge_power
alias: sungrow inverter update battery forced charge discharge power
description: Sets battery forced charge discharge power
triggers:
- trigger: state
entity_id:
- input_number.set_sg_forced_charge_discharge_power
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 13051
value: '{{ states(''input_number.set_sg_forced_charge_discharge_power'') | int}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.battery_forced_charge_discharge_power
mode: single
- id: automation_sungrow_inverter_update_battery_forced_charge_discharge_power_input_slider_update
alias: sungrow inverter update battery forced charge discharge power input slider
update
description: Updates battery forced charge discharge power input slider
triggers:
- trigger: state
entity_id:
- sensor.battery_forced_charge_discharge_power
conditions:
- condition: template
value_template: '{{ states(''sensor.battery_forced_charge_discharge_power'') |
is_number }}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_forced_charge_discharge_power
data:
value: '{{ states(''sensor.battery_forced_charge_discharge_power'') }}'
mode: single
- id: automation_sungrow_inverter_update_battery_max_charge_power
alias: sungrow inverter update battery max charge power
description: Sets battery max charge power
triggers:
- trigger: state
entity_id:
- input_number.set_sg_battery_max_charge_power
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 33046
value: '{{ states(''input_number.set_sg_battery_max_charge_power'') |float /10
|int}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.battery_max_charge_power
mode: single
- id: automation_sungrow_inverter_update_battery_max_charge_power_input_slider_update
alias: sungrow inverter update battery max charge power input slider update
description: Updates battery max charge power input slider
triggers:
- trigger: state
entity_id:
- sensor.battery_max_charge_power
conditions:
- condition: template
value_template: '{{ states(''sensor.battery_max_charge_power'') | is_number }}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_battery_max_charge_power
data:
value: '{{ states(''sensor.battery_max_charge_power'') }}'
mode: single
- id: automation_sungrow_inverter_update_battery_max_discharge_power
alias: sungrow inverter update battery max discharge power
description: Sets battery max discharge power
triggers:
- trigger: state
entity_id:
- input_number.set_sg_battery_max_discharge_power
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 33047
value: '{{ states(''input_number.set_sg_battery_max_discharge_power'') |float
/10 |int}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.battery_max_discharge_power
mode: single
- id: automation_sungrow_inverter_update_battery_max_discharge_power_input_slider_update
alias: sungrow inverter update battery max discharge power input slider update
description: Updates battery max discharge power input slider
triggers:
- trigger: state
entity_id:
- sensor.battery_max_discharge_power
conditions:
- condition: template
value_template: '{{ states(''sensor.battery_max_discharge_power'') | is_number
}}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_battery_max_discharge_power
data:
value: '{{ states(''sensor.battery_max_discharge_power'') }}'
mode: single
- id: automation_sungrow_inverter_update_battery_charging_start_power
alias: sungrow inverter update battery charging start power
description: Sets battery charging start power
triggers:
- trigger: state
entity_id:
- input_number.set_sg_battery_charging_start_power
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 33148
value: '{{ states(''input_number.set_sg_battery_charging_start_power'') |float
/10 |int}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.battery_charging_start_power
mode: single
- id: automation_sungrow_inverter_update_battery_charging_start_power_input_slider_update
alias: sungrow inverter update battery charging start power input slider update
description: Updates battery charging start power input slider
triggers:
- trigger: state
entity_id:
- sensor.battery_charging_start_power
conditions:
- condition: template
value_template: '{{ states(''sensor.battery_charging_start_power'') | is_number
}}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_battery_charging_start_power
data:
value: '{{ states(''sensor.battery_charging_start_power'') }}'
mode: single
- id: automation_sungrow_inverter_update_battery_discharging_start_power
alias: sungrow inverter update battery discharging start power
description: Sets battery discharging start power
triggers:
- trigger: state
entity_id:
- input_number.set_sg_battery_discharging_start_power
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 33149
value: '{{ states(''input_number.set_sg_battery_discharging_start_power'') |float
/10 | int}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.battery_discharging_start_power
mode: single
- id: automation_sungrow_inverter_update_battery_discharging_start_power_input_slider_update
alias: sungrow inverter update battery discharging start power input slider update
description: Updates battery discharging start power input slider
triggers:
- trigger: state
entity_id:
- sensor.battery_discharging_start_power
conditions:
- condition: template
value_template: '{{ states(''sensor.set_sg_battery_discharging_start_power'')
| is_number }}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_battery_discharging_start_power
data:
value: '{{ states(''sensor.battery_discharging_start_power'') }}'
mode: single
- id: automation_sungrow_inverter_global_mpp_scan_manual_update
alias: sungrow inverter global mpp scan manual update
description: Updates Enable/Disable for global mpp scan manual
triggers:
- trigger: state
entity_id:
- sensor.global_mpp_scan_manual_raw
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.global_mpp_scan_manual_raw'', ''unavailable'')
}}'
actions:
- action: input_select.select_option
target:
entity_id: input_select.set_sg_global_mpp_scan_manual
data:
option: "{% if ((states('sensor.global_mpp_scan_manual_raw') | int(default=0))\
\ == 0x00AA) %} \n Enabled\n{% elif ((states('sensor.global_mpp_scan_manual_raw')\
\ | int(default=0)) == 0x0055) %} \n Disabled\n{% endif %}\n"
mode: single
- id: automation_sungrow_global_mpp_scan_manual
alias: sungrow inverter global mpp scan manual
description: Set global mpp scan manual
triggers:
- trigger: state
entity_id:
- input_select.set_sg_global_mpp_scan_manual
conditions: []
variables:
export_limit_enable: 170
export_limit_disable: 85
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx
slave: secret sungrow_modbus_slave
address: 30229
value: "{% if is_state('input_select.set_sg_global_mpp_scan_manual', \"Enabled\"\
) %} \n {{export_limit_enable}}\n{% elif is_state('input_select.set_sg_global_mpp_scan_manual',\
\ \"Disabled\") %}\n {{export_limit_disable}}\n{% else %}\n {{export_limit_disable}}\n\
{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.global_mpp_scan_manual_raw
mode: single
- id: automation_sungrow_inverter_2_state
alias: sungrow inverter 2 state
description: Enables/ stops the inverter
triggers:
- trigger: state
entity_id:
- input_select.set_sg_2_inverter_run_mode
conditions: []
variables:
sg_start: 207
sg_stop: 206
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 12999
value: "{% if is_state('input_select.set_sg_2_inverter_run_mode', \"Enabled\"\
) %}\n {{sg_start}}\n{% else %}\n {{sg_stop}}\n{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.system_state_2
mode: single
- id: automation_sungrow_inverter_2_state_input_selector_update
alias: sungrow inverter 2 enable/ stop input selector update
description: Updates enable/ stops input selector
triggers:
- trigger: state
entity_id:
- sensor.sungrow_inverter_state_2
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.sungrow_inverter_state_2'', ''unavailable'')
}}'
actions:
- action: input_select.select_option
target:
entity_id: input_select.set_sg_2_inverter_run_mode
data:
option: "{% if is_state('sensor.sungrow_inverter_state_2', \"Shutdown\") %}\n\
\ Shutdown\n{% else %}\n Enabled\n{% endif %}\n"
mode: single
- id: automation_sungrow_inverter_2_update_max_soc
alias: sungrow inverter 2 update max SoC
description: Updates Sungrow max Soc holding register
triggers:
- trigger: state
entity_id:
- input_number.set_sg_2_max_soc
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 13057
value: '{{ states(''input_number.set_sg_2_max_soc'') | int *10}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.max_soc_2
mode: single
- id: automation_sungrow_inverter_2_update_max_soc_input_slider_update
alias: sungrow inverter 2 max SoC input slider update
description: Updates Sungrow max Soc input slider
triggers:
- trigger: state
entity_id:
- sensor.max_soc_2
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.max_soc_2'', ''unavailable'') }}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_2_max_soc
data:
value: '{{ states(''sensor.max_soc_2'') }}'
mode: single
- id: automation_sungrow_inverter_2_update_min_soc
alias: sungrow inverter 2 update min SoC
description: Updates Sungrow min Soc holding register
triggers:
- trigger: state
entity_id:
- input_number.set_sg_2_min_soc
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 13058
value: '{{ states(''input_number.set_sg_2_min_soc'') | int *10}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.min_soc_2
mode: single
- id: automation_sungrow_inverter_2_update_min_soc_input_slider_update
alias: sungrow inverter 2 min SoC input slider update
description: Updates Sungrow min Soc input slider
triggers:
- trigger: state
entity_id:
- sensor.min_soc_2
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.min_soc_2'', ''unavailable'') }}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_2_min_soc
data:
value: '{{ states(''sensor.min_soc_2'') }}'
mode: single
- id: automation_sungrow_inverter_2_update_reserved_soc_for_backup
alias: sungrow inverter 2 update reserved soc for backup
description: Updates reserved SoC for backup register
triggers:
- trigger: state
entity_id:
- input_number.set_sg_2_reserved_soc_for_backup
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 13099
value: '{{ states(''input_number.set_sg_2_reserved_soc_for_backup'') | int}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.reserved_soc_for_backup_2
mode: single
- id: automation_sungrow_inverter_2_update_reserved_backup_soc_input_slider_update
alias: sungrow inverter 2 reserved backup SoC input slider update
description: Updates Sungrow reserved backup Soc input slider
triggers:
- trigger: state
entity_id:
- sensor.reserved_soc_for_backup_2
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.reserved_soc_for_backup_2'', ''unavailable'')
}}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_2_reserved_soc_for_backup
data:
value: '{{ states(''sensor.reserved_soc_for_backup_2'') }}'
mode: single
- id: automation_sungrow_inverter_2_update_battery_forced_charge_discharge_cmd
alias: sungrow inverter 2 update battery forced charge discharge cmd
description: Updates Sungrow holding register for battery forced charge discharge
command
triggers:
- trigger: state
entity_id:
- input_select.set_sg_2_battery_forced_charge_discharge_cmd
conditions: []
variables:
ems_forced_charge: 170
ems_forced_discharge: 187
ems_stop_default: 204
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 13050
value: "{% if is_state('input_select.set_sg_2_battery_forced_charge_discharge_cmd',\
\ \"Stop (default)\") %} \n {{ems_stop_default}}\n{% elif is_state('input_select.set_sg_2_battery_forced_charge_discharge_cmd',\
\ \"Forced charge\") %} \n {{ems_forced_charge}}\n{% elif is_state('input_select.set_sg_2_battery_forced_charge_discharge_cmd',\
\ \"Forced discharge\") %} \n {{ems_forced_discharge}}\n{% else %}\n {{ems_stop_default}}\n\
{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.battery_forced_charge_discharge_cmd_raw_2
mode: single
- id: automation_sungrow_inverter_2_update_battery_forced_charge_discharge_cmd_input_select_update
alias: sungrow inverter 2 update battery forced charge discharge cmd input select
update
description: Updates Sungrow battery forced charge discharge cmd input select
triggers:
- trigger: state
entity_id:
- sensor.battery_forced_charge_discharge_cmd_2
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.battery_forced_charge_discharge_cmd_2'',
''unavailable'') }}'
actions:
- action: input_select.select_option
target:
entity_id: input_select.set_sg_2_battery_forced_charge_discharge_cmd
data:
option: '{{ states(''sensor.battery_forced_charge_discharge_cmd_2'') }}'
mode: single
- id: automation_sungrow_inverter_2_update_ems_mode
alias: sungrow inverter 2 update EMS mode
description: Updates EMS mode
triggers:
- trigger: state
entity_id:
- input_select.set_sg_2_ems_mode
conditions: []
variables:
ems_mode_self_consume: 0
ems_mode_forced: 2
ems_mode_external: 3
ems_mode_vpp: 4
ems_mode_microgrid: 8
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 13049
value: "{% if is_state('input_select.set_sg_2_ems_mode', \"Self-consumption\
\ mode (default)\") %} \n {{ems_mode_self_consume}}\n{% elif is_state('input_select.set_sg_2_ems_mode',\
\ \"Forced mode\") %} \n {{ems_mode_forced}}\n{% elif is_state('input_select.set_sg_2_ems_mode',\
\ \"External EMS\") %} \n {{ems_mode_external}}\n{% elif is_state('input_select.set_sg_2_ems_mode',\
\ \"VPP\") %} \n {{ems_mode_vpp}}\n{% elif is_state('input_select.set_sg_2_ems_mode',\
\ \"MicroGrid\") %} \n {{ems_mode_microgrid}}\n{% else %} \n {{ems_mode_self_consume}}\n\
{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.ems_mode_selection_raw_2
mode: single
- id: automation_sungrow_inverter_2_update_load_adjustment_mode
alias: sungrow inverter 2 update Load adjustment mode
description: Updates Load adjustment mode
triggers:
- trigger: state
entity_id:
- input_select.set_sg_2_load_adjustment_mode
conditions: []
variables:
load_adjustment_mode_timing: 0
load_adjustment_on_off: 1
load_adjustment_power_optimized: 2
load_adjustment_disabled: 3
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 13001
value: "{% if is_state('input_select.set_sg_2_load_adjustment_mode', \"Timing\"\
) %} \n {{load_adjustment_mode_timing}}\n{% elif is_state('input_select.set_sg_2_load_adjustment_mode',\
\ \"ON/OFF\") %} \n {{load_adjustment_on_off}}\n{% elif is_state('input_select.set_sg_2_load_adjustment_mode',\
\ \"Power optimization\") %} \n {{load_adjustment_power_optimized}}\n{% elif\
\ is_state('input_select.set_sg_2_load_adjustment_mode', \"Disabled\") %}\
\ \n {{load_adjustment_disabled}}\n{% else %} \n {{load_adjustment_disabled}}\n\
{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.load_adjustment_mode_selection_raw
mode: single
- id: automation_sungrow_inverter_2_update_load_adjustment_mode_on_off
alias: sungrow inverter 2 update Load adjustment mode ON/OFF
description: Updates Load adjustment mode ON/OFF
triggers:
- trigger: state
entity_id:
- input_select.set_sg_2_load_adjustment_mode_on_off
conditions: []
variables:
load_adjustment_mode_on_off_on: 170
load_adjustment_mode_on_off_off: 85
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 13010
value: "{% if is_state('input_select.set_sg_2_load_adjustment_mode_on_off',\
\ \"ON\") %} \n {{load_adjustment_mode_on_off_on}}\n{% elif is_state('input_select.set_sg_2_load_adjustment_mode_on_off',\
\ \"OFF\") %} \n {{load_adjustment_mode_on_off_off}}\n{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.load_adjustment_mode_on_off_selection_raw
mode: single
- id: automation_sungrow_inverter_2_export_power_limit_mode_update
alias: sungrow inverter 2 export power limit mode update
description: Updates Enable/Disable for export power limit mode
triggers:
- trigger: state
entity_id:
- sensor.export_power_limit_mode_raw_2
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.export_power_limit_mode_raw_2'', ''unavailable'')
}}'
actions:
- action: input_select.select_option
target:
entity_id: input_select.set_sg_2_export_power_limit_mode
data:
option: "{% if ((states('sensor.export_power_limit_mode_raw_2') |int) == 0x00AA)\
\ %} \n Enabled\n{% elif ((states('sensor.export_power_limit_mode_raw_2')\
\ |int) == 0x0055) %} \n Disabled\n{% endif %}\n"
mode: single
- id: automation_sungrow_inverter_2_backup_mode
alias: sungrow inverter 2 backup mode
description: Set backup mode
triggers:
- trigger: state
entity_id:
- input_select.set_sg_2_backup_mode
conditions: []
variables:
enable: 170
disable: 85
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 13074
value: "{% if is_state('input_select.set_sg_2_backup_mode', \"Enabled\") %}\
\ \n {{enable}}\n{% elif is_state('input_select.set_sg_2_backup_mode', \"\
Disabled\") %}\n {{disable}}\n{% else %}\n {{disable}}\n{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.backup_mode_raw_2
mode: single
- id: automation_sungrow_inverter_2_backup_mode_update
alias: sungrow inverter 2 backup mode mode update
description: Updates Enable/Disable for backup mode
triggers:
- trigger: state
entity_id:
- sensor.backup_mode_raw_2
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.backup_mode_raw_2'', ''unavailable'')
}}'
actions:
- action: input_select.select_option
target:
entity_id: input_select.set_sg_2_backup_mode
data:
option: "{% if ((states('sensor.backup_mode_raw_2') |int) == 0xAA) %} \n Enabled\n\
{% elif ((states('sensor.backup_mode_raw_2') |int) == 0x55) %} \n Disabled\n\
{% endif %}\n"
mode: single
- id: automation_sungrow_inverter_2_export_power_limit_mode
alias: sungrow inverter 2 export power limit mode
description: Set export power limit mode
triggers:
- trigger: state
entity_id:
- input_select.set_sg_2_export_power_limit_mode
conditions: []
variables:
export_limit_enable: 170
export_limit_disable: 85
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 13086
value: "{% if is_state('input_select.set_sg_2_export_power_limit_mode', \"Enabled\"\
) %} \n {{export_limit_enable}}\n{% elif is_state('input_select.set_sg_2_export_power_limit_mode',\
\ \"Disabled\") %}\n {{export_limit_disable}}\n{% else %}\n {{export_limit_disable}}\n\
{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.export_power_limit_mode_raw_2
mode: single
- id: automation_sungrow_inverter_2_export_power_limit_update
alias: sungrow inverter 2 export power limit update
description: Updates export power limit slider
triggers:
- trigger: state
entity_id:
- sensor.export_power_limit_2
conditions:
- condition: template
value_template: '{{ states(''sensor.export_power_limit_2'') | is_number }}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_2_export_power_limit
data:
value: '{{ states(''sensor.export_power_limit_2'') }}'
mode: single
- id: automation_sungrow_inverter_2_set_export_power_limit
alias: sungrow inverter 2 export power limit
description: Sets export power limit
triggers:
- trigger: state
entity_id:
- input_number.set_sg_2_export_power_limit
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 13073
value: '{{ states(''input_number.set_sg_2_export_power_limit'') }}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.export_power_limit_2
mode: single
- id: automation_sungrow_inverter_2_update_load_adjustment_mode_input_select_update
alias: sungrow inverter 2 update Load adjustment mode input select update
description: Updates Load adjustment mode input select
triggers:
- trigger: state
entity_id:
- sensor.load_adjustment_mode_selection
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.load_adjustment_mode_selection'', ''unavailable'')
}}'
actions:
- action: input_select.select_option
target:
entity_id: input_select.set_sg_2_load_adjustment_mode
data:
option: '{{ states(''sensor.load_adjustment_mode_selection'') }}'
mode: single
- id: automation_sungrow_inverter_2_update_ems_mode_input_select_update
alias: sungrow inverter 2 update EMS mode input select update
description: Updates EMS mode input select
triggers:
- trigger: state
entity_id:
- sensor.ems_mode_selection_2
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.ems_mode_selection_2'', ''unavailable'')
}}'
actions:
- action: input_select.select_option
target:
entity_id: input_select.set_sg_2_ems_mode
data:
option: '{{ states(''sensor.ems_mode_selection_2'') }}'
mode: single
- id: automation_sungrow_inverter_2_update_battery_forced_charge_discharge_power
alias: sungrow inverter 2 update battery forced charge discharge power
description: Sets battery forced charge discharge power
triggers:
- trigger: state
entity_id:
- input_number.set_sg_2_forced_charge_discharge_power
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 13051
value: '{{ states(''input_number.set_sg_2_forced_charge_discharge_power'') |
int}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.battery_forced_charge_discharge_power_2
mode: single
- id: automation_sungrow_inverter_2_update_battery_forced_charge_discharge_power_input_slider_update
alias: sungrow inverter 2 update battery forced charge discharge power input slider
update
description: Updates battery forced charge discharge power input slider
triggers:
- trigger: state
entity_id:
- sensor.battery_forced_charge_discharge_power_2
conditions:
- condition: template
value_template: '{{ states(''sensor.battery_forced_charge_discharge_power_2'')
| is_number }}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_2_forced_charge_discharge_power
data:
value: '{{ states(''sensor.battery_forced_charge_discharge_power_2'') }}'
mode: single
- id: automation_sungrow_inverter_2_update_battery_max_charge_power
alias: sungrow inverter 2 update battery max charge power
description: Sets battery max charge power
triggers:
- trigger: state
entity_id:
- input_number.set_sg_2_battery_max_charge_power
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 33046
value: '{{ states(''input_number.set_sg_2_battery_max_charge_power'') |float
/10 |int}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.battery_max_charge_power_2
mode: single
- id: automation_sungrow_inverter_2_update_battery_max_charge_power_input_slider_update
alias: sungrow inverter 2 update battery max charge power input slider update
description: Updates battery max charge power input slider
triggers:
- trigger: state
entity_id:
- sensor.battery_max_charge_power_2
conditions:
- condition: template
value_template: '{{ states(''sensor.battery_max_charge_power_2'') | is_number
}}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_2_battery_max_charge_power
data:
value: '{{ states(''sensor.battery_max_charge_power_2'') }}'
mode: single
- id: automation_sungrow_inverter_2_update_battery_max_discharge_power
alias: sungrow inverter 2 update battery max discharge power
description: Sets battery max discharge power
triggers:
- trigger: state
entity_id:
- input_number.set_sg_2_battery_max_discharge_power
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 33047
value: '{{ states(''input_number.set_sg_2_battery_max_discharge_power'') |float
/10 |int}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.battery_max_discharge_power_2
mode: single
- id: automation_sungrow_inverter_2_update_battery_max_discharge_power_input_slider_update
alias: sungrow inverter 2 update battery max discharge power input slider update
description: Updates battery max discharge power input slider
triggers:
- trigger: state
entity_id:
- sensor.battery_max_discharge_power_2
conditions:
- condition: template
value_template: '{{ states(''sensor.battery_max_discharge_power_2'') | is_number
}}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_2_battery_max_discharge_power
data:
value: '{{ states(''sensor.battery_max_discharge_power_2'') }}'
mode: single
- id: automation_sungrow_inverter_2_update_battery_charging_start_power
alias: sungrow inverter 2 update battery charging start power
description: Sets battery charging start power
triggers:
- trigger: state
entity_id:
- input_number.set_sg_2_battery_charging_start_power
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 33148
value: '{{ states(''input_number.set_sg_2_battery_charging_start_power'') |float
/10 |int}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.battery_charging_start_power
mode: single
- id: automation_sungrow_inverter_2_update_battery_charging_start_power_input_slider_update
alias: sungrow inverter 2 update battery charging start power input slider update
description: Updates battery charging start power input slider
triggers:
- trigger: state
entity_id:
- sensor.battery_charging_start_power
conditions:
- condition: template
value_template: '{{ states(''sensor.battery_charging_start_power'') | is_number
}}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_2_battery_charging_start_power
data:
value: '{{ states(''sensor.battery_charging_start_power'') }}'
mode: single
- id: automation_sungrow_inverter_2_update_battery_discharging_start_power
alias: sungrow inverter 2 update battery discharging start power
description: Sets battery discharging start power
triggers:
- trigger: state
entity_id:
- input_number.set_sg_2_battery_discharging_start_power
conditions: []
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 33149
value: '{{ states(''input_number.set_sg_2_battery_discharging_start_power'')
|float /10 | int}}'
- action: homeassistant.update_entity
data:
entity_id:
- sensor.battery_discharging_start_power_2
mode: single
- id: automation_sungrow_inverter_2_update_battery_discharging_start_power_input_slider_update
alias: sungrow inverter 2 update battery discharging start power input slider update
description: Updates battery discharging start power input slider
triggers:
- trigger: state
entity_id:
- sensor.battery_discharging_start_power_2
conditions:
- condition: template
value_template: '{{ states(''sensor.set_sg_2_battery_discharging_start_power'')
| is_number }}'
actions:
- action: input_number.set_value
target:
entity_id: input_number.set_sg_2_battery_discharging_start_power
data:
value: '{{ states(''sensor.battery_discharging_start_power_2'') }}'
mode: single
- id: automation_sungrow_inverter_2_global_mpp_scan_manual_update
alias: sungrow inverter 2 global mpp scan manual update
description: Updates Enable/Disable for global mpp scan manual
triggers:
- trigger: state
entity_id:
- sensor.global_mpp_scan_manual_raw_2
conditions:
- condition: template
value_template: '{{ not is_state(''sensor.global_mpp_scan_manual_raw_2'', ''unavailable'')
}}'
actions:
- action: input_select.select_option
target:
entity_id: input_select.set_sg_2_global_mpp_scan_manual
data:
option: "{% if ((states('sensor.global_mpp_scan_manual_raw_2') | int(default=0))\
\ == 0x00AA) %} \n Enabled\n{% elif ((states('sensor.global_mpp_scan_manual_raw_2')\
\ | int(default=0)) == 0x0055) %} \n Disabled\n{% endif %}\n"
mode: single
- id: automation_sungrow_global_2_mpp_scan_manual
alias: sungrow inverter 2 global mpp scan manual
description: Set global mpp scan manual
triggers:
- trigger: state
entity_id:
- input_select.set_sg_2_global_mpp_scan_manual
conditions: []
variables:
export_limit_enable: 170
export_limit_disable: 85
actions:
- action: modbus.write_register
data_template:
hub: SungrowSHx 2
slave: secret sungrow_modbus_slave_inv2
address: 30229
value: "{% if is_state('input_select.set_sg_2_global_mpp_scan_manual', \"Enabled\"\
) %} \n {{export_limit_enable}}\n{% elif is_state('input_select.set_sg_2_global_mpp_scan_manual',\
\ \"Disabled\") %}\n {{export_limit_disable}}\n{% else %}\n {{export_limit_disable}}\n\
{% endif %}\n"
- action: homeassistant.update_entity
data:
entity_id:
- sensor.global_mpp_scan_manual_raw_2
mode: single