AutomationDataset/kshala/automation-descriptions.json

418 lines
46 KiB
JSON

[
{
"id": "sungrow_inverter_automate_stop_battery_charging",
"result": {
"structured": "TRIGGER: When battery level nominal [sensor.sungrow_inverter_battery_level_nominal] is above 79.9. CONDITIONS: None. ACTIONS: If set battery maximum charge power [input_number.sungrow_inverter_set_battery_maximum_charge_power] is equal to 10.0, then set set battery maximum charge power [input_number.sungrow_inverter_set_battery_maximum_charge_power] to 10.0. If set export power limit [input_number.sungrow_inverter_set_export_power_limit] is less than 10000, then set set export power limit [input_number.sungrow_inverter_set_export_power_limit] to 10000.",
"natural_language": {
"trigger": "When the battery level nominal [sensor.sungrow_inverter_battery_level_nominal] rises above 79.9 percent.",
"conditions": "There are no conditions that must be met before the actions are executed.",
"action": "The automation performs two conditional checks and actions. First, it checks if the set battery maximum charge power [input_number.sungrow_inverter_set_battery_maximum_charge_power] is currently set to 10.0; if it is, it sets it to 10.0 again. Second, it checks if the set export power limit [input_number.sungrow_inverter_set_export_power_limit] is less than 10000; if it is, it sets it to 10000."
},
"human_like": "Stops battery charging by adjusting power settings when the battery level gets high.",
"complexity": "medium"
}
},
{
"id": "sungrow_wallbox_automate_pv_surplus",
"result": {
"structured": "TRIGGER: When total dc power [sensor.sungrow_inverter_total_dc_power] changes state. CONDITIONS: charging status [sensor.sungrow_wallbox_charging_status] is Charging AND set charging mode [input_select.sungrow_wallbox_set_charging_mode] is PV surplus. ACTIONS: Write a calculated value to a Modbus register (hub: SungrowWallbox, slave: secret wallbox_modbus_slave, address: 21202). The value is derived from a template that calculates a target output current based on: total dc power [sensor.sungrow_inverter_total_dc_power], load power [sensor.sungrow_inverter_load_power], charging power [sensor.sungrow_wallbox_charging_power], rated voltage [sensor.sungrow_wallbox_rated_voltage], output current [sensor.sungrow_wallbox_output_current], phase mode [sensor.sungrow_wallbox_phase_mode], and set output current [input_number.sungrow_wallbox_set_output_current]. The calculation uses defined variables: significance_threshold (1), min_current (6.0), max_current (16.0), max_power (10000). The target current is constrained between min_current and max_current, adjusted by significance_threshold to limit changes, and held constant if set output current was changed within the last 20 seconds. The final value is (target_output_current * 10) rounded to an integer. Then, update the entity output current [sensor.sungrow_wallbox_output_current].",
"natural_language": {
"trigger": "Whenever the total DC power from the inverter [sensor.sungrow_inverter_total_dc_power] changes.",
"conditions": "The wallbox must currently be in a Charging state [sensor.sungrow_wallbox_charging_status], and the selected charging mode [input_select.sungrow_wallbox_set_charging_mode] must be set to 'PV surplus'.",
"action": "Calculates a new target charging current for the wallbox based on the available solar power and current household load. It reads the total solar power, the home's load power, and the current power used for charging. It then determines how much surplus power is available, calculates a corresponding target current, and ensures this current stays within safe and configured limits (6 to 16 amps). The change in current is also limited to a small step (1 amp) unless the target current setting was manually changed less than 20 seconds ago, in which case it keeps the current value. Finally, it sends this calculated current value to the wallbox via a Modbus command and refreshes the sensor that displays the output current."
},
"human_like": "Automatically adjusts the electric vehicle charging rate to use only surplus solar power when the wallbox is set to 'PV surplus' mode.",
"complexity": "high"
}
},
{
"id": "sungrow_inverter_update_system_state",
"result": {
"structured": "TRIGGER: When set start stop [input_select.sungrow_inverter_set_start_stop] changes state. CONDITIONS: None. ACTIONS: Write value 207 to Modbus register 12999 on hub SungrowInverter if set start stop [input_select.sungrow_inverter_set_start_stop] is 'Start', otherwise write value 206. Then, update the entity system state [sensor.sungrow_inverter_system_state].",
"natural_language": {
"trigger": "Whenever the state of the input select 'set start stop' [input_select.sungrow_inverter_set_start_stop] changes.",
"conditions": "There are no conditions for this automation.",
"action": "It sends a command to the Sungrow inverter via Modbus. If the 'set start stop' selector is set to 'Start', it writes the value 207 to a specific register. If it's set to any other state, it writes the value 206. After the write operation, it refreshes the data for the 'system state' sensor [sensor.sungrow_inverter_system_state]."
},
"human_like": "Updates the Sungrow inverter's operating mode (Start or Stop) based on a user selection and refreshes the system status display.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_battery_maximum_soc",
"result": {
"structured": "TRIGGER: When set battery maximum soc [input_number.sungrow_inverter_set_battery_maximum_soc] changes state. ACTIONS: Write to Modbus register (hub: SungrowInverter, slave: secret sungrow_modbus_slave, address: 13057) with a value equal to the state of set battery maximum soc [input_number.sungrow_inverter_set_battery_maximum_soc] multiplied by 10, wait for 200 milliseconds, then update the entities battery maximum soc [sensor.sungrow_inverter_battery_maximum_soc], battery level [sensor.sungrow_inverter_battery_level], and battery charge [sensor.sungrow_inverter_battery_charge].",
"natural_language": {
"trigger": "Whenever the value of the set battery maximum soc [input_number.sungrow_inverter_set_battery_maximum_soc] is changed.",
"conditions": "There are no conditions for this automation.",
"action": "Sends the new maximum state of charge value, multiplied by 10, to a specific register on the Sungrow inverter via Modbus. After a brief 200-millisecond delay, it refreshes the data for the battery maximum soc [sensor.sungrow_inverter_battery_maximum_soc], battery level [sensor.sungrow_inverter_battery_level], and battery charge [sensor.sungrow_inverter_battery_charge] sensors to reflect the change."
},
"human_like": "Updates the inverter's battery maximum charge limit and refreshes related battery sensors when the user changes the target value.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_battery_maximum_soc_input_number",
"result": {
"structured": "TRIGGER: When battery maximum soc [sensor.sungrow_inverter_battery_maximum_soc] changes state. CONDITIONS: battery maximum soc [sensor.sungrow_inverter_battery_maximum_soc] has a valid value. ACTIONS: Set the value of set battery maximum soc [input_number.sungrow_inverter_set_battery_maximum_soc] to the current state of battery maximum soc [sensor.sungrow_inverter_battery_maximum_soc].",
"natural_language": {
"trigger": "Whenever the battery maximum soc [sensor.sungrow_inverter_battery_maximum_soc] sensor updates its value.",
"conditions": "The automation only proceeds if the battery maximum soc [sensor.sungrow_inverter_battery_maximum_soc] sensor has a valid, non-null value.",
"action": "It updates the set battery maximum soc [input_number.sungrow_inverter_set_battery_maximum_soc] input number to match the current value reported by the battery maximum soc sensor."
},
"human_like": "Keeps the manual battery maximum state-of-charge setting in sync with the current value reported by the inverter.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_battery_minimum_soc",
"result": {
"structured": "TRIGGER: When set battery minimum soc [input_number.sungrow_inverter_set_battery_minimum_soc] changes state. CONDITIONS: None. ACTIONS: Write to Modbus register 13058 on hub SungrowInverter with the integer value of set battery minimum soc [input_number.sungrow_inverter_set_battery_minimum_soc] multiplied by 10, wait 200 milliseconds, then update the entities battery minimum soc [sensor.sungrow_inverter_battery_minimum_soc], battery level [sensor.sungrow_inverter_battery_level], and battery charge [sensor.sungrow_inverter_battery_charge].",
"natural_language": {
"trigger": "Whenever the value of the input number set battery minimum soc [input_number.sungrow_inverter_set_battery_minimum_soc] changes.",
"conditions": "There are no conditions for this automation.",
"action": "Sends the new minimum state of charge value, multiplied by 10, to the Sungrow inverter via Modbus. After a brief 200-millisecond delay, it refreshes the data for the battery minimum soc [sensor.sungrow_inverter_battery_minimum_soc], battery level [sensor.sungrow_inverter_battery_level], and battery charge [sensor.sungrow_inverter_battery_charge] sensors to reflect the change."
},
"human_like": "Updates the inverter's battery minimum charge setting and refreshes related battery sensors when the user changes the target value.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_battery_minimum_soc_input_number",
"result": {
"structured": "TRIGGER: When battery minimum soc [sensor.sungrow_inverter_battery_minimum_soc] changes state. CONDITIONS: battery minimum soc [sensor.sungrow_inverter_battery_minimum_soc] has a valid numeric state. ACTIONS: Set the value of set battery minimum soc [input_number.sungrow_inverter_set_battery_minimum_soc] to the current state of battery minimum soc [sensor.sungrow_inverter_battery_minimum_soc].",
"natural_language": {
"trigger": "Whenever the battery minimum soc [sensor.sungrow_inverter_battery_minimum_soc] sensor updates its value.",
"conditions": "The automation only runs if the battery minimum soc [sensor.sungrow_inverter_battery_minimum_soc] sensor has a valid, numeric value.",
"action": "Updates the set battery minimum soc [input_number.sungrow_inverter_set_battery_minimum_soc] input number to match the current value reported by the battery minimum soc [sensor.sungrow_inverter_battery_minimum_soc] sensor."
},
"human_like": "Keeps the user-configurable battery minimum state of charge setting synchronized with the current value reported by the inverter.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_battery_backup_soc",
"result": {
"structured": "TRIGGER: When set battery backup soc [input_number.sungrow_inverter_set_battery_backup_soc] changes state. CONDITIONS: None. ACTIONS: Write the integer value of set battery backup soc [input_number.sungrow_inverter_set_battery_backup_soc] to Modbus register 13099 on the SungrowInverter hub AND update the state of battery backup soc [sensor.sungrow_inverter_battery_backup_soc].",
"natural_language": {
"trigger": "Whenever the value of the input number set battery backup soc [input_number.sungrow_inverter_set_battery_backup_soc] changes.",
"conditions": "There are no conditions for this automation.",
"action": "Sends the current integer value of set battery backup soc [input_number.sungrow_inverter_set_battery_backup_soc] to a specific register on the Sungrow inverter via Modbus, and then requests an immediate update of the sensor battery backup soc [sensor.sungrow_inverter_battery_backup_soc] to reflect the new value."
},
"human_like": "Updates the inverter's battery backup state of charge setting whenever the user changes the target value and refreshes the corresponding sensor.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_battery_backup_soc_input_number",
"result": {
"structured": "TRIGGER: When battery backup soc [sensor.sungrow_inverter_battery_backup_soc] changes state. CONDITIONS: battery backup soc [sensor.sungrow_inverter_battery_backup_soc] has a valid value. ACTIONS: Set the value of set battery backup soc [input_number.sungrow_inverter_set_battery_backup_soc] to the current state value of battery backup soc [sensor.sungrow_inverter_battery_backup_soc].",
"natural_language": {
"trigger": "Whenever the battery backup soc [sensor.sungrow_inverter_battery_backup_soc] sensor reports a new state.",
"conditions": "The automation only proceeds if the battery backup soc [sensor.sungrow_inverter_battery_backup_soc] sensor has a valid, non-unknown value.",
"action": "Updates the set battery backup soc [input_number.sungrow_inverter_set_battery_backup_soc] input number to match the current value reported by the battery backup soc [sensor.sungrow_inverter_battery_backup_soc] sensor."
},
"human_like": "Keeps the battery backup state-of-charge input number synchronized with the latest reading from the inverter sensor.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_battery_forced_charge_discharge_mode",
"result": {
"structured": "TRIGGER: When set battery forced charge discharge mode [input_select.sungrow_inverter_set_battery_forced_charge_discharge_mode] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register (hub: SungrowInverter, slave: secret sungrow_modbus_slave, address: 13050). The value is 204 if the input_select state is \"Stop (default)\", 170 if the state is \"Forced charge\", 187 if the state is \"Forced discharge\", otherwise 204. Then, update the entity battery forced charge discharge mode raw [sensor.sungrow_inverter_battery_forced_charge_discharge_mode_raw].",
"natural_language": {
"trigger": "Whenever the user changes the selection in the set battery forced charge discharge mode [input_select.sungrow_inverter_set_battery_forced_charge_discharge_mode] dropdown.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "Sends a command to the Sungrow inverter via Modbus to set the battery's forced charge or discharge mode. The specific numeric value sent depends on the selected mode: 204 for \"Stop (default)\", 170 for \"Forced charge\", and 187 for \"Forced discharge\". After sending the command, it refreshes the sensor battery forced charge discharge mode raw [sensor.sungrow_inverter_battery_forced_charge_discharge_mode_raw] to reflect the new state."
},
"human_like": "Updates the Sungrow inverter's battery mode based on a user selection, sending the correct command and refreshing a sensor.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_battery_forced_charge_discharge_mode_input_select",
"result": {
"structured": "TRIGGER: When battery forced charge discharge mode raw [sensor.sungrow_inverter_battery_forced_charge_discharge_mode_raw] changes state. CONDITIONS: battery forced charge discharge mode raw [sensor.sungrow_inverter_battery_forced_charge_discharge_mode_raw] has a valid value. ACTIONS: Set the option of set battery forced charge discharge mode [input_select.sungrow_inverter_set_battery_forced_charge_discharge_mode] to the current state of battery forced charge discharge mode [sensor.sungrow_inverter_battery_forced_charge_discharge_mode].",
"natural_language": {
"trigger": "Whenever the raw sensor for the battery forced charge/discharge mode [sensor.sungrow_inverter_battery_forced_charge_discharge_mode_raw] changes its state.",
"conditions": "The automation only proceeds if the raw sensor [sensor.sungrow_inverter_battery_forced_charge_discharge_mode_raw] has a valid, non-unknown value.",
"action": "Updates the selectable option in the input select entity [input_select.sungrow_inverter_set_battery_forced_charge_discharge_mode] to match the current state of the processed battery forced charge/discharge mode sensor [sensor.sungrow_inverter_battery_forced_charge_discharge_mode]."
},
"human_like": "Keeps the inverter's mode selection dropdown synchronized with the current battery charge/discharge mode reported by the system.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_ems_mode",
"result": {
"structured": "TRIGGER: When set ems mode [input_select.sungrow_inverter_set_ems_mode] changes state. CONDITIONS: None. ACTIONS: Write a value to Modbus register 13049 on hub SungrowInverter. The value is determined by the current state of set ems mode [input_select.sungrow_inverter_set_ems_mode]: 0 for \"Self-consumption mode (default)\", 2 for \"Forced mode\", 3 for \"External EMS mode\", 4 for \"VPP\", 8 for \"MicroGrid\", or 0 for any other state. Then, update the sensor ems mode raw [sensor.sungrow_inverter_ems_mode_raw].",
"natural_language": {
"trigger": "Whenever the set ems mode [input_select.sungrow_inverter_set_ems_mode] is changed.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a command to the Sungrow inverter via Modbus to set its EMS mode. The specific numeric value written to register 13049 depends on the selected mode: 0 for Self-consumption mode, 2 for Forced mode, 3 for External EMS mode, 4 for VPP, or 8 for MicroGrid. If the selected mode is anything else, it defaults to 0. After writing the value, it refreshes the ems mode raw [sensor.sungrow_inverter_ems_mode_raw] sensor to reflect the change."
},
"human_like": "Updates the Sungrow inverter's energy management mode based on a user selection and refreshes the corresponding sensor.",
"complexity": "medium"
}
},
{
"id": "sungrow_inverter_update_ems_mode_input_select",
"result": {
"structured": "TRIGGER: When ems mode raw [sensor.sungrow_inverter_ems_mode_raw] changes state. CONDITIONS: ems mode raw [sensor.sungrow_inverter_ems_mode_raw] has a valid value. ACTIONS: Set the option of set ems mode [input_select.sungrow_inverter_set_ems_mode] to the current state of ems mode [sensor.sungrow_inverter_ems_mode].",
"natural_language": {
"trigger": "Whenever the raw EMS mode sensor [sensor.sungrow_inverter_ems_mode_raw] changes its state.",
"conditions": "The automation only proceeds if the raw EMS mode sensor [sensor.sungrow_inverter_ems_mode_raw] has a valid, non-unknown value.",
"action": "Updates the 'set ems mode' dropdown [input_select.sungrow_inverter_set_ems_mode] to match the current value of the processed EMS mode sensor [sensor.sungrow_inverter_ems_mode]."
},
"human_like": "Keeps the inverter's EMS mode selector in sync with the latest mode reported by the inverter.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_export_power_limit_mode",
"result": {
"structured": "TRIGGER: When set export power limit mode [input_select.sungrow_inverter_set_export_power_limit_mode] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register (hub: SungrowInverter, slave: secret sungrow_modbus_slave, address: 13086). The value is 170 if set export power limit mode [input_select.sungrow_inverter_set_export_power_limit_mode] is 'Enabled', otherwise 85. Then, update the entity export power limit mode raw [sensor.sungrow_inverter_export_power_limit_mode_raw].",
"natural_language": {
"trigger": "Whenever the user changes the selection for the set export power limit mode [input_select.sungrow_inverter_set_export_power_limit_mode].",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "Sends a command to the Sungrow inverter via Modbus to either enable or disable the export power limit. It writes the value 170 to a specific register if the mode is set to 'Enabled', or 85 if it is not. Afterwards, it refreshes the data for the export power limit mode raw [sensor.sungrow_inverter_export_power_limit_mode_raw] sensor."
},
"human_like": "Updates the inverter's export power limit setting based on a user selection and refreshes the corresponding sensor.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_export_power_limit_mode_input_select",
"result": {
"structured": "TRIGGER: When export power limit mode raw [sensor.sungrow_inverter_export_power_limit_mode_raw] changes state. CONDITIONS: export power limit mode raw [sensor.sungrow_inverter_export_power_limit_mode_raw] has a valid value. ACTIONS: Set the option of set export power limit mode [input_select.sungrow_inverter_set_export_power_limit_mode] to the current state of export power limit mode [sensor.sungrow_inverter_export_power_limit_mode].",
"natural_language": {
"trigger": "Whenever the raw sensor for the export power limit mode [sensor.sungrow_inverter_export_power_limit_mode_raw] changes its state.",
"conditions": "The raw sensor must have a valid, non-empty value.",
"action": "Updates the dropdown selection for setting the export power limit mode [input_select.sungrow_inverter_set_export_power_limit_mode] to match the current, processed value from the export power limit mode sensor [sensor.sungrow_inverter_export_power_limit_mode]."
},
"human_like": "Keeps the inverter's export power limit mode selection in sync with the latest reading from the system.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_export_power_limit",
"result": {
"structured": "TRIGGER: When set export power limit [input_number.sungrow_inverter_set_export_power_limit] changes state. CONDITIONS: None. ACTIONS: Write the current state value of set export power limit [input_number.sungrow_inverter_set_export_power_limit] to Modbus register address 13073 on the SungrowInverter hub AND update the entity state for export power limit [sensor.sungrow_inverter_export_power_limit].",
"natural_language": {
"trigger": "Whenever the value of the set export power limit [input_number.sungrow_inverter_set_export_power_limit] is changed.",
"conditions": "There are no conditions for this automation.",
"action": "Sends the new power limit value to the Sungrow inverter via Modbus and then refreshes the state of the export power limit [sensor.sungrow_inverter_export_power_limit] sensor to reflect the change."
},
"human_like": "Updates the inverter's export power limit and refreshes the sensor when a new limit is set.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_export_power_limit_input_number",
"result": {
"structured": "TRIGGER: When export power limit [sensor.sungrow_inverter_export_power_limit] changes state. CONDITIONS: export power limit [sensor.sungrow_inverter_export_power_limit] has a valid numeric value. ACTIONS: Set the value of set export power limit [input_number.sungrow_inverter_set_export_power_limit] to the current state value of export power limit [sensor.sungrow_inverter_export_power_limit].",
"natural_language": {
"trigger": "Whenever the export power limit [sensor.sungrow_inverter_export_power_limit] sensor changes its state.",
"conditions": "The automation only runs if the export power limit [sensor.sungrow_inverter_export_power_limit] sensor has a valid numeric value.",
"action": "Updates the set export power limit [input_number.sungrow_inverter_set_export_power_limit] input number to match the current value reported by the export power limit sensor."
},
"human_like": "Keeps the manual export power limit setting in sync with the current value reported by the inverter.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_battery_forced_charge_discharge_power",
"result": {
"structured": "TRIGGER: When set battery forced charge discharge power [input_number.sungrow_inverter_set_battery_forced_charge_discharge_power] changes state. CONDITIONS: None. ACTIONS: Write the integer value of set battery forced charge discharge power [input_number.sungrow_inverter_set_battery_forced_charge_discharge_power] to Modbus register 13051 on the SungrowInverter hub, then update the sensor battery forced charge discharge power [sensor.sungrow_inverter_battery_forced_charge_discharge_power].",
"natural_language": {
"trigger": "Whenever the value of the input number 'set battery forced charge discharge power' [input_number.sungrow_inverter_set_battery_forced_charge_discharge_power] changes.",
"conditions": "There are no conditions for this automation.",
"action": "It writes the current integer value from the input number to a specific Modbus register on the Sungrow inverter to set the forced charge/discharge power, and then it updates the corresponding sensor to reflect the new value."
},
"human_like": "Updates the inverter's battery forced charge or discharge power setting whenever the user changes the value in Home Assistant.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_battery_forced_charge_discharge_power_input_number",
"result": {
"structured": "TRIGGER: When battery forced charge discharge power [sensor.sungrow_inverter_battery_forced_charge_discharge_power] changes state. CONDITIONS: battery forced charge discharge power [sensor.sungrow_inverter_battery_forced_charge_discharge_power] has a valid value. ACTIONS: Set the value of set battery forced charge discharge power [input_number.sungrow_inverter_set_battery_forced_charge_discharge_power] to the current state value of battery forced charge discharge power [sensor.sungrow_inverter_battery_forced_charge_discharge_power].",
"natural_language": {
"trigger": "Whenever the battery forced charge discharge power [sensor.sungrow_inverter_battery_forced_charge_discharge_power] sensor updates its state.",
"conditions": "The automation only proceeds if the battery forced charge discharge power [sensor.sungrow_inverter_battery_forced_charge_discharge_power] sensor has a valid, non-null value.",
"action": "Updates the set battery forced charge discharge power [input_number.sungrow_inverter_set_battery_forced_charge_discharge_power] input number to match the latest value from the sensor."
},
"human_like": "Keeps the input number for setting the battery's forced charge/discharge power in sync with the latest value from the inverter sensor.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_battery_maximum_charge_power",
"result": {
"structured": "TRIGGER: When set battery maximum charge power [input_number.sungrow_inverter_set_battery_maximum_charge_power] changes state. CONDITIONS: None. ACTIONS: Write the value of set battery maximum charge power [input_number.sungrow_inverter_set_battery_maximum_charge_power] (divided by 10 and converted to integer) to Modbus register 33046 on the SungrowInverter hub, then update the sensor battery maximum charge power [sensor.sungrow_inverter_battery_maximum_charge_power].",
"natural_language": {
"trigger": "Whenever the value of the input number set battery maximum charge power [input_number.sungrow_inverter_set_battery_maximum_charge_power] is changed.",
"conditions": "There are no conditions that must be met.",
"action": "Sends the new power setting to the Sungrow inverter by writing the value (after dividing by 10 and converting it to a whole number) to a specific Modbus register. It then refreshes the sensor battery maximum charge power [sensor.sungrow_inverter_battery_maximum_charge_power] to reflect the change."
},
"human_like": "Updates the inverter's battery charge power limit when the user changes the setting and refreshes the displayed sensor value.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_battery_maximum_charge_power_input_number",
"result": {
"structured": "TRIGGER: When battery maximum charge power [sensor.sungrow_inverter_battery_maximum_charge_power] changes state. CONDITIONS: battery maximum charge power [sensor.sungrow_inverter_battery_maximum_charge_power] has a valid numeric value. ACTIONS: Set the value of set battery maximum charge power [input_number.sungrow_inverter_set_battery_maximum_charge_power] to the current state value of battery maximum charge power [sensor.sungrow_inverter_battery_maximum_charge_power].",
"natural_language": {
"trigger": "Whenever the sensor for the battery maximum charge power [sensor.sungrow_inverter_battery_maximum_charge_power] updates its value.",
"conditions": "The sensor must report a valid numeric value.",
"action": "Updates the corresponding input number, set battery maximum charge power [input_number.sungrow_inverter_set_battery_maximum_charge_power], to match the latest value from the sensor."
},
"human_like": "Keeps the user-configurable battery charge power setting in sync with the current value reported by the inverter.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_battery_maximum_discharge_power",
"result": {
"structured": "TRIGGER: When set battery maximum discharge power [input_number.sungrow_inverter_set_battery_maximum_discharge_power] changes state. CONDITIONS: None. ACTIONS: Write a value to the Sungrow Inverter Modbus register at address 33047 (the value is the state of set battery maximum discharge power [input_number.sungrow_inverter_set_battery_maximum_discharge_power] divided by 10 and converted to an integer) AND Update the entity battery maximum discharge power [sensor.sungrow_inverter_battery_maximum_discharge_power].",
"natural_language": {
"trigger": "Whenever the value of the set battery maximum discharge power [input_number.sungrow_inverter_set_battery_maximum_discharge_power] input number changes.",
"conditions": "There are no conditions for this automation.",
"action": "Sends the new power setting to the Sungrow inverter via Modbus, converting the value from watts to the inverter's required unit (dividing by 10), and then refreshes the sensor that displays the battery maximum discharge power [sensor.sungrow_inverter_battery_maximum_discharge_power] to reflect the change."
},
"human_like": "Updates the inverter's battery discharge power limit when the user changes the setting and refreshes the displayed sensor value.",
"complexity": "low"
}
},
{
"id": "sungrow_inverter_update_battery_maximum_discharge_power_input_number",
"result": {
"structured": "TRIGGER: When battery maximum discharge power [sensor.sungrow_inverter_battery_maximum_discharge_power] changes state. CONDITIONS: battery maximum discharge power [sensor.sungrow_inverter_battery_maximum_discharge_power] has a valid numeric value. ACTIONS: Set set battery maximum discharge power [input_number.sungrow_inverter_set_battery_maximum_discharge_power] to the current state value of battery maximum discharge power [sensor.sungrow_inverter_battery_maximum_discharge_power].",
"natural_language": {
"trigger": "Whenever the battery maximum discharge power [sensor.sungrow_inverter_battery_maximum_discharge_power] sensor updates its value.",
"conditions": "The automation only runs if the battery maximum discharge power [sensor.sungrow_inverter_battery_maximum_discharge_power] sensor has a valid, numeric value.",
"action": "It updates the set battery maximum discharge power [input_number.sungrow_inverter_set_battery_maximum_discharge_power] input field to match the latest value from the sensor."
},
"human_like": "Keeps the manual battery discharge power setting in sync with the current maximum discharge power reported by the inverter.",
"complexity": "low"
}
},
{
"id": "sungrow_wallbox_update_output_current",
"result": {
"structured": "TRIGGER: When set output current [input_number.sungrow_wallbox_set_output_current] changes state. CONDITIONS: The numeric value of set output current [input_number.sungrow_wallbox_set_output_current] is NOT equal to the numeric value of output current [sensor.sungrow_wallbox_output_current]. ACTIONS: Write the integer value of (set output current [input_number.sungrow_wallbox_set_output_current] multiplied by 10) to Modbus register 21202 on hub 'SungrowWallbox', slave 'secret wallbox_modbus_slave'. Then, request an update for the output current [sensor.sungrow_wallbox_output_current] sensor.",
"natural_language": {
"trigger": "Whenever the value of the set output current [input_number.sungrow_wallbox_set_output_current] is changed.",
"conditions": "The condition checks if the new value set for the output current is different from the current output current reading from the sensor [sensor.sungrow_wallbox_output_current]. The automation only proceeds if these two values are not equal.",
"action": "It sends the new current setting, scaled by a factor of 10, to the Sungrow wallbox via a Modbus command to update its hardware register. Afterwards, it refreshes the sensor [sensor.sungrow_wallbox_output_current] to read the new value from the device."
},
"human_like": "Updates the wallbox's charging current when a new target is set, ensuring the hardware setting matches the user's input.",
"complexity": "low"
}
},
{
"id": "sungrow_wallbox_update_output_current_input_number",
"result": {
"structured": "TRIGGER: When output current [sensor.sungrow_wallbox_output_current] changes state. CONDITIONS: output current [sensor.sungrow_wallbox_output_current] has a value AND its numeric value is between 6.0 and 16.0 inclusive AND its numeric value equals the numeric value of set output current [input_number.sungrow_wallbox_set_output_current]. ACTIONS: Set the value of set output current [input_number.sungrow_wallbox_set_output_current] to the numeric value of output current [sensor.sungrow_wallbox_output_current].",
"natural_language": {
"trigger": "Whenever the output current [sensor.sungrow_wallbox_output_current] sensor reports a new state.",
"conditions": "The automation only proceeds if the output current [sensor.sungrow_wallbox_output_current] sensor has a valid numeric reading, and that reading is within the range of 6.0 to 16.0 amps. Furthermore, the current reading must already match the value of the set output current [input_number.sungrow_wallbox_set_output_current] input number.",
"action": "Updates the set output current [input_number.sungrow_wallbox_set_output_current] input number to match the latest reading from the output current [sensor.sungrow_wallbox_output_current] sensor."
},
"human_like": "Keeps the wallbox's set current input synchronized with its actual output current, but only when the current is within a safe operating range.",
"complexity": "medium"
}
},
{
"id": "sungrow_wallbox_update_mileage_per_kwh",
"result": {
"structured": "TRIGGER: When set mileage per kwh [input_number.sungrow_wallbox_set_mileage_per_kwh] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register (hub: SungrowWallbox, slave: secret wallbox_modbus_slave, address: 21231) where the value is the integer result of (set mileage per kwh [input_number.sungrow_wallbox_set_mileage_per_kwh] value multiplied by 10). Then, update the entity mileage per kwh [sensor.sungrow_wallbox_mileage_per_kwh].",
"natural_language": {
"trigger": "Whenever the value of the input number 'set mileage per kwh' [input_number.sungrow_wallbox_set_mileage_per_kwh] is changed.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "Sends the new mileage per kWh setting to the Sungrow wallbox by writing a calculated value to a specific Modbus register. The value written is the set mileage per kWh multiplied by 10 and converted to an integer. Afterwards, it refreshes the 'mileage per kWh' sensor [sensor.sungrow_wallbox_mileage_per_kwh] to reflect the change."
},
"human_like": "Updates the wallbox's efficiency setting and refreshes the displayed value whenever the user changes the target mileage per kWh.",
"complexity": "low"
}
},
{
"id": "sungrow_wallbox_update_phase_mode",
"result": {
"structured": "TRIGGER: When set phase mode [input_select.sungrow_wallbox_set_phase_mode] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register on hub 'SungrowWallbox' at address 21203. The value is 0 if set phase mode [input_select.sungrow_wallbox_set_phase_mode] is 'Three-phase', or 1 if it is 'Single-phase'. Then, update the entities for phase mode raw [sensor.sungrow_wallbox_phase_mode_raw], phase status raw [sensor.sungrow_wallbox_phase_status_raw], minimum charging power [sensor.sungrow_wallbox_minimum_charging_power], and maximum charging power [sensor.sungrow_wallbox_maximum_charging_power].",
"natural_language": {
"trigger": "Whenever the user changes the selection in the set phase mode [input_select.sungrow_wallbox_set_phase_mode] dropdown.",
"conditions": "There are no conditions that must be met; the action runs immediately after the trigger.",
"action": "Sends a command to the Sungrow wallbox via Modbus to set its phase mode. It writes a value of 0 for 'Three-phase' or 1 for 'Single-phase' to a specific register. Afterwards, it refreshes several related sensors to ensure their displayed data is current."
},
"human_like": "Updates the wallbox's electrical phase configuration and refreshes related sensor data when the user changes the phase mode setting.",
"complexity": "medium"
}
},
{
"id": "sungrow_wallbox_update_charger_status",
"result": {
"structured": "TRIGGER: When set charger status [input_select.sungrow_wallbox_set_charger_status] changes state. CONDITIONS: None. ACTIONS: Write a value to a Modbus register at address 21210 on hub SungrowWallbox. The value is 0 if set charger status [input_select.sungrow_wallbox_set_charger_status] is \"Disable\", or 1 if it is \"Enable\". Then, update the following entities: charger enable status raw [sensor.sungrow_wallbox_charger_enable_status_raw], charger status raw [sensor.sungrow_wallbox_charger_status_raw], power request flag raw [sensor.sungrow_wallbox_power_request_flag_raw], power regulation switch raw [sensor.sungrow_wallbox_power_regulation_switch_raw], and charging status raw [sensor.sungrow_wallbox_charging_status_raw].",
"natural_language": {
"trigger": "Whenever the set charger status [input_select.sungrow_wallbox_set_charger_status] changes.",
"conditions": "There are no conditions; the automation runs every time the trigger occurs.",
"action": "It sends a command to the Sungrow Wallbox via Modbus to either disable or enable the charger, based on the selected status. Specifically, it writes a value of 0 to register 21210 if the status is set to \"Disable\", or a value of 1 if it is set to \"Enable\". After writing the command, it refreshes several related raw sensor values to ensure the system state is up to date."
},
"human_like": "Updates the Sungrow Wallbox charger status and refreshes related sensors whenever the user changes the charger status setting.",
"complexity": "medium"
}
},
{
"id": "sungrow_wallbox_update_start_charging",
"result": {
"structured": "TRIGGER: When set start charging [input_button.sungrow_wallbox_set_start_charging] changes state. CONDITIONS: None. ACTIONS: Write value 0 to Modbus register 21211 on hub SungrowWallbox with slave secret wallbox_modbus_slave AND Write value (set output current [input_number.sungrow_wallbox_set_output_current] converted to integer multiplied by 10) to Modbus register 21202 on hub SungrowWallbox with slave secret wallbox_modbus_slave AND Update entities charging status raw [sensor.sungrow_wallbox_charging_status_raw] and remote control bit [sensor.sungrow_wallbox_remote_control_bit].",
"natural_language": {
"trigger": "When the set start charging [input_button.sungrow_wallbox_set_start_charging] button is pressed or its state changes.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "Sends a command to start charging by writing the value 0 to a specific Modbus register (21211) on the SungrowWallbox. It then sets the charging output current by writing a value (calculated from the set output current [input_number.sungrow_wallbox_set_output_current] setting multiplied by 10) to another Modbus register (21202). Finally, it refreshes the data for the charging status raw [sensor.sungrow_wallbox_charging_status_raw] and remote control bit [sensor.sungrow_wallbox_remote_control_bit] sensors."
},
"human_like": "Starts the Sungrow wallbox charging process and sets the desired current when the start button is pressed.",
"complexity": "low"
}
},
{
"id": "sungrow_wallbox_update_stop_charging",
"result": {
"structured": "TRIGGER: When set stop charging [input_button.sungrow_wallbox_set_stop_charging] changes state. CONDITIONS: None. ACTIONS: Write value 1 to Modbus register 21211 on hub SungrowWallbox (slave: secret wallbox_modbus_slave) AND Update entities charging status raw [sensor.sungrow_wallbox_charging_status_raw] and remote control bit [sensor.sungrow_wallbox_remote_control_bit].",
"natural_language": {
"trigger": "When the set stop charging [input_button.sungrow_wallbox_set_stop_charging] button is pressed or its state changes.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a command to stop charging by writing a value of 1 to a specific Modbus register on the Sungrow wallbox, and then refreshes the data for the charging status raw [sensor.sungrow_wallbox_charging_status_raw] and remote control bit [sensor.sungrow_wallbox_remote_control_bit] sensors."
},
"human_like": "Stops the Sungrow wallbox from charging and updates the related status sensors when the 'stop charging' button is pressed.",
"complexity": "low"
}
},
{
"id": "sungrow_wallbox_update_charging_status",
"result": {
"structured": "TRIGGER: When charging status raw [sensor.sungrow_wallbox_charging_status_raw] changes state. CONDITIONS: None. ACTIONS: Update the following entities: control pilot voltage [sensor.sungrow_wallbox_control_pilot_voltage], pwm duty cycle [sensor.sungrow_wallbox_pwm_duty_cycle], start mode raw [sensor.sungrow_wallbox_start_mode_raw], power request flag raw [sensor.sungrow_wallbox_power_request_flag_raw], power regulation switch raw [sensor.sungrow_wallbox_power_regulation_switch_raw], charging end time raw [sensor.sungrow_wallbox_charging_end_time_raw], total energy clearing [sensor.sungrow_wallbox_total_energy_clearing], total energy [sensor.sungrow_wallbox_total_energy], phase a charging current [sensor.sungrow_wallbox_phase_a_charging_current], phase a charging voltage [sensor.sungrow_wallbox_phase_a_charging_voltage], phase b charging current [sensor.sungrow_wallbox_phase_b_charging_current], phase b charging voltage [sensor.sungrow_wallbox_phase_b_charging_voltage], phase c charging current [sensor.sungrow_wallbox_phase_c_charging_current], phase c charging voltage [sensor.sungrow_wallbox_phase_c_charging_voltage], charging power [sensor.sungrow_wallbox_charging_power], charging energy [sensor.sungrow_wallbox_charging_energy], output current [sensor.sungrow_wallbox_output_current].",
"natural_language": {
"trigger": "Whenever the charging status raw [sensor.sungrow_wallbox_charging_status_raw] sensor updates its value.",
"conditions": "There are no conditions that must be met.",
"action": "Forces an immediate refresh of data for a comprehensive list of related wallbox sensors, including control pilot voltage, power measurements, energy totals, and per-phase charging details."
},
"human_like": "Refreshes all the detailed charging data from the Sungrow wallbox whenever the main charging status changes.",
"complexity": "low"
}
},
{
"id": "sungrow_wallbox_automate_fast_updates_while_charging",
"result": {
"structured": "TRIGGER: When charging status [sensor.sungrow_wallbox_charging_status] changes to Charging. CONDITIONS: None. ACTIONS: First, update charging start time raw [sensor.sungrow_wallbox_charging_start_time_raw]. Then, repeatedly update the following sensors: charging end time raw [sensor.sungrow_wallbox_charging_end_time_raw], total energy clearing [sensor.sungrow_wallbox_total_energy_clearing], total energy [sensor.sungrow_wallbox_total_energy], phase a charging current [sensor.sungrow_wallbox_phase_a_charging_current], phase a charging voltage [sensor.sungrow_wallbox_phase_a_charging_voltage], phase b charging current [sensor.sungrow_wallbox_phase_b_charging_current], phase b charging voltage [sensor.sungrow_wallbox_phase_b_charging_voltage], phase c charging current [sensor.sungrow_wallbox_phase_c_charging_current], phase c charging voltage [sensor.sungrow_wallbox_phase_c_charging_voltage], charging power [sensor.sungrow_wallbox_charging_power], charging energy [sensor.sungrow_wallbox_charging_energy], output current [sensor.sungrow_wallbox_output_current], pwm duty cycle [sensor.sungrow_wallbox_pwm_duty_cycle], and control pilot voltage [sensor.sungrow_wallbox_control_pilot_voltage]; wait 5 seconds between each update cycle; continue this loop WHILE charging status raw [sensor.sungrow_wallbox_charging_status_raw] is '3'.",
"natural_language": {
"trigger": "When the charging status [sensor.sungrow_wallbox_charging_status] changes to 'Charging'.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "First, it forces an immediate update of the charging start time raw [sensor.sungrow_wallbox_charging_start_time_raw] sensor. Then, it enters a loop where it updates a comprehensive set of 14 charging-related sensors (including power, energy, voltage, and current for all phases), waits for 5 seconds, and repeats this process. This loop continues as long as the raw charging status [sensor.sungrow_wallbox_charging_status_raw] remains in the '3' state."
},
"human_like": "When the wallbox starts charging, it begins a fast, repeated update cycle for all charging data to ensure real-time monitoring while the vehicle is plugged in.",
"complexity": "medium"
}
}
]