My Garden Irrigation

Good luck, you’ll feel like you need it to begin with (everyone seems to feel that!) but stick with it, it is worth it in the end!

How does the container time change successfully?

I used this and it worked.

1 Like

Hi Klogg, as you know I follow you for a long time and I use your project, you always repeat that the weather forecasts are not reliable, but a few days ago I sifted your list and I found some errors in the “garden weather calculation” section I have added the “d” immediately after the “0” as in the example:

  - service: input_number.set_value
    data_template:
      entity_id: input_number.temp_minus0  
      value: >
        {% if states.input_number.temp_minus0.state | float < states.sensor._sky_forecast_daytime_high_temperature_0d.state | float %}
          {{ states('sensor.dark_sky_daytime_high_temperature_0d') }}
        {% else %}
          {{ states('input_number.temp_minus0') }}
        {% endif %}

then I replaced the smartweather sensor in “garden weather data collection” with “sensor.dark_sky_precip_intensity” since in my part there is no nearby installation of smartweather.
having said that after 24 hours magically hystory was populated with the data that before were all zero


not only was irrigation planned for 5 minutes per area today, it only watered 2 minutes so I assume it’s working.
I have two questions to ask:

  1. what are the two settings shown in yellow arrows on what they interact with?
  2. is it intentionally that “enable schedule” is reset each time you restart HA?
2 Likes

Ciao @gojonny

how did you manage the sensor.smartweather_rain_yesterday from this piece of code?

I haven’t found a way to get data from yesterday from Darksky.

  - service: input_number.set_value
    data_template:
      entity_id: >
        input_number.rain_minus{{ loop_count }}
      value: >
        {% if loop_count | int == 0 %}
          0 
        {% elif loop_count | int == 1 %}
          {{ states('sensor.smartweather_rain_yesterday') }} 
        {% else %}
          {{ states('input_number.rain_minus' ~ (loop_count | int - 1) | string) }}
        {% endif %}

Regarding your question, you can find it in the garden_weather_calculations.yaml file in section calculate_adjusted_zone_durations:

actually darksky doesn’t have a given rain yesterday but has “sensor.dark_sky_precip_intensity” which should be the total effective rain of the whole day that I used as yesterday’s data, obviously it’s just an adaptation to remedy smartweather

Ok, thanks

I will give it a try!

Hi all! After good feedback with my back garden, i’ve expanded system also to my front garden.
So now i’ve 2 sonoff 4ch pro.
Do you think is better to continue valve numeration to use same code from @klogg (zone 1 valve to zone 8 valve, splitted in 2 gardens) or create a duplicate of the code and manage 2 garden with 2 different codes? I think first option is better but i’m thinking also about converting the morning cycle and afternoon cycle to a logic like: program A, program B, program C…cause for front garden i’ve one micro drop irrigation system for strawberry and other plants (3 valves for garden, 1 valve for drop system) so I need to irrigate it more frequently (drop system) during the day instead the garden… So a supplementary cycle is good for me to set garden to 0mins and microdrop system irrigation to x minutes and start at different and indipendent hour.

@gojonny, @woody4165

Sorry but I have been away for few days.
If you still have questions, let me know and I will do my best to answer them.

1 Like

take advantage of your availability, as I said in the posts above I managed to feed the weather forecast the system acquires them well and calculates when it rains the time of reduction of the irrigation, but I noticed that if it does not rain and the trigger “Use weather adjustment” is activated not irrigation starts. do you think it is a fault or the user when he notices that it rains must activate the “Use weather adjustment” trigger?

Don’t forget that the weather adjustment also takes into account the temperature. As the temperature drops below the threshold it reduces the watering time. For example here in the UK we have had some cool weather (yes, even for the UK!) and currently my weather adjustment times are zero.

Could that be what you are seeing?

I think I understood the reason for the lack of irrigation, the temperatures of the historian are all at zero so the system means a low temperature that is zero and does not start irrigation. The point is why after running for a few days and not having touched anything in the configuration the temperature data are not fed? I have to study on

Probably because of a DarSky sensor that has changed recently and also for a new name that was given.

I see in the file garden_weather_calculations.yaml at rows 120 and 121

{% if states.input_number.temp_minus0.state | float < states.sensor.dark_sky_forecast_daytime_high_temperature_0.state | float %}
  {{ states('sensor.dark_sky_forecast_daytime_high_temperature_0') }}

I think that the correct sensor is sensor.dark_sky_forecast_daytime_high_temperature_0d

Secondary, if you don’t use the name variables during the DarkSky configuration sensor, the prefix is just dark_sky, probably @klogg used a name: dark_sky_forecast or just name: forecast and that’s why it does not work for you.

You can change it manually, searching in your States page how is named your sensor.

In my case also, I don’t use a different name, so my sensor is sensor.dark_sky_daytime_high_temperature_0d

Check also the file garden_weather_calculations.yaml

Yes, I have two dark_sky sensors set up so that it doesn’t create hundreds of unused forecast sensors. Maybe that has caused some confusion for @gojonny

  #==============================================
  #=== Dark Sky sensor for forecasting in the
  #=== Custom Dark Sky Animated Weather Card
  #==============================================
  - platform: darksky
    api_key: !secret darksky_api_key
    name: dark_sky_forecast
    units: auto
    scan_interval:
      minutes: 720
    forecast:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
    monitored_conditions:
      - icon
      - summary
      - temperature_high           
      - temperature_low 
      - precip_intensity_max
      - precip_probability


  #===================================================
  #=== Dark Sky sensor for current weather conditions
  #===================================================
  - platform: darksky
    api_key: !secret darksky_api_key
    name: dark_sky
    units: auto
    scan_interval:
      hours: 1
    monitored_conditions:
      - icon
      - summary
      - minutely_summary 
      - hourly_summary
      - daily_summary
      - temperature
      - apparent_temperature
      - precip_intensity
#      - precip_type            # If precip_intensity is zero, then this property will be unknown
#      - precip_accumulation    # If no snowfall is expected, this property will be undefined
      - dew_point
      - wind_speed
      - wind_gust
      - wind_bearing
      - cloud_cover
      - humidity
      - pressure
      - visibility
      - ozone
      - uv_index
      - moon_phase
      - nearest_storm_distance
      - nearest_storm_bearing
1 Like

Does anybody know why the “enable schedule” for morning or afternoon cycle always turn off after I restart HA? Thanks for help.
Btw. @klogg Great work, much appreciate !

Hi. I would like to ask you how you deal with the yesterday sensor since I guess you dont use smartweather sensor. Thanks

actually darksky doesn’t have a given rain yesterday but has “sensor.dark_sky_precip_intensity” which should be the total effective rain of the whole day that I used as yesterday’s data, obviously it’s just an adaptation to remedy smartweather

1 Like

Hi, thanks for the reply. And how do you count the data from “sensor.dark_sky_precip_intensity” for whole day since this sensor gives mm/h…

Hi,

In my case:

sensors.yaml

 - platform: template
   sensors:
     rainfall:
       friendly_name: Rainfall
       value_template: "{{ (states('sensor.dark_sky_precip_intensity_0d')|float *24) | round(1)}}"
       unit_of_measurement: "mm"

This is what you see in lovelace weather card.

Hi,
I am sorry but where should I put this? Thanks