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

von 19.01.2023Smart Home2 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 Hichi 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 zunächst 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 (so lassen, außer Ihr habt mehrere Stromzähler), 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. Die Leistungsdaten messe ich mit einem Shelly Plug S (Amazon Affiliate Link). 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 (Amazon Affiliate Link) 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 und dies für eine gewisse Zeit so konstant bleibt.

Wenn Ihr noch auf der Suche nach einer guten Hardware für den Betrieb von Home Assistant seid, empfehle ich Euch den Beelink Mini S mit Intel Celeron N5095 CPU statt einem Raspberry Pi. Der Beelink Mini S hat wesentlich mehr Power und kann mit Proxmox VE auch virtualisieren. So nutze ich neben Home Assistant noch viele weitere Open Source Dienste auf dem selben System. Den Beelink Mini S könnt Ihr nachfolgend sehr günstig bestellen.

2 Kommentare

  1. Hallo. Sehr interessiert habe ich mir deinen Blog angeschaut. Kann es sein, dass die hinterlegten Template Definitionen unter https://technikauswahl.de/Download/Tasmota_Smart_Meter_Templates_Home_Assistant.yaml Fehler aufweisen ? Der erste Sensor wird funktionsfähig im HA Dashboard angezeigt. Jedoch wird für Sensor 2 und 3 “nicht verfügbar” angezeigt. Ich denke, dass die state Definitionen hier nicht passen. Beispiel: if states(‘sensor.tasmota_….’) # Sensor 1, aber bei Sensor 2 und 3 if states.sensor.tasmota_….state

    Antworten
    • Bei mir funktionieren die Sensoren so. Vielleicht stimmt bei Dir mit der Yaml Formatierung etwas nicht oder Du hast Dich irgendwo vertippt? Die Yaml Format ist sehr empfindlich – insbesondere wenn z.B. Einrückungen nicht richtig sind.

      Antworten

Einen Kommentar abschicken

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

Weitere relevante Beiträge:

Heizungstemperatur mit Kaminbetrieb automatisch absenken

Heizungstemperatur mit Kaminbetrieb automatisch absenken

Mit einer intelligenten Heizungssteuerung, die eine Einbindung von Home Assistant als Smart Home System zulässt, kann man die Raumtemperatur der Heizung automatisch absenken und wieder erhöhen. Neben Home Assistent und einer kompatiblen Heizung wird noch ein Temperatursensor benötigt.

NFC Musikbox für Kinder mit Home Assistant und Google Nest Mini

NFC Musikbox für Kinder mit Home Assistant und Google Nest Mini

Kleinkinder können mit einem Smarten Lautsprecher wie dem Google Nest Mini nicht umgehen. Mit der Heimautomatisierung Home Assistant und ein wenig Elektronik lässt sich ein NFC Kartenleser bauen, der mit Home Assistant kommuniziert. Home Assistant wiederum spielt ausgehend von den aufgelegten NFC Karten die zugewiesene Musik ab. Ein Riesenspaß für Kinder!