FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: FHEMAN am 29 März 2016, 11:28:26

Titel: [gelöst] SET nur bei Statusänderung ausführen?
Beitrag von: FHEMAN am 29 März 2016, 11:28:26
Hallo zusammen,
ich möchte mittels

set Rollo_EG.* on

den Befehl nur dann ausführen, wenn das Rollo nicht on ist bzw. einen anderen Status aufweist. Andernfalls klackern unnötigerweise jedes Mal alle Rollo Aktoren. Muss ich mir dazu eine eigene Perl Funktion bauen (damit auf das gewohnte schlanke FHEM Set Kommando verzichten)? Oder gibt es hier etwas out-of-the-box?
Titel: Antw:SET nur bei Statusänderung ausführen?
Beitrag von: marvin78 am 29 März 2016, 11:32:09
Schau dir devspec und die Doku zu set in der commandref an. Stichwort FILTER
Titel: Antw:SET nur bei Statusänderung ausführen?
Beitrag von: CoolTux am 29 März 2016, 11:32:57
Hallo,

Suchworte im Wiki und der Commandref sind devspec und FILTER

Erst vor einer Woche habe ich hier im Forum genau sowas beantwortet. Eventuell findest Du es über die Suche mit den Wörtern oben.



Grüße
Titel: Antw:SET nur bei Statusänderung ausführen?
Beitrag von: CoolTux am 29 März 2016, 11:33:50
Na toll, 2 doofe ein Gedanke. Lach.

Guten Morgen Marvin
Titel: Antw:SET nur bei Statusänderung ausführen?
Beitrag von: errazzor am 29 März 2016, 11:47:27
Innerhalb eines DOIFs beispielsweise kannst Du doch auch noch den Status des Rollos abfragen und als Bedingung festlegen.

also z.b.

DOIF ((irgendeine Bedingung) and [?Rollo1] ne "on") (set Rollo1 on)
Titel: Antw:SET nur bei Statusänderung ausführen?
Beitrag von: FHEMAN am 29 März 2016, 12:04:49
Oh danke Euch, ich hatte nur innerhalb von SET gecommandreft.
Der Vollständigkeit halber: die Anforderung kann also elegant gelöst werden mittels
set Rollo_EG.*:FILTER=STATE!=on on

Und
set Rollo_EG1,Rollo_EG2:FILTER=STATE!=on on
bezieht sich dann (leider) nur auf Rollo_EG2, wenn ich das richtig verstehe?
Titel: Antw:SET nur bei Statusänderung ausführen?
Beitrag von: marvin78 am 29 März 2016, 13:13:51
Die Deviceliste ist die devspec und der Filter bezieht sich auf die gesamte devspec (wie in der commandref ausgeführt).
Titel: Antw:SET nur bei Statusänderung ausführen?
Beitrag von: FHEMAN am 29 März 2016, 13:26:52
Zitat von: marvin78 am 29 März 2016, 13:13:51
Die Deviceliste ist die devspec und der Filter bezieht sich auf die gesamte devspec (wie in der commandref ausgeführt).
Stimme Dir nach erneutem Lesen zu - den Ausdruck "Liste gefunden" hatte ich anders interpretiert.