Liebe SmartHome for Dummies Gemeinde.

Die phpBB Forum Software gehört nicht wirklich zu den modernsten seiner Art.
Ich habe mich an einer Migration zu Discourse versucht und bin leider kläglich gescheitert.

Möchte aber trotzdem einen Neuanfang auf einer modernen Plattform starten.
Gerne möchte ich Euch animieren das neue Discourse Forum zu benutzen.
Bestehenden Usern bleibt es leider nicht erspart, sich auf der neuen Platform neu anzumelden.

Das Forum hier, bleibt selbstverständlich Online. Ich würde versuchen einiges händisch zu migrieren.
Da fallen mir die Rubriken "Template Sammlungen" oder "Best Practice Automatisierungen" ein.

SmartHome for Dummies Discourse Platform.

Corona Inzidenzen tagesaktuell und vom Vortag Thema ist als GELÖST markiert

Rat und Tat rings um Home Assistant Automationen.


Antworten
Benutzeravatar
Andifidi
Beiträge: 58
Registriert: So 5. Jun 2022, 18:19
3
Has thanked: 4 times
Been thanked: 1 time

Corona Inzidenzen tagesaktuell und vom Vortag

Beitrag von Andifidi »

Moin,
ich habe folgende Templateproblematik die einfach nicht laufen möchte. Ich lasse mir jeden Morgen um 8 Uhr die aktuellen Inzidenzen auf das iPhone senden. Das funktioniert wunderbar, jedoch möchte ich mir -zum Vergleich- auch die vom Vortag senden lassen.
Ich habe das so lösen wollen (steht bei mir in sensor.yaml):

1. Aktuelle Inzidenz ermitteln:

Code: Alles auswählen

  - platform: rest
    name: "NF"
    unit_of_measurement: 'Inzidenz'
    resource: "https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=OBJECTID=7&outFields=*&outSR=4326&f=json"
    value_template: "{{ value_json.features[0].attributes.cases7_per_100k | round(0) }}"
2.

Code: Alles auswählen

  - platform: template
    sensors:
      gestern_nf:
        friendly_name: 'NF gestern'
        unit_of_measurement: 'Inzidenz'
        value_template: >
          {% if now().hour == 23 and now().minute == 59 -%}
          {{ states('sensor.nf') }}
          {%- endif %}
Das o.g. Beispiel würde z.B. auch für "Temperatur vom Vortag" nutzbar sein o.ä. ;-)


Wenn ich mir die Entität gestern_nf ansehe, finde ich auch den Tageswert von gestern in der Historie aber nicht als Wert (Dieser wird dann als '0' gespeichert oder wird irgendwie wieder gelöscht?? Auch die Notify auf dem IPhone
enthält keinen Wert. Ist sicherlich relativ einfach zu lösen, aber ich bekomme es nicht angezeigt und stehe irgendwie mit dem Templating auf dem Schlauch....

Die Automatisierung zur Anzeige:

Code: Alles auswählen

alias: Inzidenznachricht
description: Tägliche Übermittlung um 08:00 der Inzidenzen an Mobiltelefone
trigger:
  - platform: time
    at: '08:00:00'
condition: []
action:
  - service: notify.mobile_app_andreas
    data:
      message: |
        NF:  {{'   ' + states('sensor.NF') }} ({{states('sensor.gestern_nf') }})
      title: Covid-19 Inzidenzen
mode: single
Benutzeravatar
Osorkon
Administrator
Beiträge: 2105
Registriert: Sa 17. Jul 2021, 16:53
3
Wohnort: Langenargen
Has thanked: 63 times
Been thanked: 581 times
Kontaktdaten:

Re: Corona Inzidenzen tagesaktuell und vom Vortag

Beitrag von Osorkon »

Was Du mit Deinem 2ten Sensor erreichen willst ist, dass Du dem Wert um 23:59 übernimmst und für 24 h speicherst.

Was Du aber mit dem value_template machst ist, dass um genau 23:59 der Sensor den Wert von sensor.nf übernimmst zu jeder anderen Zeit ist der Wert "sonst"!

Was Du brauchst ist ein trigger based Sensor

Code: Alles auswählen

# Example configuration entry
template:
  - trigger:
      - platform: time
        at: "23:59:00"
    sensor:
      - name: "NF gestern"
        unique_id: inzidenz_gestern
        state: "{{ states('sensor.nf') | default(0) }}"
        unit_of_measurement: "Inzidenz"

ACHTUNG: Ich verwende hier die aktuelle template integration und nicht die veraltete platform template der Sensor integration.

Bei den templates, solltet ihr euch angewöhnen einen default Wert mitzugeben auch eine unique_id ist nicht verkehrt und ermöglicht die Konfiguration des Sensors im UI.

Gruß
Osorkon
Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Andifidi
Beiträge: 58
Registriert: So 5. Jun 2022, 18:19
3
Has thanked: 4 times
Been thanked: 1 time

Re: Corona Inzidenzen tagesaktuell und vom Vortag

Beitrag von Andifidi »

Hallo,
das klingt super und funktioniert bei einem Templatesensor.

Wenn ich aber drei habe....wie mache ich das ?

Code: Alles auswählen

template:
  - trigger:
      - platform: time
        at: "12:41:00"
    sensor:
      - name: "gestern_nf"
        unique_id: inzidenz_gestern_nf
        state: "{{ states('sensor.nf') | default(0) }}"
        unit_of_measurement: "Inzidenz"

      - name: "gestern_mol"
        unique_id: inzidenz_gestern_mol
        state: "{{ states('sensor.mol') | default(0) }}"
        unit_of_measurement: "Inzidenz"
     
      - name: "gestern_pz"
        unique_id: inzidenz_gestern_pz
        state: "{{ states('sensor.pz') | default(0) }}"
        unit_of_measurement: "Inzidenz"
So geht es nicht. Was habe ich übersehen? Andere Frage: Sollte man dann alles was über Template Sensoren läuft über die neue templateintegration ändern?
Gruß
Andreas
Benutzeravatar
Andifidi
Beiträge: 58
Registriert: So 5. Jun 2022, 18:19
3
Has thanked: 4 times
Been thanked: 1 time

Re: Corona Inzidenzen tagesaktuell und vom Vortag

Beitrag von Andifidi »

So funktioniert es jetzt:

Code: Alles auswählen

template:
  - trigger:
      - platform: time
        at: "13:12:00"
    sensor:
      - name: "gestern_nf"
        unique_id: nf_gestern
        state: "{{ states('sensor.nf') | default(0) }}"
        unit_of_measurement: "Inzidenz"
      - name: "gestern_mol"
        unique_id: mol_gestern
        state: "{{ states('sensor.mol') | default(0) }}"
        unit_of_measurement: "Inzidenz"
      - name: "gestern_pz"
        unique_id: pz_gestern
        state: "{{ states('sensor.pz') | default(0) }}"
        unit_of_measurement: "Inzidenz"
Danke für die Hilfe. Templating ist doch nicht ganz so einfach wie es scheint. Dann versuch ich mal ein anderes Template, was auch nicht funktioniert (Pollenvorhersage) nach diesem Muster zu ändern.
Gruß
Andreas
Benutzeravatar
Osorkon
Administrator
Beiträge: 2105
Registriert: Sa 17. Jul 2021, 16:53
3
Wohnort: Langenargen
Has thanked: 63 times
Been thanked: 581 times
Kontaktdaten:

Re: Corona Inzidenzen tagesaktuell und vom Vortag

Beitrag von Osorkon »

Wollte grad anfangen zu tippen aber du warst schneller.
Ja Die Einrückungen waren verkehrt.
Ich verwende als Editor den Studio Code Server, da werden solche syntax Fehler erkannt.

Ansonsten würde ich Dir empfehlen die Template Sensoren auch nicht in der configuration.yaml anlegen, sondern die Konfiguration aufsplittern.

Also in der configuration.yaml folgende Zeile einfügen:

Code: Alles auswählen

template: !include template.yaml
Und im Ordner config dann noch die Datei template.yaml erstellen. Dabei entfällt die Zeile template:

Nach HA Neustart kannst Du die Template Sensoren direkt in der template.yaml erstellen.
Danach reicht aus die Template Konfiguration neu zu laden, wenn Du neue template Sensoren anlegen tust.

Gruß
Osorkon
Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Andifidi
Beiträge: 58
Registriert: So 5. Jun 2022, 18:19
3
Has thanked: 4 times
Been thanked: 1 time

Re: Corona Inzidenzen tagesaktuell und vom Vortag

Beitrag von Andifidi »

Sehr gut, dass habe ich gemacht. Eine "blöde" Frage habe ich noch (yaml ist für mich nicht immer selbsterklärend):

Ich habe jetzt in der Template.yaml den trigger based Sensor. So weit so gut. Wie füge ich nun andere Template Sensoren in diese
Datei ein? Ich muss ja die anderen Einträge vom trigger based Sensor trennen. Sorry, das ist sicherlich eine blöde Frage :roll:

So wahrscheinlich nicht, oder?

Code: Alles auswählen

  - trigger:
      - platform: time
        at: "23:57:00"
    sensor:
      - name: "gestern_nf"
        unique_id: nf_gestern
        state: "{{ states('sensor.nf') | default(0) }}"
        unit_of_measurement: "Inzidenz"
      - name: "gestern_mol"
        unique_id: mol_gestern
        state: "{{ states('sensor.mol') | default(0) }}"
        unit_of_measurement: "Inzidenz"
      - name: "gestern_pz"
        unique_id: pz_gestern
        state: "{{ states('sensor.pz') | default(0) }}"
        unit_of_measurement: "Inzidenz"
        
  - sensor:
        name: "balkon_temp"
        unique_id: temp_balkon
        state: "{{ states('0') | default(0) }}"
        unit_of_measurement: " °C"
Benutzeravatar
Osorkon
Administrator
Beiträge: 2105
Registriert: Sa 17. Jul 2021, 16:53
3
Wohnort: Langenargen
Has thanked: 63 times
Been thanked: 581 times
Kontaktdaten:

Re: Corona Inzidenzen tagesaktuell und vom Vortag

Beitrag von Osorkon »

Andifidi hat geschrieben: So 12. Jun 2022, 14:36 So wahrscheinlich nicht, oder?
Fast. 😉

Da fehlt noch. ein Bindestrich

Hier mal. ein Bsp.

Code: Alles auswählen

#Trigger based sensors 23:57 Uhr
- trigger:
    - platform: time
      at: "23:57:00"
  sensor:
    - name: "gestern_nf"
      unique_id: nf_gestern
      state: "{{ states('sensor.nf') | default(0) }}"
      unit_of_measurement: "Inzidenz"
    - name: "gestern_mol"
      unique_id: mol_gestern
      state: "{{ states('sensor.mol') | default(0) }}"
      unit_of_measurement: "Inzidenz"
    - name: "gestern_pz"
      unique_id: pz_gestern
      state: "{{ states('sensor.pz') | default(0) }}"
      unit_of_measurement: "Inzidenz"
      
#Trigger based sensors 12.00 Uhr
- trigger:
    - platform: time
      at: "12:00:00"
  sensor:
    - name: "gestern_nf_2"
      unique_id: nf_gestern_2
      state: "{{ states('sensor.nf') | default(0) }}"
      unit_of_measurement: "Inzidenz"
    - name: "gestern_mol_2"
      unique_id: mol_gestern_2
      state: "{{ states('sensor.mol') | default(0) }}"
      unit_of_measurement: "Inzidenz"
    - name: "gestern_pz_2"
      unique_id: pz_gestern_2
      state: "{{ states('sensor.pz') | default(0) }}"
      unit_of_measurement: "Inzidenz"

#Sensors       
- sensor:
    - name: "balkon_temp"
      unique_id: temp_balkon
      state: "{{ states('0') | default(0) }}"
      unit_of_measurement: " °C"
    - name: "balkon_temp2"
      unique_id: temp_balkon2
      state: "{{ states('0') | default(0) }}"
      unit_of_measurement: " °C"

#Binary Sensors
- binary_sensor:
    - name: "Binary Sensor 1"
      unique_id: binary_sensor_1
      device_class: occupancy
      state: "{{ is_state('binary_sensor.xyz1', 'on') }}"
    - name: "Binary Sensor 2"
      unique_id: binary_sensor_2
      device_class: occupancy
      state: "{{ is_state('binary_sensor.xyz2', 'on') }}"
Ist aber auch hier gut dokumentiert.

Gruß
Osorkon
Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Andifidi
Beiträge: 58
Registriert: So 5. Jun 2022, 18:19
3
Has thanked: 4 times
Been thanked: 1 time

Re: Corona Inzidenzen tagesaktuell und vom Vortag

Beitrag von Andifidi »

Ich danke Dir.

Dann werde ich jetzt mal in nächster Zeit etwas Ordnung machen...hoffe ich bekomme das hin.


Beste Grüße
Andreas
Antworten