Frostwarnungen verschicken mit Home Assistant

Home Assistant Integration des Meteorologisk institutt

Damit die Wasserleitungen im Garten nicht einfrieren, möchte ich von Home Assistant daran erinnert werden, wenn Frost ansteht. Dann habe ich hoffentlich noch genügend Zeit das Wasser aus den Leitungen zu lassen und kann dann hoffentlich auch einen Frostschaden vermeiden.

Dazu muss zunächst ein Wetterdienst eingerichtet werden. Ich habe mich für die Integrationvom Meteorologisk Institutt (met.no) entschieden. Die kann einfach unter Configuration > Integrations eingerichtet werden.

Danach kann in der configuration.yaml ein Template-Sensor erstellt werden, der als Value die Tiefsttemperatur der aktuellen Vorhersage speichert. Als Attribute wird zusätzlich abgespeichert, an welchem Tag die Tiefsttemperatur auftreten soll und auf welchen Zeitraum sich die Wettervorhersage bezieht:

sensor:
  - platform: template
        min_temp_forecast:
            friendly_name: "Vorhergesagte Minimaltemperatur"
            unique_id: "a148a623-7999-4d76-9af2"
            unit_of_measurement: '°C'
            icon_template: "mdi:thermometer-chevron-down"
            value_template: >-
                {%  set ns = namespace(templow=999) %}
                {%- for fc in states.weather.home.attributes.forecast -%}
                    {%- if fc.templow < ns.templow -%}
                        {%- set ns.templow = fc.templow -%}
                    {%- endif -%} 
                {%- endfor -%}
                {{ns.templow}}  
            attribute_templates:
                datetime: >-
                    {%  set ns = namespace(templow=999, datetime=0) %}
                    {%- for fc in states.weather.home.attributes.forecast -%}
                        {%- if fc.templow < ns.templow -%}
                            {%- set ns.datetime = fc.datetime -%}
                        {%- endif -%} 
                    {%- endfor -%}
                    {{ns.datetime}}
                forecastdays: >-
                    {%  set ns = namespace(days=0) %}
                    {%- for fc in states.weather.home.attributes.forecast -%}
                        {%- set ns.days = ns.days + 1 -%}
                    {%- endfor -%}
                    {{ns.days}}

Mit einem zweiten Sensor wird der eigentliche Sensor zur Frostwarnung implementiert:

sensor:
  - 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.home.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.home.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')}}"

Mit der folgenden Automatisierung kann der Frost-Sensor dann genutzt werden, um eine Warnung per Pushover rauszuschicken, wenn in der Wettervorhersage an einem der kommenden Tage Frost angesagt wird. Voraussetzung dafür ist natürlich, dass Pushover entsprechend eingerichtet wurde.

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.pushover
    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

 

 

Kommentare

PostadresseE-MailadresseFestnetzMobiltelefonSMS/SignalThreemaTwitter DirektnachrichtFAXWeb Page