Stromzähler mit IR-Lesekopf, Tasmota und Home Assistant auslesen

von 19.01.2023Smart Home0 Kommentare

Im Rahmen meines Smart Home auf Basis von Home Assistant kam mir im Zuge eines Stromzählertausches die Idee, diesen über die vorhandene IR-Schnittstelle auszulesen und die Ergebnisse in Home Assistant darzustellen bzw. für Automatisierungen zu verwenden. Da ich mir ein PV-Balkonkraftwerk mit 600 Watt Wechselrichterleistung installiert hatte, hat mir mein Netzbetreiber einen modernen Zweirichtungszähler eingebaut. Es handelt sich hierbei um einen Logarex LK13BE. Nach meiner Internetrecherche lässt sich der Stromzähler mit einem Arduino (z.B. Wemos D1 Mini) mit einem IR-Lesekopf (wichtig hierbei mit TTL-Anschluss – ein USB-Anschluss bringt hier nichts) auslesen. Beide benötigten Produkte könnt Ihr günstig unten bestellen.

Am Lesekopf wird ein 4-adriges Kabel angelötet (3 Adern tun es im Fall des Logarex auch, da der Stromzähler ständig Daten sendet und nicht erst aufgefordert werden muss). Die anderen Enden des Kabels werden an den Arduino angeschlossen (Ground, VCC (+3,3V oder +5,0V), TX und RX an GPIOs). Es bietet sich an die Kabel an Jumperkabel zu löten, damit diese an den Arduino gesteckt werden können.

Ist die Hardware bereit, geht es an die Aufbereitung des richtigen Tasmota Images für den Arduino. Die Tasmota Firmware, die es als fertiges Image gibt, beinhaltet meist keinen Support für SML-Daten und die Home Assistant Integration. Zum Glück geht das selbst kompilieren mit dem Online Tasmota Kompiler schnell und unkompliziert. Hierfür wie folgt vorgehen:

  1. https://gitpod.io/#https://github.com/benzino77/tasmocompiler aufrufen und mit Github Account anmelden.
  2. Die Punkte 1-2 durchgehen und ggf. gleich die WLAN Zugangsdaten hinterlegen. Ansonsten macht die Tasmota Firmware einen eigenen Hotspot auf.
  3. Bei Punkt 3 die Features Home Assistant, Web Interface und Script aktivieren. Alles anderen abwählen. Oben noch das richtige Arduino Board auswählen. Z.B. Wemos D1 oder ESP8266 Generic (passt für die meisten Arduinos).
  4. Bei Custom Parameters folgendes eingeben:

    #ifndef USE_SML_M
    #define USE_SML_M
    #endif

  5. Sprache und Version auswählen (nicht Development).
  6. Compile drücken.
  7. Die fertige Firmware lässt sich am besten über https://tasmota.github.io/install/ flashen. Falls es ein Update ist, müsst Ihr zunächst die Tasmota Minimal installieren und danach die kompilierte Firmware (siehe https://tasmota.github.io/docs/Gitpod/#flash-your-device ganz unten).

Wenn die Firmware auf dem Arduino ist und die WLAN-Verbindung steht, könnt Ihr unter der IP des Tasmotas das Webinterface aufrufen. Unter Einstellungen – MQTT, die Verbindung zu Eurem MQTT-Server konfigurieren. Dann unter Konsolen – Skript konfigurieren auwählen und folgendes Skript einfügen:

>D
>B
->sensor53 r
>M 1
+1,14,s,0,9600,LK13BE,1,10,2F3F210D0A,063035310D0A
1,77070100010800ff@1000,Gesamt kWh bezogen,kWh,Power_total_in,1
1,77070100020800ff@1000,Gesamt kWh geliefert,kWh,Power_total_out,1
1,77070100100700ff@1,Verbrauch aktuell,W,Power_curr,0
1,77070100240700ff@1,Power L1,W,Power_L1_curr,0
1,77070100380700ff@1,Power L2,W,Power_L2_curr,0
1,770701004C0700ff@1,Power L3,W,Power_L3_curr,0
1,77070100200700ff@1,Voltage L1,V,Volt_L1_curr,1
1,77070100340700ff@1,Voltage L2,V,Volt_L2_curr,1
1,77070100480700ff@1,Voltage L3,V,Volt_L3_curr,1
1,770701001f0700ff@1,Amperage L1,A,Amperage_L1_curr,2
1,77070100330700ff@1,Amperage L2,A,Amperage_L2_curr,2
1,77070100470700ff@1,Amperage L3,A,Amperage_L3_curr,2
1,770701000e0700ff@1,Frequency,Hz,HZ,2
#

Der rot markierte Teil muss an die eigenen Bedingungen angepasst werden:

1 ist die Zählernummer, 14 ist der GPIO Port für RX, s steht für SML Codierung, 0 bedeutet keine Glättung mittels Median, 9600 ist die Baudrate, LK13BE der Zählername (kann beliebig angepasst werden). Wichtig ist hier insbesondere, dass der GPIO Port korrekt ist. Wenn das Skript gespeichert wurde, sollten auf der Startseite von Tasmota bereits Werte angezeigt werden. Falls nicht, ggf. den Sensor leicht verschieben bzw. umdrehen.

Damit die Sensorwerte in Home Assistant auch für das Energy Dashboard verwendet werden können, müssen die ursprünglichen Werte noch mit der richtigen Device Class versehen werden. Sonst können die Sensoren im Energy Dashboard nicht ausgewählt werden. Weiterhin liest der IR-Sensor bei mir teilweise falsche Werte aus. Glücklicherweise sind die Werte aber absolut unlogisch, so dass diese mit den folgenden Template Definitionen in Home Assistant ausgefiltert werden: https://technikauswahl.de/Download/Tasmota_Smart_Meter_Templates_Home_Assistant.yaml

Dananch können die Template Sensoren im Energy Dashboard hinzugefügt werden. Ergänzt habe ich noch die Leistungswerte für mein PV-Balkonkraftwerk. Somit sehe ich genau wieviel Strom ich verbrauche, wieviel ich selbst produziere und wie hoch der Eigenverbrauch ist bzw. damit zusammenhängend, die Einspeisung in das Netz. Nachdem ich dafür keine Vergütung bekomme, will ich natürlich möglichst viel davon selbst verbrauchen. Dies habe ich mit einem 300 Watt Infrarotpanel von Könighaus optimiert. Per Automation wird das IR-Panel mit einem Shelly Plug S eingeschaltet, wenn ich zuviel Energie in das Netz einspeise. Umgekehrt wird das IR-Panel wieder ausgeschaltet wenn die Solarleistung abnimmt.

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Weitere relevante Beiträge: