Zuletzt angesehen: • 2r-stromzaehler
Inhaltsverzeichnis
MQTT 2R-Stromzähler (Zweirichtung) / Verbrauchsmessung eines Ferraris-Stromzählers
In einigen Haushalten findet sich noch ein Ferraris-Stromzählers, welcher bei verwendung eines Balkonkraftwerkes oder eine Mini-PV-Analage auch mal rückwärts laufen kann.
Dies führt in der Regel zu einer Verfälschung der Verbrauchsanzeige. Dieser 2R-Stromzähler hat zwei Sensoren und kann durch das intelligente Script erkennen, in welche Richtung der Zähler dreht.
Bitte beachten, dass hier ein anlaloges Zählwerk in eine digetale Anzeige mit Hilfe von IR-Sonsoren gewandelt wird.
Es kann immer mal zu Abweichungen kommen. Bedeutet, dass gelegentlich die Richtung des Zähler falsch interpretiert werden kann und man den Wert des Zählerstandes auch hin und wieder anpassen muss.
WLAN
Die Einbindung in das lokale Netzwerk wird folgendermaßen durchgeführt.
Nach dem Einstecken der Stromversorgung meldet sich das Gerät mit der SSID Stromzahler-XXXXXX-XXXX, wobei XXXXXX-XXXX für eine alphanumerische Zahlenfolge steht.
Nach dem Verbinden wird man automatisch auf eine Webseite mit der IP: 192.168.4.1 weitergeleitet. Dort bitte das lokale WLAN wählen und das Passwort eingeben (am besten mit dem Haken sichtbar machen beim Eingeben).
Kurz nach dem Speichern meldet sich das Webinterface mit der über DHCP erworbenen IP-Adresse.
Ist dies nicht der Fall, bitte im lokalen Router nach dem Gerät suchen und die IP-Adresse ausfindig machen.
Der MQTT-Stromzähler ist nun über diese Adresse mittels Browser errereichbar.
Messeinheit
Zur Kontrolle der Zählungen wird jeweils die linke, grüne LED verwendet. Diese erlischt bei erkannter, roter Markierung auf der Drehscheibe, ansonsten leuchtet sie dauerhaft.
Über das Potentiometer wird der Sensor justiert.
Montage
Ganz entscheidend ist der Abstand zwischen dem Sensor und der Gehäuseglasscheibe des Stromzählers.
Je näher der Sensor an der Glasscheibe sitzt, desto genauer sind die Zählungen und desto geringer sind die Falschmeldungen.
Dementsprechend ist ein relativ dünnes, doppelseitiges Klebeband zu verwenden.
Mithilfe der Gehäuseausrichtung (Rechtecke links/rechts), wird die Messeinheit auf die Glasscheibe des Stromzählers geklebt.
Mit einem kleinen Schraubendreher werden die beiden IR-Sensoren so fein eingestellt, dass jeweils die linke, grüne LED bei laufender Drehscheibe gerade noch leuchtet.
Es muss so fein eingestellt sein, dass bei geringster Berührung die LED nicht mehr leuchtet. BITTE nicht verzweifeln. Es ist sehr, sehr ticky die richtige Position zu finden.
Danach ist zu kontrollieren, ob die LED jeweils erlischt, wenn die rote Markierung auf der Aluminium-Drehscheibe den Sensor erreicht. Beim verlassen des Sensors muss die LED wieder leuchten.
Nun muss man noch die Zählerkonstante notieren (hier 75 U/kWh) und weiter geht es mit der Konfiguration…
Quelle: https://www.kompf.de/tech/emeir.html
Video zur Einstellung des Poti (hier einfacher MQTT-Stromzähler) - Beide Sensoren müssen justiert werden
Konfiguration
Bitte TASMOTA nicht mit einer Standard Firmware updaten!
Die installierte Firmware enthält das Scripting Modul, welches in Standard Versionen nicht enthalten ist. Siehe am Ende dieser Wiki Seite, wie man ein Update oder eine Neuinstallation durchführt.
Bei Auslieferung ist die folgende Konfiguration bereits vorhanden.
Gerät konfigurieren (Einstellungen > Gerät)
MQTT-Einstellungen (Einstellungen > MQTT)
Unter Host ist die IP-Adresse der Hausautomation einzutragen. ggf. auch user/password falls erforderlich.
Ereiterte Konfiguration (Einstellungen Erweitert)
Desweiteren sollte man als Datenschutz die Weboberfläche mit einem kryptischen Passwort schützen:
Der Benutzername lautet: admin
Beispiel:
Grundeinstellungen
Folgende Grundeinstellungen sind bereit bei Auslieferung vorgenommen.
TelePeriod = Intervall für das Senden von MQTT-Nachrichten
CounterDebounce = Zeit in Millisekunden, die vergehen müssen, um ein Prellen der Sensoren zu verhindern.
TelePeriod 120 CounterDebounce 10000
Konsolen Script
In folgendem, bereits vorhandenen, Script (Konsolen > Script konfigurieren) sind folgende Variablenwerte anzupassen.
- zk
- pmax
- latitude
- longitude
Für zk ist standardmäßig ein Wert von 75 U/kWh hinterlegt. Bitte diesen Wert mit der Angabe auf dem eigenen Stromzähler abgleichen.
Für pmax ist die Maximalleistung bei Vollast - ist mit 4 KW voreingestellt.
Für latitude Ist der Breitengrad des Standortes anzugeben.
Für longitude Ist der Längengrad des Standortes anzugeben.
Aus den Koordinaten wird ermittelt, ob gerade die Phase Tag/Nacht herrscht. Dadurch wird sichergestellt, dass der Zähler nachts nicht rückwärts zählt.
Script:
>D p:zs=0 p:s1=0 p:total=0 pmax=4 mu=0 p:e2=0 p:e3=0 fl1=0 fl2=0 rt="unbekannt" ph="unbekannt" lrt="" c1=0 c2=0 c1old=0 c2old=0 c1ts=0 c2ts=0 c1tsold=0 c2tsold=0 zk=75 hr=0 dy=0 sec=0 power=0 h1=0 e1=0 >B =>sensor53 l255 latitude 50.0555 longitude 8.8008 >F h1=zs-s1 e1=h1/(2*zk) mu=3600/(pmax*zk) if sunrise>0 and sunset>0 and time>sunrise and time<sunset then ph="Tag" else ph="Nacht" fl2=0 endif if fl1==1 and upsecs>(c1ts+19) then fl1=0 endif if fl2==1 and upsecs>(c2ts+mu) then fl2=0 endif // links if c1!=c1old then c1ts=upsecs if fl2==1 and time>sunrise and time<sunset then zs=zs-1 rt="← rückwärts" lrt=rt fl2=0 else fl1=1 endif endif // rechts if c2!=c2old then c2ts=upsecs if fl1==1 then zs=zs+1 rt="vorwärts →" lrt=rt fl1=0 else fl2=1 endif endif ' Aktuelle Leistung if c1>c1old and upsecs>(c1tsold+mu) then c1ts=upsecs if rt==lrt then sec=c1ts-c1tsold if rt=="vorwärts →" and sec>0 then power=3600000/(sec*zk) else power=(3600000/(sec*zk))*-1 endif endif c1tsold=c1ts endif c1old=c1 c2old=c2 >S ' Historische Werte hr=hours dy=day if chg[hr]>0 and hr==0 then s1=zs e3=e2 e2=e1 svars endif ' MQTT if upsecs%tper==0{ =>Publish tele/%topic%/main/energytotal %total% =>Publish tele/%topic%/main/actpower %0power% =>Publish tele/%topic%/main/today_kwh %2e1% =>Publish tele/%topic%/main/yd_kwh %2e2% =>Publish tele/%topic%/main/dbyd_kwh %2e3% =>Publish tele/%topic%/json {"energytotal": "%total%", "actpower": "%0power%", "today_kwh": "%2e1%", "yd_kwh": "%2e2%", "dbyd_kwh": "%2e3%",} } >T c1=Counter#C1 c2=Counter#C2 total=zs/zk >W ZS: {m} %0zs% Zählerstand: {m} %total% kWh Richtung: {m} %rt% Min-Umlauf: {m} %0mu% sek/U Ltz-Umlauf: {m} %0sec% sek/U Leistung: {m} %0power% W Sensor L/R: {m} %0fl1% %0fl2% Phase : {m} %ph% ========= Verbrauch: Heute : {m} %2e1% kWh Gestern : {m} %2e2% kWh Vorgestern: {m} %2e3% kWh
Zählerstand einstellen
Der auf dem Stromzähler bereits erfasste Zählerstand wird folgendermaßen in TASMOTA per Konsole übertragen:
Kommando: script >zs= (ZS x ZK)
Die Berechnung richtet sich nach der im Skript definierten Zählerkonstante (zk), die angibt, wie viele Zählerumdrehungen einer verbrauchten Kilowattstunde entsprechen.
ZS = Zählerstand (kWh)
ZK = Zählerkonstante (U/kWh)
Beispiel: 44717,3 kWH * 75
script >zs=3353797,5
Konfiguration Home Assistant
Bitte die Konfiguration in Anlehnung an die des Gaszählers vornehmen.
https://wiki.gorjup.de/doku.php?id=public:gaszaehler#konfiguration_im_home_assistant
Script:
mqtt: sensor: - name: "Stromzähler Zählerstand" unique_id: sensor.stromzaehler_zaehlerstand state_topic: "tele/Stromzaehler/json" value_template: '{{ value_json.energytotal }}' unit_of_measurement: 'kWh' payload_available: "Online" payload_not_available: "Offline" device_class: energy state_class: "total_increasing" - name: "Stromzähler Aktuelle Leistung" unique_id: sensor.stromzaehler_aktuelle_leistung state_topic: "tele/Stromzaehler/json" value_template: '{{ value_json.actpower }}' unit_of_measurement: 'W' payload_available: "Online" payload_not_available: "Offline" device_class: power state_class: "measurement" - name: "Stromzähler Verbrauch Energie heute" unique_id: sensor.stromzaehler_verbrauch_energie_heute state_topic: "tele/Stromzaehler/json" value_template: '{{ value_json.today_kwh }}' unit_of_measurement: 'kWh' payload_available: "Online" payload_not_available: "Offline" device_class: energy state_class: "total_increasing" - name: "Stromzähler Verbrauch Energie gestern" unique_id: sensor.stromzaehler_verbrauch_energie_gestern state_topic: "tele/Stromzaehler/json" value_template: '{{ value_json.yd_kwh }}' unit_of_measurement: 'kWh' payload_available: "Online" payload_not_available: "Offline" device_class: energy state_class: "total_increasing" - name: "Stromzähler Verbrauch Energie vorgestern" unique_id: sensor.stromzaehler_verbrauch_energie_vorgestern state_topic: "tele/Stromzaehler/json" value_template: '{{ value_json.dbyd_kwh }}' unit_of_measurement: 'kWh' payload_available: "Online" payload_not_available: "Offline" device_class: energy state_class: "total_increasing"