[PATCH] - anstehendes sleep überschreibbar und abbrechbar machen

Begonnen von justme1968, 27 November 2015, 11:08:55

Vorheriges Thema - Nächstes Thema

justme1968

mit dem angehängten patch bekommt sleep einen zusätzlichen optionalen <id> parameter: sleep <timeout> [<id>] [quiet].

ein neues sleep mit gleicher <id> ersetzt ein eventuell vorhandenes sleep mit gleicher <id>.

das neue kommando cancel [<id>] kann die anstehenden sleeps auflisten und eine bestimmte <id> abbrechen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Bin noch nicht überzeugt, dass sowas notwendig ist, eine vergleichbare Funktionalitaet bietet at.
Wo brauchst du diese Moeglichkeit?
Sonstige Meinungen?

rapster

Zitat von: rudolfkoenig am 27 November 2015, 11:39:46
eine vergleichbare Funktionalitaet bietet at.
Sonstige Meinungen?
Find ich gut, auch wenn mir ad hoc "noch" nichts einfällt wo ich's einbauen würde, aber...

There's more than one way to do it
:)

Talkabout

Zitat von: rudolfkoenig am 27 November 2015, 11:39:46
Bin noch nicht überzeugt, dass sowas notwendig ist, eine vergleichbare Funktionalitaet bietet at.
Wo brauchst du diese Moeglichkeit?
Sonstige Meinungen?
Mich würde ebenfalls der Use Case interessieren, wo und wie man so etwas verwenden kann. Ich verwende sleep "nur" dafür, um Kommandos zeitversetzt abzuschicken, weil wenn ich alle hintereinander abschicke welche verschluckt werden.

Grundsätzlich ist die Idee nicht schlecht, da man damit mehr Kontrolle hat und vor allem die Möglichkeit, bereits abgesetzte Sleeps zu überschreiben/zu canceln.

Ich würde es vom Anwedungsfall abhängig machen, den uns Andre hoffentlich vorstellt :)

Gruss

justme1968

ich denke es gibt mehrere anwendungsfälle. meine gründe wären erst mal diese:                 
                                                                                             
- es ist kürzer hin zu schreiben als defmod <name> at ... und weniger problematisch was die anzahl der ; angeht.                           
                                                                                             
- es gibt zwar defmod um ein solches at zu erstellen oder zu ändern aber kein kommando mit dem es wieder gelöscht                         
  werden kann ohne das es eine meldung gibt falls es schon ausgelöst hat.                     
                                                                                             
- es ist ein baustein mit dem man einen watchdog bauen kann der für mehrere devices funktioniert.                                         
  define <xy> notify fenster.*:open sleep 600 watch-$NAME;; set alarm $NAME ist offen                                                     
  define <xz> notify fenster.*:closed cancel watch-$NAME quiet                               
                                                                                             
- ich bastle gerade an einem modul das events mit einer konfigurierbaren state machine verarbeitet.                                       
  eine art kombination aus notify, watchdog und sequence primär um mehrfach taster einfacher einzubinden.                                 
  auch hier lässt sich das sleep übersichtlicher hin schreiben als defmod und ich muss im modul nichts dafür einbauen.                     
                                                                                             
theoretisch gibt es auch noch die argumente das ein at ein neues device ist das potentiell mehr resourcen verbraucht oder das man das sleep ja auch entfernen kann da es das at gibt :) aber das lassen wir mal. das ist bei einer hand voll devices vermutlich eher akademisch.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

cancel hat nicht funktioniert, habs gefixt, und quiet in der Doku erwaehnt.

Und danach habe ich es eingecheckt.

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

immi

Zitat von: justme1968 am 27 November 2015, 14:28:01
- ich bastle gerade an einem modul das events mit einer konfigurierbaren state machine verarbeitet.                       eine art kombination aus notify, watchdog und sequence primär um mehrfach taster einfacher einzubinden.
nice!!
FYI: there was in the forum the idea to port some element of Blockly, instead of a pure state machine
https://developers.google.com/blockly/custom-blocks/overview
http://forum.fhem.de/index.php/topic,41925.msg342074.html#msg342074

immi

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968