My Garden Irrigation

you are right, this is the best guide Irrigazione smart con Home Assistant: guida pratica completa (the one i followed now that i think about it)

I would try again from scratch and make sure that all requisites are fully installed and configured.
and also reinstall ha irrigation

I finally managed to make it work, a simple mistake in the name of a folder compared to the tutorial, the incorrect name was “Garden Irrigation”… however now it works, and therefore I confirm the accuracy of the guide. A really well done package, congratulations

Perhaps an interesting function to implement would be to add more irrigation cycles, not just 2, this is to be able to use short times per cycle for example 5 minutes repeated 4 times… this is to give the lawn time to absorb the water first of the next cycle. For example, a cycle of 20 minutes would be too much as the lawn perhaps does not have time to absorb all the water…

depending on how many sprinklers you have you could register them in more than 1 zone:
i have 4 sprinklers, i set each one in 4 different zone setting and have them start in rotation, this allows me to have them each start 4 times in the morning and 4 in the evening (there is a max of 16 zones allowed)

  • sprinkler 1 3min (zone 1)
  • sprinkler 2 3min (zone 2)
  • sprinkler 3 3min (zone 3)
  • sprinkler 4 3min (zone 4)
  • sprinkler 1 3min (zone 5)
  • sprinkler 2 3min (zone 6)
  • sprinkler 3 3min (zone 7)
  • etc …

just a workaround :slight_smile:

Right, I hadn’t thought about it… I have 8 sprinklers so 16 are enough to divide the irrigation times, except that this way I have a very long map to view but for now that’s fine… excellent

@klogg there is a typo in irrigation_notifications.yaml
line 175 trogger should be trigger
change this

          The total watering time should be about {{ (states('sensor.irrigation_' ~ trogger.id ~ '_duration_in_seconds') | int / 60) | int }} minutes but I'll let you know when it has finished.

to this

          The total watering time should be about {{ (states('sensor.irrigation_' ~ trigger.id ~ '_duration_in_seconds') | int / 60) | int }} minutes but I'll let you know when it has finished.

I know this is a bit off topic, but, i’ve set up my own script.notify to get the notifications, could you tell me how i can parse {{ tell }} in the script to make the notification go to the desired recipient?

I have no idea how that sneaked in. It is correct on my local copy!!
I’ll update Github.
Thanks.

I’m not sure I follow the question.
{{ tell }} is the value of an input_text, one for each user and can be edited using this

image

It can be whatever suits your script.notify
Or am I missing something

this is my simple script.notify

notify:
  alias: notify
  sequence:
  - service: notify.mobile_app_sm_g970f
    data_template:
      message: '{{ message }}'
      title: '{{ title }}'
  - service: notify.brook_telegram
    data_template:
      message: '{{ message }}'
      title: '{{ title }}'
  mode: parallel
  max: 10

as it is it sends notifications to both app and telegram.
If i have tell = telegram, how do I have the script check tell and decide who to send it to? (probably simple question but i have tried and searched for the past two days with no success)

EDIT: Hang on… I think if you simply make the user name in irrigation the notification method you can simply template the notify based on that.
(sorry, like I said it was a rushed answer as I am very short of time)


ok, I do something similar, my notify script handles many types such as text, TTS, HA persistent and other types of notification but I only use one method (mobile app) for ‘text’ notifications.

My script.notify simply looks to see if anything is in {{ tell }} and then it knows to send to mobile app.

I think you will need to include the notification method in the irrigation user name and then template the notify service call based on that.

(Or simply hard code the decision based on user name)

something like this (untested and rushed so probably not accurate and definitely not the most efficient way to do it but hopefully it is enough to get you going):

  - variables:
      - tell_users: >
        {{ tell.replace(' ','').split(',') | list }}

  - if:
      - condition: template
        value_template: >
          {{ 'telegram' in tell_user[0] }}
    then:
      - service: >
          notify.{{ tell_user[0] }}
        data:
          message: '{{ message }}'
          title: '{{ title }}'
    else:
      - service: >
          notify.{{ tell_user[0] }}
        data:
          message: '{{ message }}'
          title: '{{ title }}'

thank you, that’s what i was looking for :slight_smile: