NEWS
Zählerstand auswerten - Triggerfehler
-
Zur Grundkonfiguration:
Ich habe auf einem D1 Mini (ESP8266) Tasmota installiert und am D7 den "Counter" eingstellt.
Zusätzlich habe ich den "counterDebounce" auf 30 eingestellt.
Angeschlossen habe ich daran dann den S0 von meinem Strom-Zwischenzähler.
Das läuft auch soweit super und jeder Impuls vom Zähler wird erkannt und der Counter in Tasmota zählt den angezeigten Wert immer um 1 pro Impuls höher: 1,2,3,4,5,6,..... usw.
Der Wert vom Counter wird dann per Mqtt zum ioBroker übertragen.Zusätzlich habe ich in den Objekten noch ein Objekt "Zählerstand" erzeugt, um dort meinen Zählerstand dann abzubilden.
Da der Zähler alle 4 Impulse den Wert um 0,01 erhöht, habe ich mir zur Berechnung dieses Blockly erstellt:
Hier wird mir dann der unter "Zählerstand" eingetragene Wert um 0,0025 pro Impuls erhöht.
Das läuft auch soweit richtig, solange die Impulse langsam kommen.
Wird aber Leistung abgefragt und die Impulse kommen schneller, zählt der Counter in Tasmota zwar diese Impulse entsprechend hoch, Es wird aber nicht "impulsgenau" der Wert unter "COUNTER_C1" erhöht.
Je nachdem wie schnell übertragen wird, kann der Wert hier dann auch um ein paar Stellen springen.
Da ich derzeit nur die "Änderung" hier trigger, kommt es dann zu falschen Werten beim Zählerstand.Jetzt war meine Überlegung schon dahingehend, dass man den Wert unter "Counter_C1" auswertet.
Aber irgendwie stehe ich da auf dem Schlauch, wie man das in Blockly abbilden kann.
Am schönsten wäre ja eine Auswertung, bei der er dann erkennt, dass es 4 Impulse waren und dann der Zählerstand um 0,01 erhöht wird.
Hat jemand von euch da eine Idee wie man das hier auswerten könnte? -
Versuche es mal so:
Unmittelbar vor Skriptstart den abgelesenen Zählerstand manuell eintragen.
-
@lotharf sagte in Zählerstand auswerten - Triggerfehler:
Hier wird mir dann der unter "Zählerstand" eingetragene Wert um 0,0025 pro Impuls erhöht.
Ich würde einfach einen Alias anlegen, welcher
val * 0.0025
rechnet. Ganz ohne JavaScript-Adapter. -
@haus-automatisierung sagte: Alias anlegen, welcher val * 0.0025 rechnet.
Man müsste noch einen Anfangszählerstand berücksichtigen. Außerdem kann der Tasmota-Zähler überlaufen - wieder bei 0 beginnend.
-
@lotharf sagte: Idee wie man das hier auswerten könnte?
-
@paul53
Das stimmt. Da hatte ich das ganze per ESP-Easy versucht. Das klappte nicht so die Differenz zum Zählerstand war immer riesig. Egal was ich eingestellt hab.
Nun hab ich mir das mit Tasmota aufgebaut und kann die Impulse auch richtig zählen.
Dein Blockly läuft nun durchgehend hier und er hat bis auf eine kleine Differenz das richtig schön gezählt.
Nur wenn ordentlich Last anliegt, werden wohl ein paar Impulse mal verschluckt.
Da passt mein eingestellter Debounce woh noch nich so ganz perfekt