Wenn auch du den Verbrauch deines SML Stromzählers in Home Assistant überwachen willst, dann bist du hier richtig!
Hier zeige ich dir, welche Hardware sich zum Auslesen der Zähler über Tasmota Smart Meter Interface & WLAN anbietet und wie man die MQTT-Daten der SML-Schnittstelle in Home Assistant nutzen kann.
Inhaltsverzeichnis
- Voraussetzungen
- Benötigte Hardware (Lesekopf)
- Tasmota-SML Skritp einrichten
- Template-Entitäten für Energie-Dashboard
- Was tun bei den USB-Leseköpfen von Hichi?
- Alternativen bei wenig Empfang oder Strom?
- Fazit
Voraussetzungen
Home Assistant muss bereits installiert sein, auf welcher Hardware spielt keine Rolle.
Benötigte Hardware (Lesekopf)
Hichi IR-WiFi mit Tasmota-SML
Leider ist der Obige Lesekopf aus dem Video ziemlich schlecht verfügbar, hier ein paar Alternativen:
Alternative 1:
Alternative 2
Zugehöriges Video (Bitte unbedingt anschauen!)
Tasmota-SML Skritp einrichten
Anzupassen ist das Skript auf der Tasmota Weboberfläche unter Consoles -> Edit Script
.
Wie gesagt, gehört (vermutlich) bei einigen von euch etwas Raten oder zumindest gutes Kombinieren dazu, um die Parameter für den Stromzähler herauszufinden.
Hier aber mal die Reihenfolge, in der ich euch eure Recherche empfehlen würde. Ohne beide Videos oben gesehen zu haben, wird euch das hier übrigens nicht weiterbringen 😉
- Gibt es auf der Tasmota-SML Seite schon ein fertiges Skript?
- Wenn ja, ist das Skript auch für nur 1nen Lesekopf eingestellt (
>M 1
) und stimmen die Ports?(+1,3,X,X,XXX,XXXXXXX,1,XXX,XXXXXXXXXX,XXXXXXXXXX)
- Wenn es trotzdem nicht geht oder nichts gefunden, weiter mit Schritt 2
- Wenn ja, ist das Skript auch für nur 1nen Lesekopf eingestellt (
- Sollte es ein ähnliches Skript geben, nehme am besten dieses als Vorlage und prüfe, ob im Volkszähler-Wiki dein Zählermodell bereits eingetragen wurde
- Diese kannst du entweder über Google suchen (Zählername + Volkszähler Wiki) oder direkt auf der Doku-Seite.
- Passe die Parameter entsprechend der Doku-Seite von Volkszähler an.
- Wenn die beiden obigen Punkte kein Ergebnis bringen, musst du dich leider durch Foren & die Anleitung deines Zählers kämpfen.
Konfiguration für meinen Zähler
ACE3000
Hier die Konfiguration des Itron Ace3000 Typ 260 zum Einlesen der Obis-Parameter bei den Schwiegereltern.
>D >B =>sensor53 r >M 1 +1,3,o,0,300,ACE3000,1,100,2F3F210D0A,063035310D0A 1,1.8.0(@1,Total_in,KWh,Total_inZ1,4 1,2.8.0(@1,Total_out,KWh,Total_exZ1,4 1,C.1(@1,Zähler#,,Meter_number,0 #
Denke bitte daran, dass du bei deinem Zähler gegebenenfalls über die PIN zuerst den erweiterten Datensatz freischalten musst (Anruf beim Netzbetreiber reicht hier meisten aus). Wie die Eingabe der PIN erfolgt, steht in der Bedienungsanleitung.
SGM-C4-xxx2xx
Hier noch die Konfiguration meines Zählers(SML).
>D >B ->sensor53 r >M 1 +1,3,s,16,9600,ENERGY 1,77070100010800ff@1000,Total,kWh,Total,4 ;for meters measuring feed-in SGM-Cx-xxx2xx 1,77070100020800ff@1000,Supply,kWh,Supply,4 ;next 4 lines for double-tariff meters SGM-Cx-xxxxTx ;1,77070100010801ff@1000,Comsumption_t1,kWh,Total_t1,4 ;1,77070100010802ff@1000,Comsumption_t2,kWh,Total_t2,4 ;1,77070100020801ff@1000,Supply_t1,kWh,Supply_t1,4 ;1,77070100020802ff@1000,Supply_t2,kWh,Supply_t2,4 ;all commented lines from here on for 3-phase meter SGM-C4 1,77070100100700ff@1,Actual Power,W,Power,0 1,77070100200700ff@1,Voltage L1,V,Voltage,1 1,77070100340700ff@1,Voltage L2,V,Voltage_L2,1 1,77070100480700ff@1,Voltage L3,V,Voltage_L3,1 1,770701001f0700ff@1,Current L1,A,Current,2 1,77070100330700ff@1,Current L2,A,Current_L2,2 1,77070100470700ff@1,Current L3,A,Current_L3,2 1,77070100510701ff@1,Phaseangle L2-L1,deg,phase_angle_L2_L1,0 1,77070100510702ff@1,Phaseangle L3-L1,deg,phase_angle_L3_L1,0 1,77070100510704ff@1,Phaseangle I/U L1,deg,phase_angle_L1,1 1,7707010051070fff@1,Phaseangle I/U L2,deg,phase_angle_L2,1 1,7707010051071aff@1,Phaseangle I/U L3,deg,phase_angle_L3,1 1,770701000e0700ff@1,Frequency,Hz,Freq,1 ;all commented lines from here on just for completeness ;1,7707010000020000@1,Firmware Version,,FwVer,0 ;1,77070100605a0201@1,Firmware Checksum,,FwCheck,0 ;1,7707010061610000@1,Error Register,,ErrorReg,0 ;1,7707010060320101@1,Hardware Version,,HwVer,0 ;1,7707010060320104@1,Parameter Version,,ParamVer,0 1,77070100600100ff@#,Server-ID,,ID,0 ;You can find your server-id printed on your meter. If you want you can also convert it to your Identifikationsnummer with some ASCII, DEC and HEX encoding. 0A-01-45-46-52-ST-UV-WX-YZ = 1EFR + string(S) + string(T) + hexToDec(UVWXYZ) #
Sende-Intervall erhöhen
Um für Tasmota SML Werte öfter als alle 300 Sekunden per MQTT (an Home Assistant) zu senden, ist es erforderlich ein Kommando abzuschicken. Dazu öffnest du einfach die Web-Oberfläche vom Tasmota-SML Geräte, gehst auf Consoles -> Console
und gibst TelePeriod 10
ein.
Was scheinbar auch funktionieren kann ist eine Erhöhung der Nachkomma-Stellen, damit sollte dann die Übertragung von Änderungen sofort erfolgen. Siehe hier
Template-Entitäten für Energie-Dashboard
Diese Entitäten müssen in der configuration.yaml angelegt werden. Diese speichern die kWh Werte des Tasmota-Lesekopfes in der korrekten Weise, damit diese dann zum Energiedashbaord hinzugefügt werden können.
Vergesse nicht, den sensor.tasmota...
durch deine eigenen zu ersetzen.
template: - sensor: # Stromzähler Keller Verbrauch - name: "Stromzähler 1. & 2. OG Verbrauch" unique_id: "Stromz1u2OGVerbrauch" unit_of_measurement: 'kWh' device_class: "energy" state_class: "total_increasing" state: >- {{ float(states('sensor.tasmota_ace3000_total_inz1')) | round(3) }} - sensor: # Stromzähler Keller Erzeugung - name: "Stromzähler 1. & 2. OG Erzeugung" unique_id: "Stromz1u2OGErzeugung" unit_of_measurement: 'kWh' device_class: "energy" state_class: "total_increasing" state: >- {{ float(states('sensor.tasmota_ace3000_total_exz1')) | round(3) }}
Bitte natürlich wie in Home Assistant üblich beachten, dass der Abschnitt template:
nur einmal in der Configuration.yaml vorkommen darf. Falls er schon existiert, einfach die -sensor:
Abschnitte darunter ergänzen.
Was tun bei den USB-Leseköpfen von Hichi?
Für die USB-Leseköpfe müsste die EDL21 Integration von Home Assistant passen.
Falls das jemand bestätigen kann (hab selbst keinen USB-Lesekopf ohne WiFi), würde ich mich sehr freuen 🙏
Alternativen bei wenig Empfang oder Strom?
Metalltüren, keine Steckdosen im Zählerschrank und vieles mehr könnte bei dir ein Problemchen werden…
Eins vorweg: Powerbanks sind keine gute Idee, halten einfach nicht lange genug 😉
Aber du kannst alternativ den Lesekopf ohne ESP-Chip (ggf. mit vormontiertem Kabel) kaufen, das Kabel ggf. durch die Wand oder in Kabelkanälen führen und den ESP erst im nächsten Raum oder an geeigneter stelle mit den Kabeln des Lesekopfs verbinden.
So ist man zumindest etwas flexibler was die Wahl des Ortes vom ESP-Chip selbst angeht, aber eine Steckdose bzw. USB-Stecker benötigt man halt trotzdem 😉
Lesekopf mit Kabel: https://ebay.us/draLjR*
Lesekopf ohne Kabel: https://ebay.us/lisvQU*
ESP-Chip: https://ebay.us/dxyL5R*
Installation von Tasmota-SML auf dem ESP: https://youtu.be/s6qQs4FN9B0?si=pzMXdY9H2IFTpoz2&t=422
Nicht wunder, die Links verweisen auf die deutsche Ebay-Seite 🙂
Fazit
Und schon hast du deinen SML-Stromzähler komplett lokal mit einem Tasmota SML Lesekopf ausgelesen und kannst die Daten über MQTT in Home Assistant oder jedem beliebigen Smart Home System verwenden, einfach klasse 🙌
Wenn du Fragen oder Anmerkungen hast, zögere nicht, sie mir unten in den Kommentaren mitzuteilen und ich werde mein Bestes tun, um dir zu helfen. Vielen Dank fürs Zuschauen!
Moin liebe Leute,
hat jemand eine Idee, wo ich mal forschen könnte, wenn mein Energie-Dashboard nach erfolgreicher Einbindung des Volkszählers nur alle 6 Stunden Werte liefert?
Und außerdem ist der Sprung im Verbrauch (blauer Balken) um 18:00 Uhr falsch (viel zu hoch; der Zähler selbst zeigt keinen so hohen Wert an).
Die beiden Sensoren für das Energie Dashbaord habe ich ganz analog wie im Video von @simon42 gezeigt definiert und eingebunden:
In der Tasmota Integration kommen die Zahlen des Zählers gut an (bis auf die aktuelle Leistung “Power_curr”):
(Meine Hardware ist ein Seeed Xiao ESP32C3 Board, was per WiFi im heimischen LAN ist. Rx und Tx Drähte habe ich an dessen Pins 20 und 21 angelötet.)
Mein Skript für meinen ISKRA MT631 Zähler sieht so aus:
Laut Tasmota Console werden alle 5 Minuten Daten ausgelesen:
Scheinbar spuckt der Zähler leider aber auch nur ganze kWh aus, die Nachkommastellen sind immer
.0000
. Da bräuchte ich also auch keine 4 …Interessanterweise kommt in Home Assistant aber im MQTT/Mosquitto nichts davon an. Es gibt nicht mal ein neues Gerät. Die MQTT Konfiguration in Tasmota habe ich aber schon mehrfach überprüft, die müsste stimmen (IP, Port, Username, Passwort) …
Aber im ganzen Prozess kommt MQTT ja eigentlich auch gar nicht vor, oder? Die Template Sensoren, die im Energie-Dashboard landen, gehen ja direkt auf die Werte, die von der Tasmota Integration ausgespuckt werden. Wofür eigentlich MQTT?
Irgendwelche Ideen? Das wäre schon schön, wenn ich da mal mehr Daten rein bekäme, als nur alle 6h …
Ganz lieben Dank fürs Mitdenken!
Stefan.
Hatte ich auch ich musste beim Stromzähler im Menü den punkt “Info” auf On stellen und dann hatte ich die kommastellen. Habe aber ein anderen Stromzähler.
LG
oh das habe ich bei überfliegen deines Beitrags wohl überflogen
Naja, sooo falsch kann das alles ja nicht sein, denn es kommen ja Daten an. Die GPIOs sind ja frei wählbar, auch 20 und 21 sollten gehen, ich habe in den Specs keine Einschränkungen gefunden, dass ausgerechnet diese Pins hier nicht verwendet werden dürfen. Die Tatsache, dass an ihnen in der Grafik (die ich gut kenne) auch TX und RX steht, heißt ja nicht, dass diese nur “zum Programmieren” wären. Es sind doch Pins, die man generell für alles nutzen kann, oder nicht? Aber kann ich natürlich umlöten …
Und wenn Du für RX “3” vorschlägst, meinst Du dann GPIO3 = A1 = D1? Oder meinst Du D3 = A3 = GPIO5?
Und warum sollte man TX nicht brauchen? Ich will ja nicht nur Daten auslesen, sondern muss der optischen Schnittstelle auch diesen Init-String schicken, der aus den Zeichen /?! und dann ein CR und ein LF besteht – oder nicht?
Yup, keine Zahlendreher in der Tasmote MQTT Config. Passwort auch mehrfach geprüft.
Telemetrieperiode habe ich mal auf 180 gestellt und im Script die 16 bei current power eingetragen.
In der Tat versorge ich den Volkszähler mit 3.3V vom ESP32 Board. Wenn der auch 5V verträgt, kann ich das natürlich auch umlöten … Tut er das denn? Will ich nicht zerstören … Das Netzteil, über das das Xiao Board versorgt wird, kann max. 2A liefern, das sollte also reichen.
HOPPLA! Obwohl ich dachte, dass ich eigentlich INFO auf ON und PIN auf OFF gestellt hatte, war das genau andersherum! (Vermutlich passiert, weil neulich die ganze Anlage nochmal stromlos gemacht wurde, als der Smartmeter eingebaut wurde. )
Na, was soll ich sagen: und SCHON kommen Nachkommastellen und current power an!
Da würde ich doch mal sagen, dass die GPIO Pins 20 und 21 gut funktionieren, oder?
Allerdings sehe ich im HA Logbuch von current power leider so doofe “Fehlwerte”:
Das ist natürlich blöd. Hast Du da vielleicht auch eine Idee, @Omega13?
Ich beobachte jetzt mal, ob nun (wo INFO auf ON ist) im Energie Dashboard häufiger als nur alle 6h Daten ankommen …
Vielen lieben Dank für alle Mitdenker und Tipp-/Hinweis-Geber!! Ihr seid Spitze!
Ja, von dem Link hatte ich mein Skript auch her, hatte dann aber einfach noch den TX Pin und die Sequenz mit drangehangen. – Ich probier’s mal ohne aus!
Okay, das mit den Umlauten ist ja ein Ding! Aber das ä bei Stromzähler war der einzige Umlaut, den ich jetzt gefunden habe. Hab ihn zu “ae” geändert und leider gibt’s in Mosquitto immer noch kein neues Gerät.
Verdächtig finde ich weiterhin, dass die Werte, die ich beim Tasmota Gerät angezeigt bekomme, keine Einheiten haben, obwohl diese ja im Skript hinterlegt sind. Das hat auch zur Folge, dass in der HA History für diese Werte kein Diagramm angezeigt wird, sondern nur ein (sehr bunter?!) Balken:
Woran liegt das wohl? Oder soll das so sein und erst in MQTT wären dann die richtigen Einheiten dabei (wo die Daten ja noch nicht ankommen)?
Auch im Energie-Dashboard sehe ich ja nur Balken mit dem Gesamt (aufsummierten) kWh Wert. Erwartet hätte ich, dass ich pro Stunde eines Tages dort auch dann nur den Verbrauch in dieser Stunde sehe … Das liegt bestimmt daran, dass ich meine beiden Template-Sensoren auf den Werten der Tasmota-Integration nehmen (wo sie eben noch ohne Einheit ankommen). Vermutlich sollten bei diesen beiden Template-Sensoren aber die Werte MIT Einheit aus MQTT genommen werden? Naja, solange sie da bei mir noch nicht ankommen, kann ich sie auch nicht für die Template-Sensoren nehmen. Also erstmal klären, warum sie nicht in MQTT ankommen …