Frost-Warnung mit Home Assistant 🥶
Du hast einen Garten und möchtest benachrichtigt werden, wenn der Winter kommt? Ich zeig dir wie einfach es geht 🏡
Jeder Garten-Besitzer wird das Problem kennen: Winter is coming.
Gerade im Garten gibt es viele Dinge, die vor dem ersten Frost abgeschaltet oder entsprechend vorbereitet werden sollten, da sie sonst Schaden nehmen und daher vernünftig überwintern müssen. So auch bei meiner Gartenbewässerung und allen anderen Dingen.
Vorbereitungen 🛠️
Damit wir mitbekommen, wann der erste Frost kommt, müssen ihr einige Sachen vorbereiten. Dazu gehört auch, dass wir einen Sensor anlegen müssen, der genau diese Daten abfragt und als Boolean
-Wert ermittelt. Demnach kann der Sensor den Wert true
oder false
annehmen.
Hierfür erzeugen wir in unserer configuration.yaml
einen neuen Template-Sensor an. Der Template-Sensor fragt die Daten der Weather-Entität ab und berechnet, ob die Temperatur an angegebenen Ort unter 0°C fällt und wenn ja, wie lange.
Zusätzlich wird in den Attributen auch noch gespeichert, was die tiefste Temperatur ist und wann (also an welchem Datum) diese auftritt.
Bitte denke daran, die Stellen CHANGE THIS
auf deine Gegebenheiten anzupassen:
- platform: template
sensors:
frost_warning:
friendly_name: "Frost Warnung"
unique_id: "39a5e512-b92f-449c-b681"
icon_template: "mdi:snowflake-alert"
value_template: >-
{% if states('sensor.min_temp_forecast') | float < 0 %}
on
{% else %}
off
{% endif %}
attribute_templates:
frostdays: >-
{% set ns = namespace(frostdays=0) %}
{%- for fc in states.weather.CHANGE THIS.attributes.forecast -%}
{%- if fc.templow < 0 -%}
{%- set ns.frostdays = ns.frostdays + 1 -%}
{%- endif -%}
{%- endfor -%}
{{ns.frostdays}}
first_frost_date: >-
{% set ns = namespace(date=0) %}
{%- for fc in states.weather.CHANGE THIS.attributes.forecast -%}
{%- if fc.templow < 0 and ns.date == 0 -%}
{%- set ns.date = fc.datetime -%}
{%- endif -%}
{%- endfor -%}
{{ns.date}}
date_low: "{{state_attr('sensor.min_temp_forecast', 'datetime')}}"
temp_low: "{{states('sensor.min_temp_forecast')}}"
forecastdays: "{{state_attr('sensor.min_temp_forecast', 'forecastdays')}}"
Damit der Forecast sauber geholt wird, musst die Weather
-Entität konfiguriert haben. Das kannst du ganz einfach mit der nachfolgenden Anleitung erledigen:
Winter is coming, die Automation ☃️
Mit dem angelegten Sensor können wir also ermitteln, ob und vor allem wann genau und wie lange es frieren wird. So können wir benachrichtigt werden oder es können ggf. weitere Dinge automatisiert ausgelöst werden. Hierzu kannst du die nachfolgende Automation nutzen:
alias: "Frost Warning: Send Notification"
description: >-
Wenn in der Wettervorhersage Frost angesagt ist, dann eine Notification
rausschicken, damit das Wasser abgestellt wird.
trigger:
- platform: state
entity_id: sensor.frost_warning
from: "off"
to: "on"
condition: []
action:
- service: notify.notify
data:
title: Winter is coming!
message: >-
Ab {{ as_timestamp(state_attr("sensor.frost_warning",
"first_frost_date")) | timestamp_custom("%a, %d.%m.%y", True) }} soll es
frieren mit Temperaturen bis zu {{ state_attr('sensor.frost_warning',
'temp_low') }}°C an {{state_attr('sensor.frost_warning', 'frostdays') }}
Tagen in den kommenden {{state_attr('sensor.frost_warning',
'forecastdays') }} Tagen.
data:
priority: 1
mode: single
Und ab sofort wirst du bei einsetzendem Frost benachrichtigt 😊
Jon Schnee wäre stolz auf dich (oder vielleicht auch nicht, denn er muss nun nicht mehr die Wache schieben) 👏