[ { "id": "IU1653340123453", "result": { "structured": "TRIGGER: At 02:00 daily OR When Home Assistant starts OR When the state of irrigation unlimited rain weighted total [sensor.irrigation_unlimited_rain_weighted_total] OR irrigation unlimited temperature 5 day moving average [sensor.irrigation_unlimited_temperature_5_day_moving_average] OR wupws preciprate [sensor.wupws_preciprate] changes. CONDITIONS: (irrigation unlimited rain weighted total [sensor.irrigation_unlimited_rain_weighted_total] has a valid numeric value) AND (wupws preciprate [sensor.wupws_preciprate] has a valid numeric value) AND (irrigation unlimited temperature 5 day moving average [sensor.irrigation_unlimited_temperature_5_day_moving_average] has a valid numeric value). ACTIONS: Call the irrigation_unlimited.adjust_time service with a percentage calculated from a template. The template uses the sensor values to compute a multiplier based on thresholds for rain total, rain rate, and temperature average. If rain rate is below its threshold and rain total is below its threshold, the multiplier is the product of a temperature factor and a rain total factor. Otherwise, the multiplier is set to 0. The final percentage is the multiplier multiplied by 100 and rounded to the nearest whole number.", "natural_language": { "trigger": "This automation runs at 2:00 AM every day, when Home Assistant starts up, or whenever the state of the irrigation unlimited rain weighted total [sensor.irrigation_unlimited_rain_weighted_total], the irrigation unlimited temperature 5 day moving average [sensor.irrigation_unlimited_temperature_5_day_moving_average], or the wupws preciprate [sensor.wupws_preciprate] sensor changes.", "conditions": "All three sensors must provide valid numeric readings. Specifically, the irrigation unlimited rain weighted total [sensor.irrigation_unlimited_rain_weighted_total] and wupws preciprate [sensor.wupws_preciprate] must not be in an error state, and the irrigation unlimited temperature 5 day moving average [sensor.irrigation_unlimited_temperature_5_day_moving_average] must have a valid temperature reading.", "action": "Adjusts the irrigation schedule run time by calling the 'irrigation_unlimited.adjust_time' service. The adjustment percentage is calculated dynamically. It considers recent rainfall totals, current rain rate, and the 5-day average temperature. If it's not currently raining heavily and the total rainfall is below a set limit, the adjustment is a percentage based on temperature and rainfall. If it is raining or enough rain has already fallen, the adjustment is set to 0%, effectively pausing irrigation." }, "human_like": "Automatically adjusts the irrigation schedule each morning based on recent weather conditions like rainfall and temperature to conserve water.", "complexity": "high" } }, { "id": "Irrigation Unlimited Load UI Controls", "result": { "structured": "TRIGGER: When Home Assistant starts. CONDITIONS: None. ACTIONS: Call irrigation_unlimited.list_config service to populate irrigation unlimited entities [input_select.irrigation_unlimited_entities] with the 'entities' section list, setting the first item to ''. AND Call irrigation_unlimited.list_config service to populate irrigation unlimited sequences [input_select.irrigation_unlimited_sequences] with the 'sequences' section list, setting the first item to ''.", "natural_language": { "trigger": "When Home Assistant starts up.", "conditions": "There are no conditions for this automation.", "action": "It populates the dropdown list for irrigation unlimited entities [input_select.irrigation_unlimited_entities] with the available irrigation entities, and populates the dropdown list for irrigation unlimited sequences [input_select.irrigation_unlimited_sequences] with the available irrigation sequences, setting the default selection for both to ''." }, "human_like": "Loads the available irrigation controllers and sequences into user interface dropdowns when Home Assistant starts.", "complexity": "low" } }, { "id": "Irrigation Unlimited Entities Change", "result": { "structured": "TRIGGER: When irrigation unlimited entities [input_select.irrigation_unlimited_entities] changes state from . CONDITIONS: None. ACTIONS: Set irrigation unlimited sequences [input_select.irrigation_unlimited_sequences] to option AND Set options for irrigation unlimited sequence zones [input_select.irrigation_unlimited_sequence_zones] to a list containing only .", "natural_language": { "trigger": "When the irrigation unlimited entities [input_select.irrigation_unlimited_entities] dropdown selection changes from the value .", "conditions": "There are no conditions for this automation.", "action": "Sets the irrigation unlimited sequences [input_select.irrigation_unlimited_sequences] dropdown to the option and resets the options available in the irrigation unlimited sequence zones [input_select.irrigation_unlimited_sequence_zones] dropdown to only contain the value ." }, "human_like": "Resets related irrigation control dropdowns when the main irrigation entity selection is changed from its default state.", "complexity": "low" } }, { "id": "Irrigation Unlimited Sequences Change", "result": { "structured": "TRIGGER: When irrigation unlimited sequences [input_select.irrigation_unlimited_sequences] changes state from . CONDITIONS: None. ACTIONS: Set irrigation unlimited entities [input_select.irrigation_unlimited_entities] to option .", "natural_language": { "trigger": "When the irrigation unlimited sequences [input_select.irrigation_unlimited_sequences] dropdown selection changes from the '' value.", "conditions": "There are no conditions that must be met.", "action": "Reset the irrigation unlimited entities [input_select.irrigation_unlimited_entities] dropdown selection to the '' value." }, "human_like": "Resets the irrigation entities selection whenever the sequences selection is changed from its default 'none' state.", "complexity": "low" } }, { "id": "Irrigation Unlimited Sequences Select", "result": { "structured": "TRIGGER: When the template condition '{{ is_state(\"input_select.irrigation_unlimited_sequences\", \"\") == False }}' evaluates to True. CONDITIONS: None. ACTIONS: Call the service 'irrigation_unlimited.list_config' with data: entity_id is input_select.irrigation_unlimited_sequence_zones, section is sequence_zones, first is , controller_sequence_entity is input_select.irrigation_unlimited_sequences.", "natural_language": { "trigger": "When the irrigation unlimited sequences [input_select.irrigation_unlimited_sequences] selection is not set to ''.", "conditions": "There are no additional conditions.", "action": "Populates the irrigation unlimited sequence zones [input_select.irrigation_unlimited_sequence_zones] dropdown by calling the 'irrigation_unlimited.list_config' service, which lists the zones for the selected sequence." }, "human_like": "Updates the available irrigation zones whenever a specific irrigation sequence is selected.", "complexity": "low" } }, { "id": "IU1653097957047", "result": { "structured": "TRIGGER: When smart irrigation zone [sensor.smart_irrigation_[zone_name]] changes state to null. CONDITIONS: None. ACTIONS: Call service irrigation_unlimited.adjust_time for entity irrigation unlimited c1 s1 [binary_sensor.irrigation_unlimited_c1_s1] with data actual set to a timedelta of seconds equal to the integer value of the new state (or 0 if not an integer).", "natural_language": { "trigger": "When the smart irrigation zone [sensor.smart_irrigation_[zone_name]] sensor's state changes to a null value.", "conditions": "There are no conditions for this automation.", "action": "It adjusts the watering time for the irrigation unlimited c1 s1 [binary_sensor.irrigation_unlimited_c1_s1] zone. The new watering duration is calculated by converting the new state value of the smart irrigation sensor to an integer (using 0 if the conversion fails) and setting that number of seconds as the adjusted time." }, "human_like": "Automatically adjusts the irrigation schedule for a zone based on a calculated watering duration from a smart irrigation sensor.", "complexity": "low" } }, { "id": "IU1653098247170", "result": { "structured": "TRIGGER: When an irrigation_unlimited_finish event occurs. CONDITIONS: (The event data schedule.index is not none) AND (The event data entity_id equals binary_sensor.irrigation_unlimited_c1_s1). ACTIONS: Reset the smart irrigation zone [sensor.smart_irrigation_[zone_name]] bucket.", "natural_language": { "trigger": "When the irrigation system finishes a watering cycle, as indicated by the irrigation_unlimited_finish event.", "conditions": "The event must be for the specific irrigation zone irrigation unlimited c1 s1 [binary_sensor.irrigation_unlimited_c1_s1] and must contain a valid schedule index in its data.", "action": "Resets the water bucket for the smart irrigation zone [sensor.smart_irrigation_[zone_name]]." }, "human_like": "Resets the irrigation water budget after a specific zone finishes watering.", "complexity": "low" } }, { "id": "IU1653340127290", "result": { "structured": "TRIGGER: At 02:00 daily OR when Home Assistant starts. CONDITIONS: plaid systems ps sprzms slp3 humidity [sensor.plaid_systems_ps_sprzms_slp3_humidity] has a valid numeric state (not equal to -1). ACTIONS: Adjust the runtime for irrigation unlimited c1 m [binary_sensor.irrigation_unlimited_c1_m], sequence 0, using a percentage calculated from the soil moisture sensor. The calculation sets a threshold of 80. If the humidity reading is below the threshold, the multiplier is (1 - (humidity / threshold)). If the humidity is at or above the threshold, the multiplier is 0. The final adjustment percentage is (multiplier * 100) rounded to the nearest whole number.", "natural_language": { "trigger": "The automation runs every day at 2:00 AM, or when Home Assistant first starts up.", "conditions": "It only proceeds if the plaid systems ps sprzms slp3 humidity [sensor.plaid_systems_ps_sprzms_slp3_humidity] sensor is reporting a valid numeric reading.", "action": "It adjusts the watering time for the irrigation unlimited c1 m [binary_sensor.irrigation_unlimited_c1_m] system. The adjustment is based on the soil moisture level: if the humidity is below 80%, the watering time is reduced proportionally; if it's 80% or higher, the watering is turned off for that sequence." }, "human_like": "Automatically adjusts the garden watering schedule based on soil moisture levels, running a check every night at 2 AM.", "complexity": "medium" } }, { "id": "IU1653849227290", "result": { "structured": "TRIGGER: When the time is 02:00 OR when Home Assistant starts. CONDITIONS: The irrigation unlimited average soil temperature [sensor.irrigation_unlimited_average_soil_temperature] has a valid numeric value (not equal to -273). ACTIONS: Call the service irrigation_unlimited.adjust_time on irrigation unlimited c1 m [binary_sensor.irrigation_unlimited_c1_m] for sequence 0, with a percentage calculated as: (average soil temperature / 20.0) * 100, rounded to the nearest whole number.", "natural_language": { "trigger": "The automation runs either at 2:00 AM every day or when Home Assistant starts up.", "conditions": "It only proceeds if the irrigation unlimited average soil temperature [sensor.irrigation_unlimited_average_soil_temperature] sensor reports a valid reading (i.e., its value is not the default error value of -273).", "action": "It adjusts the irrigation schedule for the controller irrigation unlimited c1 m [binary_sensor.irrigation_unlimited_c1_m], specifically sequence 0. The adjustment percentage is calculated based on the average soil temperature: the temperature is divided by a threshold of 20.0, and the result is converted to a percentage and rounded to the nearest whole number." }, "human_like": "Adjusts the irrigation schedule based on the average soil temperature, running the calculation daily at 2 AM or when the system starts.", "complexity": "medium" } } ]