Hauptmenü

Problem mit Toggle

Begonnen von fhainz, 01 Juni 2013, 19:14:04

Vorheriges Thema - Nächstes Thema

fhainz

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

Zrrronggg!

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.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

fhainz

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

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

fhainz

Das hab ich vorher schon versucht. Hat leider aucht nicht geklappt.

Zrrronggg!

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.

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

fhainz

Ah die Klammer. Auf das hätte ich selber auch kommen können. Jetzt funktionierts!
Danke!!!

Zrrronggg!

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL