Newbie zu blöd um eine Entität zu erstellen

x-ray

New member
Hi Leute,
ich bin ganz neu zu HA gekommen, ein paar Automatisierungen sind mir schon gelungen, aber jetzt bin ich am Ende meines Lateins.
Ich versuche meinen Hybrid-Inverter so zu automatisieren, daß er je nach voraussichtlichem Sonnenschein morgen die Batterie nachts
mal mehr oder weniger lädt. Das hab ich auch soweit hinbekommen.
Nun möchte ich noch eine weitere Bedingung ergänzen, und zwar soll der Preisunterschied bei nordpool (tibber) auch entsprechend hoch sein,
damit sich das überhaupt lohnt, die Lade- und Entladeverluste in kauf zu nehmen.
Dazu hab ich folgendes mir ausgedacht;

number:
- platform: template
sensors:
name: "Preisdifferenz nordpool morgens"
unique_id: "Preisdifferenz nordpool morgens"
preis_max_min_diff: "EUR/kWh"
unit_of_measurement: "EUR/kWh"
state_class: "measurement"
entity_id:
- nord_pool_ger_off_peak_1_maximum
- nord_pool_ger_off_peak_1_minimum
value_template: >-
{% set max = states('sensor.nord_pool_ger_off_peak_1_maximum') | float %}
{% set min = states('sensor.nord_pool_ger_off_peak_1_minimum') | float %}
{{ (max - min) }}

Das gibt mir im Template-Editor auch den passenden Wert, aber wenn ich das in die template.yaml file eingebe taucht das nicht als Entität auf.
Ich hab vielleicht auch ein Problem mit der config-Struktur, weil bei der yaml Konfig-Liste zum neu laden templates und entitäten nicht erscheint,
obwohl ich template: !include templates.yaml in der /homeassistant/config/configuration.yaml file drin habe.
Ich hab jetzt echt viel probiert, aber vielleicht bin ich zu blöd für HA, ich bin auch eher Handwerker als Informatiker, sorry, also erklärt bitte so,
als würdet ihr mit einem dressierten Affen reden.

10000 Dank schonmal für jede Hilfe.
 
Beachtest Du bitte https://forum.heimnetz.de/threads/hinweis-zum-thema-einfuegen-von-yaml-code-in-beitraegen.1019/ noch? :)

Dann schreibst Du einmal von "template.yaml" und einmal von "templates.yaml", das kann so ohnehin nicht funktionieren, und wenn etwas in der template.yaml ausgelagert ist benötigt es kein "- platform: template" mehr. Dass Du HA generell komplett neustarten musst sofern etwas in den .yaml-Dateien geändert wurde ist Dir bekannt?

Wenn ich Dein Ziel richtig verstanden habe kannst Du das aber ohnehin einfacher lösen, ohne in den Dateien zu schreiben. Geh mal über Einstellungen => Geräte & Dienste, dort auf den Reiter Helfer, Helfer erstellen vom Typ Template und dann das einfügen, was aktuell unter value_template steht. Das benötigt dann auch keinen Neustart.
 
YAML:
# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
template: !include templates.yaml
 
das wäre das eine im /homeassistant/config/configuration.yaml ordner, aber die templates tauchen in der yaml Konfig-Liste nicht auf,
und das template müsste dann so aussehen ?

YAML:
template:
    sensor:
      name: "Preisdifferenz nordpool morgens"
      unique_id: "Preisdifferenz nordpool morgens"
      preis_max_min_diff: "EUR/kWh"
      unit_of_measurement: "EUR/kWh"
      state_class: "measurement"
      entity_id:
      - nord_pool_ger_off_peak_1_maximum
      - nord_pool_ger_off_peak_1_minimum
      value_template: >-
          {% set max = states('sensor.nord_pool_ger_off_peak_1_maximum') | float %}
          {% set min = states('sensor.nord_pool_ger_off_peak_1_minimum') | float %}
          {{ (max - min) }}
 
das template müsste dann so aussehen
Wenn Du es in der templates.yaml schreibst muss das template: oben drüber weg, dafür muss sensor mit Minus versehen werden und name ebenfalls. Das wäre also der Beginn:
YAML:
- sensor:
  - name: "Preisdifferenz nordpool morgens"

Das preis_max_min_diff: ist generell keine mir bekannte gültige Angabe, der Wert für unit_of_measurement: scheint ungültig zu sein laut dieser Liste. Da Du aber ohnehin nur eine Zahl bekommen möchtest ist die auch nicht notwendig, ebensowenig wie state_class - und laut https://www.home-assistant.io/integrations/template/ muss es state: sein anstelle von value_template:.

Also im Prinzip sollte Dein Ziel schon mit diesem Code erreicht sein:
YAML:
- sensor:
  - name: "Preisdifferenz nordpool morgens"
    unique_id: "preisdifferenz_nordpool_morgens"
    state: >-
      {% set max = states('sensor.nord_pool_ger_off_peak_1_maximum') | float(0) %}
      {% set min = states('sensor.nord_pool_ger_off_peak_1_minimum') | float(0) %}
      {{ (max - min) }}

Dann wie gesagt Home Assistant komplett neu starten, nicht nur neu laden, und bei der Angabe in der configuration.yaml muss es dann auch templates.yaml sein.

Nur, wie oben schon erwähnt, ich würde Dir den Weg über den Helfer empfehlen, es ist einfacher, schneller und für diesen Zweck vollständig ausreichend.
 
Sooo, das mit dem Helfer war ein guter Tipp, jetzt geht-s, und die Templates und Entitäten werden auf einmal auch angezeigt in der
Yaml Konfigurations-Liste, Danke
 

Zurzeit aktive Besucher

Keine Mitglieder online.

Letzte Anleitungen

Statistik des Forums

Themen
5.951
Beiträge
58.047
Mitglieder
5.935
Neuestes Mitglied
Stephan_
Zurück
Oben