Hallo zusammen,
ich habe für ein Device "Lampe" einen UserAttr "Zustand" definiert. Nun möchte ich mit Doif darauf triggern. [Device:Zustand] eq "aus"
funktioniert leider nicht. Wie geht es richtig?
Viele Grüße
Frank
Meinst Du wirklich Attribut oder nicht doch Reading.
Das ändern eines Attributes wirft ein globalen Event welcher Ausgewertet werden muss. Weiß nicht ob DOIF das so einfach kann.
Ich meine das Attribut, welches ich vorher mit "userattr Zustand:an,aus" definiert habe.
Leider kann ich in der DOIF Doku nichts zu Attributs Ereignissteuerung finden.
Ein Notify könnte so aussehen
defmod notify_Test notify global:ATTR.dummytest.Licht.on a b
Hier würde das Notify nur auf das setzen des Attributes Licht mit dem Wert on vom Device dummytest reagieren.
a b ist nur ein Platzhalter für den eigentlichen FHEM Befehl der dann passieren soll.
Hi,
Ich vermute hier liegt ein grundsätzliches Missverständnis vor. Ein Attribut ist eigentlich nicht dazu gedacht Ereignisse auszulösen. Dafür gibt es readings bzw. userreadings. Meine Empfehlung wäre daher das Konstrukt auf userreadings umzubauen und damit die Standard-Eventverarbeitung zu nutzen.
Grüße,
Oli
Ich habe userattr gewählt, da ich dann per Auswahlbox sehr schön einen Wert in der fhem-Oberfläche auswählen kann. Gibt es etwas vergleichbares bei den Readings?
Zitat von: Bastel-Frank am 20 Januar 2020, 14:19:47
Ich habe userattr gewählt, da ich dann per Auswahlbox sehr schön einen Wert in der fhem-Oberfläche auswählen kann. Gibt es etwas vergleichbares bei den Readings?
Bei dummies (ich glaube auch bei DOIF) kann man mit setList arbeiten, dann bekommst du das auch auf der Übersicht, nicht nur in der Detailansicht. Was genau willst du denn erreichen, also was ist das Gesamtszenario, das du abbilden möchtest?
Mein Szenario:
Ich möchte für eine schaltbare (mobile) Steckdose einen Modus einstellen, als was der Schalter gerade eingesetzt wird, z.B. "Weihnachten", "Bewässerung" oder "Aus". Dann soll das zugehörige DOIF darauf reagieren, dass ein globaler Wert z.B. Weihnachts_Modus sagt, dass alle Schalter die als "Modus = Weihnachten" konfiguriert sind, eingeschaltet werden sollen.
Zitat von: Bastel-Frank am 20 Januar 2020, 14:29:46
Mein Szenario:
Ich möchte für eine schaltbare (mobile) Steckdose einen Modus einstellen, als was der Schalter gerade eingesetzt wird, z.B. "Weihnachten", "Bewässerung" oder "Aus". Dann soll das zugehörige DOIF darauf reagieren, dass ein globaler Wert z.B. Weihnachts_Modus sagt, dass alle Schalter die als "Modus = Weihnachten" konfiguriert sind, eingeschaltet werden sollen.
Ich wiederhole nocheinmal in meinen Worten (damit ich das richtig verstehe): Du möchtest nicht, dass bei Änderung des Attributs eine AKtion ausgelöst wird, sondern du möchtest dir eine Automatisierung bauen, die bei Eintreten eines bestimmten Ereignisses (z.B. es ist Winter und wird dunkel) alle Geräte bei denen ein definiertes Attribut einen gewissen Wert hat (Weihnachten steht auf "an") geschaltet werden?
Ja, das ist richtig.
Dann brauchst Du das mit dem Attribut Event doch gar nicht. Benutze statt dessen FILTER
set Weihnachtsbeleuchtung=on:FILTER=state=off on
Geschalten werden alle Geräte auf on mit dem Attribut Weihnachtsbeleuchtung und den Wert des Attributes on und die state off haben
Zitat von: CoolTux am 20 Januar 2020, 14:47:22
Dann brauchst Du das mit dem Attribut Event doch gar nicht. Benutze statt dessen FILTER
set Weihnachtsbeleuchtung=on:FILTER=state=off on
Geschalten werden alle Geräte auf on mit dem Attribut Weihnachtsbeleuchtung und den Wert des Attributes on und die state off haben
Auch eine sehr schöne Lösungsmöglichkeit, wäre ich nicht drauf gekommen :)
Umgesetzt, funktioniert. Vielen Dank für den Tipp ;D.