Hallo,
wie kann ich einen Trigger auf einen Zustandsübergang erstellen ?
Beispiel: Ein dummy Schalter kann die Zustände a,b,c,d annehmen. Jetzt möchte ich ein notify definieren, welches auf den Übergang a-> d reagiert. Ein weiteres notify soll auf b->d ein anderes Ereignis auslösen.
Bis jetzt hatte ich nur Trigger gesehen, die statisch auf das Eintreten des Zustands d reagieren. Unabhängig, welches der vorherige Zustand war.
VG,
Jolanda
Schau dir mal eher das Structure Modul an.
Grüße
Oder wenn a, b, c, d der state sind, dann kann man auch die funktion OldValue(,,<devicename>") nutzen. Siehe Perl Specials in der commandref fast ganz unten. Das geht dann nicht im trigger somdern mit if innerhalb des notify.
Ungefähr so:
defmod mynotify notify mydummy:b {
if(OldValue(,,$NAME") eq ,,a"){
...
}
}
Oder:
defmod mynotify notify mydummy:.* {
if(Value(,,$NAME") eq ,,b" && OldValue($NAME") eq ,,a") {
...
} elsif(...) {
}
}
Zitat von: Wuehler am 18 November 2017, 22:32:17
[...]
defmod mynotify notify mydummy:b {
if(OldValue(,,$NAME") eq ,,a"){
...
}
}
[...]
Achtung, Hochkomma (") sollte aus dem ASCII Zeichensatz stammen, sonst ist perl unfreundlich.