ich baue gerade an meinen Szenen, dabei bin ich auf folgendes Problem gestoßen:
Ich habe bspw. einen Homematic Wandschalter für das Licht im Raum verbaut, und habe ein Skript welches meine Szenen für den Raum steuert. Neben wenigen definierten Szenen gibt es auch eine Automatik und Manuelle Szene (als Variable mit Profil). Befindet sich der Raum in Auto möchte ich gerne das bei einer manuellen Betätigung des Schalters an der Wand die Szene auf Manuell springt.
Prinzipiell kein Thema, funktioniert auch wenn ich das Skript mit einem Ereignis auf die „STATE“ Variable des Schalters verknüpfe. Nun schalte ich in der Automatik Szene aber u.U. auch das Licht über dieses Skript ein. Dann kommt mein Problem zum tragen, ich kann nämlich nicht unterscheiden ob ich Manuell oder über das Skript geschaltet habe.
Das Endresultat ist dann, dass nach dem Schalten aus dem Skript der Raum in die Manuelle Szene geht.
Kennt ihr eine Möglichkeit zwischen Skript und Manuellem schalten zu unterscheiden ?
Habe ich auch gesagt, $_IPS ist in meinem Fall aber leider identisch weil beides Mal die Variable triggert.
Ist auch logisch, weil das Skript per Ereignis auf die Änderung der STATE Variable des Wandschalters triggert. Somit ist dann immer der Absender der Wandschalter
Der Absender ist nicht der Schalter, sondern der Status des Aktors.
Du kannst bei HM nicht die interne Taste eines Aktoren getrennt verarbeiten.
Klar das wenn du in einem Script den Aktor schaltest, das Script dann wieder aufgerufen wird und wieder und wieder… Schöne Endlosschleife
Du kannst natürlich im Script vor dem Schalten das Ereignis deaktivieren… Aber ob das was hilft?
Michael
Ganz genau das ist mein Problem.
Das Deaktivieren bringt nichts, spätestens bei den Rolladenaktoren (die ja eine Zeit zum fahren brauchen) fällt mir das dort wieder vor die Füße
wie wäre es, wenn Du das Umschalten auf den manuellen Modus verhindert, indem du zwischenspeicherst, dass das Licht von der Automatik angeschalten wurde ?
Prinzip:
Automatik schaltet Licht und setzt Variable $m auf false
Script wird durch Änderung von STATE getiggert
Script wertet aus, das $m= false und setzt nicht den manuellen Modus. Zugleich setzt Script $m wieder auf true
Wird Schalter manuell betätig, ist $m= true und das Script schaltet auf manuell …