Zuletzt angesehen:
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
public:2r-stromzaehler [2025/05/28 07:18] admin |
public:2r-stromzaehler [2025/06/03 13:51] (aktuell) admin |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
===== MQTT 2R-Stromzähler (Zweirichtung) / Verbrauchsmessung eines Ferraris-Stromzählers ===== | ===== 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.\\ | ||
+ | \\ | ||
+ | \\ | ||
{{:public:verdrathung.jpg?400|}} | {{:public:verdrathung.jpg?400|}} | ||
- | === Zählerstand einstellen === | + | === Grundeinstellungen === |
- | Der auf dem Stromzähler bereits erfasste Zählerstand wird folgendermaßen in TASMOTA per Konsole übertragen:\\ | + | Folgende Grundeinstellungen sind bereit bei Auslieferung vorgenommen.\\ |
- | Kommando: **script >zs= (ZS x ZK x 2)**\\ | + | **TelePeriod** = Intervall für das Senden von MQTT-Nachrichten\\ |
- | Zunächst muss aber auch verstanden werden, wie der Sensor arbeitet. Beim Erfassen der roten Markierung wird die Anzeige **Zähler1/Zähler2** um 1 erhöht. Ebenso wenn die rote Markierung den Sensor verlässt.\\ | + | **CounterDebounce** = Zeit in Millisekunden, die vergehen müssen, um ein Prellen der Sensoren zu verhindern.\\ |
- | Somit werden für die Berechnung nicht 75 sondern 150 Zählungen pro kWh herangezogen (Bei Zählerkonstante 75 U/kWh). Also (ZS x ZK x 2)\\ | + | |
- | \\ | + | |
- | //ZS = Zählerstand (kWh)//\\ | + | |
- | //ZK = Zählerkonstante (U/kWh)//\\ | + | |
- | \\ | + | |
- | Beispiel: 44717,3 kWH * 75 * 2 | + | |
<code> | <code> | ||
- | script >zs=6707595 | + | TelePeriod 60 |
+ | CounterDebounce 600 | ||
</code> | </code> | ||
=== Konsolen Script === | === Konsolen Script === | ||
- | In folgendem Script (Konsolen > Script konfigurieren) sind zwei Variablenwerte ggf. anzupassen.\\ | + | 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.\\ | 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) | - zk (Zählerkonstante) | ||
- mu (Mindest Umlaufzeit der Scheibe) | - mu (Mindest Umlaufzeit der Scheibe) | ||
+ | - latitude | ||
+ | - longitude | ||
\\ | \\ | ||
- | Für den Wert **mu** sind 10 Sekunden voreingestellt.\\ | + | 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.\\ |
- | Diesen Wert kann man erstmal beibehalten. Wenn man es genauer haben will, kann man einen oder mehrere hohe Verbraucher (Wasserkocher, Fön, etc.) einschalten und mit der Stoppuhr messen, wieviele Sekunden die Aluminium-Drehscheibe benötigt um eine Umdrehung zu erreichen.\\ | + | Für **mu** ist ein Standardwert von 10 Sekunden voreingestellt.\\ |
- | Dieser Wert oder ggf. etwas weniger, ist für **mu** anzusetzen. :!: Nochmal kontrollieren, ob **CounterDebounce** noch passt.\\ | + | Für **latitude** Ist der Breitengrad des Standortes anzugeben.\\ |
- | Dieser Wert ist mit verantwortlich für die Anzeige der aktuellen Leistung sowie der Entscheidung, ob der Zähler vorwärts oder rückwärts läuft.\\ | + | Für **longitude** Ist der Längengrad des Standortes anzugeben.\\ |
- | Aber hier nochmal der Hinweis, dass der Wert erstmal bei **mu=10** belassen werden kann.\\ | + | |
+ | \\ | ||
+ | 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.\\ | ||
<code> | <code> | ||
Zeile 41: | Zeile 47: | ||
fl2=0 | fl2=0 | ||
rt="unbekannt" | rt="unbekannt" | ||
+ | ph="unbekannt" | ||
c1=0 | c1=0 | ||
c2=0 | c2=0 | ||
Zeile 50: | Zeile 57: | ||
c2tsold=0 | c2tsold=0 | ||
zk=75 | zk=75 | ||
- | mu=10 | + | mu=12 |
hr=0 | hr=0 | ||
dy=0 | dy=0 | ||
Zeile 60: | Zeile 67: | ||
>B | >B | ||
=>sensor53 l255 | =>sensor53 l255 | ||
+ | latitude 50.0555 | ||
+ | longitude 8.8008 | ||
>F | >F | ||
h1=zs-s1 | h1=zs-s1 | ||
e1=h1/(2*zk) | 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 | if fl1==1 | ||
Zeile 81: | Zeile 101: | ||
if c1!=c1old | if c1!=c1old | ||
then | then | ||
- | fl1=1 | ||
c1ts=upsecs | c1ts=upsecs | ||
if fl2==1 | if fl2==1 | ||
+ | and time>sunrise | ||
+ | and time<sunset | ||
then | then | ||
zs=zs-1 | zs=zs-1 | ||
- | rt="rückwärts" | + | rt="← rückwärts" |
fl2=0 | fl2=0 | ||
- | fl1=0 | + | else |
+ | fl1=1 | ||
endif | endif | ||
endif | endif | ||
Zeile 95: | Zeile 117: | ||
if c2!=c2old | if c2!=c2old | ||
then | then | ||
- | fl2=1 | ||
c2ts=upsecs | c2ts=upsecs | ||
if fl1==1 | if fl1==1 | ||
then | then | ||
zs=zs+1 | zs=zs+1 | ||
- | rt="vorwärts" | + | rt="vorwärts →" |
fl1=0 | fl1=0 | ||
- | fl2=0 | + | else |
+ | fl2=1 | ||
endif | endif | ||
endif | endif | ||
Zeile 108: | Zeile 130: | ||
' Aktuelle Leistung | ' Aktuelle Leistung | ||
- | c1ts=upsecs | + | if c1>c1old |
- | if c1>c1old | + | and upsecs>(c1tsold+mu) |
- | and c1ts>(c1tsold+mu) | + | |
then | then | ||
- | sec=c1ts-c1tsold | + | c1ts=upsecs |
- | power=3600000/(sec*zk) | + | sec=c1ts-c1tsold |
- | c1tsold=c1ts | + | if sec>0 |
+ | then | ||
+ | power=3600000/(sec*zk) | ||
+ | else | ||
+ | power=0 | ||
+ | endif | ||
+ | c1tsold=c1ts | ||
endif | endif | ||
Zeile 132: | Zeile 159: | ||
if chg[hr]>0 | if chg[hr]>0 | ||
and hr==0 | and hr==0 | ||
+ | and min==0 | ||
+ | and sec<2 | ||
then | then | ||
s1=zs | s1=zs | ||
e3=e2 | e3=e2 | ||
e2=e1 | e2=e1 | ||
+ | svars | ||
endif | endif | ||
Zeile 155: | Zeile 185: | ||
>W | >W | ||
+ | ZS: {m} %0zs% | ||
Zählerstand: {m} %total% kWh | Zählerstand: {m} %total% kWh | ||
Richtung: {m} %rt% | Richtung: {m} %rt% | ||
Zeile 160: | Zeile 191: | ||
Sensor L: {m} %0fl1% | Sensor L: {m} %0fl1% | ||
Sensor R: {m} %0fl2% | Sensor R: {m} %0fl2% | ||
- | ============ | + | Phase : {m} %ph% |
+ | ========= | ||
Verbrauch: | Verbrauch: | ||
Heute : {m} %2e1% kWh | Heute : {m} %2e1% kWh | ||
Gestern : {m} %2e2% kWh | Gestern : {m} %2e2% kWh | ||
Vorgestern: {m} %2e3% kWh | Vorgestern: {m} %2e3% kWh | ||
+ | </code> | ||
+ | |||
+ | === 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 | ||
+ | <code> | ||
+ | script >zs=3353797,5 | ||
</code> | </code> |