Ich nutze userReadings mit:
userReadings myBatteryPercent { ReadingsVal($name,"batteryPercent",0) }
Obwohl sich der Wert in batteryPercent nicht ändert, wird ein Event im Userreading ausgelöst und dieses offenbar aktualisiert. Das stört natürlich das zugehörige DOIF.
Ich weiss auch nicht, ob die Ursache im AMAD-Modul zu suchen ist, aber irgendwo muss ich ja mit meiner Frage mal beginnen.
Frage also: Wie kann ich das verhindern? Es soll nur ein Event erzeugt werden, wenn sich batteryPercent wirklich ändert.
Falls ich hier falsch bin, frage ich natürlich woanders.
Danke im Voraus für Tipps und Verständnis.
Das userReadings triggert/reagiert auf alles, also egal welches Reading sich am zugehörigen Device ändert...
Dann wird auch das userReadings neu "berechnet"...
Entweder userReadings einschränken oder vielleicht hilft auch event-on-change-reading...
Kurz da nur Mobil grad...
Gruß, Joachim
ZitatDas userReadings triggert/reagiert auf alles, also egal welches Reading sich am zugehörigen Device ändert...
Vielen Dank, das wusste ich nicht. Hatte ich auch so nicht in der Beschreibung dazu rausgelesen. Ich werde das also anders lösen.
Es gibt in der commandref auch Beispiele mit "Trigger"...
https://fhem.de/commandref_DE.html#userReadings
Oder zum "Eindämmen" des durch das userReadings erzeugte Reading eben event-on-change-reading setzen...
Viel Erfolg, Joachim
userReadings myBatteryPercent:batteryPercent:.* { ReadingsVal($name,"batteryPercent",0) }
Auch wenn sich der Sinn dahinter mir nicht erstreckt.
Ich danke euch beiden sehr.
Ich habe das nun so mit Trigger angewendet. Das gefällt mir gut. So lässt man halt alle anderen Readings
ausser Acht.
Ich hatte ja selbst auch probiert und nur userReadings myBatteryPercent:batteryPercent.*, also ohne den 2. Doppelpunkt, probiert. Scheint zu funktionieren. Ich probier aber auch noch einmal mit dem 2. Doppelpunkt. Rein aus Interesse.
Ist ja eigenartig: Beide Schreibweisen funktionieren, mit und ohne Doppelpunkt vor .*
myBatteryPercent:batteryPercent:.* { ReadingsVal($name,"batteryPercent",0) }
myBatteryPercent:batteryPercent.* { ReadingsVal($name,"batteryPercent",0) }
Zitat von: Invers am 17 April 2019, 20:26:53
Ist ja eigenartig: Beide Schreibweisen funktionieren, mit und ohne Doppelpunkt vor .*
myBatteryPercent:batteryPercent:.* { ReadingsVal($name,"batteryPercent",0) }
myBatteryPercent:batteryPercent.* { ReadingsVal($name,"batteryPercent",0) }
Das ist nicht eigenartig sondern logisch bei einer RegEx dieser Art.
Ich kann das leider mangels tieferer Kenntnisse nicht nachvollziehen, glaube dir aber natürlich.
Ich hatte ja gesagt, dass ich es probiere und wollte nur über den Ausgang des Tests berichten.
Zitat von: Invers am 17 April 2019, 22:12:15
Ich kann das leider mangels tieferer Kenntnisse nicht nachvollziehen, glaube dir aber natürlich.
Ich hatte ja gesagt, dass ich es probiere und wollte nur über den Ausgang des Tests berichten.
Testen kannst Du es hier
https://regex101.com/
Unten Rechts findest Du noch eine kleine Quick Reference
Echt coole Sache. Bin begeistert. Danke.