Seite 1 von 1
Corona Inzidenzen tagesaktuell und vom Vortag
Verfasst: So 12. Jun 2022, 08:26
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
Re: Corona Inzidenzen tagesaktuell und vom Vortag
Verfasst: So 12. Jun 2022, 11:08
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
Re: Corona Inzidenzen tagesaktuell und vom Vortag
Verfasst: So 12. Jun 2022, 12:48
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
Re: Corona Inzidenzen tagesaktuell und vom Vortag
Verfasst: So 12. Jun 2022, 13:14
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
Re: Corona Inzidenzen tagesaktuell und vom Vortag
Verfasst: So 12. Jun 2022, 13:32
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:
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
Re: Corona Inzidenzen tagesaktuell und vom Vortag
Verfasst: So 12. Jun 2022, 14:36
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
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"
Re: Corona Inzidenzen tagesaktuell und vom Vortag
Verfasst: So 12. Jun 2022, 15:59
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
Re: Corona Inzidenzen tagesaktuell und vom Vortag
Verfasst: So 12. Jun 2022, 17:08
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