Die mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.

 

Beschreibung

Ziel dieses Projektes ist es, die Informationen eines digitalen Stromzählers in FHEM darzustellen. Bei mir ist ein ISKRA MT631 im Einsatz.

 

Für das Projekt müssen vorab folgende Schritte ausgeführt werden:

Für die Anforderung wird folgende Hardware benötigt:

Bei dem Fototransistor bzw. bei dem Widerstand, würde ich Euch empfehlen diese Ware bei z.B. https://www.reichelt.de/ zu bestellen. 

 

Wenn Ihr alles genauso konfiguriert wie ich, dann sieht das Ergebnis später ungefähr so aus. Grundvoraussetzung ist natürlich, dass Ihr einige Tage Daten gesammelt habt.

Vorbereitungen

Damit Ihr später alle Daten von Eurem elektrischen Stromzähler abrufen könnt, solltet Ihr bei Eurem Netzbetreiber den PIN des Stromzählers anfordern. In meinem Fall, hat hier eine einfache Mail mit der Anschrift und der Zähler-Nummer ausgereicht. Der PIN wurde mir dann per Post zugeschickt. Ohne den PIN, wird der Stromzähler nur den Gesamtverbrauch liefern. 

 

Über eine Taschenlampe könnt Ihr dann, mit dem entsprechenden PIN, die erweiterten Funktionen freischalten. Wie das alles funktioniert, steht in der jeweiligen Anleitung Eures Stromzählers.

Schaltplan

 

Der Schaltplan ist recht einfach aufgebaut. Wichtig ist nur, dass der Fototransistor richtig verkabelt wird.

 

Der lange PIN des Fototransistors muss an GND des ESP8266 angeschlossen werden. 

Gehäuse

Für das Gehäuse des Fototransistors habe ich aus dem 3D Drucker ein zweiteiliges Gehäuse gedruckt. In das Gehäuse wird zum einen der Neodym-Magnet und der Fototransistor eingebaut. Den Widerstand habe ich direkt am NodeMcu verbaut. Auch für das NodeMCU wurde aus dem 3D Drucker ein zweiteiliges Gehäuse gedruckt. Das NodeMCU wurde, zum Schluss, mit einem langen Kabel mit dem Fototransistor verbunden.

In diesen Teil des Gehäuses wird der Neodym-Magnet und der Fototransistor eingebaut. 

Download
Stromzähler Teil 1
stromzaehler_digital_teil_1.stl
Text Dokument 242.0 KB

Dieses Teil wird als Deckel verwendet. Hier ist auch die Kabeldurchführung. Wer möchte kann den Deckel mit dem Gehäuse verkleben.

Download
Stromzähler Teil 2
stromzaehler_digital_teil_2.stl
Text Dokument 458.0 KB

Dieses Gehäuse kann für eine NodeMCU V2 oder V3 verwendet werden. Damit das NodeMCU V3 in das Gehäuse passt, müssen die Zapfen für die V2 Variante abgeschnitten werden. 

Download
NodeMCU V2 und V3 Gehäuse
NodeMCU_V2_und_V3_Gehause.stl
exe File 112.0 KB

Dieses Teil wird als Deckel verwendet. Hier ist auch die Kabeldurchführung. Wer möchte kann den Deckel mit dem Gehäuse verkleben.

Download
NodeMCU V2 und V3 Deckel
NodeMCU_V2_und_V3_Deckel.stl
Text Dokument 44.0 KB

Montage

 

Bei der Montage des Sensors gilt es zu beachten, dass der Fototransistor über dem entsprechenden Sensor fixiert wird. 

 

In der Regel befinden sich zwei Teile hinter dem Fenster. Das eine Teil ist fürs Senden zuständig, während das andere für den Datenempfang zuständig ist. Wenn man genau hinschaut, kann man das sendende Teil in regelmäßigen Abständen blicken sehen. Genau hier muss dann der Sensor fixiert werden.

 

Das Ganze sollte dann ungefähr so aussehen.

ESPEasy Konfiguration

Wie immer basiert diese erweitere Konfiguration auf der bereits vorab getätigten Firmware Installation mit anschließender Grundkonfiguration.

 

Folgende Devices werden benötigt:

  • Communications - Serial Server
  • Registerkarte "Device" auswählen
  • Über "Add" ein neues Device hinzufügen

ESPEasy Fimware Stand mega-20210223

Hier wird die Konfiguration mit dem ESPEasy Firmware Stand "mega-20210223" beschrieben. Die aktuellste Firmware wird weiter unten beschrieben.

 

Wir legen ein "Communications - Serial Server" Gerät an. Folgende Konfiguration muss hierfür gemacht werden:

  1. Device = Communications - Serial Server
  2. Name = Kann frei vergeben werden
  3. Enabled = Haken setzten, damit der Server auch aktiv ist
  4. TCP Port = 23
  5. Baud Rate = 9600
  6. Data bits = 8
  7. Parity = No parity
  8. Stop bits = 1
  9. TX Enable PIN = None
  10. Reset target after boot = None
  11. RX Receive Timeout (mSec) = 0
  12. Event processing = None
  13. Speicher der Konfiguration mit "Submit"
  14. Beende der Konfiguration mit "Close"

Damit ist die komplette Konfiguration abgeschlossen.

ESPEasy Firmware Stand mega_20220328

Hier wird die Konfiguration mit dem ESPEasy Firmware Stand "mega-20220328" beschrieben. 

Wir legen ein "Communications - Serial Server" Gerät an. Folgende Konfiguration muss hierfür gemacht werden:

  1. Device = Communications - Serial Server
  2. Name = Kann frei vergeben werden
  3. Enabled = Haken setzten, damit der Server auch aktiv ist
  4. Serial Port = HW Serial0:GPIO-3(D9)<-TX/GPIO-1(D10)->RX
  5. TCP Port = 23
  6. Baud Rate = 9600
  7. Serial Config = 8 bit /parity: None / stop bits: 1
  8. Event processing = None
  9. RX Receive Timeout (mSec) = 0
  10. Reset target after init = None
  11. RX buffer size (bytes) = 256
  12. Single events with all values = Haken nicht setzen
  13. Speicher der Konfiguration mit "Submit"
  14. Beende der Konfiguration mit "Close"

Damit ist die komplette Konfiguration abgeschlossen.

ESPEasy - Testen

Bevor Ihr den Sensor in FHEM integriert, könnt Ihr ihn vorher testen. Hier für müsst Ihr nur eine Telnet Sitzung zu dem ESPEasy aufbauen. Hierfür verwendet ich Putty. Die Software könnt Ihr hier https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html herunterladen. Am Besten verwendet Ihr hier die portable Version, denn diese benötigt keine Installation.

 

Im Bereich(1) müsst Ihr die IP-Adresse Eures ESPs eintragen.

 

Als "Connection type" müsst Ihr "Telnet"(3) anklicken.

 

Im Bereich(2) muss der Port "23" eingetragen sein. Dieser wird in der Regel automatisch eingetragen, wenn der "Connection type" auf "Telnet" steht.

 

Jetzt könnt Ihr die Verbindung mit "Open"(4) starten.

 

Als Ergebnis wird Euch ein schwarzes Fenster angezeigt, in welchem die Daten des Stromzählers angezeigt werden. 

 

Sollten hier keine Daten zu sehen sein, dann solltet Ihr den korrekten Sitz der Diode prüfen. Eventuell sitzt diese nicht 100% über dem Fototransistor des Stromzählers. Ggf. auch noch mal prüfen on die Diode richtig verkabelt wurde.

FHEM Konfiguration

Um auf die Daten des elektronischen Stromzählers zugreifen zu können, muss zuerst ein neues FHEM Device angelegt werden. Mein ESPEasy hat die IP-Adresse 10.10.2.3, Ihr müsst dann natürlich eure IP-Adresse verwenden.

 

Über folgendes FHEM Command könnt Ihr den elektronischen Stromzähler hinzufügen:

define haus.stromzaehler OBIS 10.10.2.3:23 SML

Nach dem das FHEM Device angelegt wurde, müssen noch folgende Attribute gesetzt werden:

attr haus.stromzaehler alias Stromzähler
attr haus.stromzaehler event-on-change-reading .*
attr haus.stromzaehler interval 30
attr haus.stromzaehler room ZZ_Strom
attr haus.stromzaehler stateFormat {sprintf("%.0f kWh", (ReadingsVal($name,"total_consumption",0) / 1000) ) . " / ". sprintf("%.0f W", ReadingsVal($name,"power",0)). " / ".ReadingsVal($name,"state",0)}

 

Das fertig konfigurierte FHEM Device sieht dann ungefähr so aus.

 

Im Bereich der Readings solltet ihr dann die Readings:

  • power
  • total_consumption

sehen.

 

 

OBIS Modul BUG

Nachdem ich FHEM Daten vom Stromzähler erfassen lasse, ist das Stromzähler Device in unregelmäßigen Abständen stehen geblieben. Am Anfang hatte ich das NodeMCU im Verdacht. Der Verdacht hat sich aber nicht bestätigt. Aktuell liegt meine Vermutung da, dass die Übertragung, sporadisch, nicht immer 100% vollständig ist. Hier scheint dann das OBIS Modul auf die fehlenden Daten zu warten, leider ohne Erfolg. 

 

Mit folgendem FHEM Command konnte ich das Device wieder dazu bringen Daten zu sammeln: 

modify haus.stromzaehler 10.10.2.3:23 SML

Da ich dies nicht jedes mal manuell machen wollte, habe ich mir ein Überwachungs-Device in FHEM angelegt. Diese prüft alle 10 Sekunden wie alt das Reading "power" ist. Wenn es älter als 65 Sekunden ist, wird davon ausgegangen, dass die Datensammlung wieder nicht funktioniert. Wenn dies erreicht wurde, wird der Modifybefehl ausgeführt. 

 

Über folgende Befehle könnt Ihr ein solches Überwachungs-Device anlegen:

define haus.strom.at at +*00:00:10 {}

Damit das neue Überwachungs-Device auch etwas tun kann, müsst Ihr den Bereich DEF noch abändern. Hierfür könnt Ihr folgendes Skript verwenden:

+*00:00:10 { 
        my $PowerAge = ReadingsAge("haus.stromzaehler","power",0);
        if ($PowerAge >= 65) {
                Log3 "watchdog",3,"haus.stromzaehler start SML! ReadingAge=$PowerAge";
                fhem "modify haus.stromzaehler 10.10.2.3:23 SML";
        }
}

Statistics Modul

Um Tages-, Monats- und Jahreswerte in einer Readings-Group anzeigen zu können, könnt Ihr Euch noch ein Statistics-Device für den Stromzähler anlegen. Zum Anlegen diese Devices müsst Ihr folgende Befehle ausführen:

define haus.strom statistics haus.stromzaehler
attr haus.strom deltaReadings total_consumption
attr haus.strom singularReadings haus.stromzaehler:total_consumption:Delta:(Year|Month|Hour|Day)

Sobald Daten vom Stromzähler kommen, werden in dem Stromzähler Device die entsprechenden Statistics Readings abgelegt. Diese könnt Ihr dann später in einer Readings-Group darstellen.

Readings-Group Modul

Damit der Verbrauchs-Preis angezeigt werden kann, muss für jeden angezeigten Verbrauch ein Preis am Stromzähler-Device hinterlegt werden. In meinem Fall musste ich folgende Befehle ausführen:

setreading haus.stromzaehler statTotal_consumptionDayLastPrice 0.2711
setreading haus.stromzaehler statTotal_consumptionDayPrice 0.2711
setreading haus.stromzaehler statTotal_consumptionMonthPrice 0.2711
setreading haus.stromzaehler statTotal_consumptionYearPrice 0.2711
setreading haus.stromzaehler total_consumptionPrice 0.2711

Über folgenden Befehl lässt sich dann das Readings-Group Device anlegen:

defmod haus.strom.rg readingsGroup haus.stromzaehler:statTotal_consumptionDay,statTotal_consumptionDayPrice\
haus.stromzaehler:statTotal_consumptionDayLast,statTotal_consumptionDayLastPrice\
haus.stromzaehler:statTotal_consumptionMonth,statTotal_consumptionMonthPrice\
haus.stromzaehler:statTotal_consumptionYear,statTotal_consumptionYearPrice\
haus.stromzaehler:total_consumption,total_consumptionPrice\

attr haus.strom.rg alias Verbrauch
attr haus.strom.rg cellStyle { \
"r:1,c:0"=>'style="font-weight:bold"',\
"r:2,c:0"=>'style="font-weight:bold"',\
"r:3,c:0"=>'style="font-weight:bold"',\
"r:4,c:0"=>'style="font-weight:bold"',\
"r:5,c:0"=>'style="font-weight:bold"',\
"r:6,c:0"=>'style="font-weight:bold"'\
}
attr haus.strom.rg group Stromverbrauch
attr haus.strom.rg mapping {\
if    ($ROW == 1) {return "Verbrauch Heute"}\
elsif ($ROW == 2) {return "Verbrauch Gestern"}\
elsif ($ROW == 3) {return "Verbrauch Monat"}\
elsif ($ROW == 4) {return "Verbrauch Jahr"}\
elsif ($ROW == 5) {return "Gesamtverbauch"}\
}
attr haus.strom.rg noheading 1
attr haus.strom.rg notime 1
attr haus.strom.rg room ZZ_Strom
attr haus.strom.rg valueFormat {\
my $NewValue = $VALUE / 1000;;\
if ($READING =~ m/Price/) {\
        my $Price    = ReadingsVal($DEVICE,substr($READING, 0,-5),0);;\
        my $NewPrice = $NewValue * $Price;;\
        return sprintf("%.2f €", $NewPrice )\
}\
else {return sprintf("%.0f kWh", $NewValue )}\
}

 

Das Fertige FHEM Device sieht dann ungefähr so aus.

SVG Plots

Zum krönenden Abschluss könnt Ihr noch die entsprechenden SVG Plots anlegen. Voraussetzung ist natürlich, dass Ihr die entsprechenden Daten auch in einer Datenbank oder einer Datei speichert. In meiner FHEM Umgebung läuft eine Maria SQL DB. Daher basiert diese Anleitung auch darauf. Auf folgenden Seiten habe ich die Konfiguration der Maria SQL DB beschrieben https://mwinkler.jimdo.com/smarthome/datenbank/

 

Über das entsprechende DBLog Device könnt Ihr Euch über den Button "Create SVG plot from DBLog" erstellen. Ich habe mir hierüber zwei SVG Plots erstellt.

  • Für die aktuelle Leistungsabnahme
  • Für den täglichen Gesamtverbrauch.

Für die aktuelle Leistungsabnahme muss nur folgendes angepasst werden:

In dem Feld "Device:Reading" muss folgendes stehen "haus.stromzaehler:power::"

 

Danach sollte das SVG Plot ungefähr so aussehen:

Für den täglichen Gesamtverbrauch sieht das Ganze etwas anders aus.

In dem Feld "Device:Reading" muss folgendes stehen: "haus.stromzaehler:total_consumption::delta-d:$val=($val/1000)". Über diesen Eintrag werden dann nur Delta Werte angezeigt, welche zusätzlich noch durch 1000 geteilt werden. Über folgendes Attribut, des SVG Plots, könnt Ihr Euch dann eine feste Tagesanzeige definieren.

 

attr haus.strom.svg fixedrange 30days

Danach sollte das SVG Plot ungefähr so aussehen:

Änderungsprotokoll

Datum Beschreibung
02.04.2022
  • Neue ESPEasy Firmware eingefügt
30.11.2021
  • Testen der ESPEasy Telnet-Konfiguration
01.06.2020
  • Erste Version
**

Kommentar schreiben

Kommentare: 56
  • #1

    Enrico Roga (Dienstag, 26 Mai 2020 13:38)

    Hi,
    wie bekommst Du im Plot für den Verbrauch den Wert
    "haus.stromzaehler:total_consumption::delta-d:$val=($val/1000)"
    eingetragen?
    Ich kann da nur aus einer Liste auswählen und die enthält nur "haus.stromzaehler:total_consumption" und nicht die Möglichkeit das Feld zu editieren bzw zu erweitern.

  • #2

    Michael Winkler (Mittwoch, 27 Mai 2020 09:43)

    Hi,
    den Wert musst Du einfach in das Feld manuell reinkopieren. Meine Anleitung basiert aber auf DBLog! Mit einem FileLog kann es ggf. anders sein. Falls Du nicht weiterkommst, kannst Du mich auch über das Kontaktformular anschreiben.
    Gruß
    Michael

  • #3

    Jörg Seitz (Mittwoch, 22 Juli 2020 14:09)

    Hallo,
    ich habe auch das Problem das ich den Eintrag "haus.stromzaehler:total_consumption::delta-d:$val=($val/1000)" nicht eingeben kann. Verwende auch nur FileLog.
    Für eine Info wäre ich sehr Dankbar. :-)

  • #4

    Thomas (Montag, 07 September 2020 11:11)

    Ich nutze auch den FileLog. Bei mir klappt die 2. SVG Grafik (Balkendiagramm). Ich musste nur die Umrechnung in KW entfernen (/1000).

    Im Plot Editor das Feld "DefaultValue" leer lassen und in Function "delta-d".

    Auszug aus meinem glpot:

    #FileLog_Hausstrom 4:Hausstrom.total_consumption\x3a::delta-d

  • #5

    Sonnenschein (Montag, 23 November 2020 20:20)

    Echt super dein Hinweis mit dem modify haus.stromzaehler 10.10.2.3:23 SML
    Ich hatte schon vor langer Zeit genau diese Probleme.
    Dann war wirklich lange Ruhe, nur gestern bin ich kurz dagegen gestoßen und nichts ging mehr.
    Neustart, Schaltung geprüft usw.....

    Und dann stoße ich auf Zufall auf deinen Hinweis und es ging nach 5sec.

    Vielen Dank

  • #6

    Bernd (Samstag, 12 Dezember 2020 12:38)

    Hallo und vielen Dank für's Teilen!
    Leider erhalte ich beim Setzen der Attribute für haus.strom.rg "cellStyle" und auch bei "mapping" folgende Fehlermeldungen:

    PERL WARNING: Backslash found where operator expected at (eval 8788) line 7, near "'style="font-weight:bold"'\"
    syntax error at (eval 8788) line 7, near "'style="font-weight:bold"'\"

    (entsprechendes für die weiteren Zeilen)
    sowie

    syntax error at (eval 8792) line 2, near "\ if"
    syntax error at (eval 8792) line 3, near "\ elsif"
    syntax error at (eval 8793) line 2, near "\ if"
    syntax error at (eval 8793) line 3, near "\ elsif"

    Liegt es evtl. an der neuen FHEM-Version? Habe das System gestern neu aufgesetzt und die aktuellste Version installiert.

    Bernd

  • #7

    Matthias (Donnerstag, 25 Februar 2021 09:13)

    Was würde es kosten, wenn du mir die 3D Drücke erstellst? Ich möchte mir einen Sensor nachbauen.

  • #8

    Michael Winkler (Donnerstag, 25 Februar 2021 10:31)

    Hi Matthias, schreibe mich einfach mal über das Kontaktformular an. LG Michael

    @Bernd. Bitte auch mal über das Kontaktformular anschreiben. Vielleicht kann ich Dir dann helfen. LG Michael

  • #9

    Klaus (Montag, 08 März 2021 14:29)

    Hallo Michael,
    habe bei der Installation die gleichen Fehlermeldungen wie Bernd unter#6
    Woran könnte das liegen?
    Danke

  • #10

    Heinrich (Dienstag, 30 März 2021 10:05)

    Hallo Michael,
    im Edit Serial Server gibt es noch das Feld "TX Enable Pin ". Darf da None stehen?
    Müsste sich in der Zeile Devices ein Wert unter Values zeigen bei Lichtimpulsen?
    Danke

  • #11

    Michael Winkler (Dienstag, 30 März 2021 10:34)

    Das Feld "TX Enable Pin" gibt es erst seit einer neueren ESPEasy Version. Habe die Anleitung oben abgeändert. Der "TX Enable Pin" muss auf "None" stehen. In der Device Übersicht werden keine Werte angezeigt.

  • #12

    Michael Winkler (Dienstag, 30 März 2021 10:36)

    Das setzen der Attribute sollte Ihr am Besten über die "RAW definition" machen, dann sollte es auch ohne Fehlermeldung funktionieren.

  • #13

    Heinrich (Donnerstag, 01 April 2021 13:15)

    Hallo Michael,
    Mit der neuen ESPEasy Version entsteht keine Kommunikation über die bridge zu fhem. Es fehlt offensichtlich der Ctr(IDX) Eintrag bei Seriell. Ich habe mal einen DS18B20 ergänzt. Der erscheint promt in fhem.
    Hast du eine Idee?
    Grüße

  • #14

    Michael Winkler (Donnerstag, 01 April 2021 13:48)

    Hallo Heinrich,

    das ESPEasy sende ja auch keine Daten an FHEM. Du musst das OBIS Modul einrichten um damit dich mit dem ESP zu verbinden.

    Gruß
    Michael

  • #15

    Heinrich (Donnerstag, 01 April 2021 14:11)

    Das habe ich gemacht. Da kommen keine Daten an, obwohl ich alle deine Zeilen eingefügt habe. Hier ein Auszug:
    statStateDay
    disconnected: 10:16:34 disconnected_Count: 1 opened: 03:46:07 opened_Count: 1
    2021-04-01 14:02:36
    statStateDayLast
    disconnected: 20:02:18 disconnected_Count: 2 opened: 03:57:42 opened_Count: 1
    2021-03-31 23:59:55
    statStateMonth
    disconnected: 10:16:34 disconnected_Count: 1 opened: 03:46:07 opened_Count: 1
    2021-04-01 14:02:36
    statStateMonthLast
    disconnected: 1d 03:09:46 disconnected_Count: 4 opened: 10:27:40 opened_Count: 4 (since: 2021-03-30_10:22:29)
    2021-03-31 23:59:55
    statStateYear
    disconnected: 1d 13:26:20 disconnected_Count: 4 opened: 14:13:47 opened_Count: 5 (since: 2021-03-30_10:22:29)
    2021-04-01 14:02:36
    statTotal_consumptionDayLastPrice
    0.2711
    2021-03-30 19:50:10
    statTotal_consumptionDayPrice
    0.2711
    2021-03-30 19:50:10
    statTotal_consumptionMonthPrice
    0.2711
    2021-03-30 19:50:10
    statTotal_consumptionYearPrice
    0.2711
    2021-03-30 19:50:10
    state
    opened
    2021-04-01 14:02:36
    total_consumptionPrice
    0.2711

  • #16

    Heinrich (Freitag, 02 April 2021 11:48)

    Hallo Michael,
    am Obis Modul kommt nichts an. Gibt es eine Testmethode um die grundsätzliche Kommunikation zwischen ESP und fhem zu prüfen? Der Fototransistor gibt ja nur GND auf RX bei Licht. Das hab ich direkt versucht - ohne Erfolg.
    Danke

  • #17

    Heinrich (Samstag, 10 April 2021 12:04)

    Hallo Michael,
    am Obis Modul kommt doch was an. Hatte den Fototransistor falsch angeschlossen.
    Danke
    Grüße

  • #18

    otto (Donnerstag, 15 April 2021 18:52)

    wasa muß man alles machen /oder kann wenn man einen Doppeltarifzähler hatdas die Preise usw. angeglichen sind ?

    Gruß Otto

  • #19

    Michael Winkler (Freitag, 16 April 2021 08:53)

    Am Besten frägst Du hier im FHEM Forum. Das wird ein Thema vom OBIS Modul sein.

  • #20

    Heinrich (Freitag, 16 April 2021 12:55)

    Hallo Michael,
    Frage zur Readings-Group:
    haus.stromzaehler:statTotal_consumptionDay,statTotal_consumptionDayPrice\
    haus.stromzaehler:statTotal_consumptionDayLast,statTotal_consumptionDayLastPrice\
    haus.stromzaehler:statTotal_consumptionMonth,statTotal_consumptionMonthPrice\
    haus.stromzaehler:statTotal_consumptionYear,statTotal_consumptionYearPrice\
    haus.stromzaehler:total_consumption,total_consumptionPrice\

    außer mit der letzten Zeile zeigen die anderen keine Verbrauchswerte an. In den readings des Obis-Moduls kommen die Werte "statTotal_consumptionDay" nicht vor bzw. sind in einem reading "statTotal_consumption" hintereinander stehend.
    Wie kommt man an die einzelnen Werte?
    Danke

  • #21

    Wolf (Samstag, 17 April 2021 20:54)

    Hi Michael,
    ich habe das gleiche Problem wie #1
    haus.stromzaehler:total_consumption::delta-d:$val=($val/1000)
    Device_Reading kann nur ausgewählt werden, keine manuellen Einträge.
    Werte für Einspeisung (2.8.0) denke werden erst nach Eingabe des PIN sichtbar.
    Grüße
    Wolf

  • #22

    Wolf (Montag, 19 April 2021 14:00)

    Hi,
    mit define lp logProxy hat es funktioniert
    und im gplot File
    #lp DbLog:logdb:haus.stromzaehler:power::
    #lp ConstY:0

    bzw.
    #lp DbLog:logdb:haus.stromzaehler:total_consumption::delta-d:$val=($val/1000):
    #lp ConstY:0
    Grüße
    Wolf

  • #23

    M. Hill (Donnerstag, 05 August 2021 21:17)

    Hallo Michael Winkler,

    wie muss der Transistor angeschlossen werden.
    Collector (Flache Seite, kurzes Bein) an GND ?

    Gruß Markus

  • #24

    Michael Winkler (Montag, 16 August 2021 19:26)

    Hi Markus,

    ja, das kurze Bein ist eigentlich GND.

    Gruß
    Michael

  • #25

    Franzel (Sonntag, 28 November 2021 16:11)

    Hihi,
    ich finde das Projekt sehr interessant. Obwohl ich schon viel mit fhem und espeasy mache bekommen ich es hier nicht hin. Ich habe alles eingegeben wie oben beschrieben, dennoch bekomme ich keine Daten.

    Im Obis steht nur "Stromzähler opened. Es gibt aber keine Readings.

    Gibt es eine Möglichkeit bei espeasy zu schauen ob er Daten vom Zähler einliest, was das ist und ob es von fhem abgerufen wird?

    Gibt es eine Möglichkeit in fhem zu schauen ob er was bekommtß

    Gruß
    Franzel

  • #26

    Michael Winkler (Montag, 29 November 2021 10:31)

    prüfe mal ob Du die Diode richtig eingebaut hast.

  • #27

    Franzel (Dienstag, 30 November 2021 13:19)

    Hihi,
    danke für die schnelle Antwort.
    Ich habe jetzt die Schaltung zweimal aufgebaut und habe den BPW40 einmal rechts und einmal umgekehrt eingebaut. Beides funktioniert nicht.
    Ich finde keine Möglichkeit bei ESPEasy den Empfang der Daten zu prüfen. Gibt es da eine Möglichkeit?

    Gruß
    Franzel

  • #28

    Michael Winkler (Dienstag, 30 November 2021 13:43)

    Habe meine Webseite erweitert: Bitte prüfe bei dir noch mal folgendes:
    https://www.mwinklerblog.de/smarthome/aktoren-sensoren/stromz%C3%A4hler-digital/#ESPEasyTest

  • #29

    Franzel (Dienstag, 30 November 2021 17:53)

    Hihi,
    die Daten werden in Putty angezeigt, aber bei Fhem kommt immer noch nichts an. Wenn ich die Generic Systemdaten von ESPEasy an fhem übermitteln lasse geht das ohne Probleme.

    Muss man vielleicht noch was am OBIS Modul einstellen?
    Meine FHEM Seite sieht bis auf die Readings (außer state opened) 1 zu 1 gleich aus.

    Gruß
    Franzel

  • #30

    Michael Winkler (Mittwoch, 01 Dezember 2021 09:17)

    Schreibe mir mal übers FHEM Forum oder über das Kontaktformular an. Es hier mit Gästebuch zu besprechen ist nicht die beste Art.

  • #31

    benz_freak (Sonntag, 23 Januar 2022 12:53)

    Hallo,
    ich wollte nur ein lieben Gruß hierlassen und Danke sagen. Hab ich gerade 1zu1 so nachgebaut und läuft.
    Lg Benny

  • #32

    Sandro (Dienstag, 01 Februar 2022 10:03)

    Muss es genau der BPW40 sein? Oder funktioniert das z.B. auch mit einem BPW34? Oder irgendeinem X Beliebigem Fototransistor aus China? Die 6 Euro Versand für einen Cent Artikel sind mir zu hoch und da wo der Versand günstiger ist gibt es nur Alternativen aber nicht genau den BPW40. Danke

    LG

  • #33

    Michael Winkler (Dienstag, 01 Februar 2022 11:07)

    Ohne es selber getestet zu haben, kann ich hier leider keine Aussage treffen. Probiere es einfach mal aus und schreib mir dann noch mal.

    Gruß
    Michael

  • #34

    Sandro (Freitag, 04 Februar 2022 19:07)

    Also habe mir jetzt die BPW40 gekauft. Habe jetzt aber leider das nächste Problem :D. In der neueren Version habe ich in den ESP Easy einstellungen, bei Devices, andere einstellungen. Da steht z.B. etwas von Serial Port: I2C Serial aber auch noch andere sachen.

    Ich komme auch nicht per Telnet darauf. Habe leider nur ein schwarzes Bild, weiß halt auch nicht ob ich da schon eher etwas falsch gemacht habe.

    LG

    Sandro

  • #35

    Diethmar (Freitag, 25 Februar 2022 13:07)

    Tolle Anleitung, klappt super. Beim SerialPort in ESPeasyhabe ich eingetragen:
    HW Serial0: GPIO-3(D9)<- TX/GPIO-1 (D10)->RX.
    Danach kamen Daten an. Was bei mir nicht funktioniert: dank Photovoltaikanlage habe ich bei "Power" durchaus auch negative Werte (wenn hier mal die Sonne scheint ...), allerdings wird dann als Wert 167 KW (Verbrauch) übermittelt. Irgendwie bekommt er die negativen Werte nicht rüber. Wenn da jemand einen Tipp hätte, wäre das toll :-)

  • #36

    Mathias (Mittwoch, 06 April 2022 18:06)

    Kann jemand sagen ob damit auch die Einspeisung im Stromzähler sichtbar gemacht wird (also nicht nur der Bezug) ?

  • #37

    Michael Winkler (Donnerstag, 07 April 2022 10:46)

    Wenn der Stromzähler eine Einspeisung zulässt, sollte das auch sichtbar sein. Bei meinem Zähler wird die Einspeisung über das Reading "total_feed" dargestellt.

  • #38

    Pasquale (Freitag, 02 September 2022 00:22)

    Hallo,
    gibt es ggf. auch die Möglichkeit 2 oder 3 Sensoren an den ESP8266 anzuschießen und diese getrennt in FHEM darzustellen?

    Viele Grüße

    Pasquale

  • #39

    Ralf (Samstag, 01 Oktober 2022 15:26)

    Ich habe nach einem Jahr Probleme mit dem OBIS-Device, verliert mehrfach am ´Tag die Verbindung. Der Weg über das "Überwachungsdevice" funktioniert nicht. Jeder Versuch in Perl ein modify des Device durchzuführen führt zu einem sofortigen disconnect. Jemand eie Idee?
    FHEM läuft bei mir in einem Docker-Container auf Raspi.

  • #40

    Falko (Sonntag, 09 Oktober 2022 11:49)

    Hallo,
    ich habe es genau so nachgebaut. Leider bekomme ich keine Daten des Stromzählers (Telnet) angezeigt. Wenn ich eine IR Fernbedienung nehme und vor den Fotosensor halte, sehe ich dies auch im Telnet. Ich habe einen Iskra MT175 Zähler
    Kann es sein, dass die Diode im Stromzähler zu schwach ist? Und kann man die Empfindlichkeit erhöhen?
    Danke schon mal
    Falko

  • #41

    Andreas (Dienstag, 18 Oktober 2022 14:40)

    Hallo,
    ich versuche das mit einem Holley dtz541 nach Anleitung zu bauen. In Putty kann ich den Datenverkehr auch sehen. in Fhem kommen diese aber scheinbar nicht an. Im Device steht nur '0 kWh / 0 W / opened'. Unter https://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/holley_dtz541 steht das mein Zähler auch auslesbar sein soll ( 9600bd, 8N1 ). Das Infrarotsignal habe ich mit einer zusätzlichen Transistorstufe noch einmal verstärkt.
    Kann mir jemand weiterhelfen.
    Danke
    Andreas

  • #42

    Uli (Freitag, 06 Januar 2023 16:37)

    Hallo zusammen,
    hat jemand so wie ich das Problem '0 kWh / 0 W / opened' gehabt und dazu eine Lösung gefunden? Dass Daten gesendet werden kann ich via PUTTY bestätigen, doch FHEM zeigt im neuesten OBIS Modul nichts an.
    Auch die Readings "total_consumption" und "power" werden nicht angelegt.

  • #43

    Michael Winkler (Samstag, 07 Januar 2023 13:21)

    Am Besten mal im FHEM Forum nachfragen.

  • #44

    Uli (Sonntag, 08 Januar 2023 13:54)

    So, Problem gelöst: Der IR Empfänger ist im einfachen Aufbau sehr störanfällig und liefert keine sauberen Signale. Zwar lässt sich über Putty in der Telenet-Verbindung ein Datentransfer beobachten, aber die Daten sind in FHEM nicht interpretierbar weil zu viele Störimpulse / unsaubere Flanken von der IR Diode aufgenommen und übertragen werden.
    Abhilfe: Ein Transistor nach der IR Diode bringt saubere Flanken und der Empfang ist dann störungsfrei. Alle Daten werden in FHEM sauber angezeigt.

  • #45

    Andi (Freitag, 13 Januar 2023 16:21)

    @Uli
    ich habe aktuell das Problem, dass ich auch keine Daten in Putty sehen kann.
    Bisher lief alles schick. Aber seit einiger Zeit wird es schlimmer.
    Jetzt eben gar nicht mehr.

    Kannst Du mir verraten welchen Transistor Du wie geschaltet hast?
    Vlt. ist das hier bei mir ein ähnliches/gleiches Problem.

    Vielen Dank schon mal!
    Gruß
    Andi

  • #46

    Andi (gandi1791) (Samstag, 14 Januar 2023 18:35)

    Hallo Michael,

    ich bin jetzt am Ende.
    Bisher (seit 2 Jahren) hat der Zähler sauber seine Daten geliefert.
    Ich musste zwar auch immer den Timestamp des letzten Readings überprüfen und ggf. den Befehl ausführen, damit die Datensammlung weiterläuft, aber das Ganze (wie im Post vorher geschrieben) ist in den letzten Tagen immer schlechter geworden.
    Nachdem keinerlei Daten mehr gekommen sind, habe ich das ganze Konstrukt, Stück für Stück, erneuert/ausgetauscht.
    BWP40, Stromversorgung, ESP-01 (und dessen Firmware).
    Ich habe die Einstellungen des ESP etwa - gefühlt - 50 mal kontrolliert.
    Aber der IR Sensor liefert keine Daten mehr (auch mit PuTTY getestet). Dazu auch eine IR Fernbedienung verwendet, um sicher zu gegen, dass es nicht am Zähler liegt (dort kann ich per Handy sehen, dass die IR jede Sekunde blinkt).
    Ich würde jetzt also meinen, HW- und SW-seitig alles durchprobiert zu haben.
    Hast Du noch einen heißen Tipp?
    Gerne stelle ich auch Screenshots der Config + den HW Aufbau zur Verfügung.
    Ich freue mich auf jeden Hinweis, den ich noch testen kann.

    Ansonsten sehe ich nur noch die Möglichkeit einen komplett neuen IR-Lesekopf zu bauen, nicht, dass irgendwo im alten Aufbau doch noch eine Ameise in der Leitung steck und die ganzen Bits wegfrisst. :-)

    Vielen Dank schon mal und Gruß
    Andi

  • #47

    Andi (gandi1791) (Sonntag, 15 Januar 2023 10:31)

    Servus,

    Problem gefunden: Kabel zwischen IR LED und "Verarbeitung" zu lang.
    Werde mir nun eine kompaktere Version mit "Verstärker" und schnellerer LED bauen.

    Gruß
    Andi

  • #48

    Andi (gandi1791) (Sonntag, 22 Januar 2023 13:37)

    So, erledigt.
    Fototransistor: BPW40 durch SFH309FA ersetzt.
    Signal mit BC 547C verstärkt.
    Neues Gehäuse konstruiert und gedruckt, 100% passend für meinen Zähler "DTZ541".
    ESP01 im Gehäuse optimal Richtung AP ausgerichtet und rückseitig abgeschirmt. Dadurch auch einen ausreichend guten Empfang (RSSI -75 dBm), selbst aus dem Verteilergehäuse im Keller zum AP im EG.
    Die Daten kommen wieder schön stabil in fhem an :-)

  • #49

    Michael Winkler (Montag, 23 Januar 2023 10:06)

    Hi Andi,

    kannst du mich mal über das Kontaktformular anschreiben? Gerne würde ich mir Deine Schaltung mal anschauen. Eventuell würde ich dann diesen Betrag aktualisieren.

    Gruß
    Michael

  • #50

    Thomas (Sonntag, 19 März 2023 12:03)

    Hallo Michael,
    auch für mich war deine Seite sehr, sehr hilfreich.
    Ich habe allerdings noch ein Problem
    :Mein reading heißt "energy". In die Datenbank wird alle Stunde der kumulierte Stromverbrauch geschrieben. Im Plot stehe ich auch schön die stetig ansteigenden Totalwerte. Beim Versuch, nur das Tages-Delte anzeigen scheitere ich
    mit
    #dblog_THB TUYA_SP11:energy:::delta-d:$val=($val/1000)
    Es werden mir immer noch die Summenwerde am jeweiligen Tag angeigt und nicht Deltas zum Vortag.
    Woran kann das liegen?
    viele Grüße

    Thomas

  • #51

    Harald (Dienstag, 04 April 2023 11:42)

    Hallo Michael,
    vielen Dank auch meinerseits.
    Hab den Nachbau jetzt in Protoptypversion fertig und im Betrieb. Obwohl der Netzbetreiber seit einer Woche den neuen Zähler noch nicht im System hat und ich seither auf die PIN warte, kann ich mit dem Modul jetzt schon den Ertrag meiner PV-Anlage erfassen. Wie gesagt, es handelt sich noch um eine Prototyp-Version und es kommen noch so einige CRC_Errors an. Hab' keinen 3d-Drucker und muss mir da auf andere Weise ein Gehäuse bauen. Da möchte ich dann auch möglichst gleich den alten EM-1000-s integrieren, der parallel den Impuls zählt und die alte Statistik des analogen Zählers weiter führt.

  • #52

    Harald (Mittwoch, 05 April 2023 10:46)

    Hab da aber einen Widerspruch entdeckt, glaube ich. Ober steht: Langes Bein an GND. So habe ich das und es funktioniert. In den Kommentaren steht es dann aber umgedreht:

    M. Hill (Donnerstag, 05 August 2021 21:17)
    Hallo Michael Winkler,
    wie muss der Transistor angeschlossen werden.
    Collector (Flache Seite, kurzes Bein) an GND ?
    Gruß Markus

    #24
    Michael Winkler (Montag, 16 August 2021 19:26)
    Hi Markus,
    ja, das kurze Bein ist eigentlich GND.

    Gruß
    Michael

  • #53

    Sven (Donnerstag, 10 August 2023 18:11)

    Hallo,
    Ich habe es nachgebaut und es hat super funktioniert bis zu dem Tag an dem mein Stromzähler gegen einen Zweirichtungszähler getauscht wurde.
    Per Telnet kommen die Rohdaten an, diese haben aber nicht mehr so die Grafikzeichen sondern ASCII Zeichen.
    Mein Lesekopf ist ein bitShake Kopf.
    Den Lesekopf habe ich mit dem Oskar perfekt auf die IR Diode ausgerichtet, daran kann es nicht liegen.

    Hast Du eine Idee was ich machen könnte ?

    Viele Grüsse
    Sven

  • #54

    FhemUser (Freitag, 01 September 2023 14:28)

    Danke für die klasse Anleitung! Ich habe es nachgebaut und sehe im telnet, dass etwas ankommt In fhem kommt aber noch nichts an. Ich habe allerdings noch nicht die Antwort vom EVU zu der PIN. Sollte aber nicht trotzdem etwas in FHEM ankommen?

    Übrigens noch ein Tipp/Alternative für ein Gehäuse: Ich habe eine alte schwarze Analog-Fotofilm-Dose verwendet. Die passt genau von der Größe und hat einen Deckel...

  • #55

    Rainer (Dienstag, 26 September 2023 09:32)

    Dies ist mein 2. Anlauf, meinen täglichen Stomverbrauch zu erfassen und seitdem gestern mein Zähler ausgetauscht wurde (beim alten kam nur Datenmüll an), sieht es bisher gut aus. Leider heißt neuer Zähler auch neue PIN, aber immerhin werden die gesamten kWh schon brav übermittelt.

    Bin zwar kein Perl Experte, aber auch nach mehrmaligem Durchsehen bin ich der Meinung, dass das valueFormat in der ReadingsGroup falsch ist :-() In Deinem $Price steht durch den Substring doch der Verbrauch drin (das Price am Ende wird weggekürzt).

    Meins habe ich folgendermaßen angepasst. Geht auch noch kürzer, aber so war es klar für mich:

    attr haus.strom.rg valueFormat {\
    my $NewValue = $VALUE;;\
    if ($READING =~ m/Price/) {\
    my $Wh = ReadingsVal($DEVICE,substr($READING, 0,-5),0);;\
    my $NewPrice = $NewValue * $Wh / 1000;;\
    return sprintf("%.2f €", $NewPrice )\
    }\
    else {\
    $NewValue = $NewValue / 1000;;\
    return sprintf("%.0f kWh", $NewValue )}\
    }

    Hoffe, ich hatte keinen Knoten im Hirn, aber die bisherigen Berechnungen sehen gut aus.
    Vielleicht hilft es dem einen oder anderen ja.
    Nochmals vielen Dank für die tolle Step-by-Step Anleitung, die hat mir wirklich extrem gut geholfen.

  • #56

    Piet (Dienstag, 30 Januar 2024 15:07)

    Probleme mit IR-Schnittstelle am Zähler „DWS 7420.2“

    Hallo Zusammen,
    hat jemand von Euch auch schon mal das Problem gehabt, dass die IR-Schnittstelle des DWS 7420.2 nicht funktioniert?
    Am Zähler habe ich (wie gefordert) die PIN angefordert und habe dann im Zähler folgende Einstellungen vorgenommen:
    PIN auf „off“
    inf auf „on“
    Nun sollte er per IR die Daten senden. Ein Test mit der Handykamera ergab nichts.

    Ebenso bekommt mein IR Schreib-Lesekopf mit Tasmota (ESP8266/ESP01s Modul) und passendem Script zu dem DWS 7420 keine Datensätze vom Zähler.
    Jemand schon mal von ähnlichen Problemen gehört?

Die mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.

Danke, dass Du bis hierher gelesen hast! Über eine kleine Spende würde ich mich freuen.
**