Hallo!
Bin gerade dabei mir einen "HomeStatus" zu basteln. Der Status soll nur on (Zuhause) off (Abwesend) sein. Dazu hab ich einen Taster an der Eingangstüre der an einem S8M Eingangsmodul hängt.
Wenn ich on / off von fhem sende klappt alles wunderbar. Wenn ich aber den Taster betätige passiert nix. Es wird ein toggle gesendet. Deswegen hab ich das attribut comment Untoggle gesetzt, hab gedacht das würde reichen aber leider nein. ;) Hier mal mein Code:
define ZuHause FS20 e41b c4
attr ZuHause alias Zu Hause
attr ZuHause comment Untoggle
attr ZuHause devStateIcon .*off:HOME_Status.0 .*on:HOME_Status.1
attr ZuHause model fs20s8m
attr ZuHause room Wohnung
define Anwesend notify ZuHause:on set wzTV,wzDeckenfluter on;;set S4M_1A1 on-for-timer 2
define Abwesend notify ZuHause:off set room=Wohnzimmer off;;set room=Schlafzimmer off
In den Detail ändert sich State, das Symbol passt sich auch immer an. Nur das notify wurde nicht ausgeführt.
Kann mir jemand weiterhelfen?
Grüße
Ich habe noch nie Verstanden was dieses "untoggle" Attribute überhaupt macht. Es löst jedenfalls toggle Befehle nicht mystisch in "on" und "off" auf.
Der Sender sendet weiter toggle - wenn du nur eine Taste zum Umschalten nehmen willst geht das auch kaum anders - und daher werden diese hier:
define Anwesend notify ZuHause:on set wzTV,wzDeckenfluter on;;set S4M_1A1 on-for-timer 2
define Abwesend notify ZuHause:off set room=Wohnzimmer off;;set room=Schlafzimmer off
auch nicht getriggert.
Ich würde das so machen:
1. Aus ZuHause einen dummy machen und den S8M Schalter umbennen, etwa in ZuHauseTaster
2. Mit dem Taster befüllst du jetzt das dummy "ZuHause":
define ZuHauseTaster_auswerten notify ZuHause {if (Value("ZuHause") eq "on" { fhem("set ZuHause off") } else { fhem("set ZuHause on") } }
Deinen Code
define Anwesend notify ZuHause:on set wzTV,wzDeckenfluter on;;set S4M_1A1 on-for-timer 2
define Abwesend notify ZuHause:off set room=Wohnzimmer off;;set room=Schlafzimmer off
kannst dann weiterverwenden.
Dann kannst du mit einem Taster des S8M immer zwischen anwesend und abwesend hin und her schalten.
Hallo Zrrronggg!
Danke für deine Erklärung das bringt mich schon ein bisschen weiter.
Den S8M kann/will ich nicht umbenennen da noch andere Eingänge da rauf kommen. Ich hab einen Dummy ZuHausD angelegt und versucht dein Script umzusetzen. Aber leider wird noch nichtmal der dummy geschaltet. Anscheinend hab ich's doch noch nicht ganz geknissen ;) Könntest du nochmal auf meinen Code schauen?
define ZuHause FS20 e41b c4
attr ZuHause alias Zu Hause
attr ZuHause comment Untoggle
attr ZuHause devStateIcon .*off:HOME_Status.0 .*on:HOME_Status.1
attr ZuHause model fs20s8m
attr ZuHause room Wohnung
define ZuHauseD dummy
attr ZuHauseD room Wohnung
define ZuHauseTaster_auswerten notify ZuHauseD {if (Value("ZuHauseD") eq "on" { fhem("set ZuHauseD off") } else { fhem("set ZuHauseD on") } }
define Anwesend notify ZuHauseD:on set wzTV,wzDeckenfluter on;;set S4M_1A1 on-for-timer 2
define Abwesend notify ZuHauseD:off set room=Wohnzimmer off;;set room=Schlafzimmer off
Hallo,
hier
define ZuHauseTaster_auswerten notify ZuHauseD {if (Value("ZuHauseD") eq "on" { fhem("set ZuHauseD off") } else { fhem("set ZuHauseD on") } }
würde ich drauf tippen das das notify nicht anschlägt da du den Dummy auswerten willst und nicht den Taster.
define ZuHauseTaster_auswerten notify ZuHause {if (Value("ZuHauseD") eq "on" { fhem("set ZuHauseD off") } else { fhem("set ZuHauseD on") } }
dürfte eher passen.
Grüße
Das hab ich vorher schon versucht. Hat leider aucht nicht geklappt.
Zitatwürde ich drauf tippen das das notify nicht anschlägt da du den Dummy auswerten willst und nicht den Taster.
Exact.
ZitatDas hab ich vorher schon versucht. Hat leider aucht nicht geklappt.
Moment, ich sehe es mir noch mal an.
Ah, Klammer vergessen, sorry:
define ZuHauseTaster_auswerten notify ZuHause {if (Value("ZuHauseD") eq "on") { fhem("set ZuHauseD off") } else { fhem("set ZuHauseD on") } }
define Anwesend notify ZuHauseD:on set wzTV,wzDeckenfluter on;;set S4M_1A1 on-for-timer 2
define Abwesend notify ZuHauseD:off set room=Wohnzimmer off;;set room=Schlafzimmer off
So sollte es gehen.
Tipp: Offene Klammern in komplexeren Sachen ruhig mal durchzählen. Jede öffnende eines Typs +1, jede schliessende -1. Am Ende darf nix übrig bleiben ;-)
In meinen ersten (fehlerhaften) Schnellschuss
define ZuHauseTaster_auswerten notify ZuHause {if (Value("ZuHause") eq "on" { fhem("set ZuHause off") } else { fhem("set ZuHause on") } }
wird die normale "(" Klammer 4x aufgemacht, aber nur 3x zu... das kann schon nicht gehen. Das sollte aber im Logfile auch Fehlemeldungen geworfen haben.
Ah die Klammer. Auf das hätte ich selber auch kommen können. Jetzt funktionierts!
Danke!!!
u r fellkamm