Hallo Leute
ich beise mir gerade die Zähne aus, ich habe einen Fenster Tür Kontakt mit On / Off Schaltung der auch beim Öffnen oder Schließen der Tür richtig reagiert lt. FEHMWeb Anzeige.
Er wird aber nur hin und wieder per DOIF ausgesen aber dann wieder eine Zeit lang überhapt nicht. Auch das LOG File mit verbose 5 gibt keine Fehler aus! Ich habe es auch schon mit einem notify probiert, das selbe Ergebnis.
Hier meine DOIF Zeile:
define HaustuerAufZu DOIF ([flur_Tuerglocke]:state) ({fhem("set Sonos_Wohnzimmer Speak 50 de |doorbell2|Haustür wurde bewegt");;;;fhem("set DM8k msg message 5 Haustür wurde bewegt!")})
Schon mal danke für eure Hilfe.
Benutze bitte Code-Tags. [flur_Tuerglocke]:state
die Syntax ist falsch ], siehe http://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung
Hi, stimmt danke,
ich habe es geändert ([flur_Tuerglocke:state]), ging einmal bei ON und beim zweiten mal bei OFF ?!?! jetzt bleibt er wieder stumm.
Da du nur ein DOIF und kein DOELSE oder DOELSEIF hast, bleibt dein DOIF bei cmd_1 stehen. Da kein cmd_2 kommt durch ein DOELSE oder DOELSEIF wird cmd_1 nicht mehr ausgeführt.
Wenn du möchtest, dass dein Gong jedesmal geht, wenn sich der Status deiner Türe ändert, musst du das Attribut "do always" setzen
attr <device> do always
oder wenn du möchtest dass der gong nur geht, wenn die tür auf oder zu geht dann so:
DOIF DOIF ([flur_Tuerglocke:state] eq "auf") ({fhem("set Sonos_Wohnzimmer Speak 50 de |doorbell2|Haustür wurde bewegt");;;;fhem("set DM8k msg message 5 Haustür wurde bewegt!")}) DOELSEIF ([flur_Tuerglocke:state] eq "zu")
nach dem DOELSEIF brauchst du nichts mehr zu schreiben, wenn nichts weiter geschehen soll. das ist in diesem Fall nur da, damit das DOIF auf cmd_2 switcht.
Zitat von: LarsMie am 02 Januar 2016, 22:01:51
Da du nur ein DOIF und kein DOELSE oder DOELSEIF hast, bleibt dein DOIF bei cmd_1 stehen. Da kein cmd_2 kommt durch ein DOELSE oder DOELSEIF wird cmd_1 nicht mehr ausgeführt.
Wenn du möchtest, dass dein Gong jedesmal geht, wenn sich der Status deiner Türe ändert, musst du das Attribut "do always" setzen
attr <device> do always
oder wenn du möchtest dass der gong nur geht, wenn die tür auf oder zu geht dann so:
DOIF DOIF ([flur_Tuerglocke:state] eq "auf") ({fhem("set Sonos_Wohnzimmer Speak 50 de |doorbell2|Haustür wurde bewegt");;;;fhem("set DM8k msg message 5 Haustür wurde bewegt!")}) DOELSEIF ([flur_Tuerglocke:state] eq "zu")
nach dem DOELSEIF brauchst du nichts mehr zu schreiben, wenn nichts weiter geschehen soll. das ist in diesem Fall nur da, damit das DOIF auf cmd_2 switcht.
Und man braucht nicht unnötig mit Perl fhem-Befehl hantieren.
DOIF DOIF ([flur_Tuerglocke:state] eq "auf")
(set Sonos_Wohnzimmer Speak 50 de |doorbell2|Haustür wurde bewegt, set DM8k msg message 5 Haustür wurde bewegt!)
DOELSEIF ([flur_Tuerglocke:state] eq "zu")
ist kürzer, übersichtlicher und weniger fehlerträchtig.
Gruß
Damian
Hallo und danke danke,
ich möchte nochmal einen Status geben. Ohne Pearl-Code gehts garnicht! Auch muss ich 'do always' einsetzen. Ich bin aber ermal zufrieden und nochmal Danke.
Achso DOIF kann ich nur hintereinander weg Alle Befehle schreiben, mit einrücken und / oder Kommentaren versehen bringt nur Fehlermeldungen und funktioniert nicht.
So funktioniert es:
DOIF ([flur_Tuerglocke:state] eq "auf") ({fhem("set Sonos_Wohnzimmer Speak 50 de |doorbell2|Haustür wurde bewegt");;;;fhem("set DM8k msg message 5 Haustür wurde bewegt!")}) DOELSEIF ([flur_Tuerglocke:state] eq "zu")
So nicht:
DOIF ([flur_Tuerglocke:state] eq "auf") ## eins
(set Sonos_Wohnzimmer Speak 50 de |doorbell2|Haustür wurde bewegt, set DM8k msg message 5 Haustür wurde bewegt!) ## zwei
DOELSEIF ([flur_Tuerglocke:state] eq "zu") ## drei
Danke
Zitat von: meisterpe am 03 Januar 2016, 13:26:12
So nicht:
DOIF ([flur_Tuerglocke:state] eq "auf") ## eins
(set Sonos_Wohnzimmer Speak 50 de |doorbell2|Haustür wurde bewegt, set DM8k msg message 5 Haustür wurde bewegt!) ## zwei
DOELSEIF ([flur_Tuerglocke:state] eq "zu") ## drei
Dann wär´s du der erste, bei dem es nicht geht ;)
Das musst du natürlich im DEF-Editor editieren und nicht in der cfg-Datei.
Okay, ich dachte wenn ich so schreibe wie bisher und am Ende " \ # das ist ein Koment.. ", natürlich ohne Anführungszeichen, würde es reichen. Ich muss gestehen das ich mit dem Def-Editor erst seit kurzem angefangen habe.
Danke und Gruß