Verbrauchs- und Einspeisedaten des Holley DTZ541-ZEBA via WLAN zu MQTT senden

Ein kleines Projekt mit dem Holley DTZ541-ZEBA, einem ESP8266 D1 Mini und dem Lesekopf von Volkszähler, damit Verbrauchs- und Einspeisedaten mit dem saldierenden Drehstromzähler digital mittels MQTT ausgewertet und überwacht werden können.

Kernziel: Eine zuverlässige Datenquelle für die Nulleinspeisung des Balkonkraftwerks erhalten um den Strombedarf via Grafana/iobroker/Node-RED visualisieren und steuern zu können.


Inhaltsübersicht

Einleitung

Ziel war es die Daten des neuen Holley DTZ541 Stromzählers auszulesen und damit direkt via MQTT die Verbrauchsdaten, sowie auch Relais zu steuern, damit bei einer erhöhten Stromproduktion der PV Anlage zusätzliche Verbraucher angesteuert werden können.

Schritt für Schritt Anleitung

Holley Stromzähler freischalten

Nach erfolgreichem Wechsel des Stromzählers durch den lokalen Netzbetreiber (hier KommEnergie), muss zunächst der PIN als Licht Morsecode, oder via Taste eingegeben werden. Der PIN zum Stromzähler kann einfach über die Hotline des Netzbetreibers angefragt werden.

Warum ist das wichtig? Damit die eingebauten LED Dioden die passenden Daten senden.

Nach der PIN Eingabe wechselt der Zähler vom reduzierten Datensatz auf den vollständigen Datensatz in welchem die Leistungsdaten jeder Phase und die Summen dieser über die D0 INFO Schnittstelle weitergegeben werden.

Hinweis: Dies scheint in manchen Fällen nicht notwendig zu sein, ich gehe jedoch immer auf Nummer sicher. Das Handbuch zum Stromzähler und die Details zur Eingabe der PIN sind dort recht gut beschrieben.

Hinweis: Mit einem Handy und der Videofunktion können die LED Blinkdaten recht gut visualisiert werden um die entsprechende Veränderung vor der PIN Eingabe und nach der PIN Eingabe zu sehen.

Details zum Holley DTZ541-ZEBA Drehstromzähler

Der DTZ541 „saldiert“ die Verbrauchs- und Einspeisedaten in einem Wert. Dabei summiert er die Daten aller drei Phasen auf und zeigt die Summenformel (Addition aller Werte) entsprechend an. In Foren wird dieser als saldierend beschrieben, was sich nach der entsprechenden Auswertung der Bezugs- und Einspeisedaten bestätigen lässt.

Als Protokoll liegt auf der INFO LED das SML Protokoll an (vgl. https://de.wikipedia.org/wiki/Smart_Message_Language).

Weitere Details können unter https://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/holley_dtz541 abgerufen werden.

Info LED auslesen

Die Hardware

Zum Auslesen der Daten benötigen wir neben einem ES32 oder ESP8266 (oder baugleich) und einen Infrarot LED Lesekopf, welcher die „Morsecodes“ auslesen kann.

Ein fertiger Lesekopf incl. Magnet kann über ebay Deutschland als reiner TTL Lesekopf (Hichi https://amzn.to/3GU2Cem* https://ebay.us/SCMlGO* oder als bitShake https://amzn.to/3IDyEN7* https://ebay.us/h9jzuf*) für ca. 20 EUR gekauft werden. Den bitShake TTL Leser gibt es auch bei Amazon unter folgendem Link https://amzn.to/3W92T1K* zu kaufen. Ein bereits fertiges Gerät (inkl. einem ESP Modul) kann von Hichi (https://ebay.us/Ft8BFs* oder bitShake https://amzn.to/3GxfUvX* ) für ca. 30 EUR bestellt werden.

Sofern dann ein WMOS D1 Mini benötigt wird, kann dieser mit entsprechenden „Beinchen“ (https://ebay.us/CbESRx*) für 9 EUR kurzfristig oder ohne „Beinchen“ aus China (https://ebay.us/AHasv3*) für ca. 5 EUR bestellt werden. Alternativ kann dieser bei Aliexpress unter https://s.click.aliexpress.com/e/_Dk2h2sT* kostengünstig bestellt werden.

Die mit * gekennzeichneten Internetlinks, sind Affiliate Links. Das benannte Produkt wird für Sie dadurch nicht teurer. Sie ermöglichen mir damit den Aufwand für das Zusammenstellen und -schreiben der Artikel, ein klein wenig zu refinanzieren. Dankeschön vorab für die Nutzung dieser Links.

Eine Aufbauanleitung wird beim Volkszähler im Link zuvor beschrieben.

Die Software

ESPEasy, SMLReader oder doch Tasmota – die Qual der Wahl

Im Forum des Volkszählers stößt man auf ESP Easy (https://wiki.volkszaehler.org/hardware/controllers/espeasy). Im Link ist eine gute Beschreibung zum Aufbau einer Steuerung beschrieben.

Sucht man nach der perfekten und fertigen Lösung so stößt man zwangsläufig auf den SMLReader von Michael Rüttgers (https://github.com/mruettgers/SMLReader).

Ich persönlich habe mich aufgrund der Verbreitung und der internen Skriptmöglichkeit für Tasmota entschieden. So kann bereits am Stromzähler über den WMOS D1 Mini eine gewisse Funktionslogik realisiert und via MQTT weitergegeben werden.

Tasmota mit SmartMeter Erweiterung

Damit wir mittels Tasmota die D0 Info LED des Holley auslesen können benötigen wir ein eigenes Kompilat incl. des Moduls SML Moduls.

Details können auf Github unter https://tasmota.github.io/docs/Smart-Meter-Interface/ nachgelesen werden. Zur Vereinfachung und Zeitersparnis, hier meine fertige Konfiguration:

// _USER_CONFIG_OVERRIDE_H_

#ifndef USE_SCRIPT
#define USE_SCRIPT
#endif
#ifdef USE_RULES
#undef USE_RULES
#endif

#define USE_SCRIPT_WEB_DISPLAY 
#define USE_SCRIPT_JSON_EXPORT 
#define USE_EXPRESSION      
#define SUPPORT_IF_STATEMENT 

Wer gleich seine WLAN Daten und den MQTT Host festschreiben möchte kann zugleich diese in die Konfiguration eintragen:

#undef  STA_SSID1
#define STA_SSID1         "WLANSSID"     // [Ssid1] Wifi SSID
#undef  STA_PASS1
#define STA_PASS1         "WLAN-PSK"     // [Password1] Wifi password
#undef  MQTT_HOST
#define MQTT_HOST         "192.168.1.1" // [MqttHost]

Danach nur noch kompilieren und fertig ist die gesamte Tasmota Firmware, welche nur noch auf den ESP geladen werden muss. Ich benutze zum Kompilieren PlatformIO oder alternativ Visual Studio wie auf der Webseite https://tasmota.github.io/docs/Compile-your-build/ beschrieben.

Tasmota Skript zur SML Auswertung

Das nachfolgende Skript enthält gleich etwas mehr als viele benötigen. Es hat bereits folgende „Features“ eingebaut.

  • SML Aktivierung (>B)
  • SML Parametrisierung (>M 1) 
  • Schaltung von zwei Relais (>S) (mit zwei VICTRON DC-DC Wandlern via MQTT Relais)

Ich verwende dieses Skript um zwei Victron 24 Volt DC-DC Wandler zuzuschalten. Die Wandler haben jeweils 5 Ampere bei 24 Volt was ca. 125 Watt am Wechselrichter ergibt. Damit kann ich den Grundverbrauch am Balkonkraftwerk als Dauerleistung nutzen. Der Rest des produzierten Stroms fließt in einen kleinen Akku. Wenn am Zähler ein höherer Verbrauch (z. B. durch den Kühlschrank) angezeigt wird, wird der zweite Victron Wandler dazu geschaltet, um die erhöhte Grundlast abzudecken.

Im Vollausbau sind vier Victron Orion-TR24-5 Wandler (https://amzn.to/3vPmnh4*) aktiv um die PV Anlage und die ggf. verfügbare Batteriekapazität bis zu 600 Watt direkt selbst im Haushalt verbrauchen zu können.

>D 
curr=0
stroml1=0
stroml2=0
stroml3=0
spannungl1=0
spannungl2=0
spannungl3=0
leistungl1=0
leistungl2=0
leistungl3=0
pvinput=1
pvnull=0
pvmax=5
pvpower=50


>T
curr=Wohnung#Power_curr
stroml1=Wohnung#Strom_L1
stroml2=Wohnung#Strom_L2
stroml3=Wohnung#Strom_L3
spannungl1=Wohnung#Spannung_L1
spannungl2=Wohnung#Spannung_L2
spannungl3=Wohnung#Spannung_L3

>B   
->sensor53 r  

>S
if curr>110 and pvinput=1
then 
pvinput=2
endif

if pvinput==2
then
=>publish ESP-PWRMON1/GPIO/12 1
=>publish ESP-PWRMON1/GPIO/13 1
endif

if (curr<(-50)) and pvinput=2
then
pvinput=1
endif

if pvinput==1
then
=>publish ESP-PWRMON1/GPIO/12 0
=>publish ESP-PWRMON1/GPIO/13 0
endif

leistungl1=stroml1*spannungl1
leistungl2=stroml2*spannungl2
leistungl3=stroml3*spannungl3

=>publish SMARTMETER/POWER/POWER_CURR %curr%
=>publish SMARTMETER/POWER/PVINPUT %pvinput%
=>publish SMARTMETER/POWER/POWER_L1 %leistungl1%
=>publish SMARTMETER/POWER/POWER_L2 %leistungl2%
=>publish SMARTMETER/POWER/POWER_L3 %leistungl3%


>M 1  
+1,13,s,0,9600,Wohnung,12
1,77070100010800FF@1000,Zählerstand Verb.,kWh,Verb.,2
1,77070100020800FF@1000,Zählerstand Einsp.,kWh,Einsp.,2
1,77070100600100ff@#,Zählernummer,,Zählernummer,0
1,77070100100700ff@1,Aktueller Verbrauch,W,Power_curr,0
1,77070100200700ff@1,Spannung_L1,V,Spannung_L1,2
1,77070100340700ff@1,Spannung_L2,V,Spannung_L2,2
1,77070100480700ff@1,Spannung_L3,V,Spannung_L3,2
1,770701001f0700ff@1,Strom_L1,A,Strom_L1,2
1,77070100330700ff@1,Strom_L2,A,Strom_L2,2
1,77070100470700ff@1,Strom_L3,A,Strom_L3,2
1,770701000e0700ff@1,Netzfrequenz,Hz,Netzfrequenz,2
#

Auswertung mittels Grafana

Wer bereits eine Grafana Installation im Einsatz hat, kann die Daten zugleich auswerten und erhält dadurch sehr schnell eine Übersicht seiner Verbrauchsdaten. Die Zuordnung der Verbrauchsdaten gibt dann auch die notwendige Dynamik vor um zusätzliche Optimierungen im Skript durchführen zu können.

Details zu meiner Installation und Umsetzung folgen in den kommenden Wochen.

Bilder der fertigen Lösung

Zusammenfassung

Nach erfolgter Parametrisierung und Implementierung läuft diese Lösung bereits seit ca. 1 Jahr erfreulich und stabil. Selbst das lästige jährliche Melden der Zählerdaten ist nun ganz bequem vom PC aus möglich, was meiner vollständig digitale Lebensweise zu gute kommt.

Wenn auch du einen modernen Stromzähler hast und Unterstützung benötigst, dann melde dich gerne bei mir.


Mehr zu diesem Beitrag

  • Details zum Volkszähler

https://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/holley_dtz541

  • Benutzerhandbuch

https://www.stadtwerke-burgdorf-netz.de/_Resources/Persistent/926dd761b368eebf0ba8a91ab12b6d7ae9e628a0/Benutzerhandbuch_mME-DTZ541_V1.2.1.pdf

  • Lokaler Link zum Benutzerhandbuch
  • Diskussion im IO-Broker Forum

https://forum.iobroker.net/topic/25091/holley-dtz541-sml-1-04

  • Kurzanleitung vom Hersteller

https://www.holleytech.de/holleytech/wp-content/uploads/2019/02/HLYDE010406_Kurzanleitung-V1.4_DTZ541.pdf

  • Diskussion im Photovoltaikforum

https://www.photovoltaikforum.com/thread/134055-lesekopf-holley-dtz-541-zeba/

Die mit * gekennzeichneten Internetlinks, sind Affiliate Links. Das benannte Produkt wird für Sie dadurch nicht teurer. Sie ermöglichen mir damit den Aufwand für das Zusammenstellen und -schreiben der Artikel, ein klein wenig zu refinanzieren. Dankeschön vorab für die Nutzung dieser Links.

Änderungshistorie

Erstellt: 2022-06-27Zuletzt geändert: 2023-01-10
Änderungshistorie: –
2022-06-27: Basis – Layout + Text
2022-07-13: Update Text zu Holley Drehstromzähler
2023-01-10: Update der Links
2024-01-02: Update Affiliate Links ebay

21 Gedanken zu „Verbrauchs- und Einspeisedaten des Holley DTZ541-ZEBA via WLAN zu MQTT senden

  1. Guten Morgen,
    Gibt es irgendwo auch eine fertige Lösung?

    Ich stelle mir das so vor, ich setze den kesekkpf auf verbinde den mit LAN oder WLAN und kann das dann auf tablet oder Smartphone anschauen

    1. Guten Tag Christian,
      so wie ich das bitShake Smart Meter Reader Produkt (https://amzn.to/3JJz6d7) verstehe, handelt es sich um ein vollständiges Set mit vorinstalliertem TASMOTA Betriebssystem. Hier muss dann nur noch das WLAN passend eingestellt und der SmartMeter freigeschaltet sein und schon kann es losgehen.
      Lieben Gruß,
      Gregor

  2. Guten Abend,
    wie lautet das Tasmota-Skript zum Auslesen Holley DTZ541 der Wirkleistung auf L1, L2 und L3 also nicht bloß Wikleistung gesamt (beim Holley DTZ541)
    Ich bin durch einiges Suchen hierher gelangt und hoffe auf Hilfe.
    Vielen Dank vorab und Grüße

    1. Grüß Dich HK!

      Laut Benutzer-Handbuch (Datensatz an der Info Schnittstelle) gibt es nur die „momentane Wirkleistung Gesamt mit Vorzeichen“ als Datensatz (77070100100700ff). Aus den Spannungen und den Wirkleistungen der Phasen vgl. unten, kann dies auch errechnet werden. Das Vorzeichen wird im Datensatz wg. der Saldierungsfunktion nicht explizit mitgeliefert. In SML ist dies jedoch als Datensatz definiert. Ich habe dies leider aber bisher in keinem DUMP irgendwo finden können.

      Daher würde hier nur der mathematische Lösungsansatz als Weg offenstehen. Dabei müsstest du die Saldierungsfunktion rechnerisch auflösen und hättest somit den Verbrauch je Phase, als auch dadurch logisch betrachtet auch das passende Vorzeichen und könntest den Verbrauch je Phase (Watt = Volt * Ampere) incl. vorangestelltem Vorzeichen. Dies könnte der ESP im Skript recht gut für dich Live machen.
      Hier noch die Daten aus dem Skript und die passenden Datensatznummern:
      1,77070100100700ff@1,Aktueller Verbrauch,W,Power_curr,0
      1,77070100200700ff@1,Spannung_L1,V,Spannung_L1,2
      1,77070100340700ff@1,Spannung_L2,V,Spannung_L2,2
      1,77070100480700ff@1,Spannung_L3,V,Spannung_L3,2
      1,770701001f0700ff@1,Strom_L1,A,Strom_L1,2
      1,77070100330700ff@1,Strom_L2,A,Strom_L2,2
      1,77070100470700ff@1,Strom_L3,A,Strom_L3,2

      Sonnige Grüße,
      Gregor

  3. Hallo,
    ich habe auch einen HolleyDTZ541, nutze Tasmota und HomeAssistant. Im Grunde bin ich sehr zufrieden, ich habe bei mir nur das Problem, dass mein Zähler die PIN nach einer gewissen Zeit „vergisst“.

    Ich kann über die Tasmota-Web-UI sehen, dass es funktioniert und der aktuelle Verbrauch Veränderungen hat, nachdem ich den PIN am Zähler eingegeben habe. Das funktioniert dann „eine Weile“ nur um dann ohne ersichtlichen Grund stehenzubleiben, weil der Zähler in den normalen Info-Betrieb zurückfällt und keine weiteren Daten mehr sendet (abgesehen von Netzbezug und Export)

    Mache ich etwas falsch?

    Viele Grüße,
    MaVo

    1. Grüß Dich MaVo,
      das Problem mit der PIN kenne ich nur von meinen Tests. Hier hatte ich vergessen die PIN Eingabe zu deaktivieren. In der Anleitung zum Holly auf der Seite 24 steht bei mir in welchem Menü ich die PIN-Eingabe deaktivieren kann.
      Seither läuft es ohne Probleme bei mir.
      Ich habe aber auch von einem Benutzer gehört, dass dieser erst nach einem Telefonat mit seinem Netzanbieter, sein Problem mit der INFO Schnittstelle lösen konnte. Er hatte damals unvollständige Daten geliefert bekommen. Details hierzu habe ich aber leider nicht vorliegen.
      Im Zweifel würde aber sicherlich ein Telefonat mit deinem Netzanbieter dir eine Klarheit schaffen.
      Lieben Gruß,
      Gregor

      1. Hallo Gregor,

        danke für den Tipp mit der Möglichkeit, die pin-eingabe zu deaktivieren. Das habe ich jetzt mal so gemacht, dann sollte das auch funtionieren in mehr als einer Stunde. Ich schaue einmal. Danke dir dennoch im voraus!

        Viele Grüße,
        MaVo

  4. Hallo,

    ich hatte gestern schon einen Kommentar geschrieben, welcher leider nie aufgetaucht ist 🙁

    Meine Frage heute – so wie gestern auch: Hat jemand eine Idee, warum mein Holley DTZ541 die PIN nach ca einer Stunde wieder vergisst und somit die aktuellen Verbrauchswerte nicht mehr auszulesen sind mit meinem Lesekopf (mit Tasmota)?
    Ich kann den Pin eingeben, dann sehe ich alle Daten in der Tasmota-Web-UI, aber wie gesagt, es (der Zähler) geht einfach wieder normalen Modus zurück nach einer gewissen Zeit und ich muss den Pin erneut eingeben 🙁

    Irgendwelche Ideen?

    Viele Grüße,
    MaVo

    1. Guten Abend MaVo,
      hatte leider die Tage viel um die Ohren – daher die verzögerte Antwortzeit.
      Die Funktion der sofortigen Veröffentlichung von Kommentaren, musste ich aufgrund zu vieler SPAM-Nachrichten deaktivieren, damit meine Webseite keine Plattform für unpassende Inhalte, Links und Kommentare wird.
      Ich hoffe meine Antwort hilft dir dein Problem einzugrenzen. Würde mich freuen, wenn du ein Update zur Problemlösung – oder weitere Lösungsansätze die du probiert hast – hier zur Information teilen könntest.
      Lieben Gruß,
      Gregor

  5. Hallo,

    es funktioniert. RTFM hätte mich ggf. gerettet. Ich muss aber auch zugeben, ich habe nicht gerafft, dass wenn man in dem Menüpunkt mit dem Pin on/off ist, man die Taste lange drücken muss um den Wert zu ändern.
    Naja, wieder was gelernt.
    Die Anzeige des aktuellen Verbrauchs geht jetzt schon seit gestern, somit würde ich sagen: Problem gelöst – danke!

    MaVo

  6. Hallo.
    Ich verwende das Script von tasmota mit einem fertigen Hichi. Leider bekomme ich keinerlei Volt und Ampere Daten der Phasen. Nur „Export (Total)“,“Consumption (Total)“ und Consumption (Current). Wo könnte das Problem liegen?

    1. Grüß Dich Rico,

      grundsätzlich müssten sowohl Volt und Watt geliefert werden.
      Ohne die Details zu deinem Script zu kennen, würde ich darauf Tippen dass der PIN am Zähler ggf. nicht permanent gesetzt ist oder die Werte der Variablen nicht passend ausgelesen werden.
      Welches Tasmota Script verwendest du genau? Mit mehr Details könnten wir versuchen die Ursache herauszufinden.

      Besten Gruß,
      Gregor

      1. Moin zusammen,
        ich habe auch das Problem, dass Ich trotz aktivierte Info und deaktiviert Pin nur den Zählerstand und aktuelle Leistung sehen kann. Also keine Leistung pro Phase, keine Frequenz etc.
        Ich habe Tasmota 13.2.0 installiert.

        1. Guten Tag Mathis,

          bei mir läuft inzwischen auch eine 13.x Version. Ist auch hier kein Problem.
          Die Frage ist nur, was beim ESP ankommt und wie er das zur Darstellung verarbeitet.
          Mit dem Befehl „sensor53 d1“ kannst du den Debug Modus aktivieren. (Ausschalten dann mit „sensor53 d0“)
          Hier müsstest du alle Meldungen des Zählers sehen und kannst diese entsprechend dem SML Standard sehen.
          Wenn bei dir der Zählerstand und Leistung geliefert dargestellt wird, werden diese auch im Debug sichtbar sein.
          Wenn im Debug weitere Felder zu sehen sind, weißt du das das der Fehler in der Tasmota Config zu suchen ist.
          Werden im Debug nicht alle Felder angezeigt, müsste nochmal der PIN und die Einstellung am Zähler geprüft werden.

          Gerne kann ich dich hier unterstützen. Such dir einfach unter https://tomitzek.net/termin-buchen/ einen Termin aus und wir treffen uns online im Zoom Meeting.

          Lieben Gruß,
          Gregor

  7. Guten Abend,

    sehr interessant und super beschrieben. Wenn ich’s richtig verstanden habe, wird mit den Victron Orions ein Akku geladen, statt einzuspeisen. Jetzt bin ich neugierig, wie die Batterie nachts den Grundbedarf denkt.

    1. Guten Tag HaKa,

      das ist richtig und relativ einfach. Die Orions laden bei Sonneneinstrahlung den Akku. Zugleich läuft einer der Orions über einen 600 Watt Wechselrichter, welcher Netzgeführt ca. 120 Watt durchgehend einspeisen, bis die Akkuladung nicht mehr ausreicht. Damit ist mein Grundbedarf größtenteils gedeckt. Im Sommer reicht dies bis ca. 4 Uhr nachts. im Winter deckt dies natürlich nicht annähernd den Grundbedarf. Das war jedoch bisher nicht mein Ziel.
      Photovoltaik und Technik macht bei mir aber süchtig – daher ist es aktuell mein Ziel die Akkus als auch die Anzahl der Module zu vergrößern, sodass der Grundbedarf mehr und mehr durchgehend gedeckt und die Stromrechnung dadurch reduziert wird.
      Details zur Regelung der Einspeisung sind jetzt schon in Arbeit und folgen demnächst.
      Lieben Gruß,
      Gregor

  8. Wenn noch jemand die Daten für die Leistung pro Phase sucht, hier mein Script welches mit dem Holley DTZ541-ZDCA Zweirichtungszähler funktioniert. PIN muss eingegeben sein am Zähler.

    >D
    >B
    ->sensor53 r
    >M 1
    +1,3,s,16,9600,SML
    1,77070100600100ff@#,Server ID,,server_id,0
    1,77070100020800ff@1000,Export (Total),kWh,export_total_kwh,4
    1,77070100010800ff@1000,Consumption (Total),kWh,total_kwh,4
    1,77070100100700ff@1,Consumption (Current),W,curr_w,0
    1,77070100200700ff@1,Voltage L1,V,volt_p1,1
    1,77070100340700ff@1,Voltage L2,V,volt_p2,1
    1,77070100480700ff@1,Voltage L3,V,volt_p3,1
    1,770701001f0700ff@1,Amperage L1,A,amp_p1,1
    1,77070100330700ff@1,Amperage L2,A,amp_p2,1
    1,77070100470700ff@1,Amperage L3,A,amp_p3,1
    1,77070100240700FF@1,Wirkleistung L1,W,wirkleistung_l1,0
    1,77070100380700FF@1,Wirkleistung L2,W,wirkleistung_l2,0
    1,770701004C0700FF@1,Wirkleistung L3,W,wirkleistung_l3,0
    1,770701000E0700FF@1,Frequenz Netz,Hz,netz_hz,1
    #

    Viel Erfolg,
    Gruß René

Schreiben Sie einen Kommentar

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

17 − zwölf =