Irrigation Custom Component with Custom Card

Thank you very much for your detailed response! I’ll look into this.

It is interesting to me that soil moisture is something that is only very rarely used for irrigation systems. To me it seems like that would be much easier and more reliable than all the approximative evaporation-calculations that are being done in many systems.

Thanks for the integration - proving useful in a drying climate.

If the program is set to a frequency of 2 (ie every 2nd day) and a zone is set to frequency of 3, does that mean the zone will operate only every 6 days (ie when both program & zone coincide to turn on)?

Hi,

The program level frequency is the default if a zone has not been configured with a frequency. If a zone frequency has been configured it will operate at that frequency. You can enable/disable the zone frequency in the zone configuration.

for example:
Program: 2 days
Zone 1: 3 days - will run every 3 days
Zone 2: not defined - will run every 2 days

Program: Mon, Wed
Zone 1: 3 days - will run every 3 days
Zone 2: not defined - will run only on Monday and Wednesday

This is designed to have the same start time but varying zone frequency based on an areas water requirement.

Thanks, all good.

I’m testing this integration for a day now with four Sonoff SWV water valves. They run in sequence, so that the sprinklers can make full use of the tap mains pressure and volume. Since they come with a flow sensor, I’m using the Watering Volume slider.

I have the feeling that volume and time values don’t match:

  • Input is 4 L
  • When the program starts, Zone A (blue) gives a remaining time of over 16 minutes.
  • When the zone starts, it suddenly goes down to ~8 minutes and counts down as expected.
  • In the history graph, I can see that it ran for ~8 minutes, and used 0.5m³/h during that time; thus ~67 liters.

Is there anything I could tweak to get a more accurate (and thus a more granular) pre-selection of the water volume?

Hi,

The flow rate expected is l/m so your 0.5m³/h, 500l/h will need to be converted to l/m ~ 8.3 (500/60).

I would expect the zone to run for only 30 seconds to give 4L.

You can use a template sensor to convert the value provided.

template:
  - sensor:
    - name: Flow Sensor 
      state: "{{ int(states('sensor.your_flow_meter))*1000 /60}}"

Thank you for the pointer, Peter! The Template Sensor did not update when I created them via gui; the program cancelled because it couldn’t see any flow.
I’ve then created them in the configuration.yaml, and it works. Example:

template:
  - trigger:
      - platform: state
        entity_id: sensor.ventil_a_flow
    sensor:
      - name: "Ventil A l/min"
        unique_id: "ventil_a_l_min"
        unit_of_measurement: "l/min"
        device_class: volume_flow_rate
        state: >
          {{ (trigger.to_state.state | float(0) * 1000 / 60) | round(2) }}
        availability: >
          {{ trigger.to_state.state not in ['unavailable', 'unknown', 'none'] }}

I need some help.
I setup a program as in the screenshot (which runs on Tue, Thu and Sun)


Today is Tuesday 9:58PM and the card displays next run in 8 hours (tomorrow is Wednesday)

Also what is the Frequency setting in the card ?, if I select a day from it then it overrides the program

Hi, the frequency option you set in the configuration provides the option for what you see in the card.

As you have not selected a day to run it will run every day.

If you want to run on Tue, Thu, Sun you will need to create an entry like this:

I checked my documentation and it is not very good covering this aspect, sorry.

Thank you for the awesome work.
It wasn’t so clear from the documentation that this is a free form entry in the configuration, I thought I had to select from the dropdown.

Now I am getting this message and the water switch turns on and off immediately

How do i configure to run the program/zone twice a day?

I have found the advanced options on reconfigure, but when i try to set it to multiple times i can see a short popup “expected str” and no change on submit.

Can a call a service to start the program by an automation?

Solved, had to select strict mode also.

You shouldn’t need to select strict mode.

Times are comma separated with no spaces

At first i did not select any option for the first topic, that resulted in the popup message. I think i don’t have a problem now with strict, as i only have one program.
I now have configured two start times.

I see, I will make sure that the program defaults this to Strict if it is not entered.

Ciao! is it possible to add a solution so that for example it finishes watering the last zone and 3 seconds earlier turns off the pump before turning off the zone valve. This will prevent maintaining high pressure in the pipes of around 7-8 bar until the next watering. the idea is that the water will flow out freely and relax the pipes.

Hi,

The pump is not started explicitly for zone rather the pump monitors if the zone is running and then starts and stops based on the zone state, this supports the eco mode nicely.

Any simple solution would release the pressure between cycles when ECO mode is set, so I will need to ponder an effective solution.

There is an event that is called when the program ends. You could create an automation to open one of valves for a few seconds to release the pressure until I determine if I can meet this requirement in the app.

I have created a ticket for this in Github: Open valves to release pressure in pipes after pump is turned off · Issue #199 · petergridge/Irrigation-V5 · GitHub

V2025.07.01 has been release with the requested functionality.

The option needs to be turned on from the Advanced setting of the configuration.

In operation one of the zones, the first in the list of zones, will be opened for 3 seconds after the program has finished and the pump monitoring process has been stopped.

that’s good news, thank you for adding this functionality, I’ll be testing it today