# # TODO # # Update to account for new get_weather_forcats BS a # template: # - binary_sensor: # - name: Precipitation Likely Soon # unique_id: templatebinarysensor.precipitation_likely_soon # icon: mdi:weather-rainy # availability: "{{ states('sensor.openweathermap_hourly_forecast_precipitation_probability') not in ['unknown', 'unavailable'] }}" # state: "{{ states('sensor.openweathermap_hourly_forecast_precipitation_probability')|float(default=0) >= 50.0 }}" # - name: Precipitation Likely # unique_id: templatebinarysensor.precipitation_likely # icon: mdi:weather-rainy # availability: "{{ states('sensor.openweathermap_daily_forecast_precipitation_probability') not in ['unknown', 'unavailable'] }}" # state: "{{ states('sensor.openweathermap_daily_forecast_precipitation_probability')|float(default=0) >= 50.0 }}" # - trigger: # - platform: time_pattern # hours: /1 # - platform: event # event_type: event_template_reloaded # id: "reload" # - platform: homeassistant # event: start # action: # - action: weather.get_forecasts # data: # type: daily # target: # entity_id: weather.openweathermap_daily # response_variable: daily # - action: weather.get_forecasts # data: # type: hourly # target: # entity_id: weather.openweathermap_hourly # response_variable: hourly # binary_sensor: # - name: "Impending Rain" # unique_id: templatebinarysensor.impending_rain # availability: "{{ states('weather.openweathermap_hourly') not in ['unknown', 'unavailable'] }}" # icon: mdi:weather-rainy # # This looks too far into the future. Cutting it down a bit # state: >- # {%- set totalprecipitation = 0 | float -%} # {%- set upcoming_precipitation = 0 | float -%} # {%- set ns = namespace() -%} # {%- set ns.totalprecipitation = 0 -%} # {%- for daypart in range(0, 8) -%} # {%- set precipitation = hourly['weather.openweathermap_hourly'].forecast[daypart].precipitation -%} # {%- set wind_speed = hourly['weather.openweathermap_hourly'].forecast[daypart].wind_speed -%} # {%- set precipitation_probability = hourly['weather.openweathermap_hourly'].forecast[daypart].precipitation_probability %} # {% if precipitation_probability > 0 -%} # {% if wind_speed > states('input_number.wind_speed_blowing_rain') |float(default=0) %} # {%- set upcoming_precipitation = precipitation * precipitation_probability -%} # {%- endif -%} # {%- endif -%} # {%- set ns.totalprecipitation = ns.totalprecipitation + upcoming_precipitation -%} # {%- endfor %} # {{ ns.totalprecipitation / 100 | float | round(0) > 0.99 }} # sensor: # - name: "Sprinkler: Total Expected Precipitation" # unique_id: "custom_sensor.sprinkler_total_expected_precipitation" # icon: mdi:weather-pouring # unit_of_measurement: mm # availability: "{{ states('weather.openweathermap_daily') not in ['unknown', 'unavailable'] }}" # state: > # {%- set totalprecipitation = 0 | float -%} # {%- set upcoming_precipitation = 0 | float -%} # {%- set ns = namespace() -%} # {%- set ns.totalprecipitation = 0 -%} # {%- for daypart in range(0, 8) -%} # {%- set precipitation = daily['weather.openweathermap_daily'].forecast[daypart].precipitation * 25.4 -%} # {%- set precipitation_probability = daily['weather.openweathermap_daily'].forecast[daypart].precipitation_probability / 100 %} # {% if precipitation_probability >0 -%} # {%- set upcoming_precipitation = precipitation * precipitation_probability -%} # {%- endif -%} # {%- set ns.totalprecipitation = ns.totalprecipitation + upcoming_precipitation -%} # {%- endfor %} # {{ ns.totalprecipitation | float | round(0) }} # - name: "Today's Low Temperature" # unique_id: templatesensor.templow_today # unit_of_measurement: °F # availability: "{{ states('weather.openweathermap_daily') not in ['unknown', 'unavailable'] }}" # state: "{{ daily['weather.openweathermap_daily'].forecast[0].templow }}" # - name: "Today's High Temperature" # unique_id: templatesensor.temphigh_today # unit_of_measurement: °F # availability: "{{ states('weather.openweathermap_daily') not in ['unknown', 'unavailable'] }}" # state: "{{ daily['weather.openweathermap_daily'].forecast[0].temperature}}" # - name: "Today's Chance of Precipitation" # unique_id: templatesensor.precip_chance_today # icon: mdi:cloud-percent # unit_of_measurement: '%' # availability: "{{ states('weather.openweathermap_daily') not in ['unknown', 'unavailable'] }}" # state: "{{ daily['weather.openweathermap_daily'].forecast[0].precipitation_probability}}" # - name: "Tomorrow's Low Temperature" # unique_id: templatesensor.templow_tomorrow # unit_of_measurement: °F # availability: "{{ states('weather.openweathermap_daily') not in ['unknown', 'unavailable'] }}" # state: "{{ daily['weather.openweathermap_daily'].forecast[1].templow}}" # - name: "Tomorrow's High Temperature" # unique_id: templatesensor.temphigh_tomorrow # unit_of_measurement: °F # availability: "{{ states('weather.openweathermap_daily') not in ['unknown', 'unavailable'] }}" # state: "{{ daily['weather.openweathermap_daily'].forecast[1].temperature}}" # - name: "Tomorrow's Chance of Precipitation" # unique_id: templatesensor.precip_chance_tomorrow # icon: mdi:cloud-percent # unit_of_measurement: '%' # availability: "{{ states('weather.openweathermap_daily') not in ['unknown', 'unavailable'] }}" # state: "{{ daily['weather.openweathermap_daily'].forecast[1].precipitation_probability}}"