Hi,
ich habe für die Experten hier eine ganz einfache Frage...
Ich habe eine IR WIFI Lesekopf für den Stromzähler mit Tasmota...
funktioniert alles....
Ich habe ein MQTT2 Device und folgendes Reading "STROM_Pges"
Ich möchte das der Wert nur aktualisiert wird wenn Größer NULL (0)
das Gerät schickt ab und an 0-Werte und dann kommt das Statistics-Modul durcheinander...
und ich erhalte dann Minus-Werte für die "Last-Werte"...
Wer kann mir sagen wie ich das verhindern kann?
DANKE
Bestimmt nicht die optimale Lösung, aber eine simple Möglichkeit, mein ich, könnte event-on-change-reading mit der Angabe einer Schwelle sein ?
Sowas wie STROM_Pges:0.01
könnt ich mir vorstellen oder noch kleiner, irgendeinen Wert halt von dem auszugehen ist das er immer kleiner ist wie der der vom Lesekopf gesendet wird.
Gruß
Thomas
danke... aber verstehe ich nicht ganz...
0.01??? der lesekopf scheint (z.b. nach neustart) mal 0 zu schicken... 0 ist ja kleiner als 0.01
oder meinst du 0.01 zu setzen... weil wenn 0 kommt... event-on-change nicht aufgerufen wird... und somit die "Stats" Werte nicht neuberechnet werden?
Zitat von: commandrefevent-on-change-reading
Dieses Attribut enthält eine durch Kommata getrennte Liste von "readings". Wenn gesetzt, erzeugen nur Veränderungen der gelisteten "readings" ein Ereignis. Wenn die aktualiserten Werte der gelisteten "readings" identisch sind, wird kein Ereignis generiert.
Wenn hinter dem Namen eines "readings" eine :Schwelle angegeben ist, wird das Event nur getriggert wenn die Änderung grösser als diese Schwelle ist.
Klarer ? Oder steh ich auf dem Schlauch ?
ZitatKlarer ? Oder steh ich auf dem Schlauch ?
Schlauch... ;)
Zitatwenn die Änderung grösser als diese Schwelle ist.
Mit gesetztem event-on-change-reading MUSS sich der Wert ÄNDERN, damit ein Event durchkommt. Die schwelle gibt an, wie groß diese Änderung sein muss. Es verhindert aber keinen 0-Wert, denn z.B. alter Wert 0.2, neuer Wert 0. Bei einer Schwelle 0.1 wäre die Änderung größer als die Schwelle, also geht diese Änderung als Event durch.
Um das Problem zu lösen könnte ich mir ein userReadings vorstellen, welche nur Werte ungleich 0 in ein neues Reading schreibt, das dann das Statistics-Modul triggert.
Gruß
Sany
Perl-Vorverarbeitung in der readingList? Kommt das als Klartext oder JSON-verpackt...?
Hi,
ich denke es wird nur mit UserReading funktionieren oder?
Habe mal fix folgendes gemacht
UserReading: CurCounterVal {if(ReadingsVal($name,"STROM_Pges",0) > 0) {return ReadingsVal($name,"STROM_Pges",0)}}
das sollte ja dann, wenn der Wert von Strom_Pges... was vom Lesekopf per MQTT kommt...
größer 0 ist das UserReading mit dem Namen CurCounterVal setzten oder habe ich was übersehen?
Damit kann ich dann das StatisticsModul füttern, oder?
Zitat von: mkraus81 am 30 Januar 2022, 14:45:12
Hi,
ich denke es wird nur mit UserReading funktionieren oder?
Nö! Mal im wiki "Schritt für Schritt" suchen.
@Beta-User
wenn ich da was gefunden hätte, was mir weitergeholfen hätte... würde ich dann fragen?
Zum einen: hier steht nicht, was du gefunden hättest, dann fehlt ein list, und dann ist mobiles coden auch noch keine Freude...Vielleicht Jann jemand anderes daraus eine Langversion machen...
es gibt ja immer viele Wege, die nach Rom führen...
vor dem userReadings wäre Beta-Users Lösung natürlcih besser: direkt da, wo die Daten herkommen, es entsprechend einrichten.
Noch besser wäre allerdings eine Lösung, die gleich die richtigen Daten liefert. Ich habe auch einen IR-Lesekopf am Zähler, zusammen mit einem ESP8266, allerdings nicht mit Tasmota sondern mit:
https://github.com/mruettgers/SMLReader (https://github.com/mruettgers/SMLReader)
der liefert ordenlich Daten, keine Nullen.
Nochmal zurück zu userReadings:
es fehlt ein Trigger, bzw. würde das Reading bei JEDEM Event Deines Devices gerechnet. Eher so:
Zitatattr <deinDevice> userReadings CurCounterVal:STROM_Pges.* {if(ReadingsVal($name,"STROM_Pges",0) > 0) {return ReadingsVal($name,"STROM_Pges",0)}}
(das in {} sieht für mich ok aus, geht vermutlich noch eleganter, hab ich nicht getestet.)
Gruß
Sany
DANKE
der Teil ":STROM_Pges.*"... den hatte ich nicht auf dem Schirm!
DANKE!
Sollte so mit dem User-Readings klappen, mal schauen ob die Stats nun sinnvolle Werte enthalten..