FHEM Forum

FHEM => Automatisierung => Thema gestartet von: jolanda-anne am 18 November 2017, 22:24:59

Titel: notify Übergang
Beitrag von: jolanda-anne am 18 November 2017, 22:24:59
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
Titel: Antw:notify Übergang
Beitrag von: Esjay am 18 November 2017, 22:29:01
Schau dir mal eher das Structure Modul an.
Grüße
Titel: Antw:notify Übergang
Beitrag von: Wuehler am 18 November 2017, 22:32:17
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(...) {
  }
}
Titel: Antw:notify Übergang
Beitrag von: rudolfkoenig am 19 November 2017, 09:50:09
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.