Benachrichtigung wenn Temperaturvorhersage < 0°C

Forum Forum Automatisierungen Benachrichtigung wenn Temperaturvorhersage < 0°C

Ansicht von 15 Antwort-Themen
  • Autor
    Beiträge
    • #202
      Homer
      Moderator

      Moin,
      ich möchte mir eine Nachricht zukommen lassen, wenn die Wettervorhersage Gefrierpunkttemperaturen prognostiziert.
      Als Wetter Platform habe ich mich für OPENWEATHERMAP entschieden.
      Der Code der yaml funktioniert, die Entity ‚weather.falenbek_owm‘ ist im Dashboard sichtbar.

      Wenn ich nun in der Config den folgenden Code einbinde, sind viele andere Sensoren nicht verfügbar.
      Es scheint also ein Syntax Fehler vorzuliegen, obwohl der Template Test kein Problem anzeigt..

      Ich hoffe mir kann jmd auf den Sprung helfen. 🙂

      Screenshot Template Test – unten angehängt

      Code (gesamte Config Yaml)

      # Configure a default setup of Home Assistant (frontend, api, etc)
      default_config:
      api:
      # Uncomment this if you are using SSL/TLS, running in Docker container, etc.
      # http:
      #   base_url: example.duckdns.org:8123
      # Example configuration.yaml entry
      device_tracker:
        – platform: fritz
          host : 192.168.1.1
          interval_seconds: 10
          consider_home: 180
          new_device_defaults:
            track_new_devices: true
          
      # Example configuration.yaml entry to enable the cloud component
      cloud:
      
      # Example configuration.yaml entry
      sun:
      
      # Example Openweathermap Configuration
      weather:
        – platform: openweathermap
          api_key: xxxxxx
          name: Adresse_owm
          mode: hourly
          
      sensor:
        – platform: template
          sensors:
            min_temp_next_36h:
              friendly_name: Min Temperatur in den nächsten 36h
              value_template: >-
              {% set temperature = namespace(min=99) %}
              {%- for item in state_attr('weather.adresse_owm', 'forecast')[:11] -%}
                {% if ((item.temperature | float) < temperature.min) %}
                  {% set temperature.min = (item.temperature | float) %}
                {% endif %}
              {% endfor %}
              {{ temperature.min }}
             
      # Example configuration.yaml entry
      binary_sensor:
        – platform: workday
          country: DE
          workdays: [mon, tue, wed, thu]
          excludes: [fri, sat, sun]
      
      # Text to speech
      tts:
        – platform: google_translate
      
      group: !include groups.yaml
      automation: !include automations.yaml
      script: !include scripts.yaml
      scene: !include scenes.yaml
      
      # Example configuration.yaml entry
      alarm_control_panel:
        – platform: manual
          name: Home Alarm
          code: xxxx
          pending_time: 20
          delay_time: 20
          trigger_time: 4
          disarmed:
            trigger_time: 0
          armed_home:
            pending_time: 0
            delay_time: 0
      

      Screenshot-Template-weather-test

    • #208
      Harbor
      Teilnehmer

      Erstmal: Tolle Idee mit der Benachrichtigung.
      Beim anschauen habe ich jetzt nicht direkt was falsches gesehen.

      Zwei Kleinigkeiten:
      – Oben in Zeile 10 ist ein Leerzeichen vor dem Doppelpunkt – kann er dafür verantwortlich sein?
      – Dein Pin Code ist mit drin

    • #213
      Homer
      Moderator

      Danke ‚Harbor‘,
      werde das mal probieren.
      PIN ist gelöscht 🙂

      Gruss
      Jörg

    • #214
      David
      Verwalter

      Liefert denn dein Sensor einen Wert? Check mal unter States welchen Wert er bekommt.

      Hast du ein bezahltes Abo bei OWM? Hourly dürfte für die freie API nicht vorhanden sein.

      Hab`s mal schnell nachgesetzt, bekomme mit der Config einen validen Wert für min_temp_next_36h

      weather:
        – platform: openweathermap
          api_key: 7f3186545191135fbd5exxxx
          name: weather_owm
      
      
      
      sensor:
        – platform: template
          sensors:
            min_temp_next_36h:
              friendly_name: Min Temperatur in den nächsten 36h
              value_template: >-
                  {% set temperature = namespace(min=99) %}
                  {%- for item in state_attr('weather.weather_owm', 'forecast')[:11] -%}
                    {% if ((item.temperature | float) < temperature.min) %}
                      {% set temperature.min = (item.temperature | float) %}
                    {% endif %}
                  {% endfor %}
                  {{ temperature.min }}
      
    • #221
      Homer
      Moderator

      Tjoa, ich leider nicht…
      Hier ist das Error Log…ich kann nurnichts damit anfangen …
      Was bedeutet das?

      Log Details (WARNING)
      Thu Feb 13 2020 13:39:40 GMT+0100 (Mitteleuropäische Normalzeit)
      Don't use 'server_host' options with Hass.io
      2020-02-13 13:39:28 ERROR (SyncWorker_0) [homeassistant.util.yaml.loader] while scanning for the next token
      found character '%' that cannot start any token
        in "/config/configuration.yaml", line 41, column 10
      2020-02-13 13:39:28 ERROR (MainThread) [homeassistant.bootstrap] Failed to parse configuration.yaml: while scanning for the next token
      found character '%' that cannot start any token
        in "/config/configuration.yaml", line 41, column 10. Falling back to safe mode
      2020-02-13 13:39:40 WARNING (MainThread) [homeassistant.components.hassio.handler] Don't use 'server_host' options with Hass.io
    • #223
      David
      Verwalter

      Was ist in Zeile 41 an Position 10 ?
      Hast du mal ein Screenshot deiner Config mit Zeilennummer?

    • #224
      Homer
      Moderator

      Das ist die Zeile
      {% set temperature = namespace(min=99) %}
      genau nach dem ersten ‚%‘ ….
      Screenshot-Template-weather-test2

      …gerade gesehen, dass der sensor: noch auskommentiert war….
      nächste Runde…

    • #228
      Homer
      Moderator

      OK, also wenn ’sensor:‘ nicht auskommentiert, dann bleibt der Fehler
      2020-02-13 13:39:40 WARNING (MainThread) [homeassistant.components.hassio.handler] Don't use 'server_host' options with Hass.io

      Und sämtliche Entities im Dashboard sind nicht verfügbar.
      Nehme ich den Sensorblock raus, dann ist alles OK.

      Screenshot-Template-weather-test3

    • #231
      David
      Verwalter

      Nochmal zum Thema MOde Hourly: Bekommst du Daten in den f…_owm?

      Nimm bitte Mal die Zeile mit mode: hourly raus
      Wenn ich mode:hourly aktiviere, geht OWM nicht mehr bei mir – mit der Fehlermeldung, dass es in Free nicht enthalten ist (im log).

      Bekommst du eine Ausgabe im Template checker? Nimm dafür mal den Anfangspart mit Sensor usw raus

      {% set temperature = namespace(min=99) %}
          {%- for item in state_attr('weather.weather_owm', 'forecast')[:4] -%}
              {{item.datetime}} >> {{ item.temperature}} °C
                 {% if ((item.temperature | float) < temperature.min) %}
              {% set temperature.min = (item.temperature | float) %}
           {% endif %}
      {% endfor %}
      
      
      Minimal Temp nächste 12 Stunden: {{ temperature.min}} °C
      
      Anhänge:
    • #234
      Homer
      Moderator

      1. hourly weggelassen…bekomme ich die gleiche Ausgabe (3-stündige Vorhersage)
      Meine Interpretation war, dass er das automatisch mcht ohne entsprechende Lizenz
      2. Bekomme auch im Template checker die richtige Ausgabe
      Screenshot-Template-weather-test4
      3. Sobald ich in der Config den Sensor Abschnitt aktiviere…sind alle anderen Entities nicht erreichbar
      4. Habe es dann mit dem folgenden Template Sensor Beispiel von Template-Home Assistant getestet. Wieder der gleiche Fehler – alle anderen Entities nicht erreichbar. Es muss nmM etwas mit der Einbettung des Abschnittes in der Config zu tun haben…. weitere Ideen ? 🙂

      # Example Openweathermap Configuration
      weather:
        - platform: openweathermap
          api_key: 4c811xxxxxxxxxxxxxxxxf1
          name: fxxxxx_owm
      
      sensor:
        - platform: template
          sensors:
            solar_angle:
              friendly_name: "Sun Angle"
              unit_of_measurement: '°'
              value_template: "{{ '%+.1f'|format(state_attr('sun.sun', 'elevation')) }}"
      
      # min_temp_next_36h:
      #        friendly_name: Min Temperatur in den nächsten 36h
      #        value_template: >-
      #        {% set temperature = namespace(min=99) %}
      #        {%- for item in state_attr('weather.fxxxxx_owm', 'forecast')[:11] -%}
      #          {% if ((item.temperature | float) < temperature.min) %}
      #            {% set temperature.min = (item.temperature | float) %}
      #          {% endif %}
      #        {% endfor %}
      #        {{ temperature.min }}
      
      # Example configuration.yaml entry
      binary_sensor:
        - platform: workday
          country: DE
          workdays: [mon, tue, wed, thu]
          excludes: [fri, sat, sun]

      Screenshot-Template-weather-test3-1

    • #238
      Homer
      Moderator

      Super, mit der direkten Hilfe von David hat es geklappt.
      FALSCH

        sensors:
          min_temp_next_36h:
            friendly_name: Min Temperatur in den nächsten 36h
            value_template: >-
              {% set temperature = namespace(min=99) %}
              {% for item in states.weather.openweathermap.attributes.forecast[:11] %}
                {% if ((item.temperature | float) < temperature.min) %}
                  {% set temperature.min = (item.temperature | float) %}
                {% endif %}
              {% endfor %}
              {{ temperature.min }}
      

      FALSCH

        sensors:
          min_temp_next_36h:
            friendly_name: Min Temperatur in den nächsten 36h
            value_template: >-
            {% set temperature = namespace(min=99) %}
            {% for item in states.weather.openweathermap.attributes.forecast[:11] %}
            {% if ((item.temperature | float) < temperature.min) %}
            {% set temperature.min = (item.temperature | float) %}
            {% endif %}
            {% endfor %}
            {{ temperature.min }}
      

      UND DIE LÖSUNG IST:
      – alles in geschweiften Klammern um 2 Leerzeichen einrücken:

        sensors:
          min_temp_next_36h:
            friendly_name: Min Temperatur in den nächsten 36h
            value_template: >-
              {% set temperature = namespace(min=99) %}
              {% for item in states.weather.openweathermap.attributes.forecast[:11] %}
              {% if ((item.temperature | float) < temperature.min) %}
              {% set temperature.min = (item.temperature | float) %}
              {% endif %}
              {% endfor %}
              {{ temperature.min }}
      
    • #256
      johination
      Teilnehmer

      Danke werde ich mir auch ansehen!

    • #257
      johination
      Teilnehmer

      Hab mir deinen Code angesehen und funktioniert bei mir auch sehr gut, welche Automatisierung hast du dann im Hintergrund?

    • #258
      Homer
      Moderator

      Bisher noch keine, habe mir nur eine Sensor Card zur Anzeige erstellt.
      Automation folgt noch.

    • #580
      Homer
      Moderator

      So, hat relativ einfach geklappt. Alles über das GUI.
      Zunächst habe ich die Min Temperatur auf die nä 12h geändert.
      Trigger 1: Numeric State / Entity: Min Temp der nä 12h / Below: 4.0
      Trigger 2: Time / At: 21:55:00
      Action: Notify via Telegram

      Hier der Code:

      – id: '1583009478380'
        alias: Frostalarm
        description: ''
        trigger:
        – below: '4.0'
          entity_id: sensor.min_temp_next_36h
          platform: numeric_state
        – at: '21:55:00'
          platform: time
        condition: []
        action:
        – data:
            message: Eiskratzen
          service: notify.ha_message_joe
      
    • #1014
      h3ad
      Teilnehmer

      Danke für den Code, ich suche schon seit Ewigkeiten nach einer Möglichkeit die Min und Max Temperatur der nächsten 24h als einzelnen Sensor anzuzeigen. (Ich habe mir eine kleines Wetter Dashboard mit einem Nextion Display gebastelt.) Mit Hilfe von deinem Code konnte ich das endlich umsetzen.

Ansicht von 15 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.