Sunday, April 24, 2022

Stromzähler über ESP8266 Tasmota mit Hichi Infrarot PAFAL 20EG3c auslesen zu iobroker

Vorneweg: Es war wohl das Projekt welches am längsten gedauert hat im Punkt der Gesamtzeit, da das Testen im Sicherungskasten nicht einfach und täglich mal eben machbar ist.

Meine Tipps:

  • Macht euch klar ob Ihr SML oder Obis Protokoll bei eurem Stromzähler braucht. Sucht euch hierzu die Doku für den Stromzähler
  • Sucht nach Baugleichen Stromzählern und Scripten hierzu. Solltet ihr das haben geht es sehr schnell und einfach.
  • Versucht gerne erst über PC/Laptop /Raspi mit einem USB Adapter auf Infrarot Ebay Hichi Erfolg zu haben bevor ihr die Lösung mit Tasmota umsetzt
  • Sucht euch generell möglichst gleiche Setups zu eurem, damit ihr Fehlerquellen wie Zähler etc. ausschließen könnt
  • Fragt gleich bei eurem Stromanbieter an ob auf den Zählern eine Pin oder Freischaltcode ist, damit ihr diesen habt.
  • Prüft gerne mit Handy und Co, google hilft, wie man prüft ob die Diode sendet.

Mein Vorgehen war konfus und wirklich voran bin ich erst zum Schluss gekommen. Diesen geraden Weg versuche ich zu skizzieren:

Vorbedingung:
  • Lauffähigen Iobroker
  • Adapter Sonoff installiert
  • Tasmota ist heruntergeladen und der Master kompilierbar 
    • Bei mir war das VS Code und Plattform IO: https://tasmota.github.io/docs/PlatformIO/
    • Zum einbinden einfach über Open Folder den Tasmota Ordner öffnen. 
  • ESP8266 Hardware und Flashadapter: Z.B:ESP 8266
  • Hichi Leseadapter: 
  • Es gibt den IR Adapter und den ESP auch zusammen: Ebay Aber Vorsicht vor der Empfangsstärke im Sicherungskasten!
  • Lektüre der Ursprungsanleitung dieses Artikels und meine Beste Quelle:  https://docplayer.org/198519837-How-to-tasmota-sml-stand-tasmota-dev-branch.html Vielen Dank an den Autor, das war die generelle und grundlegende Herangehensweise und hat mich zum Ziel geführt!
So nun gehts also an die Umsetzung:
Anpassungen im Tasmota Code, in der Datei: user_config_override.h:

#define USE_SCRIPT 
#endif
#ifdef USE_RULES
#undef USE_RULES
#endif
#define USE_SML_M
#define SML_REPLACE_VARS
#define USE_SML_SCRIPT_CMD

Es gibt noch direkt viele Einstellungen die euch WLAN etc setzen. Das schaut ihr bitte selbst nach

Danach kompiliert ihr in Plattform IO mittels Erstellen. Die Datei ist dann unter Tasmota-master\.pio\build\tasmota\firmware.bin

Tasmota flashen, entweder über das Webinterface auf dem Tasmota und OTA, wenn die Grundversion schon 11 oder größer ist. Oder ihr schließt mittels des Flashadapters an. Ich flashe immer mit Tasmotizer

Entweder im Code oder nach dem Flashen müsst ihr den Tasmota in euer WLAN bringen und am Iobroker MQTT anmelden. Das ist eigentlich selbsterklärend.

Nun installiert ihr den erreichbaren ESP8266 am Stromzähler. 
  • Den Adapter versorgt ihr an VCC mit +3,3v und an GND mit -3,3. 
  • TX und RX gehen an TX und RC am ESP8266. Bei mir der s01 war das 
    • Pin: 



Nun geht ihr auf das Webinterface des Tasmota: Consoles --> Edit Script und gebt das aus dem PDF oben ein:
>D
>B
=>sensor53 r
>M 1
+1,3,o,0,9600,OBIS
1,1-0:1.8.1*255(@1,Total consumption,KWh,Total_in,4
1,1-0:2.8.1*255(@1,Total Feed,KWh,Total_out,4
1,=d 2 10 @1,Current consumption,W,Power_curr,0
1,1-0:0.0.0*255(@#),Meter Nr,, Meter_number,0
#

Klickt auf enable Script und save und dann im Menü davor auf Console.  
Falls euer Zähler ein Init oder ein Acknowledge braucht findet ihr in dem PDF die notwendige Herangehensweise oder beim Hersteller. Probiert das aus!
Ihr gebt in der Console nun ein Sensor53 d0 was die Debugausgabe im Fenster ausgibt.

Hier kommt nun irgendein String in dem ihr so etwas findet: 1.8.1(011324.383*kWh)
Sollte das nicht kommen müsst ihr am Init oder Acknowledge rumspielen.

Wenn das kommt. Ändert die Zeile die nach der Zeile mit dem Obis kommt entsprechend ab:
von 1,1-0:1.8.1*255.... auf 1,1.8.1(......


Nun sollte nach dem Speichern in der Console ein String kommen der euren aktuellen Stromwert ausgibt.

Viel Erfolg

Saturday, April 2, 2022