FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Cyber1000 am 04 Dezember 2018, 21:25:21

Titel: Gelöst: fhem "setreading $NAME" löst ein event aus, schreibt keinen Logeintrag
Beitrag von: Cyber1000 am 04 Dezember 2018, 21:25:21
Ich habe ein seltsames Problem mit einem notify und einem Filelog.

Ich habe einen Dummy: runningState setzt sich abhängig von state, der Einfachheit halber hab ich das device hier aufs relevante zusammengekürzt:

defmod dev_Waschmaschine_neu dummy
attr dev_Waschmaschine_neu userattr device
attr dev_Waschmaschine_neu device Waschmaschine
attr dev_Waschmaschine_neu event-on-change-reading runningState
attr dev_Waschmaschine_neu event-on-update-reading energyLast
attr dev_Waschmaschine_neu userReadings runningState { return ReadingsVal("dev_Waschmaschine_neu", "state","") }, energyLast


Ändert sich der running-state auf done, so triggered ein notify und setzt energyLast (auch vereinfacht, aber genau so hab ichs auch probiert):

.*dev_.*runningState.*:.*done.* {
   fhem("setreading dev_Waschmaschine_neu energyLast 3.567");
}


Das Device innerhalb des notifies ist das oben angegebene (also das gleiche, das das notify auslöst, ich hätte hier auch "setreading $NAME ..." schreiben können)

energyLast ist anschließend richtig beschrieben, es wird sogar folgendes Event ausgelöst (eventmonitor):
2018-12-04 21:00:36 dummy dev_Waschmaschine_neu energyLast: 3.567

Aber im Log wird nur runningState erfasst. energyLast seh ich dort nicht.
Mach ich direkt im fhem in der Commandozeile das gleiche "setreading dev_Waschmaschine_neu energyLast 3.567" hab ichs auch im Log (egal wie oft ich es ausführe), also sollte das log eigentlich auch richtig gesetzt sein. Macht fhem("setreading dev_Waschmaschine_neu energyLast 3.567") innerhalb eines notifies irgendwas spezielles? Im allgemeinen Log seh ich auch keinen Fehler.

Mein Log File sieht folgendermaßen aus:

defmod l_FileLog_Waschmaschine FileLog ./log/exp_FileLog_Waschmaschine.log dev_Waschmaschine_neu
attr l_FileLog_Waschmaschine ignoreRegexp .*(onOffState|runningState).*


fhem Version ist relativ neu upgedatet (17846, fhem.pl vom 18.11.2018)

Danke!
Titel: Antw:fhem "setreading $NAME" löst zwar ein event aus, aber schreibt keinen Logeintrag
Beitrag von: Otto123 am 04 Dezember 2018, 21:36:04
Erklärung steht hier:
https://commandref.fhem.de/commandref_DE.html#setreading
Titel: Antw:fhem "setreading $NAME" löst zwar ein event aus, aber schreibt keinen Logeintrag
Beitrag von: Cyber1000 am 04 Dezember 2018, 22:00:53
Ah Mist den Wald vor lauter Bäumen nicht gesehn, dabei hätt ich nur bei setreading nachsehn müssen, ich hab mich zu sehr aufs notify vergraben.

Und die 0.1s reichen vermutlich weil laut commandref
Zitatsleep gefolgt von weiteren Befehlen ist vergleichbar mit einem namenlosen at Kommando
, also vermutlich wird das Kommando dann aus dem aktuellen Ablauf/Thread des notifies rausgezogen.

Kann man das so sagen? Oder kanns auch mal sein, dass 0.1s zu wenig sind?
Titel: Antw:fhem "setreading $NAME" löst zwar ein event aus, aber schreibt keinen Logeintrag
Beitrag von: Otto123 am 04 Dezember 2018, 22:07:33
ich denke man kann es so sagen.  ;) 0.1 s sind ok.
Titel: Antw:fhem "setreading $NAME" löst zwar ein event aus, aber schreibt keinen Logeintrag
Beitrag von: dev0 am 05 Dezember 2018, 16:38:14
Selbst 0 sollte mit einer aktuellen FHEM Version funktionieren...
Titel: Antw:Gelöst: fhem "setreading $NAME" löst ein event aus, schreibt keinen Logeintrag
Beitrag von: Cyber1000 am 12 Dezember 2018, 20:47:11
Ok danke, dann ist das vermutlich nur da, um nicht unbewußt eine Art Endlosschleife einzubauen. Hab jetzt an allen gewünschten Stellen die 0.1s gesetzt und seither noch keine Probleme damit.

Danke!