Bau mal ein sleep 0.001 vor dem FHEM Befehlen ein. Notify verhindert das erzeugen von events die das notify selbst auslösen.
Der Part aus der Doku dazu 8)
Zitatsetreading
setreading <devspec> <reading> <value>
Der Befehl setzt das Reading <reading> auf den Wert <value> ohne Signale an das betroffene Gerät zu senden, generiert aber Ereignisse und die übliche eventMap und stateFormat Umwandlung wird auch durchgeführt.
Siehe den Abschnitt über Geräte-Spezifikation für Details der <devspec> und die Beschreibung des set Befehls für Ersetzung.
Beispiel:
setreading lampe state on
Achtung: setreading generiert kein Event für ein Gerät X, falls es aus einem notify für Gerät X aufgerufen wurde. In so einem Fall könnte man auf "sleep 0.1; setreading X Y Z" ausweichen.
Außerdem gab es irgendwo noch eine Beschreibung zum FHEMWEB (habe ich gerade nicht parat) welcher Teil in der Oberfläche sofort aktualisiert wird und welcher Teil erst nach Refresh im Browser. Da gibt es Unterschiede!
Gruß Otto
Gigantisch, ich danke Euch !!!
Also, mein Versuch mit setreading war nix, wer lesen kann ist klar im Vorteil :D
fhem("set Log_write_EMA $text"); -> state wird aktualisiert, STATE erst nach Bildschirmrefresh und kein Logging im Filelog.
fhem("sleep 0.0001;set Log_write_EMA $text"); -> state wird aktualisiert, STATE erst nach Bildschirmrefresh aber das Logging im Filelog und in DbLog funktionieren.
Mein Ziel ist also erreicht, aber ich verstehe es nicht, da ich die fhem-Internas nicht kenne.
Funktionsablauf:
1. Ein Tür/Fensterkontakt geht auf "open" und triggert sein userReading pct:(trigger_cnt.*) {userReadings_20($name)}
2. In userReadings_20 wird eine Message in state eines Dummy geschrieben.
3. Der Dummy ist einem Filelog zugeordnet.
4. Ende
Also kein Loop nach
ZitatAchtung: setreading generiert kein Event für ein Gerät X, falls es aus einem notify für Gerät X aufgerufen wurde
und eigentlich auch kein notify, oder wird "userReading pct:(trigger_cnt.*)" intern als notify aufgelöst und ausgeführt? Die Funktion ist ja identisch zu einem notify.
Und was macht der sleep, außer der kurzen Wartezeit ?
spannend !
Also, vielen Dank an Euch, Ihr habt mir sehr geholfen !
Bernd