Hilfe bei Device Generalisierung

Begonnen von Kai-Alfonso, 02 März 2016, 20:21:46

Vorheriges Thema - Nächstes Thema

Kai-Alfonso

Hallo,

bräuchte mal Hilfe bei einem Doif mit Generalisierung.

DoIf sieht so aus:

(["^Sonos_Wohnzimmer:appeared"])
(set Sonos_Wohnzimmer_Play5 AddMember Sonos_Wohnzimmer_Play3)


Ich habe 2 Sonos Devices, die Sonos_Wohnzimmer_Play3 und Sonos_Wohnzimmer_Play5  heißen. Müßte dann ja auf "^Sonos_Wohnzimmer" matchen. Wenn jetzt Sonos_Wohnzimmer_Play3 oder Sonos_Wohnzimmer_Play5 den Event appeared meldet, soll ein AdaMember gemacht werden.  Irgendwie geht das aber nicht. Hab ich ein Denkfehler und wenn ja, wo? STATE des DOiFs bleibt auf    
initialized

Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Ellert

In der Syntax erkenne ich keinen Fehler.
Wie sehen die Events im Event-Monitor aus?
Ist FHEM/DOIF aktuell?
ggf.
update
shutdown restart


Hast Du schon mal eine andere Schreibweise probiert?
(["^Sonos_Wohnzimmer_Play(3|5)$:appeared"])
(["^Sonos_Wohnzimmer.*:appeared"])

Kai-Alfonso

Danke, nach einem shutdown restart ging es dann  :o - Update mache ich regelmäßig, deswegen denke ich, das ich auch die aktuelleste Doif Modul Version drauf hatte.
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

pc1246

Hallo
Ist es nicht so, dass ein DOIF erst von "initialized" wechselt, wenn einer der Trigger im DOIF ausgeloest wird? Mir kam das bisher immer so vor!
Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

Kai-Alfonso

Zitat von: pc1246 am 04 März 2016, 08:12:10
Hallo
Ist es nicht so, dass ein DOIF erst von "initialized" wechselt, wenn einer der Trigger im DOIF ausgeloest wird? Mir kam das bisher immer so vor!
Gruss Christoph

Moin,

jau, so hab ich das auch verstanden - komischerweise hat der Trigger wohl nie ausgelöst und deswegen blieb er im Status initialized. Nach einem shutdown restart (ohne Änderung des doifs) ging es dann plötzlich (also cmd1 wurde ausgeführt)
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Damian

Zitat von: Kai-Alfonso am 04 März 2016, 08:14:17
Moin,

jau, so hab ich das auch verstanden - komischerweise hat der Trigger wohl nie ausgelöst und deswegen blieb er im Status initialized. Nach einem shutdown restart (ohne Änderung des doifs) ging es dann plötzlich (also cmd1 wurde ausgeführt)

Wenn du bei jedem Trigger eine Ausführung wünschst, dann musst du das Attribut do always setzen, ansonsten wird immer nur einmal dein Kommando ausgeführt und dann erst wieder, wenn das Modul in einen anderen Zustand wechseln würde. Dieses Verhalten ist ausführlich in der Commandref des Moduls beschrieben.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Kai-Alfonso

Zitat von: Damian am 04 März 2016, 08:23:25
Wenn du bei jedem Trigger eine Ausführung wünschst, dann musst du das Attribut do always setzen, ansonsten wird immer nur einmal dein Kommando ausgeführt und dann erst wieder, wenn das Modul in einen anderen Zustand wechseln würde. Dieses Verhalten ist ausführlich in der Commandref des Moduls beschrieben.

Gruß

Damian

Hallo Damian,

erstmal Danke für das tolle Modul und die Weiterentwicklung - grade das mit der Generalisierung ist ziemlich cool. Do allways war übrigens gesetzt, aber wenn der Trigger aus irgenwelchen Gründen nicht eintrifft, macht er jetzt kein Do und auch kein do allways :D Übrigens, gibt es eigentlich Einschränkungen, wenn er das Doif x mal hintereinander triggert? Sehe das grade im Event-Monitor - oder kann ich das mit repeatsame einschränken? Oder versteh ich da repeatsame falsch?
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Damian

Zitat von: Kai-Alfonso am 04 März 2016, 08:37:02
Hallo Damian,

erstmal Danke für das tolle Modul und die Weiterentwicklung - grade das mit der Generalisierung ist ziemlich cool. Do allways war übrigens gesetzt, aber wenn der Trigger aus irgenwelchen Gründen nicht eintrifft, macht er jetzt kein Do und auch kein do allways :D Übrigens, gibt es eigentlich Einschränkungen, wenn er das Doif x mal hintereinander triggert? Sehe das grade im Event-Monitor - oder kann ich das mit repeatsame einschränken? Oder versteh ich da repeatsame falsch?

repeatsame bedeutet maximale Anzahl der Ausführungen bis der Zustand wechselt, hier wahrscheinlich eher ungünstig, weil du keinen Zustandswechsel hast.

Sonst kannst du cmdpause verwenden, wenn du eine Wiederholung innerhalb einer bestimmen Zeitspanne verhindern willst.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Kai-Alfonso

Danke, das probiere ich mal aus...Wunder mich grade, wieso das Doif auch triggert, wenn die Sonos aus sind. Aber das war leicht - hatte appeared nicht mit ^ escaped und appered steht auch in disappeared drin :D
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Ellert

Zitat von: Kai-Alfonso am 04 März 2016, 08:03:49
Danke, nach einem shutdown restart ging es dann  :o - Update mache ich regelmäßig, deswegen denke ich, das ich auch die aktuelleste Doif Modul Version drauf hatte.

Nur "update" reicht nicht, nach einem Update wird meistens folgendes angezeigt und ins Logfile geschrieben: "update finished, "shutdown restart" is needed to activate the changes."

Damit das nicht vergessen wird könntest Du ein notify einrichten, das auf global:UPDATE triggert und shutdown restart ausführt.

define fhem_update notify global:UPDATE shutdown restart

Kai-Alfonso

Guten Morgen,

hab hier noch so einen Fall, der mit Generalisierung nicht geht:

(v ne "PLAYING")
({
my @member = SONOSPLAYER_GetSlavePlayerNames("$DEVICE");;
foreach my $player (@member) {fhem("set steckdose.$player off");;}
fhem("set steckdose.$DEVICE off");;



Wie oben geschrieben heißen meine Sonos im WZ Sonos_Wohnzimmer_Play3 und Sonos_Wohnzimmer_Play5. Änder ich den Trigger nach [Sonos_Wohnzimmer_Play3:transportState] oder [Sonos_Wohnzimmer_Play5:transportState] ab, dann geht es

@Ellert

Update und shutdown restart habe ich gemacht, aber danke für Deinen Tipp - ist ne gute Hilfe.

Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)