Anleitung um Digitale Zähler per Wlan auszulesen, ohne Schreibkopf

Hallo,

wollte euch mal ne kleine Anleitung zusammen stellen wie man einfach und günstig einen Zähler auslesen kann.
Ob OBIS oder SML geht beides, (OBIS nicht getestet, da kein Zähler vorhanden…

Diese Methode richtet sich nur an die Zähler die selbständig Daten regelmäßig absenden, hier wird also
nur eine IR lese Diode verwendet, ohne schreib Diode!

Übernehme aber keine Haftung, nachmachen auf eigene Gefahr!

Zum Beispiel werde ich meine Zähler nehmen diese Sind von ISKRA und heißen TM691.

Was braucht man für diese Lösung:

1: Die PIN für den Zähler von dem Netzbetreiber. (Damit gibt es aktuelle und genaue Werte).

2: 5V im Schaltschrank oder der Nähe, ich nutze einfaches Netzteil für 230V Steckdose mit 2 USB Anschlüssen.

3: Ausreichend starkes WLAN, ohne WLAN gehts nicht.

4: PC um Arduino IDE oder Atom zu starten um den ESP8266 zu flashen.

5: Lötkolben am ESP müssen 2 Kabel angelötet werden, so wie die Diode am Kabel

6: ESP8266, ich verwendete Wemos D1-Mini, USB Kabel um dies am PC anzuschließen und später für die Stromversorgung.

7: Die IR Diode ich verwendete diese, da diese flach ist und so mit besser ankleben lässt: TEKT5400S. Mann kann jede andere gleichwertige nehmen!

8: Die Tasmota Software die ich etwas vorbereite, werde dort das unnötige abschalten.

Software vorbereiten

Die Arduino IDE oder Atom müssen bereits installiert sein und der Chip ESP8266 eingebunden sein und auch
alles richtig eingestellt sein um auf den Chip schreiben zu können.

Hier ist beschrieben wie man ESP8266 hinzufügt: https://blog.opendatalab.de/codeforbuga/2016/07/02/arduino-ide-mit-nodemcu-esp8266

Nicht vergessen die Bibliotheken in das Bibliotheken Ordner zu kopieren, sonst gehts nicht.

So sehen meine Einstellungen aus, nu den Port müsst Ihr bei euch auswählen:

Dann muss noch Tasmota im Arduino IDE eingestellt werden, damit Ihr ins Wlan kommt. MQTT kann man auch gleich machen aber auch
später in der Weboberfläche des Tasmota.

Dies macht Ihr so:

in der Datei:

my_user_config.h

Wlan und bei bedarf MQTT eintragen

// -- Wifi ----------------------------------------
#define WIFI_IP_ADDRESS        "0.0.0.0"         // [IpAddress1] Set to 0.0.0.0 for using DHCP or enter a static IP address
#define WIFI_GATEWAY           "192.168.1.1"     // [IpAddress2] If not using DHCP set Gateway IP address
#define WIFI_SUBNETMASK        "255.255.255.0"   // [IpAddress3] If not using DHCP set Network mask
#define WIFI_DNS               "192.168.1.1"     // [IpAddress4] If not using DHCP set DNS IP address (might be equal to WIFI_GATEWAY)

#define STA_SSID1              "Deine Wlan SSID"                // [Ssid1] Wifi SSID
#define STA_PASS1              "Dein Wlan Passwort"                // [Password1] Wifi password
#define STA_SSID2              ""                // [Ssid2] Optional alternate AP Wifi SSID
#define STA_PASS2              ""                // [Password2] Optional alternate AP Wifi password
#define WIFI_CONFIG_TOOL       WIFI_RETRY        // [WifiConfig] Default tool if wifi fails to connect (default option: 4 - WIFI_RETRY)
                                                 // (WIFI_RESTART, WIFI_MANAGER, WIFI_RETRY, WIFI_WAIT, WIFI_SERIAL, WIFI_MANAGER_RESET_ONLY)
                                                 // The configuration can be changed after first setup using WifiConfig 0, 2, 4, 5, 6 and 7.
// -- MQTT ----------------------------------------
#define MQTT_USE               1                 // [SetOption3] Select default MQTT use (0 = Off, 1 = On)

#define MQTT_HOST              ""                // [MqttHost]
#define MQTT_FINGERPRINT1      "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"  // [MqttFingerprint1]
#define MQTT_FINGERPRINT2      "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07"  // [MqttFingerprint2]
#define MQTT_PORT              1883              // [MqttPort] MQTT port (10123 on CloudMQTT)
#define MQTT_USER              ""       // [MqttUser] MQTT user
#define MQTT_PASS              ""       // [MqttPassword] MQTT password

Hier ist noch wichtig diesen Eintrag zu machen #define USE_SML_M:

// -- Serial sensors ------------------------------
#define USE_SML_M
//#define USE_MHZ19                                // Add support for MH-Z19 CO2 sensor (+2k code)
//#define USE_SENSEAIR                             // Add support for SenseAir K30, K70 and S8 CO2 sensor (+2k3 code)
//  #define CO2_LOW              800               // Below this CO2 value show green light (needs PWM or WS2812 RG(B) led and enable with SetOption18 1)

Danach ist noch wichtig in der Datei xsns_53_sml euren Zähler auszuwählen oder zu konfigurieren!

In der Spalte könnt Ihr die Anzeige namen in der WEB Oberfläche anpassen, habs mir etwas angepasst. Dies ist nur ein ausschnitt.

// max 23 chars
#if DMY_LANGUAGE==de-DE
// german web text
#define D_TPWRIN "Verbraucht"
#define D_TPWROUT "Eingespeist"
#define D_TPWRCURR "Live Leistung"
#define D_TPWRCURR1 "Verbrauch P1"
#define D_TPWRCURR2 "Verbrauch P2"

Hier könnt Ihr die Namen die über MQTT gesendet werden ändern:

// JSON Strings do not translate
// max 23 char
#define DJ_TPWRIN "Total_in"
#define DJ_TPWROUT "Total_out"
#define DJ_TPWRCURR "Power_curr"
#define DJ_TPWRCURR1 "Power_p1"
#define DJ_TPWRCURR2 "Power_p2"
#define DJ_TPWRCURR3 "Power_p3"

Und hier trägt Ihr euren Zähler ein:

// select this meter
#define METER EBZD_G

Da drunten kommen jetzt alle verfügbaren Zähler die man auswählen kann, hier das Beispiel was bei mir funktionierte:

#if METER==EBZD_G
#undef METERS_USED
#define METERS_USED 1
struct METER_DESC const meter_desc[METERS_USED]={
  [0]={3,'s',0,SML_BAUDRATE,"Meter",-1,1,0}};
const uint8_t meter[]=
//0x77,0x07,0x01,0x00,0x01,0x08,0x00,0xff
"1,77070100010800ff@1000," D_TPWRIN ",KWh," DJ_TPWRIN ",4|"
// ..
"1,77070100020800ff@1000," D_TPWROUT ",KWh," DJ_TPWROUT ",4|"
// 77 07 01 00 10 07 00 FF
"1,77070100100700ff@1," D_TPWRCURR ",W," DJ_TPWRCURR ",0|"
// ..
"1,77070100600100ff@#," D_METERNR ",," DJ_METERNR ",0";
#endif

Da müsst Ihr vielleicht mal ausprobieren welche Einstellungen zu euren Zähler passen würden.
Für den MT691 musste ich auch als ausprobieren. Wenn Ihr das machen müsst ist das gar nicht so schwer:

#if METER==EBZD_G
#undef METERS_USED
#define METERS_USED 1
struct METER_DESC const meter_desc[METERS_USED]={
  [0]={3,'s',0,SML_BAUDRATE,"Meter",-1,1,0}}; Meter ist Topic könnt euch anpassen wie Ihr wollt
const uint8_t meter[]=
//0x77,0x07,0x01,0x00,0x01,0x08,0x00,0xff      Die letzen 6 Zahlen vor ff sind der Code der auch im Zähler ist
"1,77070100010800ff@1000," D_TPWRIN ",KWh," DJ_TPWRIN ",4|" 1.8.0 = 010800
// ..
"1,77070100020800ff@1000," D_TPWROUT ",KWh," DJ_TPWROUT ",4|" 2.8.0 = 020800
// 77 07 01 00 10 07 00 FF
"1,77070100100700ff@1," D_TPWRCURR ",W," DJ_TPWRCURR ",0|" 10.7.0 = 100700
// ..
"1,77070100600100ff@#," D_METERNR ",," DJ_METERNR ",0";
#endif

Da kann man verschiedene Codes ausprobieren, ich hab keine weiteren für den MT691 gefunden.

Nun wenn alles eingestellt ist, muss man noch den ESP8266 damit beschreiben, hoffe das klappt auf anhieb.
Wenn nicht Einstellungen zu dem Board überprüfen.

Wenn alles klappte müsste der ESP im Wlan sein, entweder in dem Router nach der IP schauen oder über Seriellen Monitor.

Jetzt könnt Ihr die IP in den Browser eingeben und diese aufrufen. Da müsste die Hauptseite der Tasmota kommen.
Wird aber erst alles mit nullen sein, da die Diode noch nicht dran ist. Bei euch könnten mehr oder weniger Zeilen sein,
kommt auf eure Einstellungen drauf an. Bei mir sieht es so aus, ist aber bereits mit Daten:

Tasmota Startseite.png

Bei Live Leistung wird bei mir der Wert mit einem Minus vorgesetzt, das kommt deswegen das wir eine Photovoltaikanlage haben.
Der Wert ist das was wir zu dem Netzbetreiber einspeisen nach dem Selbstverbrauch.

Hardware Vorbereitung

Nun kommt unsere Diode ins Spiel, diese muss nun an den ESP8266 angelötet werden, da würde ich kurzen Kabel empfehlen.
Wenn dieser länger sein sollte, bitte einen abgeschirmten nehmen.

Das Datenblatt der Diode ist hier zu finden: (PDF) https://www.vishay.com/docs/81569/tekt5400.pdf

Emitter kommt nach GND! Collector kommt nach RxD! Eigentlich sollte ein 1k Widerstand von 3.3V zu Collector angelötet sein.
Bei mir funktioniert es auch ohne wunderbar!

Nun kann man die Diode über die Sendediode am Zähler ankleben. Denkt dran Wlan muss gut verfügbar sein und 5V muss auch
da sein. Eine Powerbank könnte da auch mal aushelfen. Es ist nicht hübsch aber so sieht es bei mir aus:

Danach hoffentlich bekommt Ihr die Werte auf der Weboberfläche zu sehen, wenn nicht alles noch mal kontrollieren.

Tasmota Config

Nun könnt Ihr bei bedarf Einstellungen vornehmen die Ihr brauch bei MQTT z.B. etc.
Bei mir musste ich keinen Pin auswählen, es funktionierte auf anhieb!
Wenn Ihr in der Console teleperiod 10 eintippt wird alle 10 Sekunden eine MQTT Nachricht gesendet.
Kürzer geht meines wissens nicht, überlege auch die Zeiten zu verlängern, da im IPS sammeln sich schon
vielen Daten an.

So sehen die Einstellungen bei mir aus:

Die Console spuckt alle 10 Sekunden folgendes aus:

15:16:16 MQT: tele/Abstellraum_Hauptzaehler_Strom/STATE = {"Time":"2019-10-26T15:16:16","Uptime":"0T00:04:56","UptimeSec":296,"Heap":25,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":20,"MqttCount":1,"Wifi":{"AP":1,"SSId":"Wlan Name","BSSId":"44:4E:6D:A5:E3:71","Channel":6,"RSSI":72,"LinkCount":1,"Downtime":"0T00:00:05"}}

15:19:56 MQT: tele/Abstellraum_Hauptzaehler_Strom/SENSOR = {"Time":"2019-10-26T15:19:56","Meter":{"Total_in":64.2345,"Total_out":405.0207,"Power_curr":-411,"Meter_number":"0a0149534b000XXXXXX"}}

IPS

Nun müsst Ihr schauen wie Ihr MQTT in eurem IPS verarbeite, bei mir werden die Variablen alle 10 Sek aktualisiert.
Naja hallt wenn MQTT rein kommt…
So sieht das ganze aus, leider von dem zweiten Zähler habe ich noch keine PIN:

Wie man sehen kann schreibt er bei mir ins Minus, eigentlich logisch da die Werte mit Minus rein kommen.
Wenn Ihr Ideen habt wie man noch weitere Variablen hinzufügen kann. Und auch welche von verschiedenen
Werten herausrechnen könnte?
IPS ist für mich noch neuland, daher nicht so einfach.

Was haltet Ihr von dem ganzen? Wo kann man was verbessern?

Gruß

Hier ist die Software die bei mir funktioniert.

Sonoff-Tasmota-development.part1.rar (3 MB)

Danke für die super Anleitung!!

Ich habe das ganze eben mal für meinen Iskra MT681 umgesetzt und es funktioniert auf anhieb.
Jetzt Fehlt mir nurnoch der PIN um alle Daten im IPS zu haben.

Grüße
Daniel

Hallo,

freut mich das es Dir auch geholfen hat.
Dachte es interessiert niemanden…

Ich hatte Glück wo ich beim Netzbetreiber
angerufen habe. Hab am Telefon die Pin
gleich bekommen! Aber leider nur für einen
Zähler, der PV Zähler war nicht hinterlegt.
Da warte ich auch als drauf, vermutlich muss
ich dann selbst ausprobieren… 9999 Kombinationen…

Kai sein Tasmota Modul funktionierte auch sofort
mit dem Modul. Er spuckt sofort alle Daten raus.

Da braucht man keine Scripte nichts…

Täusch dich mal nicht:)
Ich habe alles genau studiert. allerdings ist es bei mir nur noch nicht soweit.
Und ich denke, da wird es noch ein paar geben, die das interessiert.

Einfach eine gute Lösung.
Allein wenn ich mir anschaue, was das ganze Fertig gekostet hätte. Und so, nichtmal 10€
Mein Dad wollte das auch direkt haben, nur hat der noch einen alten Zähler :smiley:

Pin war kein Problem, kure Mail an den Betreiber, ein paar Tage später lag er in der Post.
Wobei, den Verbrauch nicht genau zu kennen, war fest besser :cool:

Grüße Daniel

… ein sehr spannendes Thema, vielen Dank für Deine Mühe!

Ich knabbere noch ein wenig an der Programmierung des Wemos-D1 (kompatibel): wie bekomme ich das richtige Tasmota da drauf? Kannst Du bitte den genauen Ablauf erklären oder verlinken?

PS: Die zweite von Dir hochgeladene Datei ist scheinbar defekt, auch nach mehrmaligem Laden leer.

Ich probiere das auch Mal aus

Gesendet von meinem VOG-L29 mit Tapatalk

Hallo,

es tut mir Leid habe erst jetzt die Antworten gesehen. Das Thema war nicht abonniert.

Seid Ihr weiter gekommen?

Gruß

Durch Helmut bin ich auf das Thema aufmerksam geworden.

Ich habe gestern einen ISKRA MT681 (Bj 2019) gesetzt bekommen. Daher fand ich den Hinweis auf diese schöne Einbindung sehr gut.

Mit dem Lesen kommen jetzt Fragen. Ich habe noch keine Unterlagen gesehen allerdings frag ich mich, ob der Zähler dauerhaft sendet, so dass ich mit einer Lesediode wirklich auskomme. Alle anderen Leseköpfe bieten Schreib- und Lesemöglichkeiten an.
Vielleicht hat sich ja einer schon näher mit diesem Zählertyp befasst.

Der Mitarbeiter des EVU wollte mir erst ein Passwort und Unterlagen zusenden.

Gesendet von iPhone XS mit Tapatalk

Hi Boui,

Bei mir ist Ja ebenfalls ein MT 681 verbaut.
Bei diesem habe ich nur den pin eingegeben.
Seitdem kommen durchgängig und ohne Probleme die Daten im IPS an.

Gruß Daniel

Gesendet von iPhone mit Tapatalk

Das hört sich prima an.

Dann habe ich mein nächstes Projekt.

Zur Zeit bin ich etwas im beruflichen Stress und mit dem Handy kann man nicht so wirklich umfassend im Forum recherchieren. Da mag ich die eine oder andere Info überlesen haben. Sorry

Gesendet von iPhone XS mit Tapatalk

Hat ein Bastler noch ne Fotodiode auf Halde, die er im einfachen Briefumschlag gegen Gebühr (PayPal) abgeben kann?

Oder im Tausch gegen ein Gehäuse dafür im 3D Druck.

Ich hab zwar noch was in der Schublade aber ob was passendes vorhanden ist, kann ich zur Zeit nicht überblicken.

Gesendet von iPhone XS mit Tapatalk

Ich hab mir mal nen Satz BPW78A zum Testen bestellt, falls hier keiner einen TEKT5400S findet, den ich immer noch gerne nehmen würde. [emoji6]

Gesendet von iPhone XS mit Tapatalk

Bei der Passage schaudert es mich noch etwas. Hat man dafür nicht den Schmitt-Trigger erfunden. Hab zwar mal Elektroniker gelernt aber lange ist es her. Dieses Signal schaue ich mir mal auf dem DigiOszi an. [emoji6]

Gesendet von iPhone XS mit Tapatalk

Hi,

mag sein das Du recht hast. Habe das auch irgendwo übernommen, bei mir funktioniert alles tadellos bis jetzt.

Gruß

Ich finde es prima, wenn man diese Infos teilt.

Und notfalls auf Lochraster schnell ne ErweiterungsSchaltung zu bauen, ist ja nicht das Problem. Standardbauteile hab ich immer da.

Vielleicht schaffe ich es am WE und schaue mal, dass ich den Zugang fertig bekommt.
Ich hab zwar schon einen geeichten Eltako 3-Phasenzähler dazwischen geklemmt aber den offiziellen Zähler abzufragen, hat was.

Sonst langweilt sich IPS ja.

Gesendet von iPhone XS mit Tapatalk

Ich habe die Anleitung auch spontan gemacht.
Da selber in der Zeit alles zusammen suchen musste…
Daher dachte ich mal, vielleicht könnte es jemand gebrauchen.

Was man noch machen könnte fertige Bins zu jedem Zähler rein stellen…
Dann bräuchten die Leute, die keine Erfahrung haben nur ESP flashen und die Wlan Daten eingeben.

Ähnlich Tasmota, ok ist ja Tasmota…

Dann mach das bitte für deinen Zähler, und die anderen Leute auch !

Hallo,

schaue mal bei Gelegenheit. Manche Zähler muss man aber
ausprobieren etc… Sind ja nicht alle in der Auswahl,
meinen musste ich auch herausarbeiten…

Gruß