Zählerstandswerte von einander abziehen, bei Messkonzept 8

Hallo,
vorweg, ich bin ganz neu hier und habe sehr wenig Ahnung von Programmieren oder Ähnlichem. Mein Problem ist, ich habe zwei Stromzähler, da ich auch einen Wärmestromanbieter und einen entsprechenden Tarif wegen meiner Wärmepupe habe.
Beide Zähler habe ich mit Hichi IR-Leseköpfen versehen, die entsprechenden tamplete Sensoren erstellt und die entsprechenden Helfer zur Einbindung im Energie-Dashboard erstellt, was auch soweit funktioniert.
Da bei mir das Messkonzept 8 von Westnetz installiert wurde, muss ich nun den Hausstromverbrauch bei der Darstellung des Wärmestromverbrauchs im Daschboard natürlich von einander abgezogen darstellen.
Was muss ich hier für eine Formel, template oder Helfer erstellen?

Hallo Ha-Ge,
Ich hab auch Messkonzept 8 mit Hichi-Lesern, WP und PV (Kostal).
Ich hab es so in meiner configuration.yaml realisiert. (Noch nicht wirklich schön, aber funktionsfähig.)

# Stromzähler

template:
  - sensor:
    # Stromzähler 1, Momentan-Gesamt-Leistung
      - name: "Zähler 1, Gesamtleistung"
        unique_id: "Gesamtleistung"
        unit_of_measurement: 'W'
        device_class: "power"
        state: >-
            {{ float(states('sensor.tasmota_z_1_power_curr')) | round(3) }}
  - sensor:
    # Stromzähler 2, Momentan-Gesamt-Leistung-Haus
      - name: "Zähler 2, Gesamtleistung Haus"
        unique_id: "Gesamtleistung_Haus"
        unit_of_measurement: 'W'
        device_class: "power"
        state: >-
            {{ float(states('sensor.tasmota_z_2_power_curr_haus')) | round(3) }}

  - sensor:
    # Momentan-Gesamtverbrauchsleistung-Haus
      - name: "Momentanleistung Haus"
        unique_id: "Momentanleistung_Haus"
        unit_of_measurement: 'W'
        device_class: "power"
        state: >-
            {{ float(states('sensor.scb_ac_power')) | round(3) + float(states('sensor.tasmota_z_2_power_curr_haus')) | round(3) }}

  - sensor:
    # Momentan-Gesamtverbrauchsleistung-WP
      - name: "Momentanleistung WP"
        unique_id: "Momentanleistung_WP"
        unit_of_measurement: 'W'
        device_class: "power"
        state: >-
            {{ float(states('sensor.tasmota_z_1_power_curr')) | round(3) - float(states('sensor.tasmota_z_2_power_curr_haus')) | round(3) }}
        
  - sensor:
    # Stromzähler 1, out
      - name: "Zähler 1, Einspeisen"
        unique_id: "Einspeisen"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_z_1_einspeisen')) | round(3) }}
  - sensor:
    # Stromzähler 1, Gesamtverbrauch
      - name: "Zähler 1., Gesamtverbrauch"
        unique_id: "Netz_gesamt"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_z_1_total_in')) | round(3) }}
  - sensor:
    # Stromzähler 2, out
      - name: "Zähler 2, Einspeisen"
        unique_id: "Einspeisen"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_z_2_einspeisen')) | round(3) }}
  - sensor:
    # Stromzähler 2, Hausverbrauch
      - name: "Zähler 2., Hausverbrauch"
        unique_id: "Hausverbrauch"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_z_2_total_in_haus')) | round(3) }}

  - sensor:
    # Netzverbrauch Wärmepumpe
      - name: "Netzverbrauch Wärmepumpe"
        unique_id: "NetzverbrauchWaermepumpe"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_z_1_total_in')) - float(states('sensor.tasmota_z_2_total_in_haus')) | round(3) }}
  - sensor:
    # Solarverbrauch Wärmepumpe
      - name: "Solarverbrauch Wärmepumpe"
        unique_id: "SolarverbrauchWaermepumpe"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.tasmota_z_2_einspeisen_wp')) - float(states('sensor.tasmota_z_1_einspeisen')) | round(3) }}
  - sensor:
    # Gesamtverbrauch Wärmepumpe
      - name: "Gesamtverbrauch Wärmepumpe"
        unique_id: "GesamtverbrauchWaermepumpe"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{ float(states('sensor.solarverbrauch_warmepumpe')) + float(states('sensor.netzverbrauch_warmepumpe')) | round(3) }}

  - sensor:
    # Solarverbrauch Haushalt
      - name: "Solarverbrauch Haushalt"
        unique_id: "SolarverbrauchHaushalt"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{float(states('sensor.scb_energy_pv1_total')) + float(states('sensor.scb_energy_pv2_total')) - float(states('sensor.tasmota_z_2_einspeisen_wp')) | round(3) }}
  - sensor:
    # Gesamtverbrauch Haushalt
      - name: "Gesamtverbrauch Haushalt"
        unique_id: "GesamtverbrauchHaushalt"
        unit_of_measurement: 'kWh'
        device_class: "energy"
        state_class: "total_increasing"
        state: >-
            {{float(states('sensor.scb_energy_pv1_total')) + float(states('sensor.scb_energy_pv2_total')) - float(states('sensor.tasmota_z_2_einspeisen_wp'))  + float(states('sensor.tasmota_z_2_total_in_haus')) | round(3) }}

Mein Noch-Problem ist, dass ich hier 3 Zähler habe, die miteinander interagieren müssen. die senden nicht alle zur gleichen Zeit, so dass es da insbesondere bei den WP-Energie-Werten starke Schwankungen (die sich aber rausmitteln) gibt.
Ich will noch versuchen, das mit den Filter-Funktionen von HA zu glätten und besser hinzukriegen.

Hallo Pelle,
erstmal vielen Dank für deine schenlle Rückinfo.
So wie ich das hier sehe, arbeitest du hier auch mit den “power” Sensoren der Leseköpfe.
Bei den Script was ich mir seiner Zeit aus dem Internet für die Köpfe gezogen habe, wird bei diesem Sensor leider kein Wert ausgegeben.
Weißt du vielleicht was ich an den Eintragungen noch anpassen muss?



Die Zähler sind von der Firma EMH, Typ: eHZB-W22E8-0LHPG-D6-A5Q1

Lass Dir mal hierüber den SML-Output Deines Zählers analysieren:
https://tasmota-sml-parser.dicp.net

Hallo Ha-Ge!
Ich nutze seit 2 Jahren auch den IR-Lesekopf.
Hab dazu folgendes in die Config.yaml ergänzt:


homeassistant:%0A%20%20customize%3A%0A%20%20%20%20sensor.stromzaehler_lk13be_power_curr%3A%0A%20%20%20%20%20%20unit_of_measurement%3A%20%22W%22%0A%20%20%20%20%20%20device_class%3A%20power%0A%20%20%20%20%20%20state-class%3A%20measurement%0A%20%20%20%20sensor.stromzaehler_lk13be_power_total_in%3A%0A%20%20%20%20%20%20device_class%3A%20energy%20%0A%20%20%20%20%20%20unit_of_measurement%3A%20%22kWh%22%0A%20%20%20%20%20%20state_class%3A%20total_increasing%0A%20%20%20%20sensor.stromzaehler_lk13be_power_total_out%3A%0A%20%20%20%20%20%20device_class%3A%20energy%20%0A%20%20%20%20%20%20unit_of_measurement%3A%20%22kWh%22%0A%20%20%20%20%20%20state_class%3A%20total_increasing%0A

Das kopierte Skript sieht schon wieder merkwürdig aus :frowning: Ich ergänze lieber noch ein Screenshot…

Damit konnte ich die Zählerwerte unmittelbar in HA und vor allem im Energy-Dashboard für Einspeisung und Netzbezug verwenden. Die Leistung /Power wird korrekt in und mit „W“ angegeben.

Gruß
Bernt

Hallo Pelle,
habe ich gemacht und das kam dabei raus:


Ich denke die Infos sind so nicht brauchbar bis auf die 3+4 Zeile, die ja auch funktionieren.
Muss ich da vielleicht mit der Taschenlampe am Zähler selber nochmal was einstellen bzw. starten?

Moin Ha-Ge!
Hast du dir vom Meßstellenbetreiber den PIN für deinen Zähler geholt und ihn eingegeben?
Hintergrund meiner Frage: laut Bedienungsanleitung deines Zählers kann man die Leistung nur im „vollständigen Datensatz“, mithin per PIN freigeschaltet, auslesen.

Gruß
Bernt

Hallo Bernt,
ja habe von beiden Zählern die Pin und diese per Taschenlampe eingegeben, was ja schonmal was sehr seltsames an sich hat :slight_smile:
Meine Frage ist nun, muss man da um ggf. tiefere Werte aus dem Zähler zu bekommen noch mehr mit der Lampe rumfummeln, oder geben die Zähler einfach nur diese zwei Werte aus und das wars

Moin Ha-Ge!
Wie es aussieht, musst du noch einmal mit der Lampe ran. Die Ursache ist auf dem 1. Screenshot zu sehen. Du musst den vollständigen Datensatz freischalten.

Danach sollte es funktionieren. Wenn nicht, musst du die Zeile mit der Wirkleistung anpassen. Siehe 2. Screenshot.

Frohes Weihnachtsfest
Gruß
Bernt

Hallo Bernt,
ich hoffe du bist reichlich beschenkt worden :slight_smile:
Danke für deine ausführlichen Erklärungen.
Hat genauso funktioniert wie du es beschrieben hast.
Jetzt muss ich es nur noch hinkriegen die Entragungen von Pelle richtig in die Yaml zu übernehmen.

Hallo Ha-Ge!
Schön, dass dies nun klappt. Die Implementierung der Formeln zur Berechnung bekommst du auch noch hin…
Gruß
Bernt

Da ist jetzt aber nur die halbe Arbeit getan. Ich habe ebenfalls Messkonzept 8 (mit SMA Wechselrichter und Wärmepumpe). Ich würde gerne den Energy-Flow visualisieren, wie beispielsweise mit der custom:energy-flow-card-plus unter HACS. Hat jemand eine Möglichkeit gefunden, in der Visualisierung das MK 8 nachzubauen? D.h. Netz Eingang (Z1), dann Wärmepumpe, dann Netz Haus (Z2) und dann die Solaranlage?

@meyerzh
Hallo Frank,
willkommen im Forum!
Das Messkonzept hat nur mittelbare Auswirkungen auf die Abbildung des Flows.
Hier ist mein Stromfluss:

Auf diesem Panel wird die WP-Leistung und Energie und die der Wallbox jeweils über separate Zähler gemessen, die per Modbus abgegriffen werden. Du musst nur die jeweils korrekten Entitäten auszuwählen.

Gruß
Bernt

Hey, da ich auch mit dem Messkonzept 8 unterwegs bin, hatte ich genau das gleiche Problem. Dies habe ich kürzlich damit korrigiert, dass ich mit Triggern arbeite. Dies sieht wie folgt aus:

- trigger:
  - platform: state
    entity_id: sensor.obis_wp_positive_wirkenergie_insgesamt
  sensor:
    - name: "Verbrauch WP"
      unique_id: "verbrauch_wp"
      unit_of_measurement: "Wh"
      device_class: energy
      state_class: total_increasing
      state: "{{ states('sensor.obis_wp_positive_wirkenergie_insgesamt') | float(0) - states('sensor.obis_haus_positive_wirkenergie_insgesamt') | float(0) }}"
      
    - name: "Eigenverbrauch"
      unique_id: "eigenverbrauch"
      unit_of_measurement: "Wh"
      device_class: energy
      state_class: total_increasing
      state: "{{ states('sensor.sn_3008788728_total_yield') | float(0) * 1000 - states('sensor.obis_wp_negative_wirkenergie_insgesamt') | float(0) }}"
      
    - name: "Eigenverbrauch WP"
      unique_id: "eigenverbrauch_wp"
      unit_of_measurement: "Wh"
      device_class: energy
      state_class: total_increasing
      state: "{{ states('sensor.eigenverbrauch') | float(0)  - states('sensor.eigenverbrauch_haus') | float(0) }}"

Heißt, die Berechnungen erfolgen jetzt nicht mehr, wenn irgendeiner der Sensoren aktualisiert wird, sondern wenn genau der angegebene Sensor aktualisiert wird.

Das ist zwar immer noch nicht 100%ig, führt aber wenigstens dazu, dass keine Sprünge mehr in der Kurve sind.

1 „Gefällt mir“

Hallo Bernd,

vielen Dank für die Rückmeldung. Ich habe zwischenzeitlich die Sunsynk Integration gefunden und entsprechend anpassen können. Durch die Konfiguration der Wärmepumpe als “non-essential power” im Reiter “Grid” konnte ich tatsächlich das MK8 nachbauen, so dass die Wärmepumpe grafisch vor dem Wechselrichter sitzt. Also alles fein :slight_smile:

image

Viele Grüße,

Frank

2 „Gefällt mir“

Frank, das freut mich, sieht gut aus!
Gruß
Bernt

Hallo Pelle,
ich hab mich bis jetzt nicht getraut deine Formel bei mir einzusetzen.
Ich habe jetzt mal deine Formel bei mir in den Template-Editor eingetragen und habe damit angefangen die Sensornamen durch meine entsprechenden zu ersetzen. Die ersten zwei habe ich noch hinbekommen und schon komm ich nicht mehr weiter :frowning:
Wo finde ich den diesen Sensor hier?
grafik
Wäre prima, wenn du mir hier etwas unter die Arme greifen könntest.
Könnte sein, das ich dich noch öfter nerven muss :slight_smile:

sensor.scb_* scheint mir vom PV-Wechselrichter zu kommen.
Bei näherer Betrachtung finde ich die Formel jedoch etwas merkwürdig, da immer die Momentanleistung der PV-Anlage auf die Momentanleistung des Hauses gerechnet würde.

Hier mal mein kompletter Code für alle Berechnungen:

- trigger:
  - platform: state
    entity_id: sensor.obis_wp_positive_wirkenergie_insgesamt
  sensor:
    - name: "Verbrauch WP"
      unique_id: "verbrauch_wp"
      unit_of_measurement: "Wh"
      device_class: energy
      state_class: total_increasing
      state: "{{ states('sensor.obis_wp_positive_wirkenergie_insgesamt') | float(0) - states('sensor.obis_haus_positive_wirkenergie_insgesamt') | float(0) }}"
      
    - name: "Eigenverbrauch"
      unique_id: "eigenverbrauch"
      unit_of_measurement: "Wh"
      device_class: energy
      state_class: total_increasing
      state: "{{ states('sensor.sn_3008788728_total_yield') | float(0) * 1000 - states('sensor.obis_wp_negative_wirkenergie_insgesamt') | float(0) }}"
      
    - name: "Eigenverbrauch WP"
      unique_id: "eigenverbrauch_wp"
      unit_of_measurement: "Wh"
      device_class: energy
      state_class: total_increasing
      state: "{{ states('sensor.eigenverbrauch') | float(0)  - states('sensor.eigenverbrauch_haus') | float(0) }}"

- trigger:
  - platform: state
    entity_id: sensor.obis_haus_negative_wirkenergie_insgesamt
  sensor:
    - name: "Eigenverbrauch Haus"
      unique_id: "eigenverbrauch_haus"
      unit_of_measurement: "Wh"
      device_class: energy
      state_class: total_increasing
      state: "{{ states('sensor.sn_3008788728_total_yield') | float(0) * 1000 - states('sensor.obis_haus_negative_wirkenergie_insgesamt') | float(0) }}"
      
- sensor:
  - name: "Verbrauch"
    unique_id: "verbrauch"
    unit_of_measurement: "Wh"
    device_class: energy
    state_class: total_increasing
    state: "{{ states('sensor.obis_wp_positive_wirkenergie_insgesamt') }}"
    
  - name: "Verbrauch Haus"
    unique_id: "verbrauch_haus"
    unit_of_measurement: "Wh"
    device_class: energy
    state_class: total_increasing
    state: "{{ states('sensor.obis_haus_positive_wirkenergie_insgesamt') }}"
  
  - name: "Einspeisung"
    unique_id: "einspeisung"
    unit_of_measurement: "Wh"
    device_class: energy
    state_class: total_increasing
    state: "{{ states('sensor.obis_wp_negative_wirkenergie_insgesamt') }}"

  - name: "Überschuss Haus"
    unique_id: "uberschuss_haus"
    unit_of_measurement: "Wh"
    device_class: energy
    state_class: total_increasing
    state: "{{ states('sensor.obis_haus_negative_wirkenergie_insgesamt') }}"
    
  - name: "Power WP"
    unique_id: "power_wp"
    unit_of_measurement: "W"
    device_class: power
    state: "{{ states('sensor.obis_wp_summe_der_aktiven_momentanleistung') }}"
    
  - name: "Strom Power"
    unique_id: "strom_power"
    device_class: enum
    state: "{{ states('sensor.sn_3008788728_grid_power') }} W"
    attributes:
      power_wp: "{{ states('sensor.power_wp') }} W"
    
  - name: "Power Haus"
    unique_id: "power_haus"
    unit_of_measurement: "W"
    device_class: power
    state: "{{ states('sensor.obis_haus_summe_der_aktiven_momentanleistung') }}"

(sn_3008788728 ist mein Wechselrichter)

Korrekt. Ist unser Kostal Wechselrichter. Ich hab gerade wenig Zeit, um da wieder einzutauchen und guck am WE nochmal drauf.

So. Nochmal:
der scb-Sensor gibt den Anteil des pv-Stroms an, der im Haus verbraucht wird an. Mein Hausstrom kann positiv (Netzbezug) oder negativ (Einspeisung) sein.
Beide addiert ergibt (je nach Vorzeichenk den aktuellen Verbrauch im Haus.
Man muss halt immer gucken, welche Daten man bekommt und wie man sei in Beziehung setzen muss.

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)