Home Assistant Templates / Statistik und Sensoren
Zusätzlich zu den Sensoren bestimmter Geräte ist es möglich eigene Sensoren in Home-Assistant anzulegen: zum Beispiel über die Statistik-Integration oder über Templates.
Template-Sensor
Templates ermöglichen das Erstellen von eigenen Sensoren mithilfe von Jinja2, einer voll funktionsfähigen Template-Engine für Python. In einem Template können die Daten von verschiedensten Sensoren umgewandelt, kombiniert oder mit eigenen Formeln versehen werden.
Neben der configuration.yaml- Datei können Templatesensoren auch in der Verwaltungsoberfläche, unter Einstellungen, Geräte & Dienste / Helfer erstellt werden:
Als Beispiel gibt es in Home Assistant als Status das Datum und die Uhrzeit für den nächsten Sonnenaufgang, in der Form von: 2023-09-12T07:40:21.796007+00:00. Um die Uhrzeit über ein Template zu extrahiert, kann folgender Templatesensor erstellt werden:
{{ as_timestamp(states.sun.sun.attributes.next_rising) | timestamp_custom(' %H:%M') | replace(" 0", "") }}
Der Wizard zeigt bereits eine Vorschau mit dem Ergebnis.
Alternativ zur Verwaltungsoberfläche können Templates auch in der Datei configuraton.yaml angelegt werden:
sensor:
- platform: template
sensors:
nextsunrise:
friendly_name: 'Sonnenaufgang'
value_template: >
{{ as_timestamp(states.sun.sun.attributes.next_rising) | timestamp_custom(' %H:%M') | replace(" 0", "") }}
icon_template: mdi:weather-sunset-up
nextsunset:
friendly_name: 'Sonnenuntergang'
value_template: >
{{ as_timestamp(states.sun.sun.attributes.next_setting) | timestamp_custom(' %H:%M') | replace(" 0", "") }}
icon_template: mdi:weather-sunset-down
nextsunsetsunrise:
friendly_name: 'Sonne'
value_template: >
{{ as_timestamp(states.sun.sun.attributes.next_rising) | timestamp_custom(' %H:%M') | replace(" 0", "") }} - {{ as_timestamp(states.sun.sun.attributes.next_setting) | timestamp_custom(' %H:%M') | replace(" 0", "") }}
icon_template: mdi:weather-sunset-up
Neue Templates können zudem vorab im Template-Editor getestet werden: "Entwicklerwerkzeuge" / "Template":
Template Beispiele
was | Template |
---|---|
Sonnenaufgang |
|
Sonnenuntergang |
|
Sonne |
|
Leistung (Watt) aus Strom (I) und Spannung (U) |
|
Über den Stromverbrauch der Heizungssteuerung - gemessen mit einer Zigbee Steckdose - kann ich feststellen, welche Aktion die Heizung gerade durchführt. |
|
Plattform Integration
Um aus einem Momentanwert den Verbrauch zu bestimmen, kann eine sogenannte Plattform-Integration verwendet werden. Als Beispiel kann aus bestimmten Verbrauchswerten: Watt der komplette Verbrauch summiert werden:
sensor:
- platform: integration
source: sensor.waschmaschine_power
name: waschmaschine_energy_sum
unit_prefix: k
unit_time: h
round: 2
Um den summierten Verbrauch wieder auf eine bestimmte Zeitspanne zu beziehen, kann die "Platform Integration" als „utility_meter“ verwendet werden:
Utility_Meter
Der Utility-Meter verwendet den Gesamtverbrauch und unterteilt diesen in bestimmte Zeitspannen: z.B. stündlich (hourly) oder (täglich) daily:
utility_meter:
waschmaschine_hour:
source: sensor.trockner_energy_sum
name: Waschmaschine hour
cycle: hourly
waschmaschine_daily:
source: sensor.trockner_energy_sum
name: Waschmaschine hour
cycle: daily
Statistics Platform
Mithilfe der Statistics Platform können bestimmte historische Werte repräsentiert werden, als Beispiel die Summe bestimmter Werte:
- name: rain_weather_24
platform: statistics
entity_id: sensor.rain_weather
state_characteristic: sum
max_age:
hours: 24
sum_differences verwendet die Unterschiede zwischen den Werten bei einem fortlaufenden Zähler:
- name: powerplug_24
platform: statistics
entity_id: sensor.powerplug_summation_delivered
state_characteristic: sum_differences
max_age:
hours: 24

{{percentage}} % positiv
