Blog Tutorial

Homematic – Stromzähler auswerten Version 3 mit HM-ES-TX-WM und Smart-Meter

Letzte Aktualisierung am 25. Februar 2024

Unser Homematic Ferraris-Stromzähler mit HM-ES-TX-WM wurde vor kurzem durch ein „Smart-Meter“, ein intelligentes Messsystem (iMSys), ersetzt. Daher waren einige Anpassungen bei der bestehenden Stromzählerauswertung erforderlich.

Nachfolgend finden Anwender des Tutorials HomeMatic – Stromzähler auswerten Version 2 mit HM-ES-TX-WM eine Anleitung zum Umstieg, mit der aber auch Ersteinrichter eines elektronischen Energiezählers zum Ziel kommen sollten.

Ein iMSys besteht aus einer modernen Messeinrichtung (mME, =elektronischer Energiezähler), die um eine Kommunikationseinheit (=Smart Meter Gateway, SMGW) ergänzt ist. Zusammen bilden sie das iMSys (=elektronischer Energiezähler mit Fernauslesung bzw. intelligenter Zähler). Im Vergleich zu einer einfachen mME hat man also einen Zähler, der aktiv mit dem Messstellenbetreiber kommuniziert, wodurch die Ablesung vor Ort entfällt und die Verbrauchsdaten online visualisiert werden können. Zudem haben SMGW häufig eine HAN-Schnittstelle, über die sich der Zähler in Smart-Home-Systeme einbinden lässt.

In diesem Artikel geht es aber nicht um die Einbindung eines iMSys über das SMGW, sondern um den „Umbau“ eines HM-ES-TX-WM-Ferraris-Zählers für die Nutzung mit einem elektronischen Energiezähler über dessen Infrarot-Kommunikationsschnittstelle. Das funktioniert mit einer mME und – alternativ oder ergänzend zum SMGW – gleichermaßen mit einem iMSys.

Vereinfachend wird nachfolgend – nicht ganz korrekt – für beide Zählervarianten der Begriff „Smart-Meter“ synonym verwendet.

Da unserer iMSys aus dem metallenen Zählerschrank im Keller keine stabile Kommunikation zu den Servern des Netzbetreibers aufbauen konnte, hat dieser das SMGW nach kurzer Zeit wieder ausgebaut, weswegen unser Zähler seither eine einfache mME geworden ist.

Abgriff des Stromzählerstandes und Übertragung in die Homematic

Der HM-ES-TX-WM benötigt für den Betrieb über die optische Schnittstelle eines Smart-Meters eine Firmware Version 2.n (ich habe die Version 2.5 genommen) und den Energiesensor für Smart Meter ES-IEC. Beides gibt es vom Hersteller bzw. herstellereigenen Versandhandel.

Nach dem Zusammenbau und Anschluss des ES-IEC Sensors sowie dem Flashen der Firmware des HM-ES-TX-WM über die WebUI der CCU lässt sich der HM-ES-TX-WM für den eigenen Zähler konfigurieren.

Bei dem hier eingebauten Itron 3.HZ-BC-D4-A1-12 funktionieren die Konfigurationsparameter, wie sie in der Kompatibilitätsliste für den Itron 3.HZ-BC-D1-A1-12 niedergelegt sind…

Homematic Stromzähler HM-ES-TX-WM Smart-Meter

Der zweite Kanal ist nicht benutzt, da wir derzeit nur Strom beziehen. Mittels der Identifikationskennzeichnung des Zählerstandes 2.8.0 könnte bei dem genannten Smart-Meter womöglich auch die zusätzliche Erfassung einer Einspeisung über den zweiten Kanal funktionieren.

Die nachfolgenden Daten werden mit dieser Einstellung an die CCU übertragen…

Homematic Stromzähler HM-ES-TX-WM Smart-Meter

Zum Freischalten der Übertragung eines erweiterten Datensatzes, mit Leistungswert und Dezimalstellen, ist ggf. eine PIN erforderlich. Diese ist fest programmiert und beim eigenen Messstellenbetreiber zu erfragen

Bei dem Itron-Modell muss man hierzu über dessen optische Taste die PIN eingeben, den PIN-Schutz ggf. deaktivieren und die Ausgabe des erweiterten Datensatzes einschalten (Inf „on“). Anschließend wird der Zählerstand mit Nachkommastellen ausgegeben und die Momentanleistung ist im Datensatz enthalten.

Im Vergleich zum Zählersensor Ferraris-Zähler ES-Fer wird der Leistungswert über den Datenpunkt IEC_POWER übermittelt. An Stelle des Energiewertes in Ws wird im Datenpunkt IEC_ENERGY_COUNTER der tatsächliche Zählerstand in kWh übertragen. Dadurch sind Auswertung und Batteriewechsel deutlich einfacher. Auch das Überlaufproblem bei Erreichen von 838860,7 Wh spielt keine Rolle mehr.

Zählerauswertung

Erforderliche Systemvariablen

Die Systemvariable für die Überlaufkorrektur und die Referenz Systemvariable für den Zählerstand sind nun entbehrlich geworden…

"Strom ENERGY_COUNTER", Zahl
"Strom Referenz Zaehlerstand", Zahl

Benötigt werden (weiterhin) für die Zählerwerte die folgenden Systemvariablen…

"Strom Zaehlerstand", Zahl
"Strom Verbrauch seit letzter Ablesung", Zahl
"Strom Verbrauch laufendes Kalenderjahr", Zahl
"Strom Verbrauch laufender Monat", Zahl
"Strom Verbrauch laufende Woche", Zahl
"Strom Verbrauch heute", Zahl
"Strom Leistungsaufnahme aktuell", Zahl

…sowie für die interne Berechnung des aufsummierten Zählerstandes zur letzten Ablesung…

"Strom Referenz Verbrauch seit letzter Ablesung", Zahl

…für den aufsummierten Zählerstand zum Ende letzten Jahres…

"Strom Referenz Verbrauch laufendes Kalenderjahr", Zahl

…für den aufsummierten Zählerstand zum Ende letzten Monats…

"Strom Referenz Verbrauch laufender Monat", Zahl

…für den aufsummierten Zählerstand zum Ende letzter Woche…

"Strom Referenz Verbrauch laufende Woche", Zahl

…für den aufsummierten Zählerstand zum Ende des gestrigen Tages…

"Strom Referenz Verbrauch heute", Zahl

Hierbei ist zu beachten, dass der in der CCU voreingestellte Wertebereich für Systemvariablen vom Typ Zahl von 0 bis 65000 reicht. Dies könnte ggf. auf Dauer nicht genügen. Daher sollte zumindest für die Systemvariable „Strom Zaehlerstand“ und für alle Referenz-Systemvariablen als Maximalwert 999999.99 eingegeben werden.

Beim Wechsel vom Ferrariszähler werden für die Referenz-Systemvariablen temporär negative Werte benötigt (siehe im Kapitel 5 unten). Somit bietet es sich an, bereits hier als Minimalwert -999999.99 einzugeben.

Auswertung

Zur Auswertung werden bei Aktualisierung des Leistungswertes zunächst die beiden Datenpunkte IEC_POWER und IEC_ENERGY_COUNTER des HM-ES-TX-WM sowie die relevanten Systemvariablen ausgelesen. Die aktuelle Leistungsaufnahme der Wohneinheit und der Zählerstand kann man ohne Umwege in die zugehörige Systemvariable speichern. Die Zeitraum-Zähler werden über folgende Systematik berechnet…


"neuer \quad Stand" \quad (kWh) = "aktueller \quad Stand" - "Stand \quad bis \quad zum \quad letzten \quad Reset"

Das zugehörige Skript…

object oP = dom.GetObject("BidCos-RF.MEXXXXXXXX:1.IEC_POWER");
object oE = dom.GetObject("BidCos-RF.MEXXXXXXXX:1.IEC_ENERGY_COUNTER");
var zA = dom.GetObject("Strom Zaehlerstand");
var aA = dom.GetObject("Strom Leistungsaufnahme aktuell");
var vLz = dom.GetObject("Strom Referenz Verbrauch seit letzter Ablesung");
var vLg = dom.GetObject("Strom Verbrauch seit letzter Ablesung");
var vTz = dom.GetObject("Strom Referenz Verbrauch heute");
var vTg = dom.GetObject("Strom Verbrauch heute");
var vWz = dom.GetObject("Strom Referenz Verbrauch laufende Woche");
var vWg = dom.GetObject("Strom Verbrauch laufende Woche");
var vMz = dom.GetObject("Strom Referenz Verbrauch laufender Monat");
var vMg = dom.GetObject("Strom Verbrauch laufender Monat");
var vJz = dom.GetObject("Strom Referenz Verbrauch laufendes Kalenderjahr");
var vJg = dom.GetObject("Strom Verbrauch laufendes Kalenderjahr");
zA.State(oE.State().Round(1));
aA.State(oP.State());
vLg.State((zA.State() - vLz.State()).Round(0));
vTg.State((zA.State() - vTz.State()).Round(0));
vWg.State((zA.State() - vWz.State()).Round(0));
vMg.State((zA.State() - vMz.State()).Round(0));
vJg.State((zA.State() - vJz.State()).Round(0));

…wird mit jeder Aktualisierung des Leistungs-Datenpunktes IEC_POWER ausgeführt…

Programm

Das hiesige Smart-Meter überträgt mittels HM-ES-TX-WM in der Grundkonfiguration keine, nach Freischaltung des erweiterten Datensatzes vier Dezimalstellen. Das Skript rundet den Zählerstand auf eine Dezimalstelle, die Zeitraumzähler auf ganze kWh. Falls die Zeitraumzähler auch Dezimalstellen anzeigen sollen, ist im Skript die Zahl p in der Funktion „Round(p)“ anzupassen.

Reset

Der Reset der Zeitraumzähler funktioniert exakt nach dem Verfahren bei Ferrariszählern, weswegen Umsteiger diesbezüglich nichts anpassen müssen.

Details zum Vorgehen finden Erstanwender im Kapitel 2 des Tutorials HomeMatic – Stromzähler auswerten Version 2 mit HM-ES-TX-WM.

Ich empfehle jedoch, den Reset der „Kalenderzähler“ nach dem Tutorial HomeMatic – Alle Zähler zusammen zurücksetzen gemeinsam vorzunehmen. Dazu wird das folgende Skript über das Zeitmodul der CCU oder einen CUxD-Timer jeden Tag um 23:59 Uhr getriggert…

!Tageszaehler
var vTz = dom.GetObject("Strom Referenz Verbrauch heute");
var vTg = dom.GetObject("Strom Verbrauch heute");
vTz.State(vTg.State() + vTz.State());
vTg.State(0.00);
!Wochenzaehler
if (system.Date("%u") == 7) {
var vWz = dom.GetObject("Strom Referenz Verbrauch laufende Woche");
var vWg = dom.GetObject("Strom Verbrauch laufende Woche");
vWz.State(vWg.State() + vWz.State());
vWg.State(0.00);
}
!Monatszaehler
time morgen = (system.Date("%F %X").ToTime().ToInteger() + 120).ToTime();
if (morgen.Day() == 1) {
var vMz = dom.GetObject("Strom Referenz Verbrauch laufender Monat");
var vMg = dom.GetObject("Strom Verbrauch laufender Monat");
vMz.State(vMg.State() + vMz.State());
vMg.State(0.00);
}
!Jahreszaehler:
if ((system.Date("%m") == 12) && (system.Date("%d") == 31)) {
var vJz = dom.GetObject("Strom Referenz Verbrauch laufendes Kalenderjahr");
var vJg = dom.GetObject("Strom Verbrauch laufendes Kalenderjahr");
vJz.State(vJg.State() + vJz.State());
vJg.State(0.00);
}

Zum Reset des Ablesezählers empfiehlt sich ein Programm, das manuell zu starten ist, wenn die Stromzählerablesung erfolgt ist und folgendes Skript ausführt…

var vLg = dom.GetObject("Strom Verbrauch seit letzter Ablesung");
var vLz = dom.GetObject("Strom Referenz Verbrauch seit letzter Ablesung");
vLz.State(vLg.State() + vLz.State());
vLg.State(0.00);

Batteriewechsel

Nach einem Batteriewechsel wird der aktuelle Zählerstand ausgelesen und direkt an die CCU übertragen. Manuelle Anpassungen, wie bei der Verwendung von Ferrrariszählern erforderlich, erübrigen sich nun.

Da sich die Zeitraumzähler um 23:59 Uhr zurücksetzen, sollte ein Batteriewechsel nicht um diesen Zeitpunkt herum erfolgen.

Wer ganz sichergehen will, kann vor dem Batteriewechsel alle aktuellen Werte der Referenz-Systemvariablen notieren, und diese nach dem Batteriewechsel verifizieren.

Korrektur und Ersteinrichtung

Die Auswertung des HM-ES-TX-WM funktioniert normalerweise sehr genau und durch die direkte Übermittlung des Zählerstandes werden Differenzen beim Zählerstand vermieden.

Durch Abstürze der CCU oder z.B. Stromausfälle können aber mehr oder weniger große Abweichungen bei den Zeitraumzählern entstehen, wenn die letzte Speicherung der REGADOM (DOM-Save) zu lange zurückliegt.

Auch bei der Ersteinrichtung sind die Zeitraumzähler einmalig auf die richtigen Werte zu bringen.

Abweichungen lassen sich durch manuelle Anpassung der Referenz-Systemvariablen…

“Strom Referenz Verbrauch seit letzter Ablesung”, Zahl
“Strom Referenz Verbrauch laufendes Kalenderjahr”, Zahl
“Strom Referenz Verbrauch laufender Monat”, Zahl
“Strom Referenz Verbrauch laufende Woche”, Zahl
“Strom Referenz Verbrauch heute”, Zahl

…nach dem folgenden Schema korrigieren…


"Strom \quad Referenz \quad Verbrauch \quad Zeitraum" = "Strom \quad Zaehlerstand" - "Strom \quad Verbrauch \quad Zeitraum"

…, also z.B. bezogen auf den Tageszähler…


"Strom \quad Referenz \quad Verbrauch \quad heute" = "Strom \quad Zaehlerstand" - "Strom \quad Verbrauch \quad heute"

Für den Tageszähler (Strom Referenz Verbrauch laufender Tag) ist das der aktuelle Zählerstand minus den am Eintragetag bereits aufgelaufenen Verbrauch (ggf. geschätzt). Dies entspricht dem Zählerstand vom Vortag 23:59 Uhr.

Für den Wochenzähler (Strom Referenz Verbrauch laufende Woche) der aktuelle Zählerstand minus den bis zum Eintragezeitpunkt bereits aufgelaufenen Wochenverbrauch (ggf. geschätzt). Dies entspricht dem Zählerstand vom letzten Sonntag 23:59 Uhr.

Für des Monatszähler (Strom Referenz Verbrauch laufender Monat) der aktuelle Zählerstand minus den bis zum Eintragezeitpunkt bereits aufgelaufenen Monatsverbrauch (ggf. geschätzt). Dies entspricht dem Zählerstand vom letzten Tag des Vormonats 23:59 Uhr.

Für den Jahreszähler (Strom Referenz Verbrauch laufendes Jahr) der aktuelle Zählerstand minus den bis zum Eintragezeitpunkt bereits aufgelaufenen Jahresverbrauch (ggf. geschätzt). Dies entspricht dem Zählerstand vom 31.12. des Vorjahres 23:59 Uhr.

Für den Ablesezähler (Strom Referenz Verbrauch seit letzter Ablesung) der aktuelle Zählerstand minus den bis zum Eintragezeitpunkt bereits aufgelaufenen Verbrauch seit der letzten Stromablesung (ggf. geschätzt). Am besten übernimmt man hierfür den Zählerstand von der letzten Stromrechnung.

Korrekturskript

Die Korrektur kann man z.B. mit dem folgenden Skript erledigen. Die “!” in den Zeilen, deren Systemvariable zu ändern sind, einfach entfernen und die eigenen Zahlenwerte einsetzen…

var vTz = dom.GetObject("Strom Referenz Verbrauch heute");
var vWz = dom.GetObject("Strom Referenz Verbrauch laufende Woche");
var vMz = dom.GetObject("Strom Referenz Verbrauch laufender Monat");
var vJz = dom.GetObject("Strom Referenz Verbrauch laufendes Kalenderjahr");
var vLz = dom.GetObject("Strom Referenz Verbrauch seit letzter Ablesung");
! vTz.State(2968.00);
! vWz.State(3661.00);
! vMz.State(7258.00);
! vJz.State(7430.00);
! vLz.State(7550.00);
WriteLine("Referenz Systemvariablen wie folgt gespeichert:");
WriteLine("Tageszaehler:");
WriteLine(vTz.State());
WriteLine("Wochenzaehler:");
WriteLine(vWz.State());
WriteLine("Monatszaehler:");
WriteLine(vMz.State());
WriteLine("Jahreszaehler:");
WriteLine(vJz.State());
WriteLine("Ablesezaehler:");
WriteLine(vLz.State());

Da sich die Zeitraumzähler um 23:59 Uhr zurücksetzen, sollten – wie bei einem Batteriewechsel – Korrekturen nicht in diesem Zeitfenster erfolgen.

Umzug vom (Ferraris-)zähler

Falls ein Bestandszähler mit HM-ES-TX-WM auf einen neuen Zähler umgestellt werden soll, sind die Referenz-Systemvariablen der Zeitraumzähler bis zum nächsten Reset so anzupassen, dass die bestehenden Zählerwerte korrekt fortgeschrieben werden.

Während der ausgebaute Zähler einen bestimmten aufgelaufenen Zählerstand aufweist, wird das neu eingebaute Smart-Meter in aller Regel bei NULL zu zählen beginnen. Aber auch mit einem Zählerstand zum Einbau größer NULL ist eine Anpassung einfach möglich.

Wenn zum Zeitpunkt der Korrektur ein Reset bereits erfolgt ist, was z.B. beim Tageszähler recht schnell der Fall sein könnte, ist lediglich nach dem in Kapitel 4 beschriebenen Verfahren folgender Referenzwert einzutragen…


"Referenz \quad SysVar \quad Smart-Meter" = "Aktueller \quad  Zaehlerstand \quad zum \quad Stichpunkt" - "Verbrauch \quad Zeitraum-Zaehler \quad bis \quad Stichpunkt"

Für alle Zähler, die sich nach dem Umbau noch nicht zurückgesetzt haben, ist die neue Referenz folgendermaßen zu berechnen…


"Referenz \quad SysVar \quad Smart-Meter = "Referenz \quad SysVar \quad Ferraris" - "Zaehlerstand \quad Ausbau \quad Ferraris" + "Zaehlerstand \quad Einbau \quad Smart-Meter"

Da dies negative Referenzwerte ergibt, sind die Referenz-Systemvariablen – wie in Kapitel 2 beschrieben – zumindest temporär für negative Zahlen zu deklarieren.

Hier ein praktisches Beispiel zur Veranschaulichung, wobei sich der Tageszähler zum Stichpunkt nach dem Smart-Meter-Einbau bereits zurückgesetzt hat, alle anderen Zähler noch nicht…

Homematic Stromzähler HM-ES-TX-WM Smart-Meter
SysVar
Homematic Stromzähler HM-ES-TX-WM Smart-Meter

Nach dem Reset der alten Referenzen sollten die Zähler auf NULL gesetzt sein und die Referenzwerte wieder stimmen. Falls nicht, sind sie einmalig nach dem in Kapitel 4 beschriebenen Verfahren zu korrigieren.

Bitte beachten...

SMART WOHNEN in Stern's Haus ist ein rein privates, nicht kommerzielles Projekt. Meine Hinweise, Anleitungen, Schaltungen und Software werden so angeboten, „wie sie sind“, Support kann ich nur im Rahmen meiner begrenzten Freizeit leisten, hierfür bitte ich um Verständnis.
Die Verwendung meiner Hinweise, Anleitungen, Schaltungen und Software erfolgt auf eigenes Risiko. Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung! Für die Einhaltung der einschlägigen technischen Vorschriften ist jeder Anwender selbst verantwortlich!
Creative Commons Lizenzvertrag
Copyright © Jens-Peter Stern | SMART WOHNEN in Stern's Haus | sternshaus.de
  1. Danke für die Anleitung. Bei uns wurde der Ferraris Zähler auch getauscht. Leider hat der neue keine IR Auslesemöglichkeit. Es gibt nur die Möglichkeit es über das LED-Blinken auszulesen per ES-LED.

    • Hallo Martin,
      dafür gibt es mit dem „Zählersensor LED ES-LED“ auch einen Sensor, nur musst du prüfen, ob und wie dein spezieller Zähler dann im HM-ES-TX-WM konfiguriert werden kann. Für die Auswertung ist es dann letztlich egal, welcher Sensor am HM-ES-TX-WM angeschlossen ist.
      Grüße Jens

  2. Mark Heitmann

    Hallo Jens,

    einfach super Anleitungen. DANKE

    Ich habe mir den Energiezähler beschafft, um die PV (Balkonanlage) zu überwachen. Den wir haben uns die Frage gestellt, wie viel Verbrauch können wir damit reduzieren.

    Mein Zähler, ein Hager EHZ363W5 zeigt den Strom an, welcher saldiert ins Haus fliest. Sobald die PV, Strom in Richtung Stromnetz treibt werden Striche angezeigt, keine Watt-Werte.
    Jetzt kommt der Kracher, der Energiezähler bekommt es allerdings per SML Kommunikation sehr wohl mitgeteilt, wie viel Watt in das öffentliche Netz eingespeist werden.

    Ich bin leider nicht so Affin, was das Scripten/Programmieren betrifft.

    Gibt es eine Möglichkeit, die Einspeise-Watt zu erfassen sowie diese in eine Variable zu summieren?

    Weiter so.

    Beste Grüße
    Mark

    • Hallo Mark,
      soweit ich weiß, kann man mit den richtigen Parametern auch einen Zweirichtungszähler über HM-ES-TX-WM mit ES-IEC auslesen. Ich selbst habe mich damit mangels eigenem Anwendungsfall aber bisher nicht befasst. Wenn der HM-ES-TX-WM die entsprechenden Datenpunkte in der CCU befüllt, kann man analog zu den Verbräuchen grundsätzlich auch die Einspeisungen erfassen und berechnen lassen.
      Vielleicht suchst du im Forum mal nach „HM-ES-TX-WM für Einspeisung“, „HM-ES-TX-WM mit ES-IEC“, „HM-ES-TX-WM Zweirichtungszähler“ oder dergleichen.
      Liebe Grüße Jens

      • Guter Ansatz,

        leider ist der Zähler kein Zweirichtungszähler.

        Habe gehofft man kann das mit einem Script etc. Summieren lassen.

        Ich schau mal im Forum nach deinen Vorschlägen.

        Besten Dank
        Mark

  3. Sascha Koch

    Hallo Jens, vielen Dank für diesen Bericht. Dieser hat mit sehr bei der Umstellung auf den smarten Stromzähler geholfen. Ich würde gerne noch eine neue Variable “ Strom Verbrauch gestern“ mit anzeigen lassen. Inwieweit müsste ich das Skript ändern ?

    Danke und ein schönes Wochenende.

  4. Jürgen (Tasmota Verbrauchswerte)

    Hallo,
    ich verwende einen Tasmota-WiFi-Smartmeter (Hichi IR WIF von Ebay) und dieser liefert kontinuierlich drei Variablen vom Zähler DWS7412 per WLAN auf die CCU3 mit folgendem Script:

        D
    
    var1=0
    var2=0
    var3=0
    
        B
    
    =>sensor53 r
    
        M 1
    
    +1,3,s,16,9600,DWS7412
    1,77070100010800ff@1000,Verbrauch,kWh,total_in,4
    1,77070100020800ff@1000,Netzeinspeisung,kWh,total_out,4
    1,77070100100700ff@1,Leistung,W,power,2
    
        T
    
    var1=DWS7412#total_in
    var2=DWS7412#total_out
    var3=DWS7412#power
    
        S
    
    -> WebSend [192.168.100.17:8181]/cuxd.exe?ret=dom.GetObject("Energie_in").State(%var1%)
    -> WebSend [192.168.100.17:8181]/cuxd.exe?ret=dom.GetObject("Energie_out").State(%var2%)
    -> WebSend [192.168.100.17:8181]/cuxd.exe?ret=dom.GetObject("Verbrauch").State(%var3%)
    #
    

    Doch nun möchte ich auf der CCU auswerten (Tag, Woche, Monat; Jahr…) ohne ein Gerät mit dem Namen BidCos-RF.MEXXXXXXXX:1.IEC_POWER in der CCU. Doch als Anfänger weiß ich nicht wie ich die ersten zwei Zeilen im Script anpassen soll.

    • Hallo,

      das Tutorial ist für eine Zählerauswertung mittels HM-ES-TX-WM konzipiert, nicht für andere Sensoren. Ich kenne den Hichi nicht und kann dein Skript daher auf die Schnelle nicht in Gänze nachvollziehen. Es dürften aber wohl die Werte des Hichi wie folgt in die Systemvariablen geschrieben werden:

      „Energie_in“ = tatsächlicher Zählerstand des Smart-Meters (Verbrauch) in kWh
      „Verbrauch“ = Leistungswert (aktuelle Leitsungsaufnahme des Hauses / der Wohnung) in W

      Falls dem so ist und das zuverlässig funktioniert, könntest du mal folgende Anpasung im Auswerteskript (Zeilen 1 und 2) probieren:

      var oP = dom.GetObject("Verbrauch");
      var oE = dom.GetObject("Energie_in");
      

      Wenn es genau anders herum ist, einfach die beiden Systemvariablen tauschen:

      var oP = dom.GetObject("Energie_in");
      var oE = dom.GetObject("Verbrauch");
      

      Triggern kannst du das dann auf die Aktualisierung einer der beiden Sytemvariablen.

      Grüße und viel Erfolg Jens

      • Jürgen (Tasmota Verbrauchswerte)

        Super Jens,
        mit dem Hinweis wurde das Problem gelöst. Nun kann ich auch noch versuchen die dritte Variable für die sehr geringe Einspeisung meiner Balkonsolaranlage einzuarbeiten. Weiterhin habe ich bei der Variable „Verbrauch“ mit dem Wertebereich ab Null auch noch verhindert dass die negativen Zahlen (entstehen ggf. in der Mittagssonne) nicht berücksichtigt werden. Diese Energie schenke ich praktisch meinen Energieversorger. Vielen Dank noch mal für die schnelle Hilfe.

  5. Hallo,
    wäre schön wenn du in das Script wieder die Strompreise einfügen würdest sowie bei Version 2. Oder mir bitte beantworten wie ich das Script ändern muss ?
    Anbei das Script von Version 2:

    object oP = dom.GetObject("BidCos-RF.XXXXXXX:1.IEC_POWER");
    object oE = dom.GetObject("BidCos-RF.XXXXXXX:1.IEC_ENERGY_COUNTER");
    var zA = dom.GetObject("Strom Zaehlerstand");
    var aA = dom.GetObject("Strom Leistungsaufnahme aktuell");
    var vLz = dom.GetObject("Strom Referenz Verbrauch seit letzter Ablesung");
    var vLg = dom.GetObject("Strom Verbrauch seit letzter Ablesung");
    var vTz = dom.GetObject("Strom Referenz Verbrauch heute");
    var vTg = dom.GetObject("Strom Verbrauch heute");
    var vTk = dom.GetObject("Strom Kosten Heute");
    var vWz = dom.GetObject("Strom Referenz Verbrauch laufende Woche");
    var vWg = dom.GetObject("Strom Verbrauch laufende Woche");
    var vWk = dom.GetObject("Strom Kosten laufende Woche");
    var vMz = dom.GetObject("Strom Referenz Verbrauch laufender Monat");
    var vMg = dom.GetObject("Strom Verbrauch laufender Monat");
    var vMk = dom.GetObject("Strom Kosten laufender Monat");
    var vJz = dom.GetObject("Strom Referenz Verbrauch laufendes Kalenderjahr");
    var vJg = dom.GetObject("Strom Verbrauch laufendes Kalenderjahr");
    var vJk = dom.GetObject("Strom Kosten laufendes Kalenderjahr");
    var vPk = dom.GetObject("Strompreis");
    if ((oE.State() + 0.001) < aC.State()) {
    zR.State(zR.State() + 838.8607);
    }
    aC.State(oE.State());
    zA.State(zR.State() + (oE.State()/1000));
    aA.State(oP.State());
    vLg.State(zA.State() - vLz.State());
    vTg.State(zA.State() - vTz.State());
    vWg.State(zA.State() - vWz.State());
    vMg.State(zA.State() - vMz.State());
    vJg.State(zA.State() - vJz.State());
    vJk.State(vJg.State() * vPk.State());
    vMk.State(vMg.State() * vPk.State());
    vWk.State(vWg.State() * vPk.State());
    vTk.State(vTg.State() * vPk.State());
    
    • Hallo Timo,
      das kannst du hier genauso machen, baue einfach in das Skript aus dem neuen Tutorial die gewünschten SysVar „Strom Kosten XX“ und natürliche den „Strompreis“ ein und ergänze die Zeilen für die Preisberechnung am Ende des Skripts.
      Grüße Jens

  6. Hallo Jens,
    kannst du mir zeigen wo das gemacht wird. Komme da bisschen durcheinander weil die Scripte unterschiedlich aussehen.

    Grüße Timo

    • Na gut, hier das Skript…

      object oP = dom.GetObject("BidCos-RF.MEXXXXXXXX:1.IEC_POWER");
      object oE = dom.GetObject("BidCos-RF.MEXXXXXXXX:1.IEC_ENERGY_COUNTER");
      var zA = dom.GetObject("Strom Zaehlerstand");
      var aA = dom.GetObject("Strom Leistungsaufnahme aktuell");
      var vLz = dom.GetObject("Strom Referenz Verbrauch seit letzter Ablesung");
      var vLg = dom.GetObject("Strom Verbrauch seit letzter Ablesung");
      var vTz = dom.GetObject("Strom Referenz Verbrauch heute");
      var vTg = dom.GetObject("Strom Verbrauch heute");
      var vWz = dom.GetObject("Strom Referenz Verbrauch laufende Woche");
      var vWg = dom.GetObject("Strom Verbrauch laufende Woche");
      var vMz = dom.GetObject("Strom Referenz Verbrauch laufender Monat");
      var vMg = dom.GetObject("Strom Verbrauch laufender Monat");
      var vJz = dom.GetObject("Strom Referenz Verbrauch laufendes Kalenderjahr");
      var vJg = dom.GetObject("Strom Verbrauch laufendes Kalenderjahr");
      var vTk = dom.GetObject("Strom Kosten Heute");
      var vWk = dom.GetObject("Strom Kosten laufende Woche");
      var vMk = dom.GetObject("Strom Kosten laufender Monat");
      var vJk = dom.GetObject("Strom Kosten laufendes Kalenderjahr");
      var vPk = dom.GetObject("Strompreis");
      zA.State(oE.State().Round(1));
      aA.State(oP.State());
      vLg.State((zA.State() - vLz.State()).Round(0));
      vTg.State((zA.State() - vTz.State()).Round(0));
      vWg.State((zA.State() - vWz.State()).Round(0));
      vMg.State((zA.State() - vMz.State()).Round(0));
      vJg.State((zA.State() - vJz.State()).Round(0));
      vTk.State(vTg.State() * vPk.State());
      vWk.State(vWg.State() * vPk.State());
      vMk.State(vMg.State() * vPk.State());
      vJk.State(vJg.State() * vPk.State());
      

      Probier’s mal aus, ich kann es hier gerade nicht testen.
      Jens

  7. Hallo jens,

    wie kann ich die Stromzähler Aktualiserung also Datum und Zeit mit anzeigen lassen als Systemvariable…

    So wie das in JensMaus sein Script ist.

    Lg Sven

    • Hallo Sven,

      da ich das Skript von Jens Maus nicht kenne, kann ich zu dessen Lösung nichts sagen.

      Da das Skript hier aber mit der Aktualisierung des HM-ES-TX-WM getriggert ist, könntest du einfach zusätzlich den Zeitpunkt in eine Systemvariable (vorher anlegen, Typ Zeichenkette) speichern, z.B. so…

      var AktZeit= dom.GetObject("Aktualisierungszeitpunkt");
      AktZeit.State(system.Date("%F %T"));
      
  8. Johannes

    Hallo Jens,
    Ich habe schon die letzten Jahre den Feraris Zähler nach deiner Anleitung genutzt. Nun haben wir auch ein Zweirichtungszähler bekommen, und ich habe das Script angepasst. Einmal für Bezug und einmal für Einspeisung.

    Es funktioniert aber der Wert Gestern wird auch um 23,59Uhr immer auf 0 gesetzt und übernimmt nicht den wert vom Vortag. bzw vom Tag… Wo könnte das Problem liegen bei den alten wurde ja immer 00:02 das Zeitmodul ausgeführt also am Tag wo es 0 sein soll jetzt ja schon am selbigen Tag hängt es damit zusammen?

    • Hallo Johannes,
      im Grunde sind beide Varianten der Rücksetzskripte verwendbar. Nur muss das Skript zum gewählten Zeitpunkt passen. Du schreibst, dass du beim Ferrariszähler die Variante mit Reset nach 24:00 Uhr verwendet hast und jetzt auf die von 24:00 Uhr umgestellt hast. Kann es sein, dass du noch das „alte“ Rücksetzskript verwendest und das nicht entsprechend angepasst hast? Mehr dazu auch hier.
      Grüße Jens

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

WordPress Cookie Plugin von Real Cookie Banner