Frost-Warnung mit Home Assistant 🥶
Published: 2024-01-10 19:00:48

![](https://blog.disane.dev/content/images/2023/12/frost_warnung-mit-home-assistant_banner-1.jpeg)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._ 

![](https://blog.disane.dev/content/images/2023/12/image.gif)

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:

```yaml
- 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:

[Weather![Preview image](https://www.home-assistant.io/images/default-social.png)Instructions on how to setup your Weather platforms with Home Assistant.](https://www.home-assistant.io/integrations/weather/)

![](https://blog.disane.dev/content/images/2023/12/image-1.gif)

## 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:

```yaml
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) 👏 

![](https://blog.disane.dev/content/images/2023/12/image-2.gif)

---

If you like my posts, it would be nice if you follow my [Blog](https://blog.disane.dev) for more tech stuff.