Wechselrichter: Anzeigen des zuletzt verfügbaren Wertes eines Sensors

Bereich rings rum zum Thema Yaml und seine Tücken.


Antworten
Benutzeravatar
Tobi
Beiträge: 44
Registriert: Mi 28. Jun 2023, 20:38
Wohnort: Soest
Has thanked: 25 times
Been thanked: 12 times

Wechselrichter: Anzeigen des zuletzt verfügbaren Wertes eines Sensors

Beitrag von Tobi »

Hi zusammen,

vielleicht kann mir jemand bei folgender Sache helfen..

Mein Growatt Wechselrichter ist über einen ESP mit ESPHome in HA eingebunden. Der Wechselrichter schaltet sich jedoch aus, sobald keine Produktion mehr. Dementsprechend werden mir die Werte in HA dann als "nicht Verfügbar" angezeigt. Generell könnte ich damit leben, aber da ich einen weiteren Sungrow Wechselrichter in HA integriert habe und die Tagesproduktion beider Wechselrichter mit einer angelegten Gruppe in HA zusammenrechne, wird mir nach Abschaltung des Growatt nur noch der Ertrag des Sungrows angezeigt. Mein Wunsch ist also den letzten Wert der Tagesproduktion des Growatt zu "halten" damit der zusammenaddierte Wert plausibel bleibt.
Habe natürlich auch schon im Web recherchiert und einen möglichen Ansatz mittels eines trigger-based-templates gefunden:

Code: Alles auswählen

template:
  - trigger:
      - platform: state
        entity_id: sensor.outside_temp
        not_to:
          - unknown
          - unavailable
    sensor:
      - name: Outside Temperature
        state: '{{ trigger.to_state.state }}'
        device_class: temperature
        unit_of_measurement: '°C'

Quelle: https://community.home-assistant.io/t/s ... /200081/29 (OzStone/Sep´23)

Habe mir das mal, meiner Meinung nach, passend zurechtgeschrieben...

Code: Alles auswählen

template:
  - trigger:
      - platform: state
        entity_id: sensor.esp_growatt_energytoday
        not_to:
          - unknown
          - unavailable
    sensor:
      - name: Growatt Tagesproduktion Template
        state: '{{ trigger.to_state.state }}'
        device_class: energy
        state_class: total_increasing
        unit_of_measurement: 'kWh'

und den Code in meine template.yaml kopiert. Erhalte dann aber eine Fehlermeldung:

Logger: homeassistant.config
Source: config.py:597
First occurred: 17:43:20 (1 occurrences)
Last logged: 17:43:20

Invalid config for 'template' at template.yaml, line 23: 'template' is an invalid option for 'template', check: template
Logger: homeassistant.config
Source: config.py:597
First occurred: 17:43:20 (1 occurrences)
Last logged: 17:43:20

Invalid config for 'template' at template.yaml, line 23: 'template' is an invalid option for 'template', check: template

Meine gesamte template.yaml sieht so aus:

Code: Alles auswählen

binary_sensor:
  - name: Garagentor
    state: |
      {{ is_state('switch.tasmota_c8f09e740eb8_switch_relay_1', 'off') }}
    device_class: garage_door
    unique_id: 944e0be2-f259-45ca-9d17-49a5c4133498
  - name: Garagentür
    state: |
      {{ is_state('switch.tasmota_c8f09e740eb8_switch_relay_2', 'off') }}
    device_class: door
    unique_id: 7b5fd00a-4ad2-4fc1-9398-67f079a1156f
  - name: Zisterne Alarmgeber
    state: |
      {{ is_state('switch.tasmota_c8f09e740eb8_switch_relay_3', 'on') }}
    device_class: problem
    unique_id: 9f80d7ee-fffd-4d0d-8ede-08934ced7c38
  - name: Stromausfallmelder
    state: |
      {{ is_state('sensor.apc_status', 'On Battery') }}
    device_class: problem
    unique_id: 807302b4-ca38-4566-92dc-6b1a66c64cc4

template:
  - trigger:
      - platform: state
        entity_id: sensor.esp_growatt_energytoday
        not_to:
          - unknown
          - unavailable
    sensor:
      - name: Growatt Tagesproduktion Template
        state: '{{ trigger.to_state.state }}'
        device_class: energy
        state_class: total_increasing
        unit_of_measurement: 'kWh'

Lt. ingress ist die Konfiguration gültig (grüner Haken) aber erhalte nach einem Neustart wie gesagt die obige Fehlermeldung. Jemand eine Idee was falsch ist? Oder hat jemand vielleicht einen ganz anderen (einfacheren) Lösungsweg ?

Vielen Dank im Voraus für eure Hilfe!

Viele Grüße Tobi

Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Wechselrichter: Anzeigen des zuletzt verfügbaren Wertes eines Sensors

Beitrag von Osorkon »

In der template.yaml darf die Zeile

Code: Alles auswählen

template:

nicht mehr auftauchen.

D.h. die muss raus und alles andere muss 2 Leerstellen nach links.

So wie Du es in die template.yaml eingetragen hasst, gehört es in die configuration.yaml, wenn Du die Konfiguration nicht aufseilten würdest.

Ich arbeite gerne mit packages. Hat den Vorteil, dass Du die Konfiguration, Integrations unabhängig auf verschieden yaml Dateien aufteilen kannst.

Dazu musst tu zuerst in der configuration.yaml folgende Zeile hinzufügen im Bereich

Code: Alles auswählen

homeassistant:
  packages: !include_dir_named packages

Und im /config Order den Ordner packages erstellen.

Nach dem Du Home Assistant neu gestartet hast.
Kannst alle in yaml erstellte Sensor Konfigurationen im Order packages ablegen. Und zwar so, als ob sie direkt in der configuration.yaml eingetragen werden.

Im Fall Deines Template Sensors. Einfach im Order packages die Datei growatt.yaml erstellen.
Unden Code 1:1 rein kopieren. Beginnend mit der Zeile

Code: Alles auswählen

tempalte:

in der gleichen Datei könntest Du dir auch MQTT Sensoren anlegen oder ein Template Switch, etc. Z.B alles was zu growatt dazu gehört.

Du kannst das Thema packages parallel zu der bereits aufgeteilten Konfiguration nutzen.

Gruß
Osorkon

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Tobi
Beiträge: 44
Registriert: Mi 28. Jun 2023, 20:38
Wohnort: Soest
Has thanked: 25 times
Been thanked: 12 times

Re: Wechselrichter: Anzeigen des zuletzt verfügbaren Wertes eines Sensors

Beitrag von Tobi »

Hey Osorkon,

super, vielen Dank das war es 👍. Funktioniert nun wie es sein soll. Dabei ist mir aufgefallen dass ich bereits vor langer Zeit sogar für was anderes bereits

Code: Alles auswählen

 packages: !include_dir_named integrations 

angelegt hatte. Irgendwie vergesse ich sowas wenn ich wieder länger mit yaml nichts mehr gemacht hatte. Habe dort die growatt.yaml nun abgelegt.

Viele Grüße
Tobi

Benutzeravatar
Tobi
Beiträge: 44
Registriert: Mi 28. Jun 2023, 20:38
Wohnort: Soest
Has thanked: 25 times
Been thanked: 12 times

Re: Wechselrichter: Anzeigen des zuletzt verfügbaren Wertes eines Sensors

Beitrag von Tobi »

Hi zusammen,

falls noch jemand einen Microwechselrichter betreibt, dessen Entitäten Nachts nicht mehr verfügbar sind, es gibt mittlerweile eine einfachere Lösung mittels eines Verbrauchszählers unter den Helfern. Hier besteht die Möglichkeit den Zähler "immer verfügbar" zu machen. Dann spart man sich das obige Prozedere.
Quelle:
https://www.home-assistant.io/integrati ... ity_meter/

Viele Grüße
Tobi

Antworten