[ { "id": "Gbox420 Hempy Bucket State Notification", "result": { "structured": "TRIGGER: When hempy bucket1 state [sensor.hempy_bucket1_state] changes state OR When hempy bucket2 state [sensor.hempy_bucket2_state] changes state OR When a mobile app notification action event occurs with action START_WATERING OR When a mobile app notification action event occurs with action STOP_WATERING. CONDITIONS: None. ACTIONS: Set variables bucket_number (extracted from trigger entity_id) and new_state (trigger's new state). If new_state is DISABLED, create a persistent notification with ID hempy_bucket{bucket_number}_disabled and send a mobile notification to mobile app bits20 [notify.mobile_app_bits20] with actions START_WATERING, STOP_WATERING, and DISMISS_NOTIFICATION. If new_state is not DISABLED, dismiss the persistent notification with ID hempy_bucket{bucket_number}_disabled. If the trigger is a mobile app notification action event, then if the action is START_WATERING, call service hempy bucket1 start watering [esphome.hempy_bucket1_start_watering]; if the action is STOP_WATERING, call service hempy bucket1 stop watering [esphome.hempy_bucket1_stop_watering].", "natural_language": { "trigger": "The automation triggers when the state of either hempy bucket1 state [sensor.hempy_bucket1_state] or hempy bucket2 state [sensor.hempy_bucket2_state] changes, or when a mobile app notification action event is received with the action START_WATERING or STOP_WATERING.", "conditions": "There are no conditions for this automation.", "action": "When triggered, the automation first determines which bucket is involved and its new state. If the new state is DISABLED, it creates a persistent notification and sends a mobile notification to mobile app bits20 [notify.mobile_app_bits20] with options to start or stop watering, or dismiss. If the new state is not DISABLED, it dismisses any existing persistent notification for that bucket. If the trigger was a mobile app notification action, it will start or stop watering for bucket 1 by calling the corresponding service: hempy bucket1 start watering [esphome.hempy_bucket1_start_watering] or hempy bucket1 stop watering [esphome.hempy_bucket1_stop_watering]." }, "human_like": "Manages notifications and watering actions for Hempy buckets, sending alerts when a bucket is disabled and allowing remote control to start or stop watering from a mobile notification.", "complexity": "medium" } }, { "id": "Send Light1 Brightness via MQTT", "result": { "structured": "TRIGGER: When light1 brightness [number.gbox420_light1_brightness] changes state. CONDITIONS: None. ACTIONS: Publish the new integer brightness value to the MQTT topic 'Gbox420CMD/Lt1_B'.", "natural_language": { "trigger": "Whenever the light1 brightness [number.gbox420_light1_brightness] changes.", "conditions": "There are no conditions that must be met.", "action": "Sends the new brightness value as a whole number to the MQTT topic 'Gbox420CMD/Lt1_B'." }, "human_like": "Sends the brightness level of a light to an MQTT topic whenever it changes.", "complexity": "low" } }, { "id": "Send Light1 OnTime via MQTT", "result": { "structured": "TRIGGER: When light1 on time hour [number.gbox420_light1_ontimehour] changes state OR When light1 on time minute [number.gbox420_light1_ontimeminute] changes state. ACTIONS: Wait for 3 seconds, then publish a formatted time string to the MQTT topic 'Gbox420CMD/Lt1_OnT'. The payload is constructed by taking the integer values of light1 on time hour [number.gbox420_light1_ontimehour] and light1 on time minute [number.gbox420_light1_ontimeminute] and formatting them as a zero-padded four-digit string (HHMM).", "natural_language": { "trigger": "Whenever the value for the light1 on time hour [number.gbox420_light1_ontimehour] or the light1 on time minute [number.gbox420_light1_ontimeminute] changes.", "conditions": "There are no conditions for this automation.", "action": "After waiting for three seconds, it sends a message via MQTT to the topic 'Gbox420CMD/Lt1_OnT'. The message contains the current hour and minute values, formatted as a single four-digit number (for example, 1:05 PM becomes '1305')." }, "human_like": "Sends the configured 'light on' time to a device via MQTT whenever the hour or minute setting is changed.", "complexity": "low" } }, { "id": "Send Light1 OffTime via MQTT", "result": { "structured": "TRIGGER: When light1 off time hour [number.gbox420_light1_offtimehour] changes state OR when light1 off time minute [number.gbox420_light1_offtimeminute] changes state. ACTIONS: Wait for 3 seconds, then publish a formatted MQTT message to topic 'Gbox420CMD/Lt1_OfT' containing the current hour and minute values from light1 off time hour [number.gbox420_light1_offtimehour] and light1 off time minute [number.gbox420_light1_offtimeminute] as a four-digit string (HHMM).", "natural_language": { "trigger": "Whenever the value of either the light1 off time hour [number.gbox420_light1_offtimehour] or the light1 off time minute [number.gbox420_light1_offtimeminute] changes.", "conditions": "There are no conditions for this automation.", "action": "After waiting for three seconds, the automation sends an MQTT command. It reads the current hour and minute values from the two number entities, formats them as a four-digit string (like 1430 for 2:30 PM), and publishes this string to the MQTT topic 'Gbox420CMD/Lt1_OfT'." }, "human_like": "Sends the configured light off time to a device via MQTT whenever the hour or minute setting is changed.", "complexity": "low" } }, { "id": "Send Light2 OnTime via MQTT", "result": { "structured": "TRIGGER: When light2 brightness [number.gbox420_light2_brightness] changes state. CONDITIONS: None. ACTIONS: Publish the new state value of light2 brightness [number.gbox420_light2_brightness] as an integer to the MQTT topic 'Gbox420CMD/Lt2_B'.", "natural_language": { "trigger": "Whenever the brightness level for light2 brightness [number.gbox420_light2_brightness] changes.", "conditions": "There are no additional conditions that must be met.", "action": "Sends the new brightness value as a whole number to the MQTT broker on the topic 'Gbox420CMD/Lt2_B'." }, "human_like": "Sends the updated brightness level for light2 to a specific MQTT topic for external device control.", "complexity": "low" } }, { "id": "Send MQTT when Light2 OnTime Changes", "result": { "structured": "TRIGGER: When light2 on time hour [number.gbox420_light2_ontimehour] changes state OR when light2 on time minute [number.gbox420_light2_ontimeminute] changes state. ACTIONS: Wait for 3 seconds, then publish an MQTT message to topic 'Gbox420CMD/Lt2_OnT' with a payload containing the current hour and minute values formatted as a four-digit string (HHMM).", "natural_language": { "trigger": "When the value for either the light2 on time hour [number.gbox420_light2_ontimehour] or the light2 on time minute [number.gbox420_light2_ontimeminute] changes.", "conditions": "There are no conditions for this automation.", "action": "After a three-second delay, it sends an MQTT command. The command is published to the topic 'Gbox420CMD/Lt2_OnT' and contains the current hour and minute values, formatted as a single four-digit number (like 1430 for 2:30 PM)." }, "human_like": "Sends the updated scheduled 'on' time for a light to an external device via MQTT whenever the hour or minute setting is changed.", "complexity": "low" } }, { "id": "Send Light2 OffTime via MQTT", "result": { "structured": "TRIGGER: When light2 off time hour [number.gbox420_light2_offtimehour] changes state OR when light2 off time minute [number.gbox420_light2_offtimeminute] changes state. CONDITIONS: None. ACTIONS: Wait for 3 seconds, then publish an MQTT message to topic 'Gbox420CMD/Lt2_OfT' with a payload containing the hour and minute values from light2 off time hour [number.gbox420_light2_offtimehour] and light2 off time minute [number.gbox420_light2_offtimeminute] formatted as a four-digit string (HHMM).", "natural_language": { "trigger": "Whenever the value for the light2 off time hour [number.gbox420_light2_offtimehour] or the light2 off time minute [number.gbox420_light2_offtimeminute] changes.", "conditions": "There are no conditions that must be met.", "action": "After waiting for three seconds, the automation sends an MQTT command. It reads the current hour and minute values from the two number entities, formats them into a four-digit string (like '1430' for 2:30 PM), and publishes that string to the MQTT topic 'Gbox420CMD/Lt2_OfT'." }, "human_like": "Sends the configured light-off time to a device via MQTT whenever the hour or minute setting is changed.", "complexity": "low" } }, { "id": "Send Hempy bucket1 StartWeight", "result": { "structured": "TRIGGER: When bucket1 start weight [number.gbox420_bucket1_startweight] changes state. CONDITIONS: None. ACTIONS: Publish the new state value of bucket1 start weight [number.gbox420_bucket1_startweight] as a float to the MQTT topic 'Gbox420CMD/Hemp1_B1SW'.", "natural_language": { "trigger": "Whenever the value of the bucket1 start weight [number.gbox420_bucket1_startweight] changes.", "conditions": "There are no conditions for this automation.", "action": "Sends the new weight value to an MQTT topic named 'Gbox420CMD/Hemp1_B1SW'." }, "human_like": "Sends the updated start weight for bucket 1 to a remote system via MQTT whenever it changes.", "complexity": "low" } }, { "id": "Send Hempy bucket1 WateringIncrement", "result": { "structured": "TRIGGER: When bucket1 watering increment [number.gbox420_bucket1_wateringincrement] changes state. CONDITIONS: None. ACTIONS: Publish an MQTT message to topic 'Gbox420CMD/Hemp1_B1WI' with the payload being the new numeric state of bucket1 watering increment [number.gbox420_bucket1_wateringincrement].", "natural_language": { "trigger": "Whenever the value of the bucket1 watering increment [number.gbox420_bucket1_wateringincrement] changes.", "conditions": "There are no conditions that must be met.", "action": "Sends an MQTT command by publishing the new numeric value of the watering increment to the topic 'Gbox420CMD/Hemp1_B1WI'." }, "human_like": "Sends a command to adjust the watering increment for bucket1 whenever its value is changed in Home Assistant.", "complexity": "low" } }, { "id": "Send Hempy bucket1 MaxWeight", "result": { "structured": "TRIGGER: When bucket1 max weight [number.gbox420_bucket1_maxweight] changes state. CONDITIONS: None. ACTIONS: Publish the new numeric state value of bucket1 max weight [number.gbox420_bucket1_maxweight] to the MQTT topic 'Gbox420CMD/Hemp1_B1MW'.", "natural_language": { "trigger": "Whenever the value of the bucket1 max weight [number.gbox420_bucket1_maxweight] changes.", "conditions": "There are no conditions for this automation.", "action": "Sends the new numeric weight value to the MQTT topic 'Gbox420CMD/Hemp1_B1MW'." }, "human_like": "Sends the updated maximum weight setting for bucket 1 to an external device via MQTT.", "complexity": "low" } }, { "id": "Send Hempy bucket1 EvaporationTarget", "result": { "structured": "TRIGGER: When bucket1 evaporation target [number.gbox420_bucket1_evaporationtarget] changes state. CONDITIONS: None. ACTIONS: Publish the new numeric state of bucket1 evaporation target [number.gbox420_bucket1_evaporationtarget] as a float to the MQTT topic 'Gbox420CMD/Hemp1_B1ET'.", "natural_language": { "trigger": "Whenever the value of the bucket1 evaporation target [number.gbox420_bucket1_evaporationtarget] changes.", "conditions": "There are no conditions that must be met.", "action": "Sends the new numeric value of the bucket1 evaporation target [number.gbox420_bucket1_evaporationtarget] as a message to the MQTT topic 'Gbox420CMD/Hemp1_B1ET'." }, "human_like": "Forwards the updated evaporation target value for bucket1 to an external device via MQTT.", "complexity": "low" } }, { "id": "Send Hempy bucket1 DrainTarget", "result": { "structured": "TRIGGER: When bucket1 drain target [number.gbox420_bucket1_draintarget] changes state. CONDITIONS: None. ACTIONS: Publish the new numeric state value of bucket1 drain target [number.gbox420_bucket1_draintarget] to the MQTT topic 'Gbox420CMD/Hemp1_B1DT'.", "natural_language": { "trigger": "Whenever the value of the bucket1 drain target [number.gbox420_bucket1_draintarget] changes.", "conditions": "There are no conditions for this automation.", "action": "Sends the updated numeric value to an external device by publishing it to the MQTT topic 'Gbox420CMD/Hemp1_B1DT'." }, "human_like": "Sends the current drain target level for bucket1 to an external controller whenever it is changed.", "complexity": "low" } }, { "id": "Send Hempy bucket1 DrainTime", "result": { "structured": "TRIGGER: When bucket1 drain time [number.gbox420_bucket1_draintime] changes state. CONDITIONS: None. ACTIONS: Publish the new integer state value of bucket1 drain time [number.gbox420_bucket1_draintime] to the MQTT topic 'Gbox420CMD/Hemp1_B1D'.", "natural_language": { "trigger": "Whenever the value of bucket1 drain time [number.gbox420_bucket1_draintime] changes.", "conditions": "There are no conditions for this automation.", "action": "Sends the new numeric value of bucket1 drain time [number.gbox420_bucket1_draintime] as an integer to the MQTT topic 'Gbox420CMD/Hemp1_B1D'." }, "human_like": "Sends the updated drain time setting for bucket1 to an MQTT topic for device control.", "complexity": "low" } }, { "id": "Send Hempy bucket1 PumpSpeed", "result": { "structured": "TRIGGER: When bucket1 pump speed [number.gbox420_bucket1_pumpspeed] changes state. CONDITIONS: None. ACTIONS: Publish the new integer state value of bucket1 pump speed [number.gbox420_bucket1_pumpspeed] to the MQTT topic 'Gbox420CMD/Hemp1_B1PS'.", "natural_language": { "trigger": "Whenever the bucket1 pump speed [number.gbox420_bucket1_pumpspeed] changes its value.", "conditions": "There are no conditions for this automation.", "action": "Sends the new speed value, converted to a whole number, to the MQTT topic 'Gbox420CMD/Hemp1_B1PS'." }, "human_like": "Sends the pump speed setting for bucket 1 to a remote device via MQTT whenever it is changed.", "complexity": "low" } }, { "id": "Send Hempy bucket1 PumpTimeout", "result": { "structured": "TRIGGER: When bucket1 pump timeout [number.gbox420_bucket1_pumptimeout] changes state. CONDITIONS: None. ACTIONS: Publish the new integer state value of bucket1 pump timeout [number.gbox420_bucket1_pumptimeout] to the MQTT topic 'Gbox420CMD/Hemp1_B1T'.", "natural_language": { "trigger": "Whenever the value of the bucket1 pump timeout [number.gbox420_bucket1_pumptimeout] changes.", "conditions": "There are no conditions that must be met.", "action": "Sends the new numeric value of the bucket1 pump timeout [number.gbox420_bucket1_pumptimeout] as a message to the MQTT topic 'Gbox420CMD/Hemp1_B1T'." }, "human_like": "Sends the updated pump timeout setting for bucket1 to a remote device via MQTT.", "complexity": "low" } }, { "id": "Send Hempy bucket2 StartWeight", "result": { "structured": "TRIGGER: When bucket2 start weight [number.gbox420_bucket2_startweight] changes state. ACTIONS: Publish the new state value of bucket2 start weight [number.gbox420_bucket2_startweight] as a float to the MQTT topic 'Gbox420CMD/Hemp1_B2SW'.", "natural_language": { "trigger": "Whenever the value of the bucket2 start weight [number.gbox420_bucket2_startweight] changes.", "conditions": "There are no conditions for this automation.", "action": "Sends the updated weight value to an MQTT topic named 'Gbox420CMD/Hemp1_B2SW'." }, "human_like": "Sends the updated start weight for bucket 2 to a specific MQTT command topic.", "complexity": "low" } }, { "id": "Send Hempy bucket2 WateringIncrement", "result": { "structured": "TRIGGER: When bucket2 watering increment [number.gbox420_bucket2_wateringincrement] changes state. CONDITIONS: None. ACTIONS: Publish the new state value as a float to the MQTT topic 'Gbox420CMD/Hemp1_B2WI'.", "natural_language": { "trigger": "Whenever the value of the bucket2 watering increment [number.gbox420_bucket2_wateringincrement] changes.", "conditions": "There are no conditions for this automation.", "action": "Sends the new numeric value to an MQTT topic named 'Gbox420CMD/Hemp1_B2WI'." }, "human_like": "Sends the updated watering increment setting for bucket2 to a connected device via MQTT.", "complexity": "low" } }, { "id": "Send Hempy bucket2 MaxWeight", "result": { "structured": "TRIGGER: When bucket2 max weight [number.gbox420_bucket2_maxweight] changes state. CONDITIONS: None. ACTIONS: Publish the new numeric state value of bucket2 max weight [number.gbox420_bucket2_maxweight] to the MQTT topic 'Gbox420CMD/Hemp1_B2MW'.", "natural_language": { "trigger": "Whenever the value for bucket2 max weight [number.gbox420_bucket2_maxweight] changes.", "conditions": "There are no conditions that must be met.", "action": "Sends the new weight value to an external device by publishing it to the MQTT topic 'Gbox420CMD/Hemp1_B2MW'." }, "human_like": "Sends the updated maximum weight setting for bucket 2 to an external controller via MQTT.", "complexity": "low" } }, { "id": "Send Hempy bucket2 EvaporationTarget", "result": { "structured": "TRIGGER: When bucket2 evaporation target [number.gbox420_bucket2_evaporationtarget] changes state. CONDITIONS: None. ACTIONS: Publish the new numeric state value of bucket2 evaporation target [number.gbox420_bucket2_evaporationtarget] to the MQTT topic 'Gbox420CMD/Hemp1_B2ET'.", "natural_language": { "trigger": "Whenever the value of the bucket2 evaporation target [number.gbox420_bucket2_evaporationtarget] changes.", "conditions": "There are no conditions that must be met.", "action": "Sends the new numeric value of the bucket2 evaporation target [number.gbox420_bucket2_evaporationtarget] as a message to the MQTT topic 'Gbox420CMD/Hemp1_B2ET'." }, "human_like": "Forwards any changes to the evaporation target for bucket 2 to a specific MQTT command topic.", "complexity": "low" } }, { "id": "Send Hempy bucket2 DrainTarget", "result": { "structured": "TRIGGER: When bucket2 drain target [number.gbox420_bucket2_draintarget] changes state. CONDITIONS: None. ACTIONS: Publish an MQTT message to topic 'Gbox420CMD/Hemp1_B2DT' with the payload set to the new numeric state of bucket2 drain target [number.gbox420_bucket2_draintarget].", "natural_language": { "trigger": "Whenever the value of the bucket2 drain target [number.gbox420_bucket2_draintarget] changes.", "conditions": "There are no conditions that must be met.", "action": "Sends an MQTT command by publishing the new numeric value of the bucket2 drain target to the topic 'Gbox420CMD/Hemp1_B2DT'." }, "human_like": "Sends the updated drain target value for bucket 2 to an external device via MQTT whenever it changes.", "complexity": "low" } }, { "id": "Send Hempy bucket2 DrainTime", "result": { "structured": "TRIGGER: When bucket2 drain time [number.gbox420_bucket2_draintime] changes state. CONDITIONS: None. ACTIONS: Publish the new integer value of bucket2 drain time [number.gbox420_bucket2_draintime] to the MQTT topic 'Gbox420CMD/Hemp1_B2D'.", "natural_language": { "trigger": "Whenever the value of the bucket2 drain time [number.gbox420_bucket2_draintime] changes.", "conditions": "There are no conditions for this automation.", "action": "Sends the new integer value of the bucket2 drain time [number.gbox420_bucket2_draintime] as a message to the MQTT topic 'Gbox420CMD/Hemp1_B2D'." }, "human_like": "Sends the updated drain time setting for bucket 2 to an external device via MQTT.", "complexity": "low" } }, { "id": "Send Hempy bucket2 PumpSpeed", "result": { "structured": "TRIGGER: When bucket2 pump speed [number.gbox420_bucket2_pumpspeed] changes state. CONDITIONS: None. ACTIONS: Publish an MQTT message to topic 'Gbox420CMD/Hemp1_B2PS' with the payload set to the new integer value of bucket2 pump speed [number.gbox420_bucket2_pumpspeed].", "natural_language": { "trigger": "Whenever the bucket2 pump speed [number.gbox420_bucket2_pumpspeed] changes its value.", "conditions": "There are no conditions that must be met.", "action": "Sends an MQTT command by publishing the new speed value, converted to a whole number, to the topic 'Gbox420CMD/Hemp1_B2PS'." }, "human_like": "Sends the current pump speed setting for bucket 2 to an external device via MQTT whenever it is changed.", "complexity": "low" } }, { "id": "Send Hempy bucket2 PumpTimeout", "result": { "structured": "TRIGGER: When bucket2 pump timeout [number.gbox420_bucket2_pumptimeout] changes state. CONDITIONS: None. ACTIONS: Publish the new state value of bucket2 pump timeout [number.gbox420_bucket2_pumptimeout] as an integer to the MQTT topic 'Gbox420CMD/Hemp1_B2T'.", "natural_language": { "trigger": "Whenever the value of the bucket2 pump timeout [number.gbox420_bucket2_pumptimeout] changes.", "conditions": "There are no conditions for this automation.", "action": "Sends the new numeric value of the bucket2 pump timeout [number.gbox420_bucket2_pumptimeout] as a message to the MQTT topic 'Gbox420CMD/Hemp1_B2T'." }, "human_like": "Forwards the pump timeout setting from Home Assistant to a specific MQTT topic whenever it is changed.", "complexity": "low" } }, { "id": "Send Aeroponics MinPressure", "result": { "structured": "TRIGGER: When aero1 min pressure [number.gbox420_aero1_minpressure] changes state. CONDITIONS: None. ACTIONS: Publish the new numeric state value of aero1 min pressure [number.gbox420_aero1_minpressure] to the MQTT topic 'Gbox420CMD/Aero1_PMn'.", "natural_language": { "trigger": "Whenever the value of the aero1 min pressure [number.gbox420_aero1_minpressure] changes.", "conditions": "There are no conditions that need to be met.", "action": "Sends the updated pressure value to an external system by publishing it to the MQTT topic 'Gbox420CMD/Aero1_PMn'." }, "human_like": "Sends the updated minimum pressure setting for the aeroponics system to a controller whenever it is changed.", "complexity": "low" } }, { "id": "Send Aeroponics MaxPressure", "result": { "structured": "TRIGGER: When aero1 max pressure [number.gbox420_aero1_maxpressure] changes state. CONDITIONS: None. ACTIONS: Publish the new numeric state value of aero1 max pressure [number.gbox420_aero1_maxpressure] to the MQTT topic 'Gbox420CMD/Aero1_PMx'.", "natural_language": { "trigger": "Whenever the value of aero1 max pressure [number.gbox420_aero1_maxpressure] changes.", "conditions": "There are no conditions that must be met.", "action": "Sends the new pressure value to a specific MQTT topic ('Gbox420CMD/Aero1_PMx') for external control." }, "human_like": "Automatically sends the updated maximum pressure setting from the aeroponics system to a controller via MQTT.", "complexity": "low" } }, { "id": "Send Aeroponics DayInterval", "result": { "structured": "TRIGGER: When aero1 day interval [number.gbox420_aero1_dayinterval] changes state. CONDITIONS: None. ACTIONS: Publish the new integer state value of aero1 day interval [number.gbox420_aero1_dayinterval] to the MQTT topic 'Gbox420CMD/Aero1_DInt'.", "natural_language": { "trigger": "Whenever the value of the aero1 day interval [number.gbox420_aero1_dayinterval] changes.", "conditions": "There are no conditions that must be met.", "action": "Sends the new numerical value of the aero1 day interval [number.gbox420_aero1_dayinterval] as a message to the MQTT topic 'Gbox420CMD/Aero1_DInt'." }, "human_like": "Sends the updated day interval setting for the aeroponics system to a connected device via MQTT.", "complexity": "low" } }, { "id": "Send Aeroponics NightInterval", "result": { "structured": "TRIGGER: When aero1 night interval [number.gbox420_aero1_nightinterval] changes state. ACTIONS: Publish the new integer state value to the MQTT topic 'Gbox420CMD/Aero1_NInt'.", "natural_language": { "trigger": "Whenever the value of the aero1 night interval [number.gbox420_aero1_nightinterval] number entity changes.", "conditions": "There are no conditions for this automation.", "action": "Sends the new integer value of the aero1 night interval to the MQTT topic 'Gbox420CMD/Aero1_NInt'." }, "human_like": "Sends the updated night interval setting for the aeroponics system to a controller via MQTT.", "complexity": "low" } }, { "id": "Send Aeroponics SprayDuration", "result": { "structured": "TRIGGER: When aero1 spray duration [number.gbox420_aero1_sprayduration] changes state. CONDITIONS: None. ACTIONS: Publish the new numeric state value of aero1 spray duration [number.gbox420_aero1_sprayduration] to the MQTT topic 'Gbox420CMD/Aero1_Dur'.", "natural_language": { "trigger": "Whenever the value of the aero1 spray duration [number.gbox420_aero1_sprayduration] changes.", "conditions": "There are no conditions for this automation.", "action": "Sends the updated spray duration value to an MQTT topic named 'Gbox420CMD/Aero1_Dur'." }, "human_like": "Sends the configured spray duration setting to the aeroponics system whenever it is changed.", "complexity": "low" } }, { "id": "Send Aeroponics PumpSpeed", "result": { "structured": "TRIGGER: When aero1 pump speed [number.gbox420_aero1_pumpspeed] changes state. CONDITIONS: None. ACTIONS: Publish the new integer value of aero1 pump speed [number.gbox420_aero1_pumpspeed] to the MQTT topic 'Gbox420CMD/Aero1_PS'.", "natural_language": { "trigger": "Whenever the value of the aero1 pump speed [number.gbox420_aero1_pumpspeed] changes.", "conditions": "There are no conditions for this automation.", "action": "Sends the new speed value, converted to a whole number, as a message to the MQTT topic 'Gbox420CMD/Aero1_PS'." }, "human_like": "Sends the aeroponics pump speed setting to a controller whenever it is changed.", "complexity": "low" } }, { "id": "Send Aeroponics PumpPrimingTime", "result": { "structured": "TRIGGER: When aero1 pump priming time [number.gbox420_aero1_pumpprimingtime] changes state. CONDITIONS: None. ACTIONS: Publish the new integer state value of aero1 pump priming time [number.gbox420_aero1_pumpprimingtime] to the MQTT topic 'Gbox420CMD/Aero1_PPT'.", "natural_language": { "trigger": "Whenever the value of the aero1 pump priming time [number.gbox420_aero1_pumpprimingtime] changes.", "conditions": "There are no conditions for this automation.", "action": "Sends the new numeric value of the aero1 pump priming time [number.gbox420_aero1_pumpprimingtime] as a message to the MQTT topic 'Gbox420CMD/Aero1_PPT'." }, "human_like": "Sends the updated pump priming time setting from Home Assistant to the aeroponics system via MQTT.", "complexity": "low" } }, { "id": "Send Aeroponics PumpTimeout", "result": { "structured": "TRIGGER: When aero1 pump timeout [number.gbox420_aero1_pumptimeout] changes state. CONDITIONS: None. ACTIONS: Publish the new numeric state of aero1 pump timeout [number.gbox420_aero1_pumptimeout] as an integer to the MQTT topic 'Gbox420CMD/Aero1_PT'.", "natural_language": { "trigger": "Whenever the value of the aero1 pump timeout [number.gbox420_aero1_pumptimeout] changes.", "conditions": "There are no conditions that must be met.", "action": "Sends the new numeric value of the aero1 pump timeout [number.gbox420_aero1_pumptimeout] as a message to the MQTT topic 'Gbox420CMD/Aero1_PT'." }, "human_like": "Sends the updated pump timeout setting from Home Assistant to the aeroponics controller via MQTT.", "complexity": "low" } }, { "id": "Gbox420 Hempy Bucket State Notification", "result": { "structured": "TRIGGER: When hempy bucket1 state [sensor.hempy_bucket1_state] changes state OR When hempy bucket2 state [sensor.hempy_bucket2_state] changes state OR When a mobile app notification action event occurs with action START_WATERING OR When a mobile app notification action event occurs with action STOP_WATERING. CONDITIONS: None. ACTIONS: Set variable bucket_number based on trigger: 1 for hempy bucket1 state, 2 for hempy bucket2 state, or from event data otherwise. Set variable new_state to the new state of the sensor or UNKNOWN. IF new_state is DISABLED OR new_state is DRY THEN create a persistent notification with ID hempy_bucket_alert and send a mobile notification to mobile app bits20 [notify.mobile_app_bits20] with actions START_WATERING, STOP_WATERING, and DISMISS_NOTIFICATION. IF new_state is NOT DISABLED AND new_state is NOT DRY THEN dismiss the persistent notification with ID hempy_bucket_alert. IF the trigger event action is START_WATERING OR STOP_WATERING THEN call the corresponding ESPHome service esphome.hempy_bucket_start_watering or esphome.hempy_bucket_stop_watering.", "natural_language": { "trigger": "This automation triggers when the state of either hempy bucket1 state [sensor.hempy_bucket1_state] or hempy bucket2 state [sensor.hempy_bucket2_state] changes. It also triggers when a user interacts with a mobile notification, specifically tapping an action button for START_WATERING or STOP_WATERING.", "conditions": "There are no conditions that must be met for the automation to proceed.", "action": "The automation first determines which bucket is involved (bucket 1 or 2) and captures the new state of the sensor. If the new state is DISABLED or DRY, it creates a persistent alert notification and sends a rich notification to the mobile app bits20 [notify.mobile_app_bits20], offering buttons to start watering, stop watering, or dismiss. If the new state is any other value, it dismisses any existing persistent alert for that bucket. Finally, if the trigger was a user tapping START_WATERING or STOP_WATERING in the mobile notification, it calls the corresponding ESPHome service to start or stop watering for the specified bucket." }, "human_like": "Manages notifications and watering actions for hempy buckets, sending alerts when a bucket is dry or disabled and allowing remote control via a mobile app.", "complexity": "medium" } } ]