Irrigation Unlimited Integration

Check back is intended to improve the reliability of switches in particular WiFi, ZigBee, ZWave, cloud based etc. that are prone to missing a beat now and then. It reexamines the switch after changing the state. If a discrepancy is found it will log a message and attempt to resync.

I have some zigbee switches that sometimes don’t respond to the on/off commands. They briefly appear in HA as the intended state but after a few seconds revert back to the original state. It seems the zigbee network reports back to HA the message was undeliverable and HA restores the original switch state. I have it configured to send an email if the switch causes a problem.

Thanks Robert for coming back so quickly.

I now understand “check_back” better, thanks.

I am not sure if irrigation_unlimited supports this functionality already or not. The way I think it should work is as follows:

  1. irrigation valves are switches. HA is a virtual representation of a physical/electronic/electric switch that controls the motor of the valve.

  2. Most switches (such as a rocker wall switch) incorporate the actual switching element with a physical / visual representation of the switch state in one element. for instance light is on if rocker wall switch is up, and off if down.

  3. KNX typically uses two group addresses, one for switching and one for state. This for instance makes sense if the actual switch on/off procedure can take time (long dimming off, switching a motor off, …) or if something is off due to a power failure even though that a device was not ‘actually’ switched off, or after reboot of KNX gateway. See this reference.

  4. In KNX language we refer to the actual ‘electronic switchgear’ as actuators. Most electronic geeks simply call it ‘relays’. More advanced KNX actuators even measure the current as additional confirmation that something is actually on or off (for instance a switch that is on, and its state that is on, only switches on a light if there is mains power and the DB board breaker has not tripped). Most actuators also have a manual switch on the actuator that triggers/toggles the switching. See this link to some common switch actuators in the KNX world.

  5. So, after a long introduction to switching, I am of the opinion that there might be a few use cases where an irrigation valve (relay, actuator, …) could be switch (at least off) independently from irrigation_unlimited controller doing that switch_off job. So my proposal is that if that is the case that, whilst for instance zone_1 is running and switch entity of zone_1 is being switched off that should be “known” by irrigation_unlimited and that trigger an off function.

  6. What is that off function? It could be a service call suspend by remaining run time of zone_1 (which means an external process can switch zone_1 on again and it continues running. Alternatively it could be service call adjust_time by negative remaining run time of zone 1, which means that zone is then “completed”.

Robert - I am happy to provide access to my KNX setup (or a replica setup, I can give you access to proxmox virtual environment with KNX if needed) or to do extensive testing and provide log files if needed, although I am pretty sure that KNX switches operate almost the same as other switches on HA.

Once again, thanks for such an amazing integration and your willingness to constantly upgrade it with user input.


PS: If you prefer to log a bug request on github, let me know will gladly do.

From what I saw, it does nothing, that is it does not resend an On command, which somehow is understandable. So in order to correct a discrepancy between the logical state (button state) and the physical state (relay state), it would be necessary to send a double toggle command with a short delay between both. What do you think?

In other words check_back does not try to set the wanted state, but reports that state has not been set correctly. Am I right? Somehow this is saying the same thing as my post just above, isn’t?

Very interesting gear. What kind of KNX/IP interface or router are you using?


I have used various KNX interfaces in the past.

Before deciding that Home Assistant is the rolls royce of home automation, I was quiet set on Gira, so I am using the Gira X1 as interface and Gira S1 as secure gateway/remote/VPN access.

Unfortunately, big mistake, as Gira cannot even deliver 1% of what HA can. The company is slow to respond to feature request and bugs, and their software does only work badly on Parallels (ie I am a Mac user).

On the other hand, KNX is a super robust network. When building a new home (which I have done a few times), then it is best to use wired KNX. It has never failed me, not even once. I run more than 130 devices using in access of +1,000 group addresses and the bus is extremely stabile.

What I like about KNX is that it runs over a paired cable, with auxillory power supply over a second pair. In addition, one could add wireless, TCP/IP backbone and even powerline (via existing electrical network) if need be.

Most of the KNX devices that I use are from a German company called MDT. I find them less expensive than most others, very well through through from a product feature / KNX programming point of view and yet mechanically/electrically very robust.

I mostly rely on actuators and sensors, and try to do as little of logical programming within the KNX network. It is not that great, and a software solution like HA on top of a KNX network does this much better. In addition, most KNX visual devices are not as great as HA in terms of flexibility and device range (since they are browser based, literally work anywhere and everywhere).

KNX devices are much more expensive than ie ESPHome based relays or sensors, but probably more robust mechanically and from an electric/power supply point of view. The KNX license is not cheap either, I think around EUR 1,000 for a cloud based license on ETS6. You will need the professional license very quickly, the home version is rather limiting.

Lastly, KNX community is not bad, but nothing compared to HA and ESPHome. Since I started of with HA, I am not looking back. I run a number of HA via Proxmox on Intel Nuc and love it.

Thank you very much for the thorough information. Without any doubt if I was to refurbish a new house or build a new one, I would go this route. Whenever I can I choose wired connections, unfortunately in old houses it not always possible.

1 Like

Robert, I have added a proper issue on github for this.

Check back does try to set the state again but HA is preventing the message because it thinks it is already in that state. The only way would be as you suggest to toggle the switch.

I agree. Is it something you may consider?

Sure, let’s have a crack at it. Pull the files from the repository and add a toggle: true to the check_back: object. It will do a back to back on/off or off/on depending on the state. Let me know.

Despite it’s raining like cats and dogs, in French we’ll say Il pleut comme vache qui pisse (I let you find the way to translate it :wink: ), it made the test and it is perfect. So now I may generalize the solution.

Side question: do you consider water consumption code stabilized or do you need so more tests?

Best to update over on the issue.

Apologies, I’ve been otherwise tied up. I did reset the timings on the controller side, and I seem to be getting the correct sprinkler on times now. I’ll have a closer look when I get some time and check exactly what it’s doing for the benefit of others that ay be having similar issues.

Hey All,

I’ve had this issue in the past where the dropdowns are not populated correctly. I know I was fine yesterday however when I checked this afternoon post updating HA and any other components it was as per the image below. Nothing really untoward showing in the logs.


OK, so the update is that the dropdown contents disappear if I reload HA configuration. I also need to run the Load UI Controls automation to repopulate them.

Does anyone know of a way to detect when config has been loaded and run the automation.


The only notification I can see is a service_call.

event_type: call_service
  domain: input_select
  service: reload
  service_data: {}
origin: LOCAL
time_fired: "2023-12-07T04:28:05.123082+00:00"
  id: 01HH18GT426QYQJYP1H9N6XD4W
  parent_id: null
  user_id: f68a0af8d31242f397e348e33894393e

I’m a little late to the party here. I feel like “unlimited” might be an understatement. Thank you Robert (and other contributors) for your work!

I’m trying to make it easy for others to run in the HA UI and to prevent running multiple zones at once.

First, a basic question: If I do not have any pump valves, is there a use case for configuring more than one controller? I guess I can use separate controllers for segmenting zones, but I’m kind of doing that already with multiple sequences.

Due to limited water pressure I’m using sequences to make sure only one zone (valve) runs at a time. I have to be careful to not let sequences overlap time-wise as it seems like it’s possible to schedule overlaps and run multiple zones.

Also, In the card below I’m able to do a manual run on the controller itself, which seems to turn on all vales at once. I’d like to prevent that so I’d like the user to be able to only run sequences.

Has anyone done a card modification where the card only shows the sequences? That is, where there’s no UI for the controller itself?

I’d also like to hide sequences that don’t have a schedule up soon (like “Summer” in the image). Any pointers to do that?

Finally, doe the HA cards have a hover/more info ability? The friendly names are brief and would love to be able to have a more detailed description for the various objects. It that something that could be accomplished now with User Objects?

Here’s my simple config I’m using:

refresh_interval: 5
  - name: First controller
      - name: "Zone 1"
        entity_id: switch.esphome_web_e1f178_esp_station_1
      - name: "Zone 2"
        entity_id: switch.esphome_web_e1f178_esp_station_2
      - name: "Zone 24"
        entity_id: switch.esphome_web_e1f178_esp_station_24
      - name: "Zone 3"
        entity_id: switch.esphome_web_e1f178_esp_station_3
        - name: "Spring and Autum"
            - time: "20:12"
              - zone_id: [1,2]
                duration: 10
              - zone_id: 3
                duration: 15
        - name: "Summer"
          duration: 60
            - name: "The 8 O'Clock oen"
              time: "15:12"
              month: [jun, jul, aug]
              # weekday: [mon,wed,fri]
              - zone_id: 1
                duration: 10
              - zone_id: 2
                duration: 5
              - zone_id: 3
                duration: 15

Welcome, you’re never too late.

I have seen one scenario where they wanted to split control of a system to various users and multiple controllers was the way to go. You can show/hide selected controllers in the card.

Sequences can overlap so you will need to be careful with the scheduling.

There is a HA plugin card-mod which allows you to play with cards. Add this to the bottom of the card configuration:

  style: |
    div.iu-controller-row .iu-td7 {
      display: none;
    div.iu-control-panel {
      display: none;

It will hide the controller menu and the panel to just leave the sequences (turn the selections on/off before you hide it).

Currently there is no hover but something to think about.


1 Like

A further update that will also hide sequences that are not due to run in the immediate future. Here is the full card configuration. Note: You must install card-mod first.

type: custom:irrigation-unlimited-card
always_show_sequences: true
always_show_zones: false
  style: |
    div.iu-controller-row .iu-td7 {
      display: none;
    div.iu-control-panel {
      display: none;
    div.iu-sequence-row.iu-enabled:not(.iu-suspended,.iu-running) {
      display: none;
1 Like