notify Übergang

Begonnen von jolanda-anne, 18 November 2017, 22:24:59

Vorheriges Thema - Nächstes Thema

jolanda-anne

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

Esjay

Schau dir mal eher das Structure Modul an.
Grüße

Wuehler

#2
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(...) {
  }
}

rudolfkoenig

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.