NEWS
Ferrariszähler zähler zählt zu wenig
-
Hi,
ich habe mir den Ferraris Stromzähler von Schimmermedia mit dem NodeMCU über MQTT nachgebaut.
Allerdings zählt der falsch.Der Zähler hat auf dem Schild 120 Umdr/kWh stehen und ich hatte zunächst einmal 120 da eingestellt im Script.
Zack doppelter Verbrauch. facepalmHab jetzt 240 eignestellt und nun zählt er zu langsam.
Gestern 0:00 : Zähler= 11570 ioBroker=11565
hab dann korrigiert
Heute morgen : 11573 - 11572 (2/3 zu wenig)
13:00 11578 - 11576 (6/8 zu wenig)on({id: 'mqtt.0.Stromzaehler.Zaehlerdiode.Total', change: "ne"}, function (obj) { /* get total; diff = total-lastTotal; mi diff weiterrechnen statt + 1 danach if else machen */ var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("mqtt.0.Stromzaehler.Zaehlerdiode.Arbeitsvariable").val < '240') { setState("mqtt.0.Stromzaehler.Zaehlerdiode.Arbeitsvariable"/*Arbeitsvariable*/, (getState("mqtt.0.Stromzaehler.Zaehlerdiode.Arbeitsvariable").val + getState("mqtt.0.Stromzaehler.Zaehlerdiode.Count").val)); } else { var temp = getState("mqtt.0.Stromzaehler.Zaehlerdiode.Arbeitsvariable").val; //objekt reinladen var howMany = Math.floor(temp/240); // so oft ist er schon über 240 gelaufen temp = temp % 240; //rest setState("mqtt.0.Stromzaehler.Zaehlerdiode.Arbeitsvariable"/*Arbeitsvariable*/, temp); setState("mqtt.0.Stromzaehler.Zaehlerdiode.Zaehlerstand"/*Zaehlerstand*/, (parseFloat(getState("mqtt.0.Stromzaehler.Zaehlerdiode.Zaehlerstand").val) + howMany)); } });
Wo setze ich an? Fehler im Script?
Der Durchgang am Sensor wird auf jeden Fall immer erkannt.
Habe das Script nämlich mal angepasst um eventuelle Stromausfälle am iobroker zu korrigieren.Nils
-
@jmeister79 sagte:
Wo setze ich an?
Am Trigger: Es wird bei jedem Impuls 2 x getriggert: Änderung auf true und Änderung auf false. Verwende als Trigger-Bedingung "ist größer als letztes", dann wird bei jedem Impuls nur einmal getriggert.
-
@paul53 sagte in Ferrariszähler zähler zählt zu wenig:
dann wird bei jedem Impuls
...und da ist dein Problem der Genauigkeit. Denn oftmals liefern die Sensoren keinen "richtigen" Impuls (= ein Rechtecksignal), sondern 2 oder 3, was dann als jeweils ein Impuls gewertet wird.
Man müsste jetzt mal ausrechnen, wie schnell die Scheibe maximal drehen kann (Hausanschlussleistung, 120U/kWh...). Schneller als das können dann keine zwei Impulse kommen und du kannst im Sketch eine Verzögerung einbauen.
Erst wenn millis größer als letzte millis + xx --> dann echter Impuls -
@SBorg das schließe ich aus, ich hab ja eher zu wenig impulse, also n Jitter wird es hier nicht sein, allerhöchstens, wenn die SCheibe zu schnell dreht, dass er das "rechteck" verpasst.
Ich hab mald as Originalskript und die Idee von @paul53 eingebaut und vergleiche mal die drei Werte.
Ich spiele grad mit dem Gedanken hinter dem Zähler zu kappen und n eigenen Stromsensor einzubauen. Gewagt...
-
@jmeister79
Das Skript erscheint mir etwas kompliziert. Vorschlag: -
@jmeister79 sagte in Ferrariszähler zähler zählt zu wenig:
Ich spiele grad mit dem Gedanken hinter dem Zähler zu kappen und n eigenen Stromsensor einzubauen. Gewagt..
Finde ich eh die beste Lösung. Einen ungeeichten, 3-phasigen LCD-Zähler mit S0 gibt es für ~30,- €. Man braucht halt nur Platz und ggf. jemand der ihn einbaut.
Wenn du keine Sternmotoren betreibst, könntest du auch eine "Strom-Zange" um den Nullleiter legen und mittels Arduino auswerten. -
@paul53 leider zählt der mqtt nur die impulse und das nicht absolut. Darum ist das Skript etwas komplexer.
Der Zähler läuft im nodeMC irgendwann voll und beginnt von vorne. Darum schaue ich auf Änderung und verwalte den Zählerstand im ioBroker.Habe leider n 3phasenmotor für mein Hauswasserwerk angeschlossen...
-
@jmeister79 sagte:
verwalte den Zählerstand im ioBroker.
Nichts anderes macht das von mir vorgeschlagene Skript: Es wandelt die Zählerimpulse in einen Zählerstand-Datenpunkt unabhängig davon, ob der nodeMC einen eigenen Zähler enthält.
-
@paul53 ich werde es mal ausprobieren
-
@SBorg said in Ferrariszähler zähler zählt zu wenig:
Wenn du keine Sternmotoren betreibst, könntest du auch eine "Strom-Zange" um den Nullleiter legen und mittels Arduino auswerten.
Kann man so machen. Aber das bringt überhaupt keinen vernünftigen Wert. Wenn die Phasen gleichmäßig belastet sind, fließt kein Strom im N.
Sonst würde ja der Strom in N (als Summe der Phasenströme) im Extremfall 3x so hoch sein, wie der maximale Strom pro Phase. Und dann hätte man ein großes Problem mit den N.@jmeister79 said in Ferrariszähler zähler zählt zu wenig:
Hab jetzt 240 eignestellt und nun zählt er zu langsam.
[Vermutung]
Die Impulse werden im Skript (in der Node MCU ?) nicht schnell genug verarbeitet. Dann kann es passieren, dass bereits der Folgeimpuls da ist, wenn das Skript loslegt.
[/Vermutung] -
@hans_999
Hi,
ja das kann sein, wenn das rad sehr schnell dreht, dass er dann einen verschluckt.
Allerdings beobachte ich das jetzt seit ein paar Tagen. Und es ist immer ein Verhältnis von 3/2 (Zähler/ioBroker).Für mich riecht das jetzt bei der Kosntanz eher danach, dass die Umdrehungen pro kWh nicht stimmen.
Nils
-
@jmeister79 Hey. Das Thema ist zwar schon alt, aber hast du eine Lösung gefunden? Ist bei mir nämlich identisch
-
storniert
Hab übersehen das das Thema schon halb verwest war .. -
@planetkeane
ja irgendwie hab ich eine Gefunden. Auf jeden fall mit script und seitdem gehts.
Da irgendwie ein riesen Denkfehler drin.Bin grad im Büro, schreib mir mal ne PN heute nachmittag dann antworte ich heir nochmal mti dem script.
Nils