Wie mache ich meinen digitalen Stromzähler smart?
Heute zeige ich euch, wie ihr euren digitalen Stromzähler mit Home Assistant smart machen könnt. Warum ist das wichtig? Indem ihr euren Stromverbrauch versteht und optimiert, könnt ihr nicht nur Geld sparen, sondern auch euren ökologischen Fußabdruck reduzieren. In diesem Artikel stelle ich euch drei verschiedene Methoden vor, mit denen ihr euren digitalen Stromzähler in ein smartes Gerät verwandeln könnt.
1. Lösung: Infrarot-Lesekopf selbst bauen
Einführung in die Methode
Eine der kostengünstigsten und flexibelsten Methoden ist der Bau eines eigenen Infrarot-Lesekopfs. Diese Methode erfordert ein wenig technisches Geschick und einige Werkzeuge, aber die Ergebnisse sind beeindruckend.
Materialliste und Werkzeug
IR Modul Link : https://amzn.to/4bQYqJi *
ESP8266 https://amzn.to/4btlfmx *
Netzteil: https://amzn.to/3USrYz5 *
Jumper Wire https://amzn.to/4buv7wh *
Kabel Set https://amzn.to/4bsHb16 *
- 3D-Drucker (optional, für das Gehäuse) https://www.thingiverse.com/thing:6616125
*Sämtliche mit „*“ markierten Links hängen mit Amazon Partnerprogrammen zusammen. Sie dienen dir als potentiellen Käufer als Orientierung und verweisen explizit auf bestimmte Produkte. Sofern diese Links genutzt werden, kann im Falle einer Kaufentscheidung eine Provision an mich ausgeschüttet werden. Bei einem Kauf über diese Links fallen natürlich keine Mehrkosten an. Danke!!
Schritt-für-Schritt-Anleitung zum Bau und zur Installation
Infrarot-LED und Fototransistor Erklärung
Die Infrarot-LED sendet ein Signal, das vom Fototransistor empfangen wird. Wenn der Zähler eine Impuls-LED hat, sendet diese einen Lichtimpuls, den der Fototransistor detektiert.
Verkabelung und Löten
- Lötet die Infrarot-LED an den Fototransistor und verbindet diese mit einem Widerstand. Der Fototransistor oder LED (bin mir bis heute nicht ganz sicher) wird entgegen der normalen Richtung betrieben. Durch den Widerstand wird die LED aufgeladen und kann Lichtimpulse empfangen und messen. Bitte beachte also die Polung der LED.
- Verbinde die LED-Widerstands-Kombination mit dem ESP8266, wobei der Fototransistor als Eingang fungiert.
Einbau des Lesekopfs
Montiert den Lesekopf an euren Stromzähler. Hier empfiehlt sich die Nutzung eines doppelseitigen Klebebands oder eines 3D-gedruckten Gehäuses.
Einrichtung in Home Assistant
Einbinden des ESP8266
- Flash ESPHome auf den ESP8266. –> Code IR Puls Counter https://github.com/thealkly/SmartMeter-PulsCounter/tree/main
- Konfiguriert die YAML-Datei für ESPHome, um die Daten des Fototransistors zu lesen und in Home Assistant zu integrieren.
Test und Fehlerbehebung
Nach dem Flashen und der Konfiguration könnt ihr den ESP8266 starten und die Daten in Home Assistant anzeigen lassen. Sollte etwas nicht funktionieren, überprüft die Verbindungen und die Konfiguration.
Vorteile und Nachteile dieser Methode
Vorteile:
- Kostengünstig
- Flexibel und anpassbar
Nachteile:
- Erfordert technisches Geschick
- Fehleranfällig wenn z.b. der IR Lesekopf mal ein paar Impulse nicht erkennt.
- Manuelle Arbeit nötig für die Kalibrierung.
Nutzung der Smart Meter Language (SML)
Einführung in die Methode
Viele moderne Stromzähler unterstützen die Smart Meter Language (SML), die detaillierte Daten über den Stromverbrauch liefert.
Beschreibung der SML und wie sie funktioniert
SML ist ein Kommunikationsprotokoll, das Daten über eine Infrarotschnittstelle oder andere Kanäle sendet.
Schritte zur Freischaltung und Nutzung der SML-Daten
Kontaktaufnahme mit dem Netzbetreiber
Erkundigt euch bei eurem Netzbetreiber, ob euer Zähler SML unterstützt und wie ihr die Schnittstelle freischalten könnt. Bei mir musste ich kurz anrufen.
Eingabe des Freischaltcodes
Nach Erhalt des Codes könnt ihr die SML-Daten freischalten und auslesen.
2. Lösung: Fertiger Lesekopf mit Tasmota
Einführung in die Methode
Diese Methode richtet sich an diejenigen, die eine Plug-and-Play-Lösung bevorzugen und nicht löten oder basteln möchten.
Ein fertiger Lesekopf kann einfach online gekauft werden. Dieser wird dann mit Tasmota geflasht, um die Daten per MQTT an Home Assistant zu senden.
Hardware Empfehlung:
Tasmota Lesekopf: https://amzn.to/3WOuCsp *
Netzteil: https://amzn.to/3KcyMTc *
Konfiguration in Tasmota und Home Assistant
Einbinden des Lesekopfs in das Wi-Fi-Netzwerk
- Verbindet den Lesekopf mit eurem Wi-Fi.
- Öffnet die Tasmota-Oberfläche im Browser.
Konfiguration über die Tasmota-Oberfläche
- Konfiguriert MQTT in Tasmota, um die Daten an Home Assistant zu senden. Das zeige ich dir hier genau Tasmota einrichten
- Stellt die relevanten Parameter ein, wie die Anzahl der Impulse pro kWh. Richte dich hier an Doku https://tasmota.github.io/docs/Smart-Meter-Interface/
- bei meinem Smart meter war es folgende Einstellung, die geklappt hat
>D
>B
->sensor53 r
>M 1
+1,3,s,0,9600,Main
1,77070100100700ff@1,Power,W,Power,0
1,77070100010800FF@1000,Counter,kWh,Energy,3
#
Für alle die mehr wissen wollen, Erklärung der einzelnen Teile:
- >D steht für „define“. Hier wird definiert, dass das folgende Skript ein neues Gerät beschreibt. Es signalisiert Tasmota, dass ein neues Skript gestartet wird.
- >B steht für „begin“. Dies ist der Beginn des Skripts.
- ->sensor53 r gibt an, dass Sensor53 verwendet wird und dass die Daten gelesen („r“ für read) werden sollen.
- M 1 wieviele Smart Meter ausgelesen werden.
- +1,3,s,0,9600,Main ist eine Konfigurationszeile, die die Verbindungseinstellungen beschreibt.
- 1: Smart Meter
- 3: Angabe über den Port
- s:
welche Art von Schnittstelle
– SML binary smart message coding - 0: Anzahl der Stoppbits.
- 9600: Baudrate, mit der die Daten übertragen werden.
- Main: Name des Geräts oder der Konfiguration.
1,77070100100700ff@1,Power,W,Power,0
- 1,77070100100700ff@1,Power,W,Power,0 ist eine spezifische Datenzeile, die beschreibt, welche Daten ausgelesen und wie sie interpretiert werden sollen.
- 1: Kanalnummer.
- 77070100100700ff: Obis-Code, der die spezifische Datenart bezeichnet (hier: momentane Leistung).
- @1: Gibt an, wie die Daten skaliert werden sollen (1-fach hier, also keine Skalierung).
- Power: Name des Sensors in Tasmota. So heißt er auch in Home Assistant
- W: Einheit der Messgröße (Watt).
- Power: Name des Wertes, der in Tasmota gespeichert wird.
- 0: Gibt an, dass keine weiteren Berechnungen oder Anpassungen notwendig sind.
Optimierung mehr Sensorwerte pro Zeit:
Dazu gehe in Console und Tippe “ TelePeriod 5 “ ein. Hinweis, manche haben berichtet, dass trotzdem nur alle 10 Sekunden ein Update kommt.
Optimierung mehr Sensorwerte pro Zeit:
- Wenn du das Skript aus der Dokumentation von Tasmota übernimmst, achte darauf die Werte „Power“ und „Energy“ zu benennen. Somit erkennt Home Assistant direkt das und ordnet die richtige Einheit dazu
Vorteile und Nachteile dieser Methode
Vorteile:
- Einfach zu installieren
- Keine technischen Kenntnisse erforderlich
Nachteile:
- Höhere Kosten als Eigenbau
- Weniger flexibel
Lösung 3 Bau eines eigenen SML-Lesekopfs
Materialliste und Werkzeug
IR Modul Link : https://amzn.to/4bQYqJi *
ESP8266 https://amzn.to/4btlfmx *
Netzteil: https://amzn.to/3USrYz5 *
Jumper Wire https://amzn.to/4buv7wh *
3D Druck Gehäuse: https://www.thingiverse.com/thing:6616141
Schritt-für-Schritt-Anleitung zum Bau und zur Installation
Einrichtung in Home Assistant
Bitte nutze analog den IR Sensor, den ich am Anfang des Artikels beschrieben habe. Wichtig checke, dass du ihn am richtigen Pin im ESP anschließt und der richtige ESP in ESPHome Auswählst.
Einbinden des ESP8266 oder ESP32
- Flash ESPHome auf den Mikrocontroller.
- Konfiguriert die YAML-Datei für ESPHome. In meinem Beispiel ein ESP8266, Wemos D1 Mini https://amzn.to/4btlfmx *
- Falls du ein anderes Board nimmst, musst du „d1_mini“ enstprechend ändern, damit du weiter unten im Code z.B. D7 als Input Pin verwenden kannst.
Code für Home Assistant und ESPHome
Code: https://github.com/thealkly/ESPHome-SML-IR-LED/tree/main
Inspiriert von Inspiriert von https://wiki.volkszaehler.org/hardware/controllers/esp8266-ir-lesekopf
Bitte passe zum einen die Server ID an, das ist der erste Teil nach SML:084 in meinem Beispiel Screenshot ist es verpixelt.
Überprüfe dann, welche OBIS Codes dein Smart Meter sendet. In meinem Fall nur 1-0:1.8.0 , 1-0:1.8.1, 1-0:1.8.2 1-0:16.7.0
[10:21:54][D][sml:084]: (050SERVERID1111) 1-0:0.0.9 [ZÄHLERID o.ä.]
[10:21:54][D][sml:084]: (050SERVERID1111) 1-0:1.8.0 [0x0008b3767b]
[10:21:54][D][sml:084]: (050SERVERID1111) 1-0:1.8.1 [0x0000000000]
[10:21:54][D][sml:084]: (050SERVERID1111) 1-0:1.8.2 [0x0008b3767b]
[10:21:54][D][sml:084]: (050SERVERID1111) 1-0:16.7.0 [0x00006cea]
Das ergibt dan in ESPHome folgende konfiguration. Bitte nutze den Github link, dort passe ich bei Änderungungen oder Fehler den Code an. https://github.com/thealkly/ESPHome-SML-IR-LED/tree/main
text_sensor:
- platform: sml
name: "ED100l"
sml_id: mysml
server_id: "SERVERID"
obis_code: "129-129:199.130.3"
format: text
sensor:
- platform: sml
name: "SM_Total energy bought"
sml_id: mysml
obis_code: "1-0:1.8.0"
unit_of_measurement: kWh
accuracy_decimals: 4
device_class: energy
state_class: total_increasing
filters:
- multiply: 0.0001
- platform: sml
name: "SM_Total energy bought-1.8.2"
sml_id: mysml
obis_code: "1-0:1.8.2"
unit_of_measurement: kWh
accuracy_decimals: 4
device_class: energy
state_class: total_increasing
filters:
- multiply: 0.0001
- platform: sml
name: "Current load"
sml_id: mysml
obis_code: "1-0:16.7.0"
unit_of_measurement: W
accuracy_decimals: 0
device_class: energy
filters:
- multiply: 0.1
Vorteile und Nachteile dieser Methode
Vorteile:
- Sehr genau und detailliert
- Vollautomatisch
- viele Updates, alle 2-4 Sekunden kommen neue Werte in Home Assistant an
Nachteile:
- Erfordert Freischaltung durch den Netzbetreiber
- Etwas komplizierter in der Einrichtung, da man selbst den OBIS Code einrichten muss
Integration in Home Assistant und Nutzung des Energy Dashboards
Detaillierte Anleitung zur Einrichtung des Energy Dashboards in Home Assistant
- Öffnet Home Assistant und geht zu den Einstellungen.
- Fügt die Sensoren zum Energy Dashboard hinzu.
*Sämtliche mit „*“ markierten Links hängen mit Amazon Partnerprogrammen zusammen. Sie dienen dir als potentiellen Käufer als Orientierung und verweisen explizit auf bestimmte Produkte. Sofern diese Links genutzt werden, kann im Falle einer Kaufentscheidung eine Provision an mich ausgeschüttet werden. Bei einem Kauf über diese Links fallen natürlich keine Mehrkosten an. Danke!!
Fazit
Zusammenfassend lässt sich sagen, dass es mehrere Methoden gibt, um euren digitalen Stromzähler smart zu machen. Ob ihr nun eine kostengünstige Eigenbaulösung bevorzugt, eine fertige Plug-and-Play-Lösung sucht oder die detaillierten Daten der Smart Meter Language nutzen möchtet – für jeden ist etwas dabei. Ich hoffe, dieser Artikel hat euch geholfen und inspiriert, euren Stromverbrauch besser zu verstehen und zu optimieren.
Wenn ihr Fragen oder Anmerkungen habt, schreibt sie gerne in die Kommentare.
Viel Erfolg beim Basteln und Optimieren!
Alkly
Ich zeigt dir, wie du selber ohne Programmierkenntnisse und Herstellerunabhängig dein Zuhause mit selbst gebauter Smart Home-Technologie smart machen kannst.
Hi Alkly,
ich habe mir die Selbstbau Variante 3 erfolgreich gebaut. Leider komme ich noch nicht an meinen Momentanverbrauch. Ich benutze einen https: DZG_DVSB20.2
//www.dzg.de/fileadmin/dzg/content/downloads/produkte-zaehler/dvsb/dzg_dvsb_Bedienungsanleitung.pdf
Meine Yaml schaut in Auszügen wie folgt aus:
„`
esphome:
name: smart-meter
friendly_name: SMART-METER
esp8266:
board: d1_mini
captive_portal:
uart:
id: uart_bus
rx_pin:
#D7 GPIO13 bei Wemos D1 Mini, other boars may use different Pin Layouts.
number: D7
inverted: false
baud_rate: 9600
data_bits: 8
parity: NONE
stop_bits: 1
debug:
sml:
id: mysml
uart_id: uart_bus
text_sensor:
– platform: sml
name: „DZG_DVSB20.2“
#Change to your Smart Meter Name
sml_id: mysml
server_id: „“
#Change to your server ID as visiable fro the text debug console
obis_code: „129-129:199.130.3“
format: text
sensor:
– platform: sml
name: „Bezug“
sml_id: mysml
obis_code: „1-0:1.8.0“
unit_of_measurement: kWh
accuracy_decimals: 4
device_class: energy
state_class: total_increasing
filters:
– multiply: 1
– platform: sml
name: „Lieferung“
sml_id: mysml
obis_code: „1-0:2.8.0“
unit_of_measurement: kWh
accuracy_decimals: 4
device_class: energy
state_class: total_increasing
filters:
– multiply: 0.0001
– platform: sml
sml_id: mysml
obis_code: „1-0:1.7.0“
unit_of_measurement: W
accuracy_decimals: 0
device_class: energy
filters:
– multiply: 0.1
„`
siehst du irgendwelche offensichtlichen Probleme welche es beschreiben das ich Bezug und Lieferung ausgegeben bekomme jedoch keinen Momentanverbrauch ?
Danke für dein Kommentar.
Wichtig, bitte füge es als Code ein
Dazu < code > ohne Leerzeichen davor und danach < /code >
Was kommt bei der Log Datei raus? Also es kann sein, dass du einen anderen Obis Code nutzen musst.
Dazu am besten schauen, welche Codes alles aus deinem Smart Meter raus kommen. Das hatte ich im Video gezeigt, wie man die Log Datei ausliest.
Hier ein Bild von ESPHome, da müsstest du schauen, welche Codes bei dir stehen
https://esphome.io/_images/sml-log.png
Hallo,
vielen Dank für deine Antwort es liegt augenscheinlich an der Menge an Metriken die mir mein Smartmeter liefert. Diese scheint sich nicht mit den anzeigbaren Wert am SmartMeter zu decken. Offensichtlich kommt nur 1.8.0 und 2.8.0 raus.
So schaut ein Loop Logs aus:
[17:22:52][D][sensor:093]: ‚Bezug‘: Sending state 9211.00000 kWh with 4 decimals of accuracy
[17:22:52][D][sensor:093]: ‚Lieferung‘: Sending state 0.00000 kWh with 4 decimals of accuracy
[17:22:52][D][sml:078]: OBIS info:
[17:22:52][D][sml:084]: (XXXX) 1-0:96.50.1 [0x445a47]
[17:22:52][D][sml:084]: (XXXX) 1-0:96.1.0 [XXXX]
[17:22:52][D][sml:084]: (XXXX) 1-0:1.8.0 [0x23fb]
[17:22:52][D][sml:084]: (XXXX) 1-0:2.8.0 [0x00]
[17:22:52][W][component:237]: Component sml took a long time for an operation (153 ms).
[17:22:52][W][component:238]: Components should block for at most 30 ms.
[17:22:52][D][uart_debug:114]: <<< 1E:52:03:53:23:FB:01:77:07:01:00:02:08:00:FF:01:72:62:01:65:02:5A:D1:08:62:1E:52:03:52:00:01:01:01:63:68:D1:00:76:05:21:6F:10:07:62:00:62:00:72:63:02:01:71:01:63:AA:95:00:00:1B:1B:1B:1B:1A:01:B0:E5
[17:22:53][D][uart_debug:114]: <<< 1B:1B:1B:1B:01:01:01:01:76:05:22:6F:10:07:62:00:62:00:72:63:01:01:76:01:01:02:31:0B:0A:01:44:5A:47:00:02:71:E3:23:01:62:02:63:E8:E4:00:76:05:23:6F:10:07:62:00:62:00:72:63:07:01:77:01:0B:0A:01:44:5A:47:00:02:71:E3:23:07:01:00:62:0A:FF:FF:72:62:01:65:02:5A:D1:09:74:77:07:01:00:60:32:01:01:01:01:01:01:04:44:5A:47:01:77:07:01:00:60:01:00:FF:01:01:01:01:0B:0A:01:44:5A:47:00:02:71:E3:23:01:77:07:01:00:01:08:00:FF:64:1C:01:04:72:62:01:65:02:5A:D1:09:62
Guten Abend, ja der Fehler liegt vermutlich daran, dass kein Pin eingegeben worden ist?
Die Ausgabe von dir sieht so aus, als wenn der Pin noch nicht deaktiviert worden ist. Dann liefert der Stromzähler keine Watt Angabe und eine sehr grobe kWh Ausgabe.
Nach dem „Freischalten“ (Anrufen beim Netzbetreiber und Pin anfordern, eingeben und ggf Pin Abfrage deaktivieren) wird meist der kWH Wert auch mit Nachkommastellen ausgegeben.