Fast täglich bin ich zum Zählerschrank gelaufen, um unseren Verbrauch und die eingespeisten Kilowattstunden zu überprüfen. Irgendwann war ich es leid, den täglichen Kellerabstieg hinter mich zu bringen und habe mich auf die Suche nach einer Lösung gemacht. Nach vielen Tests mit Tools wie dem Volkszählers oder eigenen Entwicklungen, welche mich nicht überzeugten, suchte ich nach einer einfachen Lösung für jedermann. Manchmal liegt die Lösung direkt vor einem, in Form eines Smart Meter Adapters für den ioBroker.

Voraussetzungen

Damit ihr die folgende Konfiguration durchführen könnt, müssen ein paar Grundvoraussetzungen erfüllen:

  • IR Lesekopf
  • Digitaler Stromzähler inkl. optischen Sensor
  • Freigeschalteter Stromzähler

Beim Kauf des Lesekopfs gibt es eine Vielzahl an Herstellern, welche bereits fertige Produkte oder Bausätze anbieten. Ich habe beim Kauf darauf geachtet, dass der Lesekopf mit meinem Stromzähler kompatible ist, was meistens in der Beschreibung des Produkts zu finden ist. Im ersten Moment war ich über die Preisspanne etwas erschrocken, da diese zwischen 15 und 60 Euro variierte. Am Ende habe ich mich bei einem bekannten online Auktionshaus bedient und einen einfachen USB-IR Lesekopf bestellt.

Abhängig von eurem Netzbetreiber sind die optischen Sensoren bereits freigeschaltet oder mittels PIN gesperrt. Bei den Mainzer Netzen konnte ich bereits ohne Pin-Eingabe einige Werte, wie Gesamtverbrauch oder Zählernummer abfragen. Jedoch wollte ich auch die aktuelle Leistung gesamt oder über die einzelnen Phasen verteilt erhalten. Nach einer kurzen Mail und ein paar Tage, die ins Land gezogen sind, befand sich der Pin in einem Briefkasten.

Freischalten des Zählers

Die Eingabe des Pins erfolgt über den optischen Sensor am Zähler mittels einer Taschenlampe. Für die meistens von uns, inklusive meiner Wenigkeit, klingt der vorherige Satz als ein schlechter Scherz, jedoch ist es wirklich ernst gemeint.

Die im folgenden beschriebene Pin-Eingabe basiert auf einem eBZ Zählers, Typ DD3. Aus diesem Grund kann es auch zu Abweichungen, bei anderen Herstellern kommen.

Zuerst leuchtet ihr mit der Taschenlampe kurz in den Lichtsensor des Zählers, wodurch alle Zeichen des Displays angezeigt werden. Direkt danach beginnt die Pin-Eingabe. An dieser Stelle der Tipp, setzt die Taschenlampe auf dem Zähler auf und gleitet zwischen Lichtsensor und Plastikabdeckung hin und her. Sobald ich die Taschenlampe weiter vom Zähler entfernt habe, wurden die Signale oft nicht erkannt und ich musste die Eingabe von vorne beginnen.

Die Eingabe erfolgt mit einem einfachen anleuchten des Sensors, wobei jedes direkte Anleuchten die Zahl im Display um einen Zähler steigen lässt. Sollte die Zahl eurem Pin entsprechen, muss der Sensor für drei Sekunden nicht beleuchtet werden. Daraufhin wechselt die Nummernstelle eine Position nach rechts.

Wenn ihr die Eingabe erfolgreich hinter euch gebracht habt, ist der Zähler temporär entsperrt. Damit ihr diesen nicht jedes Mal entsperren müsst bzw. das Auslesen der Daten möglich ist, muss die Pin-Eingabe noch über das Menü deaktiviert werden. Abschließend setzt ihr den IR Lesekopf auf die optischen Sensoren, so dass die Dioden direkt übereinander passen und schließt das USB-Kabel an euren ioBroker an.

Lasst euch von der Eingabe nicht verrückt machen, ich habe fünf Anläufe gebraucht bis ich meinen Zähler entsperrt hatte.

Konfiguration

Die Konfiguration des ioBrokers beginnt mit dem Installieren einer Instanz. Dazu einfach im linken Menü auf Adapter wechseln und nach dem Namen smartmeter filtern. Nun erscheint der smartmeter Adapter mit der Beschreibung „Unterstützung für Smartmeter-Geräte“, siehe Abbildung. Daraufhin einfach auf die drei Punkte im blauen Kreis klicken und am unteren linken Rand auf das Plus Symbol. Abhängig von eurer ioBroker Konfiguration müsst ihr den ioBroker auswählen, auf welchem die Instanz installiert werden soll.

Die folgende Konfiguration beschreibt die Einstellungen auf Basis meines eBZ DD3 Zählers!

eBZ DD3 Konfiguration

Die Einstellungen unterteilen sich in drei Abschnitte. In den Allgemeine Einstellungen muss festgelegt werden, wie häufig die Daten vom Zähler abgefragt werden. Persönlich möchte ich einmal die Minute ein Update erhalten, Standartmäßig würde eine Abfrage alle 300 Sekunden erfolgen.

Die Datenübertragung wird erfolgt mittels serieller Daten. Die Daten sollen nur gelesen und als Protokoll muss D0 gewählt werden, da der DD3 keine andere Protokolle unterstützt. Sprache entsprechend auf Deutsch belassen.

Im zweiten Abschnitt muss der USB-Port ausgewählt werden, an welchem sich der IR Lesekopf befindet, glücklicherweise werden im Dropdown Feld alle verfügbaren Schnittstellen angezeigt. Die Baudrate ist abhängig von eurem Lesekopf, bei mir stand in der mitgelieferten Anleitung eine Baudrate von 9.600, sowie das Data Bit 7 und Stop Bit 1. Als Parität ist even zu verwenden und eine Wartezeit von 30 Sekunden.

Der letzte Abschnitt handelt vom Datenprotokoll und wird bis auf vier Felder leer gelassen.

  • Anzahl WakeUp-zeichen = 0
  • Kommando SignOn-Nachricht = /?!
  • Überschreibe Modus = C
  • Ersatz OBIS-Medium = 1:Strom

Nun sollte eure Konfiguration identisch zur Abbildung aussehen.

An dieser Stelle möchte ich mich bei Apollon77 für die Entwicklung des Adapters bedanken, da ich damit endlich meine Stromverbräuche im ioBroker abbilden konnte.

OBIS Kennzahlen

KennzahlBezeichnung
1-0:0.0.0Zählernummer
1-0:1.8.0Gesamtverbrauch seit Installation des Zählers
1-0:2.8.0Gesamteinspeißung seit Installation des Zählers
1-0:16.7.0Momentane Gesamtwirkleistung aller Phasen
1-0:36.7.0Momentane Gesamtwirkleistung der ersten Phasen
1-0:56.7.0Momentane Gesamtwirkleistung der zweiten Phasen
1-0:76.7.0Momentane Gesamtwirkleistung der dritten Phasen

Mein Aufbau

Dadurch, dass es sich bei meinem IR Lesekopf um ein USB-Gerät handelt, war ich unwiderruflich mit der Begrenzung der Kabellänge konfrontiert. Angesichts der Tatsache, dass sich mein ioBroker nicht fünf Meter vom Zählerschrank entfernt befindet und USB-Repeater oder Hubs für mich nicht in Frage kommen, viel meine Entscheidung auf eine Slave Instanz des ioBrokers.

Den Slave ioBroker habe ich auf einem alten Raspberry installiert, welchen ich noch in einer Schublade herumliegen hatte. Um den Kabelsalat im Zählerschrank zu reduzieren habe ich den Raspi mit dem WLAN verbunden.

In meinen Augen liegt der Vorteil dieser Lösung darin, dass ich die Slave Installation so klein wie möglich halten konnte und direkt über meinen Master ioBroker steuern kann. Beim Hinzufügen der smartmeter Instanz muss man darauf achten, dass der Raspi ausgewählt ist.

Video

Alle Konfigurationsschritte könnt ihr euch auch als Video auf meinem Youtube-Kanal ansehen.

Sie sehen gerade einen Platzhalterinhalt von Youtube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

36 Kommentare

  1. Moin,

    könntest du mir bei meiner Konfiguration helfen können?

    Ich habe folgendes verbaut:

    -Lesekopf-Bausatz von ELV
    -EasyMeter Q3D
    -Raspberry Pi 4

    Welche Konfiguartion muss ich vornehmen? Ich bekomme den Adapter leider nicht zum laufen.

    Vielen Dank schon Mal.

    LG Olli

    • Hi Oli,
      deine Nachricht hier hätte ich vorher lesen sollen 🙂

      Könntest du bitte einmal folgenden Konfiguration testen, welche ich im Internet gefunden haben:

      Intervall: 60
      Datenübertragung: Nur gelesen
      Daten-Protokoll: D0

      Baud: 9600
      Date-Bits:7
      Stop Bits: 1
      Parität: even

      Wakeup-Character: 0
      Überschreibe-Mode: Mode des Devices nutzen
      Verzögerung: 1000

      Die restlichen Felder lässt du einfach leer.

      Ich weiß jetzt nicht wie die Konfiguration auf deinem Raspi ist. Sollte dieser als Slave eingebunden werden, ist es wichtig, dass du überprüfst das der Adapter auf dem richtigen ioBroker installiert ist.

      Grüße
      Patrick

      • Moin Patrik,

        danke für deine schnelle Rückmeldung gestern. Ich habe es heute morgen nochmal mit deinen angegebenen Konfigurationsdaten probiert, und siehe da, es funktioniert.

        Vielen lieben Dank für deine Unterstützung.

        LG Olli

  2. Hallo Patrick,

    Da ich den gleichen Zähler habe und den IR Lesekopf, um so einfacher war die Einrichtung die Dank deiner Anleitung auf Anhieb funktioniert hat. Ausserdem war mein Zähler direkt auf alle Werte freigeschaltet. Vielen Dank für deine Mühe.

    Viele Grüße

    Gregor

  3. Hallo Patrick,

    funktioniert der Zähler auch ohne PIN? Ich bekomme anscheinend kein Sigal. Früher hatte ich den ISK Zähler, da funktionierte es ohne Probleme. Bei dem eBZ geht es nicht. Ich habe jetzt noch nicht nach den PIN gefragt, weil ich gedacht habe, dass er mir auch ohne PIN Datein ausspuckt. PS. Mein Zähler hat nur eine Diode, kann es auch daran liegen?

    • Hi Sven,
      das kommt ganz auf deinen Betreiber an, ob es auch ohne PIN funktioniert. Bei mir konnte ich zumindest die Zählernummer und den aktuellen Zählerstand ohne PIN auslesen. Bezüglich der einen Diode kann ich so keine Aussage treffen. Was passiert denn wenn du mit der Taschenlampe dort rein leuchtest?

  4. Hallo,
    weiß zufällig jemand von euch ob ich neben der entnommenen Leistung auch die gerade eingespeiste Leistung mit dem ioBroker und dem ELV-Kopf abgreifen kann?

    Das wäre für mich nämlich wichtig da ich bei Energieüberschuss (Einspeisung) einen Wassertank beheizen möchte.

    Danke und viele Grüße
    Charly

    • Hi Charly,

      über den ioBroker bzw. den Adapter kann ich sehen wieviel Strom gerade eingespeist wird. Speziell sieht man das über die OBIS Kennzahl 1-0:16.7.0, dort werden alle Stromverbräuche der drei Phasen zusammen gerechnet. Insofern du einspeisen würdest, geht der Wert ins Minus.

      Das ganze ist in meinen Augen auch unabhängig vom IR-Kopf, da der Kopf nur die Signale deines Zählers verstehen muss. Bezüglich des ELV Kopfes habe ich leider keine Erfahrungswerte.

  5. Hallo,
    danke für die super Anleitung. Nach ein paar Problemen hat es dann auch funktioniert meinen Zähler auszulesen und die Daten passend weiterzuverarbeiten (z.B. Weitergabe per MQTT an meine Wallbox)

    Aber ein Problem gibt es in der Anleitung. Du sprichst bei deinem Zähler von einem eBZ DD3. Da ich jetzt auch so einen Zähler verbaut bekommen habe, dachte ich mir dass ich die Adaptereinstellungen einfach genau so übernehmen kann und es dann läuft. Das ist aber nicht so. Das DD3 gibt bei dem Zähler keinen Typ an, sondern die Befestigungsart im Schrank (Dreipunkt Befestigung)
    Die Angaben dahinter sind wichtiger in meinem Fall ist das DD3 2R06 DTA – SMZ1.
    Für den Adapter ist die letzte Angabe wichtig, hier wird das Protokoll angegeben.
    SMZ1 ==> SML
    ODZ1 ==> D0

    Für den SMZ1 Zähler funktionieren folgende Adaptereinstellungen:
    Datenübertragung: Serielle Daten werden nur gelesen
    Protokoll: Smart Message Language 1.0.4/1.04

    Bautrate: 9600
    Data-Bits: 8
    Stop-Bits: 1
    Parität: none
    Wartezeit 30

    Prüfsummenfehler ignorieren: Ja
    Kodierung der SML Daten: Binärdaten (Standard)

    (Als Lesekopf habe ich den Bausatz von ELV verwendet)

    Gruß
    Martin

  6. Hi zusammen,

    ein sehr hilfreicher Artikel. Ich denke, das werde ich ausprobieren.

    Eine Frage habe ich aber noch in die Runde: Wie visualisiert ihr die Daten? Der Adapter liefert ja immer die aktuellen Werte. Gerne würde ich die aber nach Tag/Woche/Monat/Jahr etc. grafisch/tabellarisch auswerten. Was ist dafür der einfachste Weg (gerne würde ich auf Grafana verzichten)?

    Danke euch!

    Grüße,
    Matthias

  7. Hi Patrick,

    Dein Beitrag hat mich inspiriert es auch zu versuchen.

    Ich habe mir den gleichen IR-Lesekopf wie du grkauft.
    Habe eine Raspberry und ioBroker, da über dem Schaltschrank der Serverschrank hängt reichte die Länge des USB-Kabels.
    Leider bekomme ich es nicht zum laufen.
    Hast du noch ein Treiber installiert?

    Im SmartMeter wird er genauso angezeigt wie bei dirauf dem Screenshot, bei mir will sich SmartMeter aber nicht mit dem IR-Lesekopf verbinden.

    Funktionieren tut der IR-Kopf am PC unt mit Hterm, senden und empfangen.

    Hast du eine Idee?

    LG Alexandra

    • Hallo Alexandra,
      ich habe bei mir keinen Treiber installieren müssen. Im Smartmeter Adapter wird der USB Port richtig erkannt? Das einzige was ich gemacht habe, ich habe die USB Schnittstelle festgeschrieben, dass sich die Bezeichnung nicht nach einem Neustart ändert. Wenn er im ioBroker erkannt wird kann es nur an den Parametern liegen. Ich würde auch ausschließen wollen, dass der Adapter auf dem falschen Host installiert ist, da du nur einen ioBroker am laufen hast oder?

      • Hi Patrick,

        ja wird erkannt und ja ich habe auch nur einen installiert.
        Habe mich inzwischen belesen, leider wurde bei mir ein Zähler verbaut wo die SendeLED vom Zähler eine Fehlkonstruktion ist die immer schwächer wird und irgendwann nicht mehr geht. Mit Handycam ist auch kein Blinken der LED am Zähler mehr zu erkennen. naja…hab ich Pech gehabt, muss ich warten bis der ausgewechselt wird.
        Hab den Kopf am zweiten Zähler, zum Glück andere Marke (EHM), rangesteckt. aber da fehlen mir die Daten die ich eintragen muss…

        Danke für deine Hilfe

        LG Alexandra

  8. Hi Patrick,
    cooler informativer Artikel. Vielen Dank erstmal dafür. Ich habe bei mir ebenfalls einen IOBroker (multihost) laufen. Alles gut soweit…mein Sensor erkennt Daten, mein Zähler (DD3 SMZ1) zeigt auch den Verbrauch an (in Watt) usw…es werden leider nur nicht alle Werte übermittelt. Du schreibst: „Damit ihr diesen nicht jedes Mal entsperren müsst bzw. das Auslesen der Daten möglich ist, muss die Pin-Eingabe noch über das Menü deaktiviert werden. “ Wie genau hast du das bei dir gemacht? Ich vermute es liegt bei mir genau daran, dass nicht alle Werte vom Zähler ankommen.

    • Hi Klaus,
      der Zähler sperrt sich nach einem gewissen Intervall immer wieder. Dementsprechend habe ich über das Menü des Zählers die Sperrung deaktiviert. Zum deaktivieren musste ich bei mir nach der Eingabe des Pins direkt 11x mal auf den Zähler leuchten und konnte dort den Pin deaktivieren.

  9. Moin Moin,

    nun muss ich auch eine Frage stellen, die mir im Netz nicht erklärt wird, bzw. ich nicht gefunden habe!

    Der Lesekopf ist über WiFi im Netz in der Fritzbox habe ich natürlich eine IP, aber was muss ich nun hier Benutzerdefinierter Pfad der seriellen Schnittstelle eingeben?

    LG

    • Hi,
      der Lesekopf hängt bei mir an einem Raspberry Pi und dieser hat ebenfalls einen ioBroker installiert. Dieser ist als Slave in meinem Master ioBroker hinzugefügt, womit ich alle Werte erhalte.

      Dementsprechend habe ich die USB-Schnittstelle auf dem Pi dort eingetragen.

  10. Hallo Patrick,

    sind auch zwei USB-Leseköpfe am iobroker (Ubuntu/PC-Hardware) möglich?

    Bei mir sind zwei verschiedene Zähler (Holley und efr) verbaut.

    LG
    Stefan

  11. Hallo Patrick,
    erstmal vielen Dank für deine wirklich hervorragende Anleitung und Dokumentation. Das hat mir sehr weitergeholfen.
    Wie du bin ich bei den Mainzer Netzen und haben einen DD3-Zähler. Der Zähler ist von Typ 2R06 ETA – ODZ1.
    Allerdings nutze ich einen //.:Ueding-Schreib-Lesekopf, den ich bei ebay gekauft hatte.

    Die Konfiguration hat mit den angegebenen Daten ohne Probleme funktioniert. Ich habe nach kurzer Zeit periodisch 6 Datenwerte bekommen. Ich konnte auch für meine zwei Zähler ohne Probleme zwei Smartmeter-Instanzen einrichten.

    Allerdings bekam ich etwa andere Werte von Zähler geliefert.

    Die Werte:
    1-0:0.0.0 Zählernummer
    1-0:1.8.0 Gesamtverbrauch seit Installation des Zählers

    bekam ich auch.

    Allerdings fehlten:
    1-0:16.7.0 Momentane Gesamtwirkleistung aller Phasen
    1-0:36.7.0 Momentane Gesamtwirkleistung der ersten Phasen
    1-0:56.7.0 Momentane Gesamtwirkleistung der zweiten Phasen
    1-0:76.7.0 Momentane Gesamtwirkleistung der dritten Phasen

    Stattdessen wurde noch folgende Werte übertragen:
    0.0-0:96_8_0__255 Wartungseintrag (Total)
    0.1-0:0_0_0__255 Meter Owner Number
    0.1-0:96_1_0__255 Serialnumber
    0.1-0:96_5_0__255 Letzter Mittelwert 1 Wartungseintrag (Total)

    Ich habe dann wieder die Taschenlampe zur Hand genommen und an den Zählern die Zählerfunktionen InF und P (siehe Anleitung der Mainzer Netze https://www.mainzer-netze.de/-/media/project/mainzer-stadtwerke/websites-mainzer-netze/mainzer-netze/dateien/ordnerstruktur-clean/s_messstellenbetrieb/kurzbedienungsanleitung/s_moderne-messeinrichtung-ebz_bedienungsanleitung.pdf?la=de-de&rev=722c5037f75a43f5a73582ed4f4eae98)
    aktiviert.
    Jetzt bekomme ich in Summe 10 Werte von Zähler und die Werte
    1-0:16.7.0 Momentane Gesamtwirkleistung aller Phasen
    1-0:36.7.0 Momentane Gesamtwirkleistung der ersten Phasen
    1-0:56.7.0 Momentane Gesamtwirkleistung der zweiten Phasen
    1-0:76.7.0 Momentane Gesamtwirkleistung der dritten Phasen
    sind auch dabei.

    Jetzt werd‘ ich mich mal mit der Visualisierung befassen.

    Danke nochmal.
    Grüße
    Christian

    • Hi Christian,
      freut mich das dir die Anleitung geholfen hat. Danke auch für deine Ergänzungen speziell zu dem Zähler der Mainzer Netze. Klein ist die Welt 🙂

  12. Hallo, ich habe einen picus ehz 060.d Zähler.
    Ich kann leider immer nur 5 Werte im IoBroker sehen.
    Wirkleistung AB und ZU, Seriennummer, Wartungseintrag und Verbunden.

    Als Einstellung habe ich die vom Martin genommen:
    Datenübertragung: Serielle Daten werden nur gelesen
    Protokoll: Smart Message Language 1.0.4/1.04

    Bautrate: 9600
    Data-Bits: 8
    Stop-Bits: 1
    Parität: none
    Wartezeit 30
    Prüfsummenfehler ignorieren: Ja
    Kodierung der SML Daten: Binärdaten (Standard)

    Entsperrt ist der Zähler auch, per PIN und dann PIN ausgeschaltet.
    Habt ihr eine Idee wie ich mehr Werte als „Standard“ angezeigt bekomme ?

    Ach noch eine Frage ist es egal wie rum der Lesekopf auf den Zähler kommt ? Ich habe meine (Amazon gekauft) kopfüber (Kabel nach oben) und er zeigt mir verbunden an, anders herum klappt nicht (Kabel nach unten)

    Bin über jede Hilfe dankbar.

    • Hi Daniel,
      nein der Lesekopf funktioniert nur wenn in eine Richtung, entsprechend bei dir muss das Kabel nach oben zeigen. Wenn dein Zähler bereits freigeschaltet ist und bereits Messwerte erhältst, kann es sein das du im Zähler die weiteren Informationen freischalten musst, siehe Christian Kommentar.

  13. Hallo,

    ich habe die Daten soweit am laufen, vielen Dank für die sehr gute Beschreibung! Hättest du auch eine Angabe wo die Werte abgespeichert werden, bzw. wie ich die Daten aus der History weiterverwenden kann? Wäre sehr hilfreich. Danke im Voraus
    Gruß
    Chris

    • Hi Christian,
      ich bin mir nicht sicher, ob ich die Frage richtig verstanden habe. Die Daten befinden sich ja in den Datenpunkten des Adapters. Damit du historische Daten erhältst, musst du diese entweder in eine Datenbank wie beispielsweise einer influxdb speichern oder mithilfe des Adapters history arbeiten. Wenn die Frage anders gemeint war, kannst du mir gerne nochmal schreiben.

  14. Hallo,
    möchte mich auch für dieses sehr gute Howto bei Patrick bedanken.
    Habe schon einige Jahre die Homematic und bin seit ein paar tagen dabei mich auch mit dem ioBroker zu beschäftigen.
    Hauptgrund ist der, ich würde gern mit dem hier vorgestellten IR Lesekopf und dem Universalaktor 0-10 V, ELV-SH-WUA aus der Homematic IP Serie (mit nachgeschalteten Thyristorsteller) meinen überschüssigen PV Strom in eine Heizpatrone einspeisen.
    Es soll also wenn der Strom am Zähler ins negative geht der Dimmer ELV-SH-WUA proportional angesteuert werden.
    Das ist ja bestimmt mit dem ioBroker machbar.
    Patrick, kannst du mir bei diesen ioBrocker Projekt helfen?

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein