Praxisnahe Tutorials, auf die du zählen kannst.
Einsteiger Guide für Home Assistant

Home Assistant Template Sensoren & Hilfsentitäten (Helfer) 101

In diesem Video werfen wir einen Blick auf die Home Assistant Template-Sensoren und Hilfsentitäten (Helfer). Zunächst erkläre ich dir einige der am häufigsten verwendeten Hilfsentitäten und gehe darauf ein …

Dann werfen wir einen Blick darauf, was Templates sind und wie sie dir helfen können, deine (Haus)-Automatisierung schnell und einfach einzurichten und warum diese essenziell sind, um aus Attributen von Entitäten Sensoren erstellen zu können

Inhaltsverzeichnis

Voraussetzungen

  1. Home Assistant Installation auf Raspberry Pi
  1. Turn on light, switch, scene, script or group based on motion and illuminance (+ more conditions) (Gezeigte Automation bei 5:11)

Home Assistant Templates Cheat-Sheet

Ich erwische mich immer wieder dabei, wie ich aus meinen Automationen Snippets kopiere. Auch wenn diese Liste noch sehr klein ist, werde ich hier alle Snippets reinkopieren, die ich mindestens 2x kopiert habe und dir hier somit ein kurzes, übersichtliches Cheat-Sheet erstellen!

Natürlich kommt davon auch einiges unten in dem großen Snippet vor, aber hier noch mal etwas übersichtlicher.

Status extrahieren

{{ states('entity_id') }}

Status / egal was als Gleitzahl abfragen

{{ states('entity_id')|float(0) }}

Rechnen in Templates ( + – * / )

{{(100 * states('entity_id')|float(0) / states('entity_id')|float(0) + states('entity_id')|float(0) - states('entity_id')|float(0)) ) }}

Status aus Attribut extrahieren

{{ state_attr('entity_id', 'attributs_name') }}

Meine Template-Sensoren zum kopieren!

Ein Ausschnitt meiner Configuration.yaml mit extrem viel zum “leihen” für dich 💙

template:
  - sensor:
    # Der Angelegte Sensor im Video, erstellt aus dem Temperatur-Attribut einen eigenen Sensor
      - name: "Wohnzimmer Temperatur Test"
        unique_id: "WohnzimmerTemperaturTest"
        unit_of_measurement: "°C"
        state_class: "measurement"
        state: >
            {{ state_attr( 'climate.heizung_wohnzimmer', 'current_temperature' )}}
    # Extrahiert aus der Powerfox Rest-Entität die Attribute als Sensoren zur Anzeige im Energiedashboard - Siehe https://www.simon42.com/home-assistant-stromzaehler/
      - name: "Strom-EG-aktuell"
        unit_of_measurement: "W"
        device_class: "power"
        state_class: "measurement"
        state: >
            {{ state_attr('sensor.poweropti', 'Watt') }}
      - name: "Strom-EG-Bezug"
        unit_of_measurement: "kWh"
        device_class: "energy"
        state_class: "total_increasing"
        state: >
            {{ state_attr('sensor.poweropti', 'A_Plus') }}
    # Erstellt aus der Numerischen Luftqualität des Luftreinigers einen lesbaren String 
      - name: "Schlafzimmer Luftqualitaet"
        state: >
          {% if state_attr( 'fan.levoit_core300s', 'air_quality' ) < 1 %}
            Error
          {% elif 4 <= state_attr( 'fan.levoit_core300s', 'air_quality' ) %}
            Schlecht
          {% elif 3 <= state_attr( 'fan.levoit_core300s', 'air_quality' ) %}
            Moderat
          {% elif 2 <= state_attr( 'fan.levoit_core300s', 'air_quality' ) %}
            Gut
          {% elif 1 >= state_attr( 'fan.levoit_core300s', 'air_quality' ) %}
            Sehr gut
          {% endif %}
    # Erstellt einen neuen Sensor aus einem bereits bestehendem mit der Maßeinheit PM2,5 
      - name: "Schlafzimmer Luftqualitaet in PM2,5"
        state: "{{ states('sensor.levoit_core300s_air_quality') }}"
        unit_of_measurement: "PM2,5"
      - name: "Destination address"
        state: >-
           {%- if is_state("input_select.ziel_ort", "Arbeit")  -%}
             49.8624937,8.7426041,17
           {%- elif is_state("input_select.ziel_ort", "Work")  -%}
             49.8624937,8.7426041,17
           {%- elif is_state("input_select.ziel_ort", "Parents")  -%}
             49.8624937,8.7426041,17
           {%- else -%}
             Unknown
           {%- endif %}
  - binary_sensor:
    # Stellt fest, ob mein iPhone grade geladen wird oder nicht
      - name: "iPhone 12p Simon Charging"
        unique_id: "iPhone12pSimonCharging"
        state: "{{not is_state('sensor.iphone12psimon_battery_state_2','Not Charging') }}"
    # Dieses Sensor ist an, wenn jemand zu Hause ist
      - name: Ist jemand zuhause
        unique_id: "isAnyoneAtHome"
        state: >
          {{ is_state('device_tracker.iphone12psimon_3', 'home')
             or is_state('device_tracker.iphone_von_arabella', 'home') }}
      - name: Entertainment in Benutzung
        unique_id: "isEntertainmentOn"
        state: >
          {{ is_state('media_player.lg_webos_smart_tv', 'on') }}

Weitere Beispiele zum Kopieren!

Hier füge ich weiter Beispiele für Templates und Helfer ein, die mir so in freier Wildbahn begegnen.

Rollo-Steuerung umkehren (Offen = Geschlossen usw.)

Erstellt eine neue Entität aus einem Rollo, dessen Steuerung umgekehrt zur Original-Entität funktioniert.

cover:
  - platform: template
    covers:
      jalousie_bad_curtain:
        friendly_name: Jalousie Bad
        position_template: "{{ 100 - (state_attr('cover.jalousie_bad_curtain', 'current_position') | int) }}"
        open_cover:
          service: cover.close_cover
          data:
            entity_id: cover.jalousie_bad_curtain
        close_cover:
          service: cover.open_cover
          data:
            entity_id: cover.jalousie_bad_curtain
        stop_cover:
          service: cover.stop_cover
          data:
            entity_id: cover.jalousie_bad_curtain
        set_cover_position:
          service: cover.set_cover_position
          data:
            entity_id: cover.jalousie_bad_curtain
            position: "{{ 100 - (position) }}"

Luftfeuchtigkeits-Berechnungen

Errechnet aus der relativen Luftfeuchtigkeit die Absolute, Video siehe hier.

    # Errechnet aus der relativen Luftfeuchtigkeit und Temperatur im Innenraum die absolute Luftfreuchtigkeit in Gramm pro Kubikmeter
      - name: "Absolute Luftfeuchtigkeit SZ"
        unique_id: "AbsoluteHumiditySZ"
        unit_of_measurement: "g/m^3"
        state_class: "measurement"
        state: > 
            {{ ( 1000*e**(19.016-(4064.95/(float(states('sensor.aqara_tvoc_air_quality_monitor_temperature'))+236.25)))*100/(461.66*(float(states('sensor.aqara_tvoc_air_quality_monitor_temperature'))+273.15)) * float(states('sensor.aqara_tvoc_air_quality_monitor_humidity'))/100 | float) | round (2) }}
    # Errechnet aus der relativen Luftfeuchtigkeit und Temperatur außen die absolute Luftfreuchtigkeit in Gramm pro Kubikmeter
      - name: "Absolute Luftfeuchtigkeit außen"
        unique_id: "AbsoluteHumidityOutside"
        unit_of_measurement: "g/m^3"
        state_class: "measurement"
        state: >
            {{ ( 1000*e**(19.016-(4064.95/(float(states('sensor.tuya_temperature_humidity_sensor_temperature'))+236.25)))*100/(461.66*(float(states('sensor.tuya_temperature_humidity_sensor_temperature'))+273.15)) * float(states('sensor.tuya_temperature_humidity_sensor_humidity'))/100 | float) | round (2) }}
    # Errechnet den Unterschied der Luftfeuchte von innen und außen in Gramm pro Kubikmeter
      - name: "Absolute Luftfeuchtigkeit Unterschied"
        unique_id: "AbsoluteHumidityDifference"
        unit_of_measurement: "g/m^3"
        state_class: "measurement"
        state: >
            {{ ( float(states('sensor.absolute_luftfeuchtigkeit_sz')) - float(states('sensor.absolute_luftfeuchtigkeit_aussen')) ) | float | round (2) }}

Duscherkennung

Erstellt eine Entität die anhand der Änderung von Luftfeuchtigkeitswerten in einer bestimmten Zeit errechnet, ob jemand duscht -> zum Video.

binary_sensor:
  # Quelle: https://community.home-assistant.io/t/automation-shower-detection-trigger-when-humidity-increases-in-10-minutes/162250
  # Tracks 3 humidity readings over 10 minutes. If the change is greater than 10%, evals to true. (10/(60*10)) -> (10%/(60Sek*10Min)) = 0.01666 Gradient bei 600 Sekunden (10 Minuten)
  - platform: trend
    sensors:
      badezimmer_duschen:
        friendly_name: "Badezimmer duschen"
        max_samples: 3
        entity_id: sensor.aqara_tempature_and_humidity_sensor_humidity
        sample_duration: 600
        min_gradient: 0.01666
        device_class: occupancy 

Icon bei bestimmten Wert ändern

So kannst du von einem Template-Sensor das Icon ändern, wenn sich der Wert ändert. Ob der State-Code so sinn macht oder nicht, sei mal dahingestellt… Aber der Icon-Code stimmt auf jeden Fall 👍

template:
  - binary_sensor:
     Errechnet anhand der Vibrationen der letzen Stunde (Siehe unten unter sensor:), ob die Waschmaschine läuft
      - name: "Waschmaschine"
        unique_id: "Waschmaschine"
        state: "{{states('sensor.vibrationen_der_letzten_stunde')|float(0) > 3 }}"
        device_class: occupancy
        # Für neue Templates nutzt man icon: für altere icon_template:
        icon: >-
          {% if states('sensor.vibrationen_der_letzten_stunde')|float(0) > 3 %}
            mdi:washing-machine
          {% else %}
            mdi:washing-machine-off
          {% endif %}

Falsche Werte aus Stromzähler filtern

Danke an @klaustom6604, dieses Code-Snippet filtert falsche Werte beim auslesen des Zählers mit dem Hichi-Lesekopf raus. (Nicht selbst getestet)

# falsche Werte vom Hichi verwerfen
  - platform: filter
    name: "Strombezug gefiltert"
    entity_id: sensor.tasmota_ed300l_counter_pos
    unique_id: Strombezuggefiltert
    filters:
      - filter: outlier
        window_size: 3
        radius: 0.045
        precision: 3

Wechselrichter anbinden mit REST-API

Hier mal ein Beispiel eines befreundeten YouTubers, wie wir seine Solaranlage angebunden haben. Dieser Wechselrichter stellt eine REST-API bereit, die wir über Templates integriert haben. Hier nur die Grundlegenden Sachen, kann man entsprechend der Bedürfnisse erweitern.

rest: 
  ## Generierung des Tokens
  ## Hierfür unbedingt einen Helfer anlegen namens "PV-Token Helper" und den Wert des Helfers per Automation gleichsetzen mit dem hier, sobald sich dieser Wert hier im Template ändert. 
  - resource: https://lb.solinteg-cloud.com/openapi/v2/loginv2/auth
    payload: '{"authAccount": "User.Mail@provider.com","authPassword": "SuperSecretePassword"}'
    method: POST
    scan_interval: 600
    headers:
      Content-Type: "application/json"
    sensor:
      - name: "PV-Token"
        value_template: "{{value_json.body}}"
  ## Beispielhaftes Auslesen von Battery_V als Status des Template-Sensors, INV_SN und CreationDate werden als Attribute des Sensors gesetzt.
  - resource: https://lb.solinteg-cloud.com/openapi/v2/device/queryDeviceRealtimeData?deviceSn=XXXXXXXXXXXXXXXX
    headers:
      token: "{{ states('input_text.pv_token_helper') }}"
    method: GET
    scan_interval: 60
    sensor:
      - name: "Wechselrichter Batterie Spannung oder so?"
        value_template: "{{value_json.body.Battery_V}}"
        unit_of_measurement: "V"
        json_attributes_path: "$.body"
        json_attributes:
          - "INV_SN"
          - "CreationDate"

Berechnungen in Home Assistant

Snippets zum Kopieren!

Addition:
{{ 1 + 1 }}
Subtraktion:
{{ 3 - 2 }}
Multiplikation:
{{ 2 * 2 }}
Division:
{{ 1 / 2 }}
Raise:
{{ 2**3 }}
Rest:
{{ 24 % 7 }}
Truncate:
{{ 20 // 7 }}

Mit Entitäten:
Addition:
{{ (float(states('sensor.ertrag_heute_solaranlage_kwh_total_inc'))) + (float(states('sensor.aktuelle_leistung_solaranlage'))) }}
Subtraktion:
{{ 3 - 2 }}
Multiplikation:
{{ (float(states('sensor.ertrag_heute_solaranlage_kwh_total_inc'))) * 1000 }}
Division:
{{ (float(states('sensor.ertrag_heute_solaranlage_kwh_total_inc'))) / 1000 }}
Raise:
{{ 2**3 }}
Rest:
{{ 24 % 7 }}
Truncate:
{{ 20 // 7 }}

Gezeigte Template-Entitäten

template:
  - sensor:
    # Preis HT täglich
      - name: Preis HT täglich
        unique_id: "PriceHTdaily"
        unit_of_measurement: 'EUR'
        state: >-
            {{ ((float(states('sensor.daily_energy_ht'))) * (float(states('input_number.ht_preis')))) | round(2) }}
  - sensor:
    # Preis NT täglich
      - name: Preis NT täglich
        unique_id: "PriceNTdaily"
        unit_of_measurement: 'EUR'
        state: >-
            {{ ((float(states('sensor.daily_energy_nt'))) * (float(states('input_number.nt_preis')))) | round(2) }}
  - sensor:
    # Leistung Wärmepumpe
      - name: Leistung Wärmepumpe
        unique_id: "LeistungWarmepumpe"
        unit_of_measurement: 'W'
        device_class: "power"
        state_class: "measurement"
        state: >-
            {{ ((float(states('sensor.aktuelle_leistung_warmepumpe'))) * 1000) | round(2) }}
  - sensor:
    # Gesamtverbrauch Wärmepumpe
      - name: Gesamtverbrauch Wärmepumpe
        unique_id: "GesamtverbrauchWarmepumpe"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ ((float(states('sensor.overall_energy_ht'))) + (float(states('sensor.overall_energy_nt')))) | round(3) }}
  - sensor:
    # Stromzähler Keller Verbrauch
      - name: "Stromzähler 1. & 2. OG Verbrauch"
        unique_id: "Stromz1u2OGVerbrauch"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_ace3000_total_inz1')) | round(3) }}
  - sensor:
    # Unterschied Küche Raum und Heizkörper
      - name: "Küche Temperaturunterschied"
        unit_of_measurement: '°C'
        device_class: temperature
        state_class: measurement
        state: "{{ float(state_attr('climate.lumi_lumi_airrtc_agl001_thermostat','current_temperature')) - float(states('sensor.lumi_lumi_weather_temperature')) }}"

Berechnungen / Templating in Automationen

Natürlich ist es auch möglich, in Automatisierungen mit Templates werte zu berechnen und diese beispielsweise in Dienstaktivierungen als Wert zu übergeben.

Hier berechne ich mir etwa die Lüfterdrehzahl eines Lüfters an der Heizung anhand des Unterschiedes der Temperatur am Heizkörper – Raumtemperatur:

Automation in Home Assistant mit Template-Berechnung für Dienstaufruf

service: fan.set_percentage
data:
  percentage: >
    {% set temperature = ((states('sensor.kuche_temperaturunterschied') | float)
    - 1) %}  {% if temperature > 20 %}
      100
    {% elif temperature > 1 and temperature < 20 %}
      {{ 5*temperature }}
    {% else %}
      0
    {% endif %}
target:
  entity_id:
    - fan.kuche_lufter_auslass

Hinweis zur Modulo (Rest) Funktion

Danke an ComedyClub3333 für diesen Hinweis in den Kommentaren 🙏

Das %-Symbol ist im Übrigen nicht exakt der Rest, sondern der Modulo. Der Rest (Remainder) und Modulo sind nur für positive Zahlen gleich, für negative Zahlen unterscheiden sie sich wesentlich. Leider handhabt das jede Programmiersprache (hier Python) anders. Zum Glück hat man den Fall mit negativen Zahlen bei uns im Home Automation-Bereich eher selten (Ganzzahldivisionen überhaupt), aber das sollte vielleicht erwähnt werden.

 @simon42  Vielleicht sollte ich das noch mal etwas genauer am Beispiel -23 und 22 veranschaulichen. Der Unterschied ist immer etwas verwirrend und ich verwechsele das auch regelmäßig. -23 / 22 gibt -1.04545454545… Das heißt, die 22 passt ganzzahlig 1-mal in die -23, weswegen man für den Remainder -23 – (-1 * 22) = -23 + 22 = -1 herausbekommt (-1 negativ, weil man das ja negativ auffüllen muss).

Das wäre quasi der echte Rest im Sinne dessen, dass es das Überbleibsel davon ist, wenn man die 22 ganzzahlig reinstopft. Der Modulo hingegen entspringt der Abrunddivision (floor division). Da das Ergebnis von -23 / 22 etwas kleiner als -1 ist (Vorsicht: minus!), wäre das Ergebnis von -23 // 22 abgerundet (truncated ist nicht ganz der richtige Begriff, -1.04545… abzuschneiden wäre nämlich die strenge Ganzzahldivision) -2. Die gleiche Rechnung wie oben wäre dann: -23 – (-2*22) = -23 – (-44) = -23 + 44 = 21 Tatsächlich lässt sich das eine in das andere umrechnen. Hier im Speziellen gilt: Sollte der Remainder auch für negative Zahlen gewünscht sein, muss man einfach so lange den Divisor vom Ergebnis subtrahieren, bis es negativ ist. In Template-Code wäre das: {{ a % b -b if a > 0 else a % b – b }} Es sei vielleicht dazugesagt, dass die Dokumentation von Jinja sowohl den Modulo als auch Truncate falsch bezeichnet, genauer gesagt erklärt. Das ist erst mal nicht schlimm, weil beides eben für positive Zahlen gleich ist, aber mir hat das im Studium schon einige Stunden Debuggen beschert.

https://www.youtube.com/watch?v=OjP6JmPfCNw&lc=UgxxQhoWuMM_cI6s8gN4AaABAg.9mbDb2lGE-S9mbe7HhPSAu

Geräte für HA

Gadgets für Home Assistant, HACS oder auch Alexa, Google Home, HomeKit sowie Homebridge findest du in unserem Smart Home Gerätefinder!

Hardware für Home Assistant

Dein Home Assistant ist langsam, reagiert unzuverlässig oder stürzt ab? Du hast noch gar keinen am Laufen?

Im Beitrag unten findest du empfehlenswerten Hardware & Tipps, damit dein Home Assistant so richtig gut läuft und dein Smarthome schnell wie der Blitz wird 🚀

Fazit

In diesem Video haben wir uns mit den Sensoren und Helfer-Entitäten in Home Assistant beschäftigt.

Wir haben uns angesehen, was Helfer sind und wie sie dir helfen können, deine Automatisierung schnell und einfach einzurichten. Schließlich haben wir uns angeschaut, was Vorlagen sind und warum sie wichtig sind, um Sensoren aus Entitätsattributen zu erstellen.

Wenn du mit der Heimautomatisierung beginnen möchtest, solltest du dir unbedingt unsere anderen Videos zu diesem Thema ansehen!

Verpasse keine Tipps!

Ich sende keinen Spam! Erfahre mehr in der Datenschutzerklärung.

Transparenz: In diesem Artikel sind Partnerlinks enthalten. Durch einen Klick darauf ge­lan­gt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhalte ich ei­ne kleine Provision. Für euch ändert sich am Preis nichts & Partnerlinks haben keinerlei Einfluss auf meine Berichterstattung. Vielen Dank für deine Unterstützung!

Gründer von simon42. Schreibt hier ehrlich und leidenschaftlich über Smart Home und Technik Themen, denn das Zuhause wurde bereits von Sprachassistenten übernommen und die Kontrolle abgegeben 😁

Beginnen die Diskussion unter community.simon42.com

34 Gedanken zu „Home Assistant Template Sensoren & Hilfsentitäten (Helfer) 101“

  1. Gibt es denn eine Möglichkeit eine “Konstante” zu definieren in Sensoren:
    Zum Beispiel für eine Adresse? Mein Code geht leider nicht 🙁

    – name: “waze_arbeit_adress”
    state: “xxx 6, plz city, Deutschland”

  2. Hi Simon,

    erstmal ein Lob von mir für deine super Videos und Dokumentation.
    Die haben mir schon oft geholfen oder mich auf neue tollen Ideen gebracht.

    Jetzt hab ich aber ein kleines Problem wo ich keine Lösung finde.
    Ich hab mir einen Helfer (input_boolean.sommer) gebastelt.
    Diesen möchte ich in einer Automation als Aktionen schalten.
    Aber wie kann ich dort in Aktionen den Helfer eintragen den ich aus bzw einschalten möchte?

    • Das kommt bald im “Grundlagen der Automationen” Video (bestimmt interessant für dich). Dafür benötigt man den Dienst input_boolean.turn_on (nicht ganz sicher, name kommt aus’m Gedächtnis 😅)

  3. Moin Moin,

    Ich habe diesen Sensor 1:1 mit meinem Phone als Device Tracker in meine Konfiguration unter Templates geschrieben, er blieb aber immer auf ‘off’.
    Er wurde erstellt hat aber nicht gemerkt ob jemand zu Hause ist oder nicht.
    State am Phone war auf ‘home’ so dass hier eigentlich ein ‘true’ hätte zurück kommen müssen.

    Alle anderen Sensoren die ich so angelegt habe tun fleißig ihren Dienst, ich gehe also mal nicht davon aus, dass ich da einen Fehler drin hatte 🙂

    Irgendwelche Ideen ob und wie ich herausfinden kann warum der nicht geht?
    Ich hab tatsächlich auch kürzlich erst angefangen vor 2 Wochen und finde mich noch in die Themen rein ^^ Im Log hab dazu nichts gefunden.

    # Dieses Sensor ist an, wenn jemand zu Hause ist
    – name: Ist jemand zuhause
    unique_id: “isAnyoneAtHome”
    state: >
    {{ is_state(‘device_tracker.iphone12psimon_3’, ‘home’)
    or is_state(‘device_tracker.iphone_von_arabella’, ‘home’) }}

    • Da war ich außerdem zu schnell mit dem abschicken.
      Respekt für deine tollen Videos, damit hab ich den Einstieg sehr schnell und einfach hin bekommen. 🙂

    • Das hier wiederum hat jetzt bei mir funktioniert:

         – binary_sensor:
           – name: Anyone home
             state: >
               {{ is_state(‘device_tracker.iphone_xxx’, ‘home’)
                  or is_state(‘person.christian’, ‘home’) }}

      Der einzige Unterschied der mir auffällt, dass ich die unique_id diesmal weg gelassen hab.

  4. Hallo,

    bin noch ganz neu im Geschäft, daher noch ne Einsteigerfrage:

    Ich brauch für die (vollständige) Integration meiner PV-Anlage in HA noch ein paar binary_sensors.

    Hab entsprechend der obigen Anleitung folgendes in die configuration.yaml eingetragen:

     # GoSungrow binary-sensors
    template:
     – binary-sensor:
          – name: “GoSungrow”
            unique-id: “binary_sensor.gosungrow”
            state: “{{not is_state(‘sensor.gosungrow’,’on’)}}”

    In den Entwicklerwerkzeugen wird der Template Code mit dem richtigen Wert
    state: “True”
    ausgegeben.

    Wenn ich HA neu starte kommt aber folgende Fehlermeldung:
    Logger: homeassistant.config
    Source: config.py:868
    First occurred: 09:45:27 (1 occurrences)
    Last logged: 09:45:27

    Invalid config for [template]: [binary-sensor] is an invalid option for [template].
    Check: template->binary-sensor. (See /config/configuration.yaml, line 77).

    Über die Helfer hatte ich das mit vorher mal mit dem Schwellenwertsensor probiert. Da konnte ich die binary_sensoren zwar alle anlegen, aber ich brauch einen binaren Sensor der einfach nur “on / off” (also PV liefert Strom oder halt nicht) ausgibt, ohne ne “Schwelle”. Diesen gibt es ja in den Helfern nicht, oder doch?

    Viele Grüße und danke für die Videos… konnte schon einiges davon übernehmen.
    Markus

  5. Hallo,
    Ich habe gerade erst neu angefangen mit Home Assistent, seit Januar aber ich habe viele Probleme mit der Automatisierung des System selber läuft alle Sensoren sind erkannt. Zwei Sachen möchte ich machen, einmal mit einem sonoff zigbeeschalter eine WLAN Steckdose anschalten. Und zweitens über ZigBee Heizungsthermostate steuern, kann ich auch aber mit Zeitplan bitte. Ich komme da jetzt nicht ganz klar mit der Automatisierung und die Verweise die es gibt sind meistens mit zusätzlichen Thermometer oder Fensterkontakten die ich alle nicht habe gibt es dafür eine einfache Lösung.
    Wie gesagt steuern kann kann ich alles aber nicht regeln bei den Termostaten.
    Ich kann auch kein Yamel.
    Mein Kollege arbeitet mit IO Broker, er meint das sei besser und in Deutsch.
    Bin für jede Hilfe dankbar.

    Steffen

  6. Hallo Simon,

    vielleicht hab ich ‘s ja überhört…
    Wie kann man einen einmal erstellten Helfer ändern?
    Ist der Code dafür irgendwo gespeichert? Mit der Suche im Fileeditor habe ich nichts gefunden. Vielleicht habe ich Konzept auch noch nicht ganz verstanden…

    LG
    Peter ( noch Rookie)

    • Sorry, aber ich verstehe das nicht. Bei Einstellungen/Geräte_und_Dienste/Helfer … das ist klar.

      In meinem Besipiel möchte ich dem von mir erstellten Helfer “GruppeSonos” weitere Entitäten hinzufügen.

      Ich versteh nicht wie man das machen kann…

      Danke für deine Mühe.

    • Ach so okay,

      da gehst du einfach wieder auf den Helfer und unter Einstellungen gibt es “Gruppen-Optionen”. Da kann man Mitglieder hinzufügen oder entfernen.

      Glaube, dafür müssen die erweiterten Optionen im Benutzerprofil angeschaltet sein 😉

  7. Servus Simon,
    Danke für Deine eMail auf meine Anfrage.
    Habe aber selber noch „probiert” und mit Erfolg 😎

    # Kosten für smart TV schauen in €   
    # im Helfer input_number steht mein aktueller Strompreis 😎

       – name: smarttv Euro
         unique_id: “VerbrauchTVEuro”
         unit_of_measurement: Euro
         state: >
         {{ states(‘sensor.smarttv_energy’)|float(0) * states(‘input_number.aktueller_strompreis’)|float(0)/100 }}

       
         

  8. Hallo, ich bin relativ neu in der Materie und habe eine Frage. Ich will Entitäten erstellen. Mit einer klappt es aber mehrere sehe ich nicht . Hier mal mein Beispiel:
    template:
    – sensors:
       – name: “Shelly3EM Total Energy”
         unique_id: shelly3em_energy_total
         device_class: energy
         state_class: total
         unit_of_measurement: “kWh”
         state: >
            {{
            states(‘sensor.hausverbrauch_channel_a_energy’)| float(0) +
            states(‘sensor.hausverbrauch_channel_b_energy’)| float(0) +
            states(‘sensor.hausverbrauch_channel_c_energy’)| float(0)
            }}

       – name: “Shelly3EM Total Energy Returned”
         unique_id: shelly3em_energy_total_returned
         device_class: energy
         state_class: total
         unit_of_measurement: “kWh”
         state: >
            {{
            states(‘sensor.hausverbrauch_channel_a_energy_returned’)| float(0) +
            states(‘sensor.hausverbrauch_channel_b_energy_returned’)| float(0) +
            states(‘sensor.hausverbrauch_channel_c_energy_returned’)| float(0)
            }}
         energy_total:
           friendly_name: ‘Hausverbrauch’
           value_template: “{{ (states(‘sensor.hausverbrauch_channel_a_energy’)|float + states(‘sensor.hausverbrauch_channel_b_energy’)|float + states(‘sensor.hausverbrauch_channel_c_energy’)|float)|round(3) }}”
           unit_of_measurement: “kWh”
         power_total:
           friendly_name: ‘Hausverbrauch Power’
           value_template: “{{ (states(‘sensor.hausverbrauch_channel_a_power’)|float + states(‘sensor.hausverbrauch_channel_b_power’)|float + states(‘sensor.hausverbrauch_channel_c_power’)|float)|round(3) }}”
           unit_of_measurement: “W”

    Was mache ich verkehrt?

    Vielen Dank im vorraus

    • Hi Ralf, gut zu wissen wäre noch die Info, was genau nicht geht 😅

      Du kannst auch mal im Log schauen, was da steht. Häufig wird dir hier schon mitgeteilt, wo der Fehler im Code liegt.

    • Hallo Simon, da ich noch total neu in der Materie bin, taste ich mich gerade langsam vorwärts. Jetzt habe ich zumindest verstanden, wie ich die Code´s in die richtige Position bringe. Hab mit viel Probieren es zum laufen gebracht einen Shelly em3 saldieren zu lassen. Wenn du total neu bist, hast du Probleme den Inhalt in den Foren zu verstehen. Wenn du weißt was ich meine. Eine kleine Frage hätte ich doch noch. In einen deiner Videos sprichst du dich für die Verwendung einer SSD Festplatte aus. Ich hab mir die aus deine Beschreibung bestellt. Wenn ich das System damit neu aufsetze, kann ich dann danach das Backup einspielen und meine ganzen Einstellungen und Codes usw. sind wieder da. Oder wäre es besser eine Kopie von der SD Karte auf die SSD zu machen? LG

    • Hi Ralf,
      ich verstehe genau, was du meinst, ging mir am Anfang nicht anders 😉

      Zu deiner Frage zur SSD: Genau, wenn du einfach ein Backup machst (am besten vor dem Backup einmal den Home Assistant Host neu starten, damit kein Add-on hängt) und dieses dann wieder einspielst sollte das klappen.

      Falls du keinen Raspberry Pi 4 hast, wäre noch alternativ zu überlegen, ob du direkt in einen Intel NUC investierst (bevor du später noch den Pi upgraden musst, weil dann kommst du teurer)

      Beste Grüße

    • Nein, es ist ein Pi 4.Also alles gut. Vielen Dank für die Unterstützung. Abo und 👍 hoch sind raus. LG und schönes sonniges Restwochenende👍

    • ich suche noch eine Möglichkeit den Verbrauch eines Gerätes, welches an einen Shelly 1pm hängt als Tagesverbrauch auszulesen. Kannst du mir dafür einen Code senden?Danke im vorraus

    • Hi Ralf, da musst du dir einfach nur unter Geräte und Dienste einen neuen Helfer Verbrauchszähler anlegen. Eingangsentität ist dann der kWh Sensor vom Shelly 1PM, Zyklus ist täglich -> Fertig 😁

    • Du bist klasse.Danke.In den Foren wird dies viel komplizierter besprochen. Also das war einfach. Danke viel vielmals.

    • Hallo Simon, weiß nicht ob ich dich nerve, aber ich könnte nochmal deine Hilfe gebrauchen. Ich will meinen WR von Solax in HA integrieren. Hab da einen Code bei https://community.home-assistant.io/t/pv-solax-inverter-cloud-sensors-via-api/277874 gefunden. Api Schnittstelle aktiviert und getestet sowie den Code entsprechend verändert. Dann habe ich alles in configuration.yaml kopiert und er zeigt mir ein grünes Häkchen. Dann habe ich bei Entwicklerwerkzeug die yaml überprüft und folgender Fehler kam “Integration error: sensors – Integration ‘sensors’ not found.” vielleicht hast du eine Idee. Ich komm noch nicht richtig klar.
      Vielen Dank im vorraus

  9. Danke für die Erklärung von Templates. Habe mir einen erstellt um 2 Verschiedene Strompreise nach Tageszeit zu erstellen. Wenn ich den Template in den Entwickleroptionen Teste funktioniert er, aber wenn ich in Yaml einfüge geht er nicht.

    Hier der Code

     – sensor:   
       – name: ‘Strompreis’
        unique_id: Strompreis
        unit_of_measurement: ‘EUR/kWh’
        device_class: “energy”
        state_class: “total_increasing”
        state: >
         {{% set tariff = { “Tag”: 0.4060, “Nacht”: 0.3395 } %} 
         {% set time = { “month”: (now().strftime(‘%m’) | int), “hour”: (now().strftime(‘%H’) | int), “weekday”: (now().weekday() | int ) } %} 
         {% if ((time.weekday <5) and (time.hour >= 8) and (time.hour < 20)) %}
         {{ tariff.Tag }}
         {%else%}
         {{ tariff.Nacht }}
         {%endif%}

    Wo liegt der Fehler?.
    Am Foto siehst du die Fehlermeldung

    • Sehr merkwürdig, bei mir funktioniert der Code auch im Template-Modus nicht…

      (TemplateSyntaxError: unexpected ‘%’)

      Ist da vielleicht beim Kopieren etwas verloren gegangen?

       – sensor:   
         – name: 'Strompreis'
          unique_id: Strompreis
          unit_of_measurement: 'EUR/kWh'
          device_class: 'energy'
          state_class: 'total_increasing'
          state: >
           {{% set tariff = { 'Tag': 0.4060, 'Nacht': 0.3395 } %} 
           {% set time = { 'month': (now().strftime('%m') | int), 'hour': (now().strftime('%H') | int), 'weekday': (now().weekday() | int ) } %} 
           {% if ((time.weekday <5) and (time.hour >= 8) and (time.hour < 20)) %}
           {{ tariff.Tag }}
           {%else%}
           {{ tariff.Nacht }}
           {%endif%}
      
    • Hallo Simon,
      ich bin gerade am verzweifeln. Ich versuche schon länger die Differenz von 2 Entitäten zu berechnen.
      Ziel ist: neue Entität aus sensor.z1_total_out – sensor.z2_total_out zu berechnen und in einer Entität wp_verbrauch zu schreiben.
      Meine Conifguration.yaml sieht wie folgt aus (siehe Screenshot).
      Leider wird aber keine Entität wp_verbrauch erstellt.
      Hast du vielleicht eine Idee was ich falsch mache?

      Danke für deine Unterstützung

      Mario

Die Kommentare sind geschlossen.

Send this to a friend