Irrigation Unlimited Integration

Hello,
I’m having trouble getting a weekly watering schedule on sundays at 3 AM. I basically copied one from the github page and altered it to the appropriate day and time. It seems to work after I save the config and it shows on the frontend that it is scheduled to run on Sunday at 3 AM, however after that watering schedule occurs, It doesn’t seem to have another one scheduled. I know I’m missing something dumb, but I keep on going over the code and I get the same result. Can anyone point me in the right direction?
The frontend elements only show the history but nothing for scheduled.

irrigation_unlimited:
  history:
    enabled: true
    span: 60
    refresh_interval: 120
  controllers:
    all_zones_config:
      show:
        timeline: true
    zones:
      - name: "South Yard"
        entity_id: "switch.water_south_switch_2"
        show:
          timeline: true
      - name: "North Yard"
        entity_id: "switch.water_north_switch"
        show:
          timeline: true
    sequences:
      - name: "Weekly"
        duration: "00:05"
        delay: "00:02"
        repeat: 15
        schedules:
          weekday: [sun]
          time: "03:00"
        zones:
          - zone_id: 1
          - zone_id: 2

The default is to look ahead 3 days so you won’t see it appear until Thursday. To change this add a future_span: parameter.

irrigation_unlimited:
  history:
    enabled: true
    span: 60
    refresh_interval: 120
  controllers:
    all_zones_config:
      future_span: 7
      show:
        timeline: true
    zones:
      - name: "South Yard"
        entity_id: "switch.water_south_switch_2"
        show:
          timeline: true
      - name: "North Yard"
        entity_id: "switch.water_north_switch"
        show:
          timeline: true
    sequences:
      - name: "Weekly"
        duration: "00:05"
        delay: "00:02"
        repeat: 15
        schedules:
          weekday: [sun]
          time: "03:00"
        zones:
          - zone_id: 1
          - zone_id: 2

Hello,
is there an updated example of Card Status? Starting from 2024.1 version of this integration this error occurs: Template variable warning: 'dict object' has no attribute 'zones'

Hello I’m relatively new to home assistant and working my way through…I wish I had found this thread earlier as I was wrecking my head trying to do this with simple logic.
In saying that I have a question that I’m trying to work through.
My config file looks like this only for testing before I expand it out.

irrigation_unlimited:
  controllers:
    zones:
      - name: "Test"
        entity_id: "switch.sonoff_10023c9d7f_1"
      - name: "Back Lawn"
        entity_id: "input_boolean.back_lawn"
      - name: "Front Lawn"
        entity_id: "input_boolean.front_lawn"
    sequences:
      - delay: "00:00:10"
        schedules:
          - time: "07:00"
        zones:
          - zone_id: 1
            duration: "00:00:05"
          - zone_id: 2
            duration: "00:00:05"
          - zone_id: 3
            duration: "00:00:05"

Everything works fine and as it should, I have installed the irrigation card and can visually see all my zones. What I want to do is to start the sequence manually via a toggle switch without waiting for the scheduled time.
I’d thought I would try a simple automation with a toggle trigger to start the controller but that didnt seem to work, I even removed the schedule entry that didnt help either.
This is my automation file:

alias: auto
description: ""
triggers:
  - trigger: state
    entity_id:
      - input_boolean.auto
    from: "off"
    to: "on"
conditions: []
actions:
  - action: irrigation_unlimited.enable
    data:
      entity_id: binary_sensor.irrigation_unlimited_c1_m
mode: single

I’d love to get some directions, I don’t want individual manual zone activation but the complete sequence.

Ive solved it…an earlier post had the same requirement…thankyou

Thanks in advance.

Hi guys came across another issue, I’ve set up a manual sequence and at the end I want a notification to say watering is finished. However with my code below the notification is received immediately even before watering has completed, why is that?

- id: '1737887777947'
  alias: Auto
  description: ''
  triggers:
  - trigger: state
    entity_id:
    - input_boolean.auto
    from: 'off'
    to: 'on'
  conditions:
  - condition: state
    entity_id: input_boolean.auto
    state: 'on'
  actions:
  - action: irrigation_unlimited.manual_run
    data:
      entity_id: binary_sensor.irrigation_unlimited_c1_m
      sequence_id: 1
      queue: true
  - action: notify.mobile_app_sm_s928b
    metadata: {}
    data:
      message: Finished Watering
  mode: single

I’m thinking the notification should go at the end of my config file but not sure what syntax to use?

irrigation_unlimited:
  controllers:
    zones:
      - name: "Test"
        entity_id: "switch.sonoff_10023c9d7f_1"
      - name: "Back Lawn"
        entity_id: "input_boolean.back_lawn"
      - name: "Front Lawn"
        entity_id: "input_boolean.front_lawn"
    sequences:
      - delay: "00:00:10"
        schedules:
          - time: "07:00"
        zones:
          - zone_id: 1
            duration: "00:00:05"
          - zone_id: 2
            duration: "00:00:05"
          - zone_id: 3
            duration: "00:00:05"
"I'm thinking here, everything I tried I get synax errors"

Thanks in advance

You need to create another automation that listens for the notification. Copy the example in the README in section 10.1 on events.

Hi! Is there any way to have “duration” parameter data as a variable an not a fixed value written on the code? I tried to create an helper and using it as duration but after compiling i get a format error. Many thanks…

Set the duration parameter to a nominal value in the yaml and then use the adjust_time service/action to alter the time.

Hi, I want to thank you in advance for this great integration, after trying to write my own for several days (unsuccessfully), this discovery was a liberation for me. :slight_smile:
But to the point, I’m trying to create several programs, so that each has several sections (different and the same) and each has its own length.
I don’t know what I’m doing wrong?

irrigation_unlimited:
  controllers:
    zones:
      - name: "Hlavní ventil"
        entity_id: "switch.zvodovod_relay_1_master_valve"
      - name: "Skleník okurky"
      - entity_id: "switch.zvodovod_relay_1_section_1"
      - name: "Skleník rajčata"
      - entity_id: "switch.zvodovod_relay_1_section_2"
      - name: "Skleník zaseto"
      - entity_id: "switch.zvodovod_relay_1_section_3"
      - name: "Sekce 4"
      - entity_id: "switch.zvodovod_relay_1_section_4"
      - name: "Sekce 5"
      - entity_id: "switch.zvodovod_relay_1_section_5"
      - name: "Sekce 6"
      - entity_id: "switch.zvodovod_relay_1_section_6"
    sequences:
        schedules:
          - name: "Skleník ráno"
            time: "05:25"
        zones:
          - zone_id: [1, 2]
            duration: "00:01"
          - zone_id: [1, 3]
            duration: "00:01"
          - zone_id: [1, 4]
            duration: "00:01"

#          - name: "Skleník večer"
#          - time: "19:30"
#        zones:
#          - zone_id: [1, 2]
#            duration: "00:01"
#          - zone_id: [1, 3]
#            duration: "00:01"
#          - zone_id: [1, 4]
#            duration: "00:01"

#          - name: "Test sekce 6"
#            time: "17:25"
#
#          - zone_id: 7
#            duration: "00:02"

Your configuration works. Zone 1 comes on with zone 2 for one minute. Zone 2 switches off (zone 1 stays on) while zone 3 comes on for a minute. Zone 3 switches off (zone 1 is still on) and finally zone 4 comes on for another minute. Then everything is off.

What did you want?

Hello, first of all very good integration!
Is there a way to select (maybe from the frontend) different types of programs?
For example, I just finished sowing the lawn and for the next few days I have to keep it moist so I have to water for a very short time with different time intervals for the zones (I have 6)
Once the grass has grown I will return to the original schedule with watering every other day.
I currently have 5 different types of schedulers and if I could choose them I wouldn’t have to go through the program every time.
This is to avoid having to write the schedule every time and then comment on it.

Thanks

Been trying to set the controller maximum duration via a template but for some reason its not working. Probably something basic I’ve got wrong. Tried different approaches without any luck.

Have a number of minutes set via entity number.switch_irrigation_4ch_max_run_time_all_zones

So I thought this might work:

irrigation_unlimited:
  controllers:
    - name: "Back Irrigation" #via esp-home
      enabled: true
      all_zones_config:
        maximum:
          days: 0
          hours: 0
          minutes: "{{ states('number.switch_irrigation_4ch_max_run_time_all_zones') | float }}"
          # minutes: 3
          seconds: 0

Does the template at minutes not return a float? I am getting this error when checking the configuration:

Configuration warnings
Invalid config for 'irrigation_unlimited' at irrigation.yaml, line 49: expected float for dictionary value
'irrigation_unlimited->controllers->0->all_zones_config->maximum->minutes', got 
"{{ states('number.switch_irrigation_4ch_max_run_time_all_zones') | float }}"

I have checked the code via the template editor and its returning the expected value:

Also tried this, as suggested here:

"{{ states('number.switch_irrigation_4ch_max_run_time_all_zones')|int|multiply(60)|timestamp_custom('%H:%M:%S', false) }}"

Is it possible to set the maximum run time via a template or am I doing something wrong?

Colleagues, I would like to add integration with smart_irrigation. Lawns should be watered less often but more often (e.g. every three or four days). How to implement this in irrigation_unlimited?
I would like watering to be started if bucket < -25mm. The examples allow changing the watering time but not moving it to the next day.

Just setup the watering schedules for when you want

just add:

    conditions:
      - condition: numeric_state
        entity_id: sensor.smart_irrigation_[zone_name]
        below: "-25"
        attribute: bucket

to the “Smart Irrigation adjustment” automation (example 9.2)?

Running: 2024.10.0

Question: is this expected behavior?

If I have my controller disabled (Enable toggled off), I am still able to manually run a sequence. But, if I try and manually run just one of the zones in that sequence the zone does not run.

Note in the images below that the controller is not enabled.

This turns on all three zones that are in that sequence:

But this does not turn on the individual zone:

Is this expected, and if so curious why that is.

Not being able to run manually a zone within sequence when controller is disabled is by design I guess. A disabled sequence can still be run manually though.

A great integration - thanks for your hard work on this! I set up my schedule last night and it ran almost perfectly today. I have the controller (and have a switched controlled valve that is on the main supply) followed by 5 Zones in sequence. I set the pre and post amble on the controller to -10s so that the Zone Valves open, and then the main supply switches on 10s later. And the same in reverse, the Main supply closes 10s before the valve. However, i noticed this happening for each zone in the sequence - Zone1 valve opens, 10s later main supply opens, zone 1 finishes and closes, then main supply closes. Then Zone 2 opens, 10s later main supply opens and so on. How can I stop the main supply opening and closing and just have it open 10s after Zone 1 opens and then close 10s before Zone 5 finishes if possible?
I am happy if there is a small overlap (actually I would prefer that if possible?)
Zone 1 opens, 10s later main supply opens.
Once Zone 1 nears completion, open Zone 2 and then close Zone 1
and so on until Zone 5 completes - 10s before, close main valve and then close Z5 .

Possible?

Hello,

I’d like to put some information on an ESPHOME display. I can use zone’s name call some service (run/stop,adjust etc…) but i can’t show on the display the “Remained Time” . It is possible? I found it is an attribute of the irrigation_controller, but I can’t extract it.
thx in advance

I’ve found it :slight_smile: {{ state_attr(‘binary_sensor.irrigation_unlimited_c1_z1’,‘time_remaining’) }}

I found the delay option for the zone. I implemented that last night (with a negative number) in the hope that the new zone opening before the previous closes would keep the main valve open. But no - The main valve still closes and then opens as it moves from Zone to Zone.

So, basically, my question remains - How can I keep the controller valve on for the entire schedule/programme rather than it turning off and on again for each zone change?