Zuletzt angesehen: • 2r-stromzaehler
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 man gelegntlich den Wert des Zählerstandes auch mal anpassen muss.
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 60 CounterDebounce 600
Konsolen Script
In folgenden, auf dem Zähler bereits vorhandenen Script (Konsolen > Script konfigurieren) sind folgende Variablenwerte anzupassen.
Und zwar die Zählerkonstante (zk), welche am Stromzähler aufgedruckt und mit der Einheit (U/kWh) angegegben ist und die Mindestumlaufzeit (mu) der Aluminium-Drehscheibe.
- zk (Zählerkonstante)
- mu (Mindest Umlaufzeit der Scheibe)
- 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 mu ist ein Standardwert von 10 Sekunden voreingestellt.
Für latitude Ist der Breitengrad des Standortes anzugeben.
Für longitude Ist der Längengrad des Standortes anzugeben.
Der Wert für mu kann zunächst beibehalten werden. Wer eine genauere Einstellung wünscht, kann einen oder mehrere starke Verbraucher (z. B. Wasserkocher, Föhn) einschalten und mit einer Stoppuhr messen, wie viele Sekunden die Aluminium-Drehscheibe für eine vollständige Umdrehung benötigt. Dieser gemessene Wert – oder etwas weniger – sollte dann als mu verwendet werden.
Hinweis: Danach unbedingt prüfen, ob der Wert für CounterDebounce noch passend ist.
Der Wert mu beeinflusst maßgeblich die Berechnung der aktuellen Leistung und die Erkennung der Zählrichtung (vorwärts oder rückwärts). Dennoch kann der voreingestellte Wert mu = 10 für den Anfang problemlos verwendet werden.
>D p:zs=0 p:s1=0 p:total=0 p:e2=0 p:e3=0 fl1=0 fl2=0 rt="unbekannt" ph="unbekannt" c1=0 c2=0 c1old=0 c2old=0 c1ts=0 c2ts=0 c1tsold=0 c2tsold=0 zk=75 mu=12 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) 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+mu) 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" fl2=0 else fl1=1 endif endif // rechts if c2!=c2old then c2ts=upsecs if fl1==1 then zs=zs+1 rt="vorwärts →" fl1=0 else fl2=1 endif endif ' Aktuelle Leistung if c1>c1old and upsecs>(c1tsold+mu) then c1ts=upsecs sec=c1ts-c1tsold if sec>0 then power=3600000/(sec*zk) else power=0 endif c1tsold=c1ts endif if c1ts>(c1tsold+540) then sec=c1ts-c1tsold power=0 else endif c1old=c1 c2old=c2 ' Historische Werte hr=hours dy=day if chg[hr]>0 and hr==0 and min==0 and sec<2 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% Leistung: {m} %0power% W Sensor L: {m} %0fl1% Sensor R: {m} %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