873 lines
86 KiB
JSON
873 lines
86 KiB
JSON
[
|
|
{
|
|
"id": "Sungrow_Go_to_Standby_quirk",
|
|
"result": {
|
|
"structured": "TRIGGER: Every 10 minutes (time pattern). CONDITIONS: (sungrow inverter state [sensor.sungrow_inverter_state] is Running AND remains for 1 hour) AND (battery discharging delay [binary_sensor.battery_discharging_delay] is off AND remains for 10 minutes) AND (pv generating delay [binary_sensor.pv_generating_delay] is off AND remains for 10 minutes) AND (mppt1 voltage [sensor.mppt1_voltage] is below 10) AND (mppt2 voltage [sensor.mppt2_voltage] is below 10) AND (ems mode selection [sensor.ems_mode_selection] is Self-consumption mode (default)) AND (sun [sun.sun] is below_horizon) AND (backup mode [sensor.backup_mode] is Disabled). ACTIONS: Set set sg inverter run mode [input_select.set_sg_inverter_run_mode] to Shutdown, wait 1 minute, then set set sg inverter run mode [input_select.set_sg_inverter_run_mode] to Enabled.",
|
|
"natural_language": {
|
|
"trigger": "The automation runs every 10 minutes.",
|
|
"conditions": "The sungrow inverter state [sensor.sungrow_inverter_state] must have been in the 'Running' state for at least one hour. The battery discharging delay [binary_sensor.battery_discharging_delay] must have been off for at least 10 minutes. The pv generating delay [binary_sensor.pv_generating_delay] must have been off for at least 10 minutes. The mppt1 voltage [sensor.mppt1_voltage] must be below 10 volts. The mppt2 voltage [sensor.mppt2_voltage] must be below 10 volts. The ems mode selection [sensor.ems_mode_selection] must be set to 'Self-consumption mode (default)'. The sun [sun.sun] must be below the horizon. The backup mode [sensor.backup_mode] must be 'Disabled'.",
|
|
"action": "First, set the set sg inverter run mode [input_select.set_sg_inverter_run_mode] to 'Shutdown'. Then, after a one-minute delay, set the set sg inverter run mode [input_select.set_sg_inverter_run_mode] to 'Enabled'."
|
|
},
|
|
"human_like": "This automation periodically checks if the solar inverter has been running idle for an hour with no generation or battery discharge, and if so, it briefly shuts it down and restarts it to correct a quirk.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_state",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg inverter run mode [input_select.set_sg_inverter_run_mode] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register at address 12999 on hub SungrowSHx, slave secret sungrow_modbus_slave. The value is 207 if set sg inverter run mode [input_select.set_sg_inverter_run_mode] is \"Enabled\", otherwise 206. Then, update the entity system state [sensor.system_state].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the selection for the Sungrow inverter run mode [input_select.set_sg_inverter_run_mode] changes.",
|
|
"conditions": "There are no conditions; the automation runs every time the trigger occurs.",
|
|
"action": "Sends a command to the Sungrow inverter via Modbus to either start or stop it, based on the selected mode. If the mode is set to \"Enabled\", it writes the start code (207) to the inverter's control register. If the mode is set to anything else, it writes the stop code (206). After sending the command, it refreshes the system state sensor [sensor.system_state] to reflect the new status."
|
|
},
|
|
"human_like": "Controls the Sungrow inverter's operation by sending start or stop commands when its run mode is changed.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_state_input_selector_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When sungrow inverter state [sensor.sungrow_inverter_state] changes state. CONDITIONS: sungrow inverter state [sensor.sungrow_inverter_state] is not 'unavailable'. ACTIONS: Set set sg inverter run mode [input_select.set_sg_inverter_run_mode] to 'Shutdown' if sungrow inverter state [sensor.sungrow_inverter_state] is 'Shutdown', otherwise set it to 'Enabled'.",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sungrow inverter state [sensor.sungrow_inverter_state] changes.",
|
|
"conditions": "The sungrow inverter state [sensor.sungrow_inverter_state] must not be 'unavailable'.",
|
|
"action": "Updates the set sg inverter run mode [input_select.set_sg_inverter_run_mode] selector. If the inverter state is 'Shutdown', the selector is set to 'Shutdown'. For any other available state, it is set to 'Enabled'."
|
|
},
|
|
"human_like": "Synchronizes the inverter run mode selector with the actual inverter state, setting it to 'Enabled' or 'Shutdown' accordingly.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_max_soc",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg max soc [input_number.set_sg_max_soc] changes state. CONDITIONS: None. ACTIONS: Write to Modbus register 13057 on hub SungrowSHx, slave secret sungrow_modbus_slave, with a value equal to the integer state of set sg max soc [input_number.set_sg_max_soc] multiplied by 10, AND update the entity max soc [sensor.max_soc].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number set sg max soc [input_number.set_sg_max_soc] changes.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "The automation writes a new value to a specific Modbus holding register on the Sungrow inverter, calculated by taking the current value of set sg max soc [input_number.set_sg_max_soc] and multiplying it by 10. It then refreshes the data for the sensor max soc [sensor.max_soc]."
|
|
},
|
|
"human_like": "Updates the maximum state of charge setting on the Sungrow inverter whenever the user changes the corresponding input number.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_max_soc_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When max soc [sensor.max_soc] changes state. CONDITIONS: max soc [sensor.max_soc] is not unavailable. ACTIONS: Set the value of set sg max soc [input_number.set_sg_max_soc] to the current state of max soc [sensor.max_soc].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor max soc [sensor.max_soc] reports a new state.",
|
|
"conditions": "The sensor max soc [sensor.max_soc] must not be in an 'unavailable' state.",
|
|
"action": "Updates the input slider set sg max soc [input_number.set_sg_max_soc] to match the current value reported by the max soc [sensor.max_soc] sensor."
|
|
},
|
|
"human_like": "Keeps the Sungrow inverter's maximum state of charge input slider synchronized with the latest value from the sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_min_soc",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg min soc [input_number.set_sg_min_soc] changes state. CONDITIONS: None. ACTIONS: Write to Modbus register 13058 on hub SungrowSHx, slave secret sungrow_modbus_slave with the value of set sg min soc [input_number.set_sg_min_soc] multiplied by 10 (converted to integer) AND Update the entity min soc [sensor.min_soc].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number set sg min soc [input_number.set_sg_min_soc] changes.",
|
|
"conditions": "There are no conditions; the action runs immediately after the trigger.",
|
|
"action": "Writes the new minimum state of charge value, multiplied by 10, to a specific register on the Sungrow inverter via Modbus, and then refreshes the min soc [sensor.min_soc] sensor to reflect the update."
|
|
},
|
|
"human_like": "Updates the Sungrow inverter's minimum state of charge setting whenever the user changes the target value in Home Assistant.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_min_soc_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When min soc [sensor.min_soc] changes state. CONDITIONS: min soc [sensor.min_soc] is not in the 'unavailable' state. ACTIONS: Set the value of set sg min soc [input_number.set_sg_min_soc] to the current state of min soc [sensor.min_soc].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor min soc [sensor.min_soc] reports a new state.",
|
|
"conditions": "The automation only proceeds if the min soc [sensor.min_soc] sensor is available and not reporting as 'unavailable'.",
|
|
"action": "Updates the set sg min soc [input_number.set_sg_min_soc] input slider to match the current value reported by the min soc [sensor.min_soc] sensor."
|
|
},
|
|
"human_like": "Keeps the Sungrow inverter's minimum state-of-charge slider in sync with the value from the sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_reserved_soc_for_backup",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg reserved soc for backup [input_number.set_sg_reserved_soc_for_backup] changes state. CONDITIONS: None. ACTIONS: Write the integer value of set sg reserved soc for backup [input_number.set_sg_reserved_soc_for_backup] to Modbus register 13099 on hub SungrowSHx, slave secret sungrow_modbus_slave. Then, update the entity reserved soc for backup [sensor.reserved_soc_for_backup].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number 'set sg reserved soc for backup' [input_number.set_sg_reserved_soc_for_backup] changes.",
|
|
"conditions": "There are no conditions; the automation runs every time the trigger occurs.",
|
|
"action": "Sends the current integer value from the 'set sg reserved soc for backup' input to a specific register (13099) on the Sungrow inverter via Modbus. It then refreshes the 'reserved soc for backup' [sensor.reserved_soc_for_backup] sensor to reflect the new value."
|
|
},
|
|
"human_like": "Updates the inverter's reserved battery level for backup power whenever the user changes the target setting.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_reserved_backup_soc_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When reserved soc for backup [sensor.reserved_soc_for_backup] changes state. CONDITIONS: reserved soc for backup [sensor.reserved_soc_for_backup] is not unavailable. ACTIONS: Set the value of set sg reserved soc for backup [input_number.set_sg_reserved_soc_for_backup] to the current state of reserved soc for backup [sensor.reserved_soc_for_backup].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the reserved soc for backup [sensor.reserved_soc_for_backup] sensor updates its value.",
|
|
"conditions": "The automation only runs if the reserved soc for backup [sensor.reserved_soc_for_backup] sensor is reporting a value and is not in an 'unavailable' state.",
|
|
"action": "It copies the current value from the reserved soc for backup [sensor.reserved_soc_for_backup] sensor to the set sg reserved soc for backup [input_number.set_sg_reserved_soc_for_backup] input slider."
|
|
},
|
|
"human_like": "Keeps the Sungrow inverter's backup battery reserve slider in sync with the current sensor value.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_battery_forced_charge_discharge_cmd",
|
|
"result": {
|
|
"structured": "TRIGGER: When the state of set sg battery forced charge discharge cmd [input_select.set_sg_battery_forced_charge_discharge_cmd] changes. CONDITIONS: None. ACTIONS: Write a value to Modbus register 13050 on hub SungrowSHx, slave secret sungrow_modbus_slave. The value is 170 if set sg battery forced charge discharge cmd [input_select.set_sg_battery_forced_charge_discharge_cmd] is \"Forced charge\", 187 if it is \"Forced discharge\", or 204 (default) otherwise (including \"Stop (default)\"). Then, update the sensor battery forced charge discharge cmd raw [sensor.battery_forced_charge_discharge_cmd_raw].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the selection in the dropdown set sg battery forced charge discharge cmd [input_select.set_sg_battery_forced_charge_discharge_cmd] changes.",
|
|
"conditions": "There are no conditions; the automation runs every time the trigger occurs.",
|
|
"action": "Sends a command to the Sungrow inverter via Modbus. The specific numeric value written to register 13050 depends on the selected option: 170 for 'Forced charge', 187 for 'Forced discharge', or 204 for 'Stop (default)' (or any other state). After writing the register, it refreshes the sensor battery forced charge discharge cmd raw [sensor.battery_forced_charge_discharge_cmd_raw] to reflect the new value."
|
|
},
|
|
"human_like": "Updates the Sungrow inverter's battery forced charge or discharge command based on a user selection and refreshes a related sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_battery_forced_charge_discharge_cmd_input_select_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When battery forced charge discharge cmd [sensor.battery_forced_charge_discharge_cmd] changes state. CONDITIONS: battery forced charge discharge cmd [sensor.battery_forced_charge_discharge_cmd] is not unavailable. ACTIONS: Set the option of set sg battery forced charge discharge cmd [input_select.set_sg_battery_forced_charge_discharge_cmd] to the current state of battery forced charge discharge cmd [sensor.battery_forced_charge_discharge_cmd].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of the battery forced charge discharge cmd [sensor.battery_forced_charge_discharge_cmd] sensor changes.",
|
|
"conditions": "The battery forced charge discharge cmd [sensor.battery_forced_charge_discharge_cmd] sensor must not be in an 'unavailable' state.",
|
|
"action": "Updates the input select 'set sg battery forced charge discharge cmd' [input_select.set_sg_battery_forced_charge_discharge_cmd] to match the current value reported by the battery forced charge discharge cmd [sensor.battery_forced_charge_discharge_cmd] sensor."
|
|
},
|
|
"human_like": "Keeps the battery forced charge/discharge command selector in sync with the sensor value.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_ems_mode",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg ems mode [input_select.set_sg_ems_mode] changes state. CONDITIONS: None. ACTIONS: Write a value to Modbus register 13049 on hub SungrowSHx, slave secret sungrow_modbus_slave. The value is determined by the state of set sg ems mode [input_select.set_sg_ems_mode]: 0 for \"Self-consumption mode (default)\", 2 for \"Forced mode\", 3 for \"External EMS\", 4 for \"VPP\", 8 for \"MicroGrid\", otherwise 0. Then, update the sensor entity ems mode selection raw [sensor.ems_mode_selection_raw].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the selection in the set sg ems mode [input_select.set_sg_ems_mode] dropdown changes.",
|
|
"conditions": "There are no conditions that must be met for the automation to run.",
|
|
"action": "Sends a command to the Sungrow inverter via Modbus to update its EMS mode register. The specific numeric value sent corresponds to the selected mode: 0 for Self-consumption mode, 2 for Forced mode, 3 for External EMS, 4 for VPP, or 8 for MicroGrid. If the selected mode is not recognized, it defaults to 0. After writing the value, it refreshes the data for the ems mode selection raw [sensor.ems_mode_selection_raw] sensor."
|
|
},
|
|
"human_like": "Updates the Sungrow inverter's EMS operating mode whenever a new mode is selected from a dropdown menu.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_load_adjustment_mode",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg load adjustment mode [input_select.set_sg_load_adjustment_mode] changes state. CONDITIONS: None. ACTIONS: Write a value to Modbus register 13001 on hub SungrowSHx, slave secret sungrow_modbus_slave. The value is determined by the current state of set sg load adjustment mode [input_select.set_sg_load_adjustment_mode]: 0 for \"Timing\", 1 for \"ON/OFF\", 2 for \"Power optimization\", 3 for \"Disabled\" (or 3 for any other state). Then, update the entity load adjustment mode selection raw [sensor.load_adjustment_mode_selection_raw].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input select entity set sg load adjustment mode [input_select.set_sg_load_adjustment_mode] changes.",
|
|
"conditions": "There are no conditions that must be met for the automation to run.",
|
|
"action": "The automation writes a numeric value to a specific Modbus register on the Sungrow inverter, corresponding to the selected load adjustment mode. It then refreshes the sensor load adjustment mode selection raw [sensor.load_adjustment_mode_selection_raw] to reflect the change."
|
|
},
|
|
"human_like": "Updates the Sungrow inverter's load adjustment mode based on a user selection and refreshes a related sensor.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_load_adjustment_mode_on_off",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg load adjustment mode on off [input_select.set_sg_load_adjustment_mode_on_off] changes state. CONDITIONS: None. ACTIONS: Write a value to Modbus register 13010 on hub SungrowSHx, slave secret sungrow_modbus_slave. The value is 170 if set sg load adjustment mode on off [input_select.set_sg_load_adjustment_mode_on_off] is ON, or 85 if it is OFF. Then, update the sensor load adjustment mode on off selection raw [sensor.load_adjustment_mode_on_off_selection_raw].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the user changes the selection for set sg load adjustment mode on off [input_select.set_sg_load_adjustment_mode_on_off].",
|
|
"conditions": "There are no conditions that must be met for the actions to run.",
|
|
"action": "Sends a command to the Sungrow inverter via Modbus, writing a specific numeric value (170 for ON, 85 for OFF) to a control register to set the load adjustment mode. It then refreshes the sensor load adjustment mode on off selection raw [sensor.load_adjustment_mode_on_off_selection_raw] to reflect the new state."
|
|
},
|
|
"human_like": "Updates the Sungrow inverter's load adjustment mode based on a user selection, sending the corresponding command and refreshing a status sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_export_power_limit_mode_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When export power limit mode raw [sensor.export_power_limit_mode_raw] changes state. CONDITIONS: export power limit mode raw [sensor.export_power_limit_mode_raw] is not 'unavailable'. ACTIONS: Set set sg export power limit mode [input_select.set_sg_export_power_limit_mode] to 'Enabled' if the state value equals 0x00AA (170 decimal), or to 'Disabled' if the state value equals 0x0055 (85 decimal).",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor export power limit mode raw [sensor.export_power_limit_mode_raw] changes its state.",
|
|
"conditions": "The automation only runs if the sensor export power limit mode raw [sensor.export_power_limit_mode_raw] is not in an 'unavailable' state.",
|
|
"action": "It updates the dropdown selection for set sg export power limit mode [input_select.set_sg_export_power_limit_mode] to either 'Enabled' or 'Disabled'. The selection is based on the raw sensor value: if the value is 0x00AA, it sets it to 'Enabled'; if the value is 0x0055, it sets it to 'Disabled'."
|
|
},
|
|
"human_like": "Automatically updates the inverter's export power limit mode setting based on the raw sensor value, translating it into a user-friendly 'Enabled' or 'Disabled' status.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_backup_mode",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg backup mode [input_select.set_sg_backup_mode] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register at address 13074 on hub SungrowSHx. The value is 170 if set sg backup mode [input_select.set_sg_backup_mode] is \"Enabled\", otherwise 85. Then, update the sensor backup mode raw [sensor.backup_mode_raw].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of the set sg backup mode [input_select.set_sg_backup_mode] input selector changes.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Sends a command to the Sungrow inverter via Modbus to set a specific register value based on the selected backup mode. If the mode is set to \"Enabled\", it writes the value 170. If it is set to \"Disabled\" or any other state, it writes the value 85. After writing the value, it refreshes the backup mode raw [sensor.backup_mode_raw] sensor to reflect the change."
|
|
},
|
|
"human_like": "Controls the Sungrow inverter's backup mode by sending a Modbus command when the user changes the mode setting.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_backup_mode_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When backup mode raw [sensor.backup_mode_raw] changes state. CONDITIONS: backup mode raw [sensor.backup_mode_raw] is not in the 'unavailable' state. ACTIONS: Set the option of set sg backup mode [input_select.set_sg_backup_mode] to 'Enabled' if the integer value of backup mode raw [sensor.backup_mode_raw] equals 0xAA (170), or to 'Disabled' if it equals 0x55 (85).",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of the sensor backup mode raw [sensor.backup_mode_raw] changes.",
|
|
"conditions": "The automation only runs if the backup mode raw [sensor.backup_mode_raw] sensor is not reporting as 'unavailable'.",
|
|
"action": "It updates the input select set sg backup mode [input_select.set_sg_backup_mode] to show 'Enabled' if the raw sensor value is 0xAA, or 'Disabled' if the value is 0x55."
|
|
},
|
|
"human_like": "Updates the displayed backup mode status based on the raw sensor value, showing 'Enabled' or 'Disabled'.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_export_power_limit_mode",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg export power limit mode [input_select.set_sg_export_power_limit_mode] changes state. CONDITIONS: None. ACTIONS: Write to Modbus register at address 13086 on hub SungrowSHx, slave secret sungrow_modbus_slave. The value written is 170 if set sg export power limit mode [input_select.set_sg_export_power_limit_mode] is \"Enabled\", otherwise write 85 (if \"Disabled\" or any other state). Then update the entity export power limit mode raw [sensor.export_power_limit_mode_raw].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the selection for set sg export power limit mode [input_select.set_sg_export_power_limit_mode] changes.",
|
|
"conditions": "There are no conditions; the automation runs every time the trigger occurs.",
|
|
"action": "Sends a command to the Sungrow inverter via Modbus to set the export power limit mode. If the selected mode is \"Enabled\", it writes the value 170 to a specific register. If the selected mode is \"Disabled\" or any other value, it writes the value 85. Afterwards, it refreshes the sensor export power limit mode raw [sensor.export_power_limit_mode_raw] to reflect the new state."
|
|
},
|
|
"human_like": "Updates the Sungrow inverter's export power limit mode based on a user selection, sending the corresponding value via Modbus.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_export_power_limit_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When export power limit [sensor.export_power_limit] changes state. CONDITIONS: The state of export power limit [sensor.export_power_limit] is a number. ACTIONS: Set the value of set sg export power limit [input_number.set_sg_export_power_limit] to the current state value of export power limit [sensor.export_power_limit].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the export power limit [sensor.export_power_limit] sensor updates its value.",
|
|
"conditions": "The automation only proceeds if the value reported by the export power limit [sensor.export_power_limit] sensor is a valid number.",
|
|
"action": "Updates the set sg export power limit [input_number.set_sg_export_power_limit] slider to match the current value from the export power limit [sensor.export_power_limit] sensor."
|
|
},
|
|
"human_like": "Keeps the inverter's export power limit slider synchronized with the latest value from the power limit sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_set_export_power_limit",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg export power limit [input_number.set_sg_export_power_limit] changes state. CONDITIONS: None. ACTIONS: Write the current value of set sg export power limit [input_number.set_sg_export_power_limit] to Modbus register address 13073 on hub SungrowSHx, slave secret sungrow_modbus_slave AND Update the state of export power limit [sensor.export_power_limit].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number set sg export power limit [input_number.set_sg_export_power_limit] changes.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Sends the new value from set sg export power limit [input_number.set_sg_export_power_limit] to the Sungrow inverter via Modbus to set the export power limit, and then refreshes the state of the export power limit [sensor.export_power_limit] sensor to reflect the change."
|
|
},
|
|
"human_like": "Updates the inverter's export power limit whenever the user changes the corresponding setting in Home Assistant.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_load_adjustment_mode_input_select_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When load adjustment mode selection [sensor.load_adjustment_mode_selection] changes state. CONDITIONS: load adjustment mode selection [sensor.load_adjustment_mode_selection] is not in the 'unavailable' state. ACTIONS: Set the option of set sg load adjustment mode [input_select.set_sg_load_adjustment_mode] to the current state of load adjustment mode selection [sensor.load_adjustment_mode_selection].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the load adjustment mode selection [sensor.load_adjustment_mode_selection] sensor reports a new state.",
|
|
"conditions": "The automation only proceeds if the load adjustment mode selection [sensor.load_adjustment_mode_selection] sensor is not reporting an 'unavailable' status.",
|
|
"action": "Updates the set sg load adjustment mode [input_select.set_sg_load_adjustment_mode] dropdown to match the current value reported by the load adjustment mode selection [sensor.load_adjustment_mode_selection] sensor."
|
|
},
|
|
"human_like": "Synchronizes a dropdown menu for inverter settings with the current operating mode reported by the system.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_ems_mode_input_select_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When ems mode selection [sensor.ems_mode_selection] changes state. CONDITIONS: ems mode selection [sensor.ems_mode_selection] is not in the 'unavailable' state. ACTIONS: Set the option of set sg ems mode [input_select.set_sg_ems_mode] to the current state of ems mode selection [sensor.ems_mode_selection].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the ems mode selection [sensor.ems_mode_selection] sensor changes its value.",
|
|
"conditions": "The automation only runs if the ems mode selection [sensor.ems_mode_selection] sensor is not reporting as 'unavailable'.",
|
|
"action": "Updates the set sg ems mode [input_select.set_sg_ems_mode] dropdown to match the current value reported by the ems mode selection [sensor.ems_mode_selection] sensor."
|
|
},
|
|
"human_like": "Keeps the EMS mode selection dropdown in sync with the latest value from the inverter sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_battery_forced_charge_discharge_power",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg forced charge discharge power [input_number.set_sg_forced_charge_discharge_power] changes state. CONDITIONS: None. ACTIONS: Write the integer value of set sg forced charge discharge power [input_number.set_sg_forced_charge_discharge_power] to Modbus register 13051 on hub SungrowSHx, slave secret sungrow_modbus_slave AND Update the sensor state for battery forced charge discharge power [sensor.battery_forced_charge_discharge_power].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number 'set sg forced charge discharge power' [input_number.set_sg_forced_charge_discharge_power] is changed.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Writes the new numerical value to a specific register on the Sungrow inverter via Modbus to control the battery's forced charge or discharge power, and then refreshes the corresponding sensor to reflect the change."
|
|
},
|
|
"human_like": "Updates the battery's forced charge or discharge power on the Sungrow inverter whenever the user changes the target value.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_battery_forced_charge_discharge_power_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When battery forced charge discharge power [sensor.battery_forced_charge_discharge_power] changes state. CONDITIONS: The state of battery forced charge discharge power [sensor.battery_forced_charge_discharge_power] is a number. ACTIONS: Set the value of set sg forced charge discharge power [input_number.set_sg_forced_charge_discharge_power] to the current numeric state of battery forced charge discharge power [sensor.battery_forced_charge_discharge_power].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor for battery forced charge discharge power [sensor.battery_forced_charge_discharge_power] updates its state.",
|
|
"conditions": "The condition is that the value reported by the battery forced charge discharge power [sensor.battery_forced_charge_discharge_power] sensor must be a valid number.",
|
|
"action": "Updates the input slider for set sg forced charge discharge power [input_number.set_sg_forced_charge_discharge_power] to match the numeric value from the sensor."
|
|
},
|
|
"human_like": "Keeps the battery forced charge/discharge power slider in sync with the latest value from the inverter sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_battery_max_charge_power",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg battery max charge power [input_number.set_sg_battery_max_charge_power] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register (hub: SungrowSHx, slave: secret sungrow_modbus_slave, address: 33046) with a value equal to the state of set sg battery max charge power [input_number.set_sg_battery_max_charge_power] divided by 10 and converted to an integer, then update the state of battery max charge power [sensor.battery_max_charge_power].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number 'set sg battery max charge power' [input_number.set_sg_battery_max_charge_power] is changed.",
|
|
"conditions": "There are no conditions that must be met for the automation to run.",
|
|
"action": "It writes a calculated value to a specific register on the Sungrow inverter via Modbus. The value written is the current setting from the input number divided by 10 and rounded to an integer. Afterwards, it refreshes the 'battery max charge power' [sensor.battery_max_charge_power] sensor to reflect the new value."
|
|
},
|
|
"human_like": "Updates the inverter's battery maximum charge power setting whenever the user changes the corresponding input number, and refreshes the sensor display.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_battery_max_charge_power_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When battery max charge power [sensor.battery_max_charge_power] changes state. CONDITIONS: The state of battery max charge power [sensor.battery_max_charge_power] is a number. ACTIONS: Set set sg battery max charge power [input_number.set_sg_battery_max_charge_power] to the numeric state value of battery max charge power [sensor.battery_max_charge_power].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the battery max charge power [sensor.battery_max_charge_power] sensor updates its value.",
|
|
"conditions": "The value reported by the battery max charge power [sensor.battery_max_charge_power] sensor must be a valid number.",
|
|
"action": "Update the set sg battery max charge power [input_number.set_sg_battery_max_charge_power] input slider to match the numeric value from the battery max charge power [sensor.battery_max_charge_power] sensor."
|
|
},
|
|
"human_like": "Keeps the battery maximum charge power input slider in sync with the latest value from the inverter sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_battery_max_discharge_power",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg battery max discharge power [input_number.set_sg_battery_max_discharge_power] changes state. CONDITIONS: None. ACTIONS: Write to Modbus register 33047 on hub SungrowSHx, slave secret sungrow_modbus_slave, with a value equal to the state of set sg battery max discharge power [input_number.set_sg_battery_max_discharge_power] divided by 10 and converted to an integer. Then, update the entity battery max discharge power [sensor.battery_max_discharge_power].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number set sg battery max discharge power [input_number.set_sg_battery_max_discharge_power] changes.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Sends the new power setting to the Sungrow inverter via Modbus, calculating the register value by taking the input number's value, dividing it by 10, and converting it to a whole number. It then refreshes the sensor battery max discharge power [sensor.battery_max_discharge_power] to reflect the update."
|
|
},
|
|
"human_like": "Updates the inverter's maximum battery discharge power setting whenever the user changes the corresponding input slider.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_battery_max_discharge_power_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When battery max discharge power [sensor.battery_max_discharge_power] changes state. CONDITIONS: The state of battery max discharge power [sensor.battery_max_discharge_power] is a number. ACTIONS: Set the value of set sg battery max discharge power [input_number.set_sg_battery_max_discharge_power] to the current state value of battery max discharge power [sensor.battery_max_discharge_power].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor battery max discharge power [sensor.battery_max_discharge_power] updates to a new value.",
|
|
"conditions": "The automation only runs if the new value reported by the sensor battery max discharge power [sensor.battery_max_discharge_power] is a valid number.",
|
|
"action": "Updates the input slider set sg battery max discharge power [input_number.set_sg_battery_max_discharge_power] to match the numeric value from the sensor."
|
|
},
|
|
"human_like": "Keeps the battery maximum discharge power slider in sync with the latest value from the inverter sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_battery_charging_start_power",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg battery charging start power [input_number.set_sg_battery_charging_start_power] changes state. CONDITIONS: None. ACTIONS: Write a value to the Sungrow inverter Modbus register (hub: SungrowSHx, slave: secret sungrow_modbus_slave, address: 33148). The value is calculated as the current state of set sg battery charging start power [input_number.set_sg_battery_charging_start_power] divided by 10 and converted to an integer. Then, update the sensor entity battery charging start power [sensor.battery_charging_start_power] to refresh its state.",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number 'set sg battery charging start power' [input_number.set_sg_battery_charging_start_power] changes.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "First, it sends a command to the Sungrow inverter via Modbus to write a new value to a specific register. This value is calculated by taking the current setting from the input number, dividing it by 10, and converting it to a whole number. After the write is performed, it refreshes the 'battery charging start power' [sensor.battery_charging_start_power] sensor to reflect the new value."
|
|
},
|
|
"human_like": "Updates the battery charging start power setting on the Sungrow inverter whenever the user changes the corresponding input number.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_battery_charging_start_power_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When battery charging start power [sensor.battery_charging_start_power] changes state. CONDITIONS: The state of battery charging start power [sensor.battery_charging_start_power] is a number. ACTIONS: Set the value of set sg battery charging start power [input_number.set_sg_battery_charging_start_power] to the current numeric state of battery charging start power [sensor.battery_charging_start_power].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor for battery charging start power [sensor.battery_charging_start_power] updates its reading.",
|
|
"conditions": "The automation only proceeds if the value reported by the battery charging start power [sensor.battery_charging_start_power] sensor is a valid number.",
|
|
"action": "It updates the corresponding input slider, set sg battery charging start power [input_number.set_sg_battery_charging_start_power], to match the new numeric value from the sensor."
|
|
},
|
|
"human_like": "Keeps the battery charging start power slider in sync with the latest value from the solar inverter sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_battery_discharging_start_power",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg battery discharging start power [input_number.set_sg_battery_discharging_start_power] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register (hub: SungrowSHx, slave: secret sungrow_modbus_slave, address: 33149) where the value is the state of set sg battery discharging start power [input_number.set_sg_battery_discharging_start_power] divided by 10 and converted to an integer, AND update the entity battery discharging start power [sensor.battery_discharging_start_power].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number 'set sg battery discharging start power' [input_number.set_sg_battery_discharging_start_power] is changed.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "The automation writes the new value to a specific register on the Sungrow inverter via Modbus. The value sent is the user's input divided by 10 and rounded down to an integer. It then refreshes the sensor 'battery discharging start power' [sensor.battery_discharging_start_power] to reflect the change."
|
|
},
|
|
"human_like": "Updates the battery's discharging start power setting on the Sungrow inverter whenever the user changes the corresponding input number.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_update_battery_discharging_start_power_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When battery discharging start power [sensor.battery_discharging_start_power] changes state. CONDITIONS: The state of Sungrow Battery Discharging Start Power [sensor.set_sg_battery_discharging_start_power] is a number. ACTIONS: Set the value of set sg battery discharging start power [input_number.set_sg_battery_discharging_start_power] to the current state value of battery discharging start power [sensor.battery_discharging_start_power].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the battery discharging start power [sensor.battery_discharging_start_power] sensor updates its value.",
|
|
"conditions": "The automation only runs if the Sungrow Battery Discharging Start Power [sensor.set_sg_battery_discharging_start_power] sensor's current state is a valid number.",
|
|
"action": "Updates the set sg battery discharging start power [input_number.set_sg_battery_discharging_start_power] input slider to match the current value reported by the battery discharging start power [sensor.battery_discharging_start_power] sensor."
|
|
},
|
|
"human_like": "Keeps the battery discharging start power input slider synchronized with the latest value from the inverter sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_global_mpp_scan_manual_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When global mpp scan manual raw [sensor.global_mpp_scan_manual_raw] changes state. CONDITIONS: global mpp scan manual raw [sensor.global_mpp_scan_manual_raw] is not in the 'unavailable' state. ACTIONS: Set the option of set sg global mpp scan manual [input_select.set_sg_global_mpp_manual] to 'Enabled' if the state value equals 0x00AA (170 decimal), or to 'Disabled' if the state value equals 0x0055 (85 decimal).",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor global mpp scan manual raw [sensor.global_mpp_scan_manual_raw] reports a new state.",
|
|
"conditions": "The automation only runs if the sensor global mpp scan manual raw [sensor.global_mpp_scan_manual_raw] is available and not reporting as 'unavailable'.",
|
|
"action": "It updates the input select set sg global mpp scan manual [input_select.set_sg_global_mpp_scan_manual] to either 'Enabled' or 'Disabled' based on the raw sensor value. If the value is 0x00AA, it sets it to 'Enabled'. If the value is 0x0055, it sets it to 'Disabled'."
|
|
},
|
|
"human_like": "Automatically updates the manual MPP scan setting for the Sungrow inverter based on the raw sensor value, translating it to a simple 'Enabled' or 'Disabled' option.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_global_mpp_scan_manual",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg global mpp scan manual [input_select.set_sg_global_mpp_scan_manual] changes state. CONDITIONS: None. ACTIONS: Write to Modbus register 30229 on hub SungrowSHx, slave secret sungrow_modbus_slave with value 170 if set sg global mpp scan manual [input_select.set_sg_global_mpp_scan_manual] is \"Enabled\", otherwise write value 85. Then update the sensor entity global mpp scan manual raw [sensor.global_mpp_scan_manual_raw].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of the input select entity set sg global mpp scan manual [input_select.set_sg_global_mpp_scan_manual] changes.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "Sends a value to a specific register on the Sungrow inverter via Modbus. If the input select is set to \"Enabled\", it writes the number 170. If it is set to \"Disabled\" or any other state, it writes the number 85. After writing the value, it refreshes the sensor global mpp scan manual raw [sensor.global_mpp_scan_manual_raw] to reflect the latest data."
|
|
},
|
|
"human_like": "Controls the Sungrow inverter's global MPP scan setting by sending a command to enable or disable it based on a user selection.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_state",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 inverter run mode [input_select.set_sg_2_inverter_run_mode] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register on hub 'SungrowSHx 2', slave 'secret sungrow_modbus_slave_inv2', address 12999. The value is 207 if set sg 2 inverter run mode [input_select.set_sg_2_inverter_run_mode] is 'Enabled', otherwise 206. Then, update the sensor system state 2 [sensor.system_state_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of the input selector 'set sg 2 inverter run mode' [input_select.set_sg_2_inverter_run_mode] changes.",
|
|
"conditions": "There are no conditions; the automation runs every time the trigger occurs.",
|
|
"action": "Sends a command to the Sungrow inverter via Modbus. It writes the value 207 to a specific register to enable the inverter if the selector is set to 'Enabled', or writes 206 to stop it otherwise. After the write command, it refreshes the data for the sensor 'system state 2' [sensor.system_state_2]."
|
|
},
|
|
"human_like": "Controls the second Sungrow inverter by sending start or stop commands based on a user selection, then updates the system status sensor.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_state_input_selector_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When sensor.sungrow_inverter_state_2 changes state. CONDITIONS: sensor.sungrow_inverter_state_2 is not in the 'unavailable' state. ACTIONS: Set the option for set sg 2 inverter run mode [input_select.set_sg_2_inverter_run_mode] to 'Shutdown' if sensor.sungrow_inverter_state_2 is 'Shutdown', otherwise set it to 'Enabled'.",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of the sensor sungrow inverter state 2 [sensor.sungrow_inverter_state_2] changes.",
|
|
"conditions": "The automation only proceeds if the sensor is not reporting as 'unavailable'.",
|
|
"action": "Updates the input selector for the inverter run mode. If the inverter state is 'Shutdown', the selector is set to 'Shutdown'. For any other available state, the selector is set to 'Enabled'."
|
|
},
|
|
"human_like": "Keeps the inverter run mode selector in sync with the actual inverter state, setting it to 'Shutdown' or 'Enabled' accordingly.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_max_soc",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 max soc [input_number.set_sg_2_max_soc] changes state. CONDITIONS: None. ACTIONS: Write to Modbus register 13057 on hub SungrowSHx 2, slave secret sungrow_modbus_slave_inv2 with a value equal to the integer state of set sg 2 max soc [input_number.set_sg_2_max_soc] multiplied by 10, then update the entity max soc 2 [sensor.max_soc_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number set sg 2 max soc [input_number.set_sg_2_max_soc] changes.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Writes a new value to a specific register on the Sungrow inverter 2 via Modbus. The value written is the current integer value of set sg 2 max soc [input_number.set_sg_2_max_soc] multiplied by 10. After the write, it refreshes the sensor max soc 2 [sensor.max_soc_2] to reflect the new data."
|
|
},
|
|
"human_like": "Updates the maximum state of charge setting on the second Sungrow inverter whenever the user changes the corresponding input number.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_max_soc_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When max soc 2 [sensor.max_soc_2] changes state. CONDITIONS: max soc 2 [sensor.max_soc_2] is not in an 'unavailable' state. ACTIONS: Set the value of set sg 2 max soc [input_number.set_sg_2_max_soc] to the current state of max soc 2 [sensor.max_soc_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor max soc 2 [sensor.max_soc_2] reports a new value.",
|
|
"conditions": "The automation only runs if the sensor max soc 2 [sensor.max_soc_2] is not reporting as 'unavailable'.",
|
|
"action": "Updates the input slider set sg 2 max soc [input_number.set_sg_2_max_soc] to match the latest value from the sensor max soc 2 [sensor.max_soc_2]."
|
|
},
|
|
"human_like": "Keeps the Sungrow inverter 2 maximum state of charge slider in sync with its corresponding sensor value.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_min_soc",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 min soc [input_number.set_sg_2_min_soc] changes state. CONDITIONS: None. ACTIONS: Write to the Sungrow inverter 2 holding register (address 13058) via Modbus with the value of set sg 2 min soc [input_number.set_sg_2_min_soc] multiplied by 10, then update the sensor min soc 2 [sensor.min_soc_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number set sg 2 min soc [input_number.set_sg_2_min_soc] is changed.",
|
|
"conditions": "There are no conditions; the action runs immediately after the trigger.",
|
|
"action": "Sends the new minimum state of charge value, multiplied by 10, to the Sungrow inverter 2 via a Modbus write command. It then refreshes the sensor min soc 2 [sensor.min_soc_2] to reflect the updated value."
|
|
},
|
|
"human_like": "Updates the minimum state of charge setting on the Sungrow inverter 2 whenever the user changes the target value.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_min_soc_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When min soc 2 [sensor.min_soc_2] changes state. CONDITIONS: min soc 2 [sensor.min_soc_2] is not in the 'unavailable' state. ACTIONS: Set the value of set sg 2 min soc [input_number.set_sg_2_min_soc] to the current state value of min soc 2 [sensor.min_soc_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor min soc 2 [sensor.min_soc_2] changes its state.",
|
|
"conditions": "The automation only runs if the sensor min soc 2 [sensor.min_soc_2] is not reporting as 'unavailable'.",
|
|
"action": "Updates the input slider set sg 2 min soc [input_number.set_sg_2_min_soc] to match the current value reported by the sensor min soc 2 [sensor.min_soc_2]."
|
|
},
|
|
"human_like": "Keeps the Sungrow inverter 2 minimum state of charge slider in sync with the corresponding sensor value.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_reserved_soc_for_backup",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 reserved soc for backup [input_number.set_sg_2_reserved_soc_for_backup] changes state. CONDITIONS: None. ACTIONS: Write the integer value of set sg 2 reserved soc for backup [input_number.set_sg_2_reserved_soc_for_backup] to Modbus register address 13099 on hub SungrowSHx 2, slave secret sungrow_modbus_slave_inv2 AND Update the sensor entity reserved soc for backup 2 [sensor.reserved_soc_for_backup_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number set sg 2 reserved soc for backup [input_number.set_sg_2_reserved_soc_for_backup] changes.",
|
|
"conditions": "There are no conditions; the automation runs every time the trigger occurs.",
|
|
"action": "Writes the current integer value of the input number to a specific Modbus register on the Sungrow inverter to set the reserved state of charge for backup. It then refreshes the sensor reserved soc for backup 2 [sensor.reserved_soc_for_backup_2] to reflect the new value."
|
|
},
|
|
"human_like": "Updates the inverter's reserved battery level for backup power whenever the user changes the target setting.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_reserved_backup_soc_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When reserved soc for backup 2 [sensor.reserved_soc_for_backup_2] changes state. CONDITIONS: reserved soc for backup 2 [sensor.reserved_soc_for_backup_2] is not in an 'unavailable' state. ACTIONS: Set the value of set sg 2 reserved soc for backup [input_number.set_sg_2_reserved_soc_for_backup] to the current state value of reserved soc for backup 2 [sensor.reserved_soc_for_backup_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor reserved soc for backup 2 [sensor.reserved_soc_for_backup_2] reports a new state.",
|
|
"conditions": "The automation only runs if the sensor reserved soc for backup 2 [sensor.reserved_soc_for_backup_2] is not reporting as 'unavailable'.",
|
|
"action": "It updates the input slider set sg 2 reserved soc for backup [input_number.set_sg_2_reserved_soc_for_backup] to match the current value from the sensor."
|
|
},
|
|
"human_like": "Keeps the input slider for the Sungrow inverter's reserved backup state of charge in sync with the latest sensor reading.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_battery_forced_charge_discharge_cmd",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 battery forced charge discharge cmd [input_select.set_sg_2_battery_forced_charge_discharge_cmd] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register on hub 'SungrowSHx 2' at address 13050. The value is 170 if set sg 2 battery forced charge discharge cmd [input_select.set_sg_2_battery_forced_charge_discharge_cmd] is 'Forced charge', 187 if it is 'Forced discharge', 204 if it is 'Stop (default)' or any other state. Then, update the entity battery forced charge discharge cmd raw 2 [sensor.battery_forced_charge_discharge_cmd_raw_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the user changes the selection in the input_select entity named set sg 2 battery forced charge discharge cmd [input_select.set_sg_2_battery_forced_charge_discharge_cmd].",
|
|
"conditions": "There are no conditions that must be met for the action to run.",
|
|
"action": "The automation sends a command to the Sungrow inverter by writing a specific numeric value to a Modbus register. The value written depends on the current selection: 170 for 'Forced charge', 187 for 'Forced discharge', or 204 for 'Stop (default)' or any other unexpected selection. After writing the register, it refreshes the sensor named battery forced charge discharge cmd raw 2 [sensor.battery_forced_charge_discharge_cmd_raw_2] to reflect the new state."
|
|
},
|
|
"human_like": "Updates the Sungrow inverter's battery forced charge or discharge command based on a user selection and refreshes a related sensor.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_battery_forced_charge_discharge_cmd_input_select_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When battery forced charge discharge cmd 2 [sensor.battery_forced_charge_discharge_cmd_2] changes state. CONDITIONS: battery forced charge discharge cmd 2 [sensor.battery_forced_charge_discharge_cmd_2] is not in the 'unavailable' state. ACTIONS: Set the option of set sg 2 battery forced charge discharge cmd [input_select.set_sg_2_battery_forced_charge_discharge_cmd] to the current state of battery forced charge discharge cmd 2 [sensor.battery_forced_charge_discharge_cmd_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor battery forced charge discharge cmd 2 [sensor.battery_forced_charge_discharge_cmd_2] reports a new state.",
|
|
"conditions": "The automation only runs if the sensor battery forced charge discharge cmd 2 [sensor.battery_forced_charge_discharge_cmd_2] is available and not reporting as 'unavailable'.",
|
|
"action": "Updates the dropdown selection set sg 2 battery forced charge discharge cmd [input_select.set_sg_2_battery_forced_charge_discharge_cmd] to match the current value reported by the sensor."
|
|
},
|
|
"human_like": "Keeps a user-selectable control for the Sungrow inverter's battery command synchronized with the actual sensor value.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_ems_mode",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 ems mode [input_select.set_sg_2_ems_mode] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register (hub: SungrowSHx 2, slave: secret sungrow_modbus_slave_inv2, address: 13049). The value is determined by the current state of set sg 2 ems mode [input_select.set_sg_2_ems_mode]: 0 for \"Self-consumption mode (default)\", 2 for \"Forced mode\", 3 for \"External EMS\", 4 for \"VPP\", 8 for \"MicroGrid\", otherwise 0. Then, update the sensor entity ems mode selection raw 2 [sensor.ems_mode_selection_raw_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the user changes the selection in the set sg 2 ems mode [input_select.set_sg_2_ems_mode] dropdown.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "The automation sends a command to the Sungrow inverter via Modbus, writing a specific numeric code to a control register based on the selected mode. It then refreshes the sensor.ems_mode_selection_raw_2 [sensor.ems_mode_selection_raw_2] to reflect the new state."
|
|
},
|
|
"human_like": "Updates the Energy Management System (EMS) operating mode of the second Sungrow inverter whenever a new mode is selected from a dropdown menu.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_load_adjustment_mode",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 load adjustment mode [input_select.set_sg_2_load_adjustment_mode] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register at address 13001 on the SungrowSHx 2 hub, slave secret sungrow_modbus_slave_inv2. The value is determined by the state of set sg 2 load adjustment mode [input_select.set_sg_2_load_adjustment_mode]: 0 for \"Timing\", 1 for \"ON/OFF\", 2 for \"Power optimization\", 3 for \"Disabled\", and 3 for any other state. Then, update the entity load adjustment mode selection raw [sensor.load_adjustment_mode_selection_raw].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the user changes the selection in the input_select entity set sg 2 load adjustment mode [input_select.set_sg_2_load_adjustment_mode].",
|
|
"conditions": "There are no conditions that must be met for the automation to run.",
|
|
"action": "The automation sends a command to the Sungrow inverter 2 via Modbus, writing a specific numeric value to a control register. The value written corresponds to the newly selected mode: 0 for Timing, 1 for ON/OFF, 2 for Power optimization, or 3 for Disabled (or any other unexpected selection). After writing the value, it refreshes the sensor entity load adjustment mode selection raw [sensor.load_adjustment_mode_selection_raw] to reflect the change."
|
|
},
|
|
"human_like": "Updates the inverter's load adjustment mode based on a user's selection in the dashboard.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_load_adjustment_mode_on_off",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 load adjustment mode on off [input_select.set_sg_2_load_adjustment_mode_on_off] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register at address 13010 on hub 'SungrowSHx 2' with slave 'secret sungrow_modbus_slave_inv2'. The value is 170 if set sg 2 load adjustment mode on off [input_select.set_sg_2_load_adjustment_mode_on_off] is 'ON', or 85 if it is 'OFF'. Then, update the sensor load adjustment mode on off selection raw [sensor.load_adjustment_mode_on_off_selection_raw].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the user changes the selection of the 'set sg 2 load adjustment mode on off' [input_select.set_sg_2_load_adjustment_mode_on_off] input select.",
|
|
"conditions": "There are no conditions; the automation runs every time the trigger occurs.",
|
|
"action": "First, it sends a command to a Sungrow inverter via Modbus. It writes a specific numeric value to a control register: 170 if the selected mode is 'ON', or 85 if it is 'OFF'. After writing the value, it refreshes the 'load adjustment mode on off selection raw' [sensor.load_adjustment_mode_on_off_selection_raw] sensor to reflect the new state."
|
|
},
|
|
"human_like": "Updates the Sungrow inverter's load adjustment mode by sending the corresponding ON or OFF command when the user changes the setting.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_export_power_limit_mode_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When export power limit mode raw 2 [sensor.export_power_limit_mode_raw_2] changes state. CONDITIONS: export power limit mode raw 2 [sensor.export_power_limit_mode_raw_2] is not in the 'unavailable' state. ACTIONS: Set the option for set sg 2 export power limit mode [input_select.set_sg_2_export_power_limit_mode] to 'Enabled' if the state value equals 0x00AA (170), or to 'Disabled' if the state value equals 0x0055 (85).",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor export power limit mode raw 2 [sensor.export_power_limit_mode_raw_2] changes its state.",
|
|
"conditions": "The automation only runs if the sensor export power limit mode raw 2 [sensor.export_power_limit_mode_raw_2] is not reporting as 'unavailable'.",
|
|
"action": "Updates a dropdown selector, set sg 2 export power limit mode [input_select.set_sg_2_export_power_limit_mode], to show 'Enabled' if the raw sensor value is 0x00AA, or 'Disabled' if the raw sensor value is 0x0055."
|
|
},
|
|
"human_like": "Updates a display setting to show whether the inverter's export power limit mode is enabled or disabled, based on a raw sensor value.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_backup_mode",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 backup mode [input_select.set_sg_2_backup_mode] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register on hub 'SungrowSHx 2' with slave 'secret sungrow_modbus_slave_inv2' at address 13074. The value is 170 if set sg 2 backup mode [input_select.set_sg_2_backup_mode] is 'Enabled', otherwise the value is 85. Then, update the sensor backup mode raw 2 [sensor.backup_mode_raw_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of the input selector set sg 2 backup mode [input_select.set_sg_2_backup_mode] changes.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "First, it writes a specific number to a control register on the Sungrow inverter. If the selector is set to 'Enabled', it writes the number 170. If it's set to 'Disabled' or any other state, it writes the number 85. After writing the value, it refreshes the data for the sensor backup mode raw 2 [sensor.backup_mode_raw_2] to reflect the change."
|
|
},
|
|
"human_like": "Controls the backup mode of the second Sungrow inverter by writing a specific value to it whenever the user changes the mode selector, and then updates a related sensor.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_backup_mode_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When backup mode raw 2 [sensor.backup_mode_raw_2] changes state. CONDITIONS: backup mode raw 2 [sensor.backup_mode_raw_2] is not unavailable. ACTIONS: Set the option of set sg 2 backup mode [input_select.set_sg_2_backup_mode] to 'Enabled' if the integer value of backup mode raw 2 [sensor.backup_mode_raw_2] equals 0xAA (170), or to 'Disabled' if it equals 0x55 (85).",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of the sensor backup mode raw 2 [sensor.backup_mode_raw_2] changes.",
|
|
"conditions": "The automation only runs if the sensor backup mode raw 2 [sensor.backup_mode_raw_2] is not in an 'unavailable' state.",
|
|
"action": "It updates the input select set sg 2 backup mode [input_select.set_sg_2_backup_mode] to show 'Enabled' if the sensor's numeric value is 0xAA (170), or 'Disabled' if the value is 0x55 (85)."
|
|
},
|
|
"human_like": "Updates the displayed backup mode setting for inverter 2 based on the raw sensor value, showing 'Enabled' or 'Disabled'.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_export_power_limit_mode",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 export power limit mode [input_select.set_sg_2_export_power_limit_mode] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register on hub 'SungrowSHx 2', slave 'secret sungrow_modbus_slave_inv2', address 13086. The value is 170 if set sg 2 export power limit mode [input_select.set_sg_2_export_power_limit_mode] is 'Enabled', otherwise 85. Then, update the entity export power limit mode raw 2 [sensor.export_power_limit_mode_raw_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the user changes the selection for set sg 2 export power limit mode [input_select.set_sg_2_export_power_limit_mode].",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Sends a command to the Sungrow inverter 2 via Modbus to set its export power limit mode. It writes the value 170 to a specific register if the selected mode is 'Enabled', or 85 if it is 'Disabled' (or any other state). Afterwards, it refreshes the data for the sensor export power limit mode raw 2 [sensor.export_power_limit_mode_raw_2] to reflect the change."
|
|
},
|
|
"human_like": "Updates the export power limit setting on the second Sungrow inverter whenever the user changes the mode selector.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_export_power_limit_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When export power limit 2 [sensor.export_power_limit_2] changes state. CONDITIONS: export power limit 2 [sensor.export_power_limit_2] state is a numeric value. ACTIONS: Set the value of set sg 2 export power limit [input_number.set_sg_2_export_power_limit] to the current state value of export power limit 2 [sensor.export_power_limit_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor export power limit 2 [sensor.export_power_limit_2] changes its state.",
|
|
"conditions": "The state of the sensor export power limit 2 [sensor.export_power_limit_2] must be a number.",
|
|
"action": "Updates the value of the input number slider set sg 2 export power limit [input_number.set_sg_2_export_power_limit] to match the current numeric value reported by the sensor."
|
|
},
|
|
"human_like": "Keeps the export power limit slider for inverter 2 synchronized with the corresponding sensor value.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_set_export_power_limit",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 export power limit [input_number.set_sg_2_export_power_limit] changes state. CONDITIONS: None. ACTIONS: Write the current value of set sg 2 export power limit [input_number.set_sg_2_export_power_limit] to Modbus register 13073 on slave 'secret sungrow_modbus_slave_inv2' via hub 'SungrowSHx 2' AND Update the state of sensor export power limit 2 [sensor.export_power_limit_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number 'set sg 2 export power limit' [input_number.set_sg_2_export_power_limit] is changed.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Writes the new value to a specific register on the second Sungrow inverter via Modbus to set its export power limit, and then refreshes the 'export power limit 2' [sensor.export_power_limit_2] sensor to reflect the change."
|
|
},
|
|
"human_like": "Updates the export power limit for the second Sungrow inverter whenever the user changes the corresponding setting.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_load_adjustment_mode_input_select_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When load adjustment mode selection [sensor.load_adjustment_mode_selection] changes state. CONDITIONS: load adjustment mode selection [sensor.load_adjustment_mode_selection] is not in the 'unavailable' state. ACTIONS: Set the option for set sg 2 load adjustment mode [input_select.set_sg_2_load_adjustment_mode] to the current state of load adjustment mode selection [sensor.load_adjustment_mode_selection].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the load adjustment mode selection [sensor.load_adjustment_mode_selection] sensor changes its reported value.",
|
|
"conditions": "The automation only proceeds if the load adjustment mode selection [sensor.load_adjustment_mode_selection] sensor is not reporting a state of 'unavailable'.",
|
|
"action": "Updates the set sg 2 load adjustment mode [input_select.set_sg_2_load_adjustment_mode] dropdown selector to match the current value reported by the load adjustment mode selection [sensor.load_adjustment_mode_selection] sensor."
|
|
},
|
|
"human_like": "Keeps the inverter's load adjustment mode selector in sync with the current mode reported by the system.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_ems_mode_input_select_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When ems mode selection 2 [sensor.ems_mode_selection_2] changes state. CONDITIONS: ems mode selection 2 [sensor.ems_mode_selection_2] is not unavailable. ACTIONS: Set the option of set sg 2 ems mode [input_select.set_sg_2_ems_mode] to the current state of ems mode selection 2 [sensor.ems_mode_selection_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor ems mode selection 2 [sensor.ems_mode_selection_2] changes its state.",
|
|
"conditions": "The automation only runs if the sensor ems mode selection 2 [sensor.ems_mode_selection_2] is not in an 'unavailable' state.",
|
|
"action": "Updates the dropdown selection for set sg 2 ems mode [input_select.set_sg_2_ems_mode] to match the current value reported by the ems mode selection 2 [sensor.ems_mode_selection_2] sensor."
|
|
},
|
|
"human_like": "Synchronizes the EMS mode selection dropdown with the latest value from the inverter sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_battery_forced_charge_discharge_power",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 forced charge discharge power [input_number.set_sg_2_forced_charge_discharge_power] changes state. CONDITIONS: None. ACTIONS: Write the integer value of set sg 2 forced charge discharge power [input_number.set_sg_2_forced_charge_discharge_power] to Modbus register 13051 on hub SungrowSHx 2, slave secret sungrow_modbus_slave_inv2 AND Update the sensor battery forced charge discharge power 2 [sensor.battery_forced_charge_discharge_power_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number set sg 2 forced charge discharge power [input_number.set_sg_2_forced_charge_discharge_power] is changed.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "Writes the new integer value to a specific Modbus register on the Sungrow inverter 2 to control the forced battery charge or discharge power, and then refreshes the sensor battery forced charge discharge power 2 [sensor.battery_forced_charge_discharge_power_2] to reflect the change."
|
|
},
|
|
"human_like": "Updates the battery's forced charge or discharge power setting on the second Sungrow inverter whenever the user changes the target value.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_battery_forced_charge_discharge_power_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When battery forced charge discharge power 2 [sensor.battery_forced_charge_discharge_power_2] changes state. CONDITIONS: The state of battery forced charge discharge power 2 [sensor.battery_forced_charge_discharge_power_2] is a number. ACTIONS: Set the value of set sg 2 forced charge discharge power [input_number.set_sg_2_forced_charge_discharge_power] to the numeric state of battery forced charge discharge power 2 [sensor.battery_forced_charge_discharge_power_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor battery forced charge discharge power 2 [sensor.battery_forced_charge_discharge_power_2] reports a new state.",
|
|
"conditions": "The new state reported by the sensor must be a numeric value.",
|
|
"action": "Updates the input slider set sg 2 forced charge discharge power [input_number.set_sg_2_forced_charge_discharge_power] to match the numeric value from the sensor."
|
|
},
|
|
"human_like": "Syncs the battery forced charge/discharge power slider for the second inverter with the latest sensor reading.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_battery_max_charge_power",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 battery max charge power [input_number.set_sg_2_battery_max_charge_power] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register (hub: SungrowSHx 2, slave: secret sungrow_modbus_slave_inv2, address: 33046) where the value is the state of set sg 2 battery max charge power [input_number.set_sg_2_battery_max_charge_power] divided by 10 and converted to an integer. Then, update the entity battery max charge power 2 [sensor.battery_max_charge_power_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number 'set sg 2 battery max charge power' [input_number.set_sg_2_battery_max_charge_power] is changed.",
|
|
"conditions": "There are no conditions that must be met for the automation to proceed.",
|
|
"action": "The automation first sends a command to a Modbus device (specifically the SungrowSHx 2 hub, slave address 'secret sungrow_modbus_slave_inv2') to write a new value to register 33046. This value is calculated by taking the current state of the 'set sg 2 battery max charge power' [input_number.set_sg_2_battery_max_charge_power], dividing it by 10, and converting the result to a whole number. Afterwards, it refreshes the data for the sensor 'battery max charge power 2' [sensor.battery_max_charge_power_2]."
|
|
},
|
|
"human_like": "Updates the maximum battery charging power for the second inverter by sending the user's configured value to the device and refreshing the related sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_battery_max_charge_power_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When battery max charge power 2 [sensor.battery_max_charge_power_2] changes state. CONDITIONS: The state of battery max charge power 2 [sensor.battery_max_charge_power_2] is a number. ACTIONS: Set the value of set sg 2 battery max charge power [input_number.set_sg_2_battery_max_charge_power] to the numeric state of battery max charge power 2 [sensor.battery_max_charge_power_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor battery max charge power 2 [sensor.battery_max_charge_power_2] reports a new state.",
|
|
"conditions": "The automation only proceeds if the new state reported by battery max charge power 2 [sensor.battery_max_charge_power_2] is a numeric value.",
|
|
"action": "Updates the input slider set sg 2 battery max charge power [input_number.set_sg_2_battery_max_charge_power] to match the numeric value from the sensor."
|
|
},
|
|
"human_like": "Keeps the battery max charge power input slider in sync with the latest value from the inverter sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_battery_max_discharge_power",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 battery max discharge power [input_number.set_sg_2_battery_max_discharge_power] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register on hub 'SungrowSHx 2' at slave address 'secret sungrow_modbus_slave_inv2' and register address 33047. The value is calculated as the current state of set sg 2 battery max discharge power [input_number.set_sg_2_battery_max_discharge_power] divided by 10 and converted to an integer. Then, update the entity battery max discharge power 2 [sensor.battery_max_discharge_power_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number 'set sg 2 battery max discharge power' [input_number.set_sg_2_battery_max_discharge_power] changes.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "It sends the new value, divided by 10 and converted to a whole number, to a specific register on the Sungrow inverter 2 via Modbus. Afterwards, it refreshes the sensor 'battery max discharge power 2' [sensor.battery_max_discharge_power_2] to reflect any potential change."
|
|
},
|
|
"human_like": "Updates the maximum discharge power setting on the second Sungrow inverter whenever the user adjusts the corresponding control.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_battery_max_discharge_power_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When battery max discharge power 2 [sensor.battery_max_discharge_power_2] changes state. CONDITIONS: The state of battery max discharge power 2 [sensor.battery_max_discharge_power_2] is a number. ACTIONS: Set the value of set sg 2 battery max discharge power [input_number.set_sg_2_battery_max_discharge_power] to the numeric state of battery max discharge power 2 [sensor.battery_max_discharge_power_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor battery max discharge power 2 [sensor.battery_max_discharge_power_2] updates its value.",
|
|
"conditions": "The automation only proceeds if the new state of the sensor battery max discharge power 2 [sensor.battery_max_discharge_power_2] is a valid number.",
|
|
"action": "It updates the input slider set sg 2 battery max discharge power [input_number.set_sg_2_battery_max_discharge_power] to match the numeric value reported by the sensor."
|
|
},
|
|
"human_like": "Keeps the battery max discharge power slider in sync with the latest value from the inverter sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_battery_charging_start_power",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 battery charging start power [input_number.set_sg_2_battery_charging_start_power] changes state. CONDITIONS: None. ACTIONS: Write the value of set sg 2 battery charging start power [input_number.set_sg_2_battery_charging_start_power] (divided by 10 and converted to an integer) to Modbus register 33148 on the SungrowSHx 2 hub for slave secret sungrow_modbus_slave_inv2, then update the sensor battery charging start power [sensor.battery_charging_start_power].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number set sg 2 battery charging start power [input_number.set_sg_2_battery_charging_start_power] is changed.",
|
|
"conditions": "There are no conditions that need to be met.",
|
|
"action": "Sends the new power setting value to the Sungrow inverter by writing it to a specific Modbus register. The value is first divided by 10 and converted to a whole number. After the write is complete, it refreshes the sensor battery charging start power [sensor.battery_charging_start_power] to reflect the change."
|
|
},
|
|
"human_like": "Updates the battery charging start power on the Sungrow inverter whenever the user changes the corresponding setting in Home Assistant.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_battery_charging_start_power_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When battery charging start power [sensor.battery_charging_start_power] changes state. CONDITIONS: The state of battery charging start power [sensor.battery_charging_start_power] is a numeric value. ACTIONS: Set the value of set sg 2 battery charging start power [input_number.set_sg_2_battery_charging_start_power] to the numeric state of battery charging start power [sensor.battery_charging_start_power].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the sensor for battery charging start power [sensor.battery_charging_start_power] updates its reading.",
|
|
"conditions": "The automation only proceeds if the value reported by the battery charging start power [sensor.battery_charging_start_power] sensor is a valid number.",
|
|
"action": "Updates the slider for setting the battery charging start power [input_number.set_sg_2_battery_charging_start_power] to match the current numeric value from the sensor."
|
|
},
|
|
"human_like": "Keeps the battery charging start power slider synchronized with the latest value from the solar inverter sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_battery_discharging_start_power",
|
|
"result": {
|
|
"structured": "TRIGGER: When set sg 2 battery discharging start power [input_number.set_sg_2_battery_discharging_start_power] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register on hub 'SungrowSHx 2' at address 33149, where the value is the state of set sg 2 battery discharging start power [input_number.set_sg_2_battery_discharging_start_power] divided by 10 and converted to an integer. Then, update the entity battery discharging start power 2 [sensor.battery_discharging_start_power_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the input number 'set sg 2 battery discharging start power' [input_number.set_sg_2_battery_discharging_start_power] is changed.",
|
|
"conditions": "There are no conditions; the action runs immediately after the trigger.",
|
|
"action": "Sends the new power setting to the Sungrow inverter via Modbus. The value sent is the user's input divided by 10. After the write is complete, it refreshes the sensor 'battery discharging start power 2' [sensor.battery_discharging_start_power_2] to reflect the change."
|
|
},
|
|
"human_like": "Updates the battery discharge start power on the second Sungrow inverter whenever the user changes the corresponding setting.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_update_battery_discharging_start_power_input_slider_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When battery discharging start power 2 [sensor.battery_discharging_start_power_2] changes state. CONDITIONS: The state of Sungrow Battery Discharging Start Power 2 [sensor.set_sg_2_battery_discharging_start_power] is a number. ACTIONS: Set the value of set sg 2 battery discharging start power [input_number.set_sg_2_battery_discharging_start_power] to the current state value of battery discharging start power 2 [sensor.battery_discharging_start_power_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the sensor battery discharging start power 2 [sensor.battery_discharging_start_power_2] changes.",
|
|
"conditions": "The automation only proceeds if the state of the sensor Sungrow Battery Discharging Start Power 2 [sensor.set_sg_2_battery_discharging_start_power] is a valid number.",
|
|
"action": "Updates the input slider set sg 2 battery discharging start power [input_number.set_sg_2_battery_discharging_start_power] to match the new value from the battery discharging start power 2 [sensor.battery_discharging_start_power_2] sensor."
|
|
},
|
|
"human_like": "Keeps the battery discharge start power slider in sync with the latest value from the inverter sensor.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_inverter_2_global_mpp_scan_manual_update",
|
|
"result": {
|
|
"structured": "TRIGGER: When global mpp scan manual raw 2 [sensor.global_mpp_scan_manual_raw_2] changes state. CONDITIONS: global mpp scan manual raw 2 [sensor.global_mpp_scan_manual_raw_2] is not unavailable. ACTIONS: Set the option of set sg 2 global mpp scan manual [input_select.set_sg_2_global_mpp_manual_scan] to 'Enabled' if its raw value equals 0x00AA, or to 'Disabled' if its raw value equals 0x0055.",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of the sensor global mpp scan manual raw 2 [sensor.global_mpp_scan_manual_raw_2] changes.",
|
|
"conditions": "The automation only runs if the sensor global mpp scan manual raw 2 [sensor.global_mpp_scan_manual_raw_2] is not in an 'unavailable' state.",
|
|
"action": "Updates the dropdown selection for set sg 2 global mpp scan manual [input_select.set_sg_2_global_mpp_scan_manual] based on the raw sensor value. If the value is 0x00AA, it sets the option to 'Enabled'. If the value is 0x0055, it sets the option to 'Disabled'."
|
|
},
|
|
"human_like": "Automatically updates the manual global MPP scan setting for inverter 2 based on the raw sensor value, translating it to an 'Enabled' or 'Disabled' status.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "automation_sungrow_global_2_mpp_scan_manual",
|
|
"result": {
|
|
"structured": "TRIGGER: When the state of set sg 2 global mpp scan manual [input_select.set_sg_2_global_mpp_scan_manual] changes. CONDITIONS: None. ACTIONS: Write a value to a Modbus register on the SungrowSHx 2 hub, slave address 'secret sungrow_modbus_slave_inv2', at address 30229. The value is 170 if set sg 2 global mpp scan manual [input_select.set_sg_2_global_mpp_scan_manual] is 'Enabled', otherwise 85. Then, update the entity global mpp scan manual raw 2 [sensor.global_mpp_scan_manual_raw_2].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the selection for set sg 2 global mpp scan manual [input_select.set_sg_2_global_mpp_scan_manual] changes.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Sends a command to the Sungrow inverter 2 via Modbus. It writes the value 170 to a specific register if the selection is 'Enabled', or 85 if it's 'Disabled' (or any other state). After writing the value, it refreshes the data for the sensor global mpp scan manual raw 2 [sensor.global_mpp_scan_manual_raw_2]."
|
|
},
|
|
"human_like": "Controls the manual MPP scan setting on the second Sungrow inverter by sending a corresponding value over Modbus when the user changes the selection.",
|
|
"complexity": "medium"
|
|
}
|
|
}
|
|
] |