Seite 1 von 2

Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Do 12. Jan 2023, 10:23
von Markus

Ich möchte nun meinen Batterie-Speicher in der Energy-Dashboard reinbringen. Die Energykonfiguration verlangt aber zwei Sensoren (Be-/Entladung).

battery.png
battery.png (10.33 KiB) 2075 mal betrachtet

Vom Speicher bekomme ich nun einen Wert [W] bei positivem Vorzeichen: Ladung, bei negativen Vorzeichen: Entladung.

Wie splitte ich nun den einen Wert in zwei Sensoren, abhängig vom Vorzeichen, auf?

Danach würde ich mit einem Utilitymeter den Wert auf kWh tracken.


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Do 12. Jan 2023, 18:18
von Osorkon

Du möchtest also 2 neue Sensoren anlegen, die jeweils einen positiven Wert in kWH anzeigen.
Einer für die Entladung und einer für die Ladung.

Du kannst damit anfangen 2 Temple Sensoren für Watt anzulegen.
Und anschließend mit Hilfe der Integration - Riemann sum integral die kWh berechnen.

Gruß
Osorkon


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Do 12. Jan 2023, 21:45
von Einstein

Ja das will er wahrscheinlich machen
Musste ich auch tun.

Das ist kein Probleme. er sucht noch den richtigen code der in die Configuration.yaml muss

Code: Alles auswählen

template:

sensor:
  - name: "Batterie Power_In"
    unique_id: "Batterie Power In"
    unit_of_measurement: "W"
    state_class: measurement
    device_class: power
    state: >
        {% if states('<hier deinen Sensor rein>') | float(0) <= 0 %}
            {% set gridin = states('<hier deinen Sensor rein>') | float(0) |abs %}
        {% else %}
            {% set gridin = 0 %}
        {% endif %}
        {{ gridin }}
  - name: "Batterie Power Out"
    unique_id: "Batterie Power_Out"
    unit_of_measurement: "W"
    state_class: measurement
    device_class: power
    state: >
        {% if states('<hier deinen Sensor rein>') | float(0) >= 0 %}
            {% set gridout = states(<hier deinen Sensor rein>') | float(0) |abs %}
        {% else %}
            {% set gridout = 0 %}
        {% endif %}
        {{ gridout }}

Kurz beschrieben der eine nimmt bei größer 0 den Absolutwert des Sensors. und der andere bei kleiner 0 läuft bei mir recht gut.

Das mit dem Intergral ist an sich auch keine Problem das geht über die Helfer in bei den Geräten.

Jetzt kommt mein Problem bei jedem Stromausfall (Neustart habe ich noch nicht versucht) kommen über das Intergral utopische Werte.
Einmal hatte ich in einer Stunde ca. 5600 kWh auf meine 10 kWh Batterie geladen.
Gibt es dafür ein Lösung.


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Fr 13. Jan 2023, 08:37
von Markus

Danke, die gridin/grinout sind Sensoren, die auch zuvor angelegt werden müssen?


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Fr 13. Jan 2023, 18:38
von Markus

müssten die gridin/gridout Helfer sein, aber welcher Typ?


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Fr 13. Jan 2023, 19:15
von Osorkon

Sind Template Sensoren.

Gruß
Osorkon


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 09:33
von Markus

ok, aber ich bekomme hier keine Werte z.b in varta_out rein?

Code: Alles auswählen

# Batterie entladen
  - platform: template
    sensors:
      battery_out:
        unit_of_measurement: 'W'
        device_class: power
        value_template: >-
          {% if states('sensor.mb_varta_active_power') | float(0) <= 0 %}
            {% set counter.varta_out = states('sensor.mb_varta_active_power') | float(0) |abs %}
          {% else %}
            {% set varta_out = 0 %}
          {% endif %}
          {{ varta_out }}

Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 11:36
von Osorkon

Hallo @Markus anbei die 2 Sensoren als Template Sensoren.
Ich verwende hier die aktuelle Template Integration. Die alte template Platform nutze ich nicht mehr.
Mache mir deshalb hier nicht die Mühe da auf Fehlersuche zu gehen.

Auszug aus der template.yaml

Code: Alles auswählen

- sensor:
  - name: Battery Out
    state: |
      {% set gridin = (states('sensor.mb_varta_active_power') | int(0)) %}
      {% if gridin < 0 %}
        {{ gridin | abs }}
      {% else %}
        0
      {% endif %}
    unit_of_measurement: 'W'
    state_class: measurement
    device_class: power
    unique_id: c2266480-93f5-11ed-a103-a3cf204e46e1
  - name: Battery In
    state: |
      {% set gridin = (states('sensor.mb_varta_active_power') | int(0)) %}
      {% if gridin > 0 %}
        {{ gridin }}
      {% else %}
        0
      {% endif %}
    unit_of_measurement: 'W'
    state_class: measurement
    device_class: power
    unique_id: ddc9e4a0-93f5-11ed-a103-a3cf204e46e1

Gruß
Osorkon


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 12:22
von Markus

Danke, aber irgendwie steige ich da nicht durch, da ich in den Entwicklerwerkzeugen weder einen Battery Out noch gridin Sensor finde?


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 12:30
von Osorkon

Der Sensor
sensor.mb_varta_active_power
Ist vorhanden und liefert die von Dir besagten positive bzw. negative Werte, je nach dem ob die Batterie geladen oder entladen wird richtig?

Wenn der Sensor bei Dir anders heißt, musst Du diesen natürlich gegen Deinen austauschen.

Nach dem Du die Template.yaml bearbeitet hast. Die Konfiguration prüfen und die Template Konfiguration neu laden.
Danach sollten Dir die 2 neuen Sensoren zur Verfügung stehen.

Gruß
Osorkon


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 12:49
von Markus

sensor.mb_varta_active_power ist vorhanden und aktiv, die anderen gibt es nicht.

Config ist geprüft, in Ordnung und neu gestartet

Code in der template.yaml

Code: Alles auswählen

- sensor:
  - name: battery_out
    state: |
      {% set gridin = (states('sensor.mb_varta_active_power') | int(0)) %}
      {% if gridin < 0 %}
        {{ gridin | abs }}
      {% else %}
        0
      {% endif %}
    state_class: measurement
    device_class: power
    unique_id: c2266480-93f5-11ed-a103-a3cf204e46e1
  - name: battery_in
    state: |
      {% set gridin = (states('sensor.mb_varta_active_power') | int(0)) %}
      {% if gridin > 0 %}
        {{ gridin }}
      {% else %}
        0
      {% endif %}
    state_class: measurement
    device_class: power
    unique_id: ddc9e4a0-93f5-11ed-a103-a3cf204e46e1

Template.yaml in der config inkludiert

Code: Alles auswählen

template: !include template.yaml

Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 12:55
von Osorkon

Die Template Konfiguration neu geladen und trotzdem tauchen die Sensoren:

  • sensor.battery_in
  • sensor.battery_out

nicht auf??

Gruß
Osorkon


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 13:18
von Markus
Osorkon hat geschrieben: Sa 14. Jan 2023, 12:55

Die Template Konfiguration neu geladen und trotzdem tauchen die Sensoren:

  • sensor.battery_in
  • sensor.battery_out

nicht auf??

Gruß
Osorkon

Nein, weder wenn ich HA neu starte noch wenn ich Template-Entitäten neu lade


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 13:36
von Osorkon

Prüfung der Konfiguration wirft keinen Fehler auf?
Alle anderen Template Sensoren funktionieren?

Was bekommst Du als Ergebnis wenn Du das Template im Template Editor eintragen tust?

Code: Alles auswählen

{% set gridin = (states('sensor.mb_varta_active_power') | int(0)) %}
{% if gridin < 0 %}
{{ gridin | abs }}
{% else %}
0
{% endif %}

{% set gridin = (states('sensor.mb_varta_active_power') | int(0)) %}
{% if gridin > 0 %}
{{ gridin }}
{% else %}
0
{% endif %}

Es ist ja nicht so, dass ich das ganze bei mir nicht getestet hätte. :D

Battery In_Out.gif
Battery In_Out.gif (321.34 KiB) 2018 mal betrachtet

Gruß
Osorkon


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 13:44
von Markus
template.png
template.png (4.52 KiB) 2017 mal betrachtet

Config passt auch

konfig.png
konfig.png (13.61 KiB) 2017 mal betrachtet

Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 13:48
von Osorkon

Und unter Entwicklungswerkzeuge hast Du im Bereich Neuladen der YAML-Konfiguration Template Entitäten neu geladen?
Mit Home Assistant Neustart schon versucht?

Gruß
Osorkon


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 13:56
von Markus
Osorkon hat geschrieben: Sa 14. Jan 2023, 13:48

Und unter Entwicklungswerkzeuge hast Du im Bereich Neuladen der YAML-Konfiguration Template Entitäten neu geladen?
Mit Home Assistant Neustart schon versucht?

Gruß
Osorkon

Alles schon probiert...


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 14:02
von Osorkon

Die Zeile
template:

Existiert nur einmal in der configuration.yaml?
Die Datei template.yaml liegt im gleichen Ordner wie auch die configuration.yaml?
Irgendwelche Hinweise im Log?

Betrifft es alle Deine Template Sensoren in der template.yaml oder nur die besagten 2?

Gruß
Osorkon


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 14:35
von Markus
Osorkon hat geschrieben: Sa 14. Jan 2023, 14:02

Die Zeile
template:

Existiert nur einmal in der configuration.yaml?

Wow, du hast wiedermal in die richtige Stelle gestochen....das war die Ursache - Vielen Dank


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 15:23
von Markus

Die Template Sensoren hab ich nun in die Riemnann sum integration übernommen. Leider kann ich den Sensor varta_energy_in nicht im Energy-Dashboard verwenden. Brauchts da noch was?

Code: Alles auswählen

  - platform: integration
    source: sensor.battery_in
    name: varta_energy_in
    unit_prefix: k

Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 15:41
von Osorkon

Wo hast Du die Sensoren angelegt?
In der sensor.yaml?

Das wäre hier die Konfigurationen, welche bei mir funktioniert.
Auszug aus der sensor.yaml

Code: Alles auswählen

- platform: integration
  source: sensor.battery_in
  name: energy_in
  unit_prefix: k
  unique_id: 1ee0a4e0-941b-11ed-a103-a3cf204e46e1
- platform: integration
  source: sensor.battery_out
  name: energy_out
  unit_prefix: k
  unique_id: 26020d90-941b-11ed-a103-a3cf204e46e1

Gruß
Osorkon


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 16:46
von Markus

Ja, in der sensor.yaml, aber im Energy Dashboard kann ich den Sensor nicht wählen?

btw, die generierst du die unique_id?

Code: Alles auswählen

  - platform: integration
    source: sensor.battery_in
    name: varta_energy_in
    unique_id: 1ee0a4e0-941b-11ed-a103-a3cf204e46e1
    unit_prefix: k
   # round: 2
  - platform: integration
    source: sensor.battery_out
    name: varta_energy_out
    unique_id: 26020d90-941b-11ed-a103-a3cf204e46e1
    unit_prefix: k
   # round: 2

Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 17:34
von Einstein

Hallo

Noch mal zu meinen Sensoren: Gridin und Gridout sind nur Variablen für die berrechnung die hätte man auch x und y nennen können.

zu Deinem Problem: Das Enegiedashboard erwartet kWh als Wert. daher must du nicht die Sesorwerte nemmen sondern das Ergebnis von deinem Rieman Helfer dann funktionierts.

Was hast du für eine Hardware für Homeassistant?
Edit:

Ich sehe es gerade Unit Präfix muss "kWh" dann sollte es funktionieren.

Wo finde ich die Sensors.yaml?


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 19:10
von Osorkon
Einstein hat geschrieben: Sa 14. Jan 2023, 17:34

Ich sehe es gerade Unit Präfix muss "kWh" dann sollte es funktionieren.

Mit unit Präfix ist alles in Ordnung.
k ist schon richtig steht für killo bzw. 1000.
kWh gibt es nicht, bzw. ist nicht zulässig!

unit_prefix.png
unit_prefix.png (10.26 KiB) 1987 mal betrachtet
Markus hat geschrieben: Sa 14. Jan 2023, 16:46

Ja, in der sensor.yaml, aber im Energy Dashboard kann ich den Sensor nicht wählen?

Dann weiss ich nicht was ich falsch mache, bei mir kann ich beide im Energy Dashboard verwenden.

Stromnetz.png
Stromnetz.png (25.44 KiB) 1987 mal betrachtet
Markus hat geschrieben: Sa 14. Jan 2023, 16:46

btw, die generierst du die unique_id?

Visual Studi Code mit der Erweiterung Unique ID Generator

Gruß
Osorkon


Re: Sensorwert abhängig vom Vorzeichen aufsplitten

Verfasst: Sa 14. Jan 2023, 19:57
von Einstein

Ich finde bei mir keine sensors.yaml

Hast du die integrator bei Sensors in der Konfiguration.yaml angelegt?

Ich wollte mit meinen vergleichen finde aber den Text dazu nicht.
Ich habe den Rechner bir mir unter Einstellunngen --> Geräte&Dienste --> im Reiter Helfer angelegt.

Dort läuft