Halli Hallo,
ich bin noch absoluter Neuling im Home Assistant, habe allerdings schon viel gelernt in der kurzen Zeit… Leider schaffe ich es gerade nicht eine Hürde zu überwinden. Ich möchte mein Engergiedashboard befüllen, hierfür benötige ich von meiner PV VictronAnlage Pylontech-Speichern in kWh den geladene und abgeben Power, ich kann jedoch nur die W auslesen welche je nach Be- und Entladen positiv oder negativ ist, somit muss ich einen Step zuvor einlegen über ein Template getrennt die positiven Werte über zwei Entitäten auszugeben.
Ich habe in diesem Thema Sensorwert abhängig vom Vorzeichen aufsplitten - SmartHome for Dummies meine notwenigen Daten gefüllt. Im Entwicklerwerkzeug Template gibt er mir auch tatsächlich die aktuellen Werte getrennt aus, jedoch kann ich die neuen Entitäten „Battery out“ noch „Battey in“ finden um diese dann jeweils per Helfer auf kwh umzurechnen. Anbei der Screenshot vom Entwicklerwerkzeuge und von meiner config.yaml. Ich habe keine Plan ob ich noch andere Schritte zuvor machen muss damit die neuen Entitäten abrufbar sind. Eine Template.yaml gibt es bei mir nicht, Selbstreden habe ich HomeAssistant immer neu gestartet. Ich freue mich über euere Hilfe. Vielen Dank :-.)
Config.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
frontend:
themes: !include_dir_merge_named themes
battery_notes:
enable_autodiscovery: true
default_battery_low_threshold: 10
battery_increase_threshold: 25
hide_battery: false
round_battery: true
template:
- sensor:
- name: „Battery Out“
state: |
{% set gridin = (states(‚sensor.victron_system_battery_power‘) | int(0)) %}
{% if gridin < 0 %}
{{ gridin | abs }}
{% else %}
0
{% endif %}
unit_of_measurement: ‚W‘
state_class: measurement
device_class: power
unique_id: 6b9dda0f-4ed9-4c77-97a8-ecd343f8c9ec - name: „Battery In“
state: |
{% set gridin = (states(‚sensor.victron_system_battery_power‘) | int(0)) %}
{% if gridin > 0 %}
{{ gridin }}
{% else %}
0
{% endif %}
unit_of_measurement: ‚W‘
state_class: measurement
device_class: power
unique_id: fa70a301-30de-41d2-a278-3d061051f443
@oschmitzi Den obligatorischen Neustart von HA hast du ausgeführt? Werden Fehler geworfen beim Überprüfen der Config?
Ein Update! Ich hatte im
editor in der comfig.yaml ein Ausrufezeichen! Habe die entsprechenden Zeilen gelöscht! Nun ein grüner Haken! Alles neu gestartet, leider hat sich die Anzahl Entitäten oder helfer nicht um zwei erhöht! Nachdem es im Entwickler Tool Template die Werte plus minus Watt zugeordnet werden muss aus meiner leihenhaften Sicht noch ein Flaschenhals sein. Die Information als Sensor Entität ein Homeassistant zur Verfügung zu stellen!
Sorry, ich habe vorhin nicht auf alle Details deines Screenshots geachtet. Da sind Einrückungen nicht richtig und auch Fehler mit den Anführungsstrichen. Insbesondere die korrekten Einrückungen sind bei YAML-Code super wichtig, da sich hieraus die eigentliche Struktur ableitet.
Versuche es mal mit folgendem Code in deiner configuration.yaml:
template: - sensor: - name: 'Battery Out' state: | {% set gridin = (states(‚sensor.victron_system_battery_power‘) | int(0)) %} {% if gridin < 0 %} {{ gridin | abs }} {% else %} 0 {% endif %} unit_of_measurement: 'W' state_class: measurement device_class: power unique_id: 6b9dda0f-4ed9-4c77-97a8-ecd343f8c9ec - name: 'Battery In' state: | {% set gridin = (states(‚sensor.victron_system_battery_power‘) | int(0)) %} {% if gridin > 0 %} {{ gridin }} {% else %} 0 {% endif %} unit_of_measurement: 'W' state_class: measurement device_class: power unique_id: fa70a301-30de-41d2-a278-3d061051f443
Nach dem Einfügen natürlich HA wieder neu starten.
Sorry für die Teilangaben Olli....
Hier meine komplette Config.yaml mit deinen eingefügten Zeilen
.......................
# 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
battery_notes:
enable_autodiscovery: true
default_battery_low_threshold: 10
battery_increase_threshold: 25
hide_battery: false
round_battery: true
template:
- sensor:
- name: 'Battery Out'
state: |
{% set gridin = (states(‚sensor.victron_system_battery_power‘) | int(0)) %}
{% if gridin < 0 %}
{{ gridin | abs }}
{% else %}
0
{% endif %}
unit_of_measurement: 'W'
state_class: measurement
device_class: power
unique_id: 6b9dda0f-4ed9-4c77-97a8-ecd343f8c9ec
- name: 'Battery In'
state: |
{% set gridin = (states(‚sensor.victron_system_battery_power‘) | int(0)) %}
{% if gridin > 0 %}
{{ gridin }}
{% else %}
0
{% endif %}
unit_of_measurement: 'W'
state_class: measurement
device_class: power
unique_id: fa70a301-30de-41d2-a278-3d061051f443
.......................
und der dazugehörigen Fehlermeldung:
missed comma between flow collection entries (25:8)
22 | - sensor:
23 | - name: 'Battery Out'
24 | state: |
25 | {% set gridin = (states(‚sensor. ...
-------------^
26 | {% if gridin < 0 %}
27 | {{ gridin | abs }}
Ein Neustart ist so nicht möglich.
Lieben Dank...
Gruß Olli 🙂
@oschmitzi Hier verstecken sich ja noch mehr falsche Anführungszeichen
(states(‚sensor.victron_system_battery_power‘)
Das müssen vor und nach dem Sensor jeweils ' sein.
Hallo Olli,
ich bekomme schon ein schlechtes Gewissen nochmals auf dieses Thema aufspringen zu müssen. Ich habe Deinen Template-Code mit den Anführungszeichen ausgetauscht. Nun gibt mir auch das Entwicklerwerkzeug "Template" wieder Werte aus.
Nun kopiere ich diese Zeilen aus dem Entwicklerwerkzeug in meine Config.yaml .....
... in Zeichen
.............
# 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
battery_notes:
enable_autodiscovery: true
default_battery_low_threshold: 10
battery_increase_threshold: 25
hide_battery: false
round_battery: true
template:
- sensor:
- name: 'Battery Out'
state: |
{% set gridin = (states('sensor.victron_system_battery_power') | int(0)) %}
{% if gridin < 0 %}
{{ gridin | abs }}
{% else %}
0
{% endif %}
unit_of_measurement: 'W'
state_class: measurement
device_class: power
unique_id: 6b9dda0f-4ed9-4c77-97a8-ecd343f8c9ec
- name: 'Battery In'
state: |
{% set gridin = (states('sensor.victron_system_battery_power') | int(0)) %}
{% if gridin > 0 %}
{{ gridin }}
{% else %}
0
{% endif %}
unit_of_measurement: 'W'
state_class: measurement
device_class: power
unique_id: fa70a301-30de-41d2-a278-3d061051f443
------
Wirft mir die Config.yaml weiterhin folgende Fehler aus mit denen ich recht wenig anfangen kann....
missed comma between flow collection entries (25:8)
22 | - sensor:
23 | - name: 'Battery Out'
24 | state: |
25 | {% set gridin = (states('sensor. ...
-------------^
26 | {% if gridin < 0 %}
27 | {{ gridin | abs }}
.....
Meine erstige Template, bzw. Config.yaml war von Beginn an mit den korrekten Anführungszeichen..............
# 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
battery_notes:
enable_autodiscovery: true
default_battery_low_threshold: 10
battery_increase_threshold: 25
hide_battery: false
round_battery: true
template:
- sensor:
- name: "Battery Out"
state: |
{% set gridin = (states('sensor.victron_system_battery_power') | int(0)) %}
{% if gridin < 0 %}
{{ gridin | abs }}
{% else %}
0
{% endif %}
unit_of_measurement: 'W'
state_class: measurement
device_class: power
unique_id: 6b9dda0f-4ed9-4c77-97a8-ecd343f8c9ec
- name: "Battery In"
state: |
{% set gridin = (states('sensor.victron_system_battery_power') | int(0)) %}
{% if gridin > 0 %}
{{ gridin }}
{% else %}
0
{% endif %}
unit_of_measurement: 'W'
state_class: measurement
device_class: power
unique_id: fa70a301-30de-41d2-a278-3d061051f443
.......
Dieses wie mit deiner angepassten Template gibt mir im Entwicklerwerkzeug die jeweils korrekten Werte aus, nur kann ich weder mit dieser noch mit deiner Template (weil Fehler im Config.yaml) die zwei Entitäten "Battery In" und "Battery Out" finden.
Ist meine Annahme richtig das diese Art der Templaterstellung in der Conig.yaml grundlegend ausreichend ist, oder muss ich irgendwelche Hacs, AddOns oder Integrationen installieren und oder in weiteren *.yaml Eintragungen vornehmen um diese neuen Entitäten auffindbar zu machen.
Danke nochmals an dieser Stelle, wenn dieses Problem gelöst gebe ich sehr gerne ein "Bier" aus und nutze deine Amazon-Link`s 😉
Viele Grüße
Olli
Es hat mir keine Ruhe gelassen. Ich habe es nun geschafft die beiden Entitäten "Battery In" und Battery Out" in meiner Entitätsliste zu finden. Du hattest Recht Olli, es lag an den Einrückungen wo man höllisch aufpassen muss.
So sieht exakt meine Config.yaml nun aus....
# 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
battery_notes:
enable_autodiscovery: true
default_battery_low_threshold: 10
battery_increase_threshold: 25
hide_battery: false
round_battery: true
template:
- sensor:
- name: Battery Out
unique_id: "6b9dda0f-4ed9-4c77-97a8-ecd343f8c9ec"
state: |
{% set gridin = (states('sensor.victron_system_battery_power') | int(0)) %}
{% if gridin < 0 %}
{{ gridin | abs }}
{% else %}
0
{% endif %}
unit_of_measurement: 'W'
state_class: measurement
device_class: power
- name: Battery In
unique_id: "fa70a301-30de-41d2-a278-3d061051f443"
state: |
{% set gridin = (states('sensor.victron_system_battery_power') | int(0)) %}
{% if gridin > 0 %}
{{ gridin }}
{% else %}
0
{% endif %}
unit_of_measurement: 'W'
state_class: measurement
device_class: power
.......................
Nun taucht eine neue Herausforderung auf. Wenn ich auf die jeweiligen neuen Templatesensoren klicke zeigt er mir nicht die jeweiligen aufgetrennten W positiv und negativ an, sondern wenn sich der Wert ändert aber nicht den Zahlenwert. Somit kann ich dies nicht mit einem Helfer in die gewünschten kWh umrechnen. Eine Idee Olli was das Problem sein könnte 😉
Wir haben es hier aber auch mit Kommas und Einrückungen 😉
Die If-Abfrage für den eigentlichen Wert der neuen Sensoren sind noch nicht richtig eingerückt. So wie hier, müsste es dann aber wirklich funktionieren:
template: - sensor: - name: 'Battery Out' state: | {% set gridin = (states('sensor.victron_system_battery_power') | int(0)) %} {% if gridin < 0 %} {{ gridin | abs }} {% else %} 0 {% endif %} unit_of_measurement: 'W' state_class: measurement device_class: power unique_id: 6b9dda0f-4ed9-4c77-97a8-ecd343f8c9ec - name: 'Battery In' state: | {% set gridin = (states('sensor.victron_system_battery_power') | int(0)) %} {% if gridin > 0 %} {{ gridin }} {% else %} 0 {% endif %} unit_of_measurement: 'W' state_class: measurement device_class: power unique_id: fa70a301-30de-41d2-a278-3d061051f443
Am besten fügst du in Foren solchen Code als Code formatiert ein, damit die Formatierung (und insbesondere Einrückungen) nicht verloren geht. Hier im Forum wäre das das "<>"-Zeichen:
Ohne die korrekten Einrückungen, ist der Code deutlich schwerer zu lesen/verstehen und es passieren leichter solche Flüchtigkeitsfehler wir in unserem Fall hier 😉
Ich hoffe nun klappt es aber wirklich! 😉
Produktempfehlungen