+ Antworten
Ergebnis 1 bis 3 von 3
  1. #1
    Registriert seit
    Oct 2017
    Beiträge
    272

    Lightbulb 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/codeforb...odemcu-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:

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	ESP8266 Einstellung Arduino IDE.jpg 
Hits:	48 
Größe:	64.0 KB 
ID:	50996

    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:
    Code:
    my_user_config.h
    Wlan und bei bedarf MQTT eintragen

    Code:
    // -- 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.
    Code:
    // -- 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:

    Code:
    // -- 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.
    Code:
    // 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:
    Code:
    // 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:
    Code:
    // 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:
    Code:
    #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:

    Code:
    #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:

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Tasmota Startseite.png 
Hits:	23 
Größe:	40.7 KB 
ID:	51008

    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:

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	20191026_072341.jpg 
Hits:	44 
Größe:	110.7 KB 
ID:	51009 Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	20191026_072353.jpg 
Hits:	40 
Größe:	69.0 KB 
ID:	51010

    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:

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Tasmota Pins.png 
Hits:	25 
Größe:	67.9 KB 
ID:	51011 Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Tasmota MQTT.png 
Hits:	24 
Größe:	54.2 KB 
ID:	51012

    Die Console spuckt alle 10 Sekunden folgendes aus:

    PHP-Code:
    15:16:16 MQTtele/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"}} 
    PHP-Code:
    15:19:56 MQTtele/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:

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Live Leistung.jpg 
Hits:	34 
Größe:	58.7 KB 
ID:	51013 Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	IPS Haupzähler.png 
Hits:	29 
Größe:	51.7 KB 
ID:	51014 Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	IPS PV Zähler.png 
Hits:	28 
Größe:	54.5 KB 
ID:	51015

    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ß
    Geändert von power dodge (27.10.19 um 14:12 Uhr)
    IPS 5.0 Professional, Server auf Raspberry Stretch.
    Tasmota, MQTT, Sonoff etc.

  2. #2
    Registriert seit
    Oct 2017
    Beiträge
    272

    Hier ist die Software die bei mir funktioniert.
    Angehängte Dateien Angehängte Dateien
    Geändert von power dodge (27.10.19 um 14:14 Uhr)
    IPS 5.0 Professional, Server auf Raspberry Stretch.
    Tasmota, MQTT, Sonoff etc.

  3. #3
    Registriert seit
    Jan 2012
    Ort
    Limburgerhof (RLP)
    Beiträge
    306

    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
    Server: IPS 5.n | IPSView | Ubuntu 18.04LTS | ESXI 6.7 | Xeon E3-1245V2 | 16GB ECC Ram
    Hardware: CCU2 | WAGO 889 | KNX | 1wire | Unifi
    Media: PLEX | Denon-AVR | ChromeCast | Squeezebox

Ähnliche Themen

  1. Anbindung Miele T1 Trockner über WLAN ohne Gateway
    Von Lieschen im Forum Haustechnik
    Antworten: 23
    Letzter Beitrag: 03.10.17, 21:27
  2. Zu doof eine Registervariable auszulesen?
    Von kea im Forum Skripte, PHP, SQL
    Antworten: 2
    Letzter Beitrag: 01.10.16, 20:47
  3. Kein Autorefresh im iFront ohne Wlan
    Von PeterChrisben im Forum Mobile (iOS/Android)
    Antworten: 8
    Letzter Beitrag: 18.02.12, 08:37
  4. PV-Anlage über S-0 Zähler an IPS Anleitung
    Von neodaysleeper im Forum Anleitungen / Nützliche PHP Skripte
    Antworten: 9
    Letzter Beitrag: 04.05.11, 04:47
  5. digitale Bilderrahmen mit WLAN zum Einbau gesucht
    Von roadsterhh im Forum Alles rund um den PC
    Antworten: 18
    Letzter Beitrag: 18.12.09, 20:41