Irrigation Unlimited Integration

Very strange behaviour of Irrigation Unlimited interface and “Disable” service for 1st Zone.
I can click Enabled/Disabled in Lovelace interface or use the function “Disable”/“Enable” for all zones, but 1st one. It can never be disabled unless the whole Controller is disabled… Bug or feature?

Very buggy integration… :frowning:
Is there any function to SKIP the next watering? ((but keep all others after the skipped one running)

The enable/disable for the controller and zones work independently of each other and each remember its own state. Disabling the controller then disabling the zone and then enabling the controller will still leave the zone disabled. This is the intended behaviour.

Could you please qualify your statement. If there is a bug then please report it. All the templates for reporting an issue are setup. I can’t fix it if I don’t know what it is.

There is no SKIP function. What are the circumstances behind wanting to suspend watering? An idea might be to suspend watering for a period of time.

I would not follow call it buggy, its well thought for a specific usecase

@rgc99 thank you very much for this great addon. Works perfectly. Got a simple question:

I have a preamble period of 1 minute and 1 minute delays between sequences. I have an automation which has a voice warning to shut down the doors of the places which might be affected from the water coming down from the sprinklers. But i can only use binary sensor of the zone as a trigger, which is a bit late because the sprinklers are already started working than.

Which trigger should i use for the warning that will work just at the start of preamble? Is it binary_sensor.controller or status attribute of controller or anything else?

It is the controller that will turn on before the zone turns on when preamble is used. The trigger should look at the state of the controller/master i.e. binary_sensor.irrigation_unlimited_c1_m. For example:

automation:
  - alias: Shut doors
    description: Shut the doors for watering
    trigger:
      - platform: state
        entity_id:
          - binary_sensor.irrigation_unlimited_c1_m
        from: "off"
        to: "on"
    action:
      # Add some actions here to close the doors

To reopen the doors when the watering finishes try this:

automation:
  - alias: Open doors
    description: Open the doors after watering
    trigger:
      - platform: state
        entity_id:
          - binary_sensor.irrigation_unlimited_c1_m
        from: "on"
        to: "off"
    action:
      # Add some actions here to open the doors

You could also use the postamble to delay the reopening. Hope this helps.

1 Like

Here is a nicer manual run card. It uses time picker card which has a lot of options and eliminates problems with the standard time control such as the am/pm selector.

image

type: entities
title: Manual Run
entities:
  - entity: input_select.irrigation_unlimited_entities
    name: Controller/Zone
  - entity: input_select.irrigation_unlimited_sequences
    name: Controller/Sequence
  - type: custom:time-picker-card
    entity: input_datetime.irrigation_unlimited_run_time
    hour_mode: 24
    hour_step: 1
    minute_step: 1
    second_step: 5
    name: ''
    layout:
      embedded: true
    link_values: false
    hide:
      seconds: true
  - type: divider
  - type: custom:paper-buttons-row
    buttons:
      - name: Go
        tap_action:
          action: call-service
          service: irrigation_unlimited.shim_manual_run
          service_data:
            time_entity: input_datetime.irrigation_unlimited_run_time
            controller_zone_entity: input_select.irrigation_unlimited_entities
            controller_sequence_entity: input_select.irrigation_unlimited_sequences
      - name: Cancel
        tap_action:
          action: call-service
          service: irrigation_unlimited.shim_cancel
          service_data:
            controller_zone_entity: input_select.irrigation_unlimited_entities

Thank you very much.
But I still need pyscript, do I?

Yes you do.

Hi, I’m having a few issues with the manual start card. The log error is:

2021-11-10 16:57:23 ERROR (MainThread) [homeassistant.components.automation.irrigation_unlimited_load_ui_controls] Irrigation Unlimited Load UI Controls: Error executing script. Service not found for call_service at pos 1: Unable to find service irrigation_unlimited.list_config

2021-11-10 16:57:23 ERROR (MainThread) [homeassistant.components.automation.irrigation_unlimited_load_ui_controls] Error while executing automation automation.irrigation_unlimited_load_ui_controls: Unable to find service irrigation_unlimited.list_config

I’ve placed the .py file in the correct position. I don’t see the drop downs being populated at all.

Regards,
Paul

Hi Paul,

It looks like pyscript is not setup correctly. Install the pyscript component. Now make sure you have a config/pyscript directory and put the irrigation_unlimited_service_shim.py file in it. Restart/reload pyscript.

Hey there,
Yep, that did the trick, many thanks. Suggestion for noobs such as myself, it would be an advantage to throw some instructions up about installing pyscript (unless I read over it).

If I can ask a couple more questions please . . .

I’m still seeing NaN on the “Last 7 Days” graph. Have cleared cache, etc but doesn’t seem to have made a difference.

I’ve previously created an irrigation system on the clipsal shac using LUA and have integrated a simple flag based on a call to the weather service about the rainfall in the last 24 hours. I just skip the watering in this case.

I’m trying to get my head around the way yours works. It appears that somehow I can extend the time until watering but still not sure how this works. Would be nice to just check a flag as to whether to start the zone or not.

Regs,
Paul

Hi Paul,

Glad you got it sorted. You are the second person to encounter a similar problem so I am thinking there is room for improvement in the documentation. Might even double down and put something in the trouble shooting section.

NaN is usually because there is no data in the history. Perhaps the zone has yet to turn on/off.

Adjusting the watering schedule works the other way around. The integration doesn’t go out and check anything, you tell it by way of service calls what to do. The service call you will probably want to focus on is ‘adjust_time’. There are a number of options here, but for example you can nominate a new time or alter the existing scheduled time, even to zero which will prevent any irrigation. This adjustment is usually handled by way of an automation which is triggered when your flag changes state or at a specified time - before the irrigation is due to commence. Take a look at the ESPHome example in the readme. It’s a simple soil moisture sensor that adjusts the watering time either by a sliding scale or simply on/off when a threshold is reached. Once you are on top of this and given the plethora of weather data available in HA via other integrations, I look forward to your irrigation adjustment automation solution. Always interested, please post - that goes for anyone else as well.

Hi there,

Whats your name btw :slight_smile:

I looked into it and can see the attributes show there has been a number of cycles, however still not seeing anything showing. The yaml I’m using I believe is straight from one of your examples. Starting to get my head around HA but a long way to go I suspect.

type: custom:mini-graph-card
name: Watering Last 7 Days
icon: mdi:sprinkler-variant
entities:
  - entity: binary_sensor.irrigation_unlimited_c1_z1
    attribute: today_total
  - entity: binary_sensor.irrigation_unlimited_c1_z2
    attribute: today_total
show:
  graph: bar
  labels: true
unit: min
aggregate_func: max
hours_to_show: 168
group_by: date
lower_bound: 0

zone_id: ‘1’
index: 0
enabled: true
status: ‘off’
schedule_count: 0
schedules: ‘’
adjustment: None
current_schedule: not running
percent_complete: 0
next_schedule: 1
next_name: Sunrise
next_start: ‘2021-11-14T18:11:00+11:00’
next_duration: ‘0:01:00’
next_adjustment: None
today_total: 3
friendly_name: Greenhouse Pump 1
icon: mdi:valve-closed

Hi Paul,

Make sure you have v0.11.0-dev.4 version of mini-graph card. I thought the author had rolled the changes into the main release but I don’t think so. Go to HACS → Frontend → mini-graph-card-> Options (the three dots button) → Reinstall → Show beta versions → v0.11.0-dev.4 → Install. Now clear your browser cache.

It was the ‘attribute’ option that was added to this release that we need.

Regards

Robert

Legend, that did the trick. Much appreciated.

Cheers,
Paul

Hi Robert,

Sorry to be a complete pain, but I’m trying to work out how to duplicate what I’m currently using here.
Just confused with the schedules and sequences. I can only run one zone at a time.

I have 9 zones at this point with the following parameters.

Zone 1 - Every 3 days for 5 min
Zone 2 - Every 2 days for 5 min
Zone 3 - Every 7 days for 5 min
Zone 4 - Every 2 days for 5 min
Zone 5 - Every day for 10 min
Zone 6 - Off Currently
Zone 7 - Off Currently
Zone 8 - Every day for 5 min
Zone 9 - Every day for 5 min

Additional to the above, I also have a pump for the hydroponics that I’m currently running every 30 minutes for 5 minutes.

Regards,
Paul

Hi Paul,

No problem ask away. Here is the executive overview. Zones represent physical valves and exist under the umbrella of a controller. Each zone may have their own schedule and dance to their own tune.

The above assumes you have enough pressure to handle the situation. If this is not so or you simply like the idea of setting up your zones like a line of domino’s then sequences are your answer. Arrange them, setup a time for the action to begin and watch the show. Now all the zones sing the same song.

No right way, mix and match, many options. Above all, have fun.

Regards

Robert

Thought I’d be smart and copy your code to create an enable/disable UI.

type: entities
title: Enable/Disable Controller
entities:
  - entity: input_select.irrigation_unlimited_entities
    name: Controller/Zone
  - type: divider
  - type: custom:paper-buttons-row
    buttons:
      - name: Enable
        tap_action:
          action: call-service
          service: irrigation_unlimited.enable
          service_data:
            entity_id: input_select.irrigation_unlimited_entities
      - name: Disable
        tap_action:
          action: call-service
          service: irrigation_unlimited.disable
          service_data:
            entity_id: input_select.irrigation_unlimited_entities

Nothing happened and the logs are showing . . .

  • Unable to find referenced entities input_boolean.disable_irrigation_controller
  • Unable to find referenced entities input_select.irrigation_unlimited_entities

Guess I’m not as smart as I thought :slight_smile: