Mehrere Hue Lampen mit einem Schalter

Begonnen von LeoSum, 07 Februar 2015, 01:03:48

Vorheriges Thema - Nächstes Thema

LeoSum

Hallo zusammen,

Ich habe in meinem Wohnzimmer insgesamt vier Hue Birnen. Drei in einer Deckenlampe (Wohnzimmer_1, Wohnzimmer_2, Wohnzimmer_3) und eine in einer Stehlampe (Wohnzimmer_Stehlampe).
Dazu habe ich einen Homematic 2-Fach Wandtaster (http://www.fhemwiki.de/wiki/HM-PB-2-WM55_2fach-Funk-Wandtaster) (Schalter_Wohnzimmer_Tuer_1, Schalter_Wohnzimmer_Tuer_2) mit dem ich alle Lampen gleichzeitig schalte. Um möglichst viele Funktionen auf den einen Schalter zu legen, geschieht das ganze in Abhängigkeit des aktuellen Zustands der Lampen:

Lampen sind aus + Tap oben: Alle Lampen volle Helligkeit
Lampen sind an   + Tap oben: Alle Lampen wechseln bei jeder erneuten Betätigung zw. warmweiß und voller Helligkeit
Lampen sind aus + Tap unten: Alle Lampen niedrige Helligkeit warmweiß
Lampen sind an   + Tap unten: Alle Lampen aus

lang drücken oben: Alle Lampen dim up
lang drücken unten: Alle Lampen dim down

Das schalten von vier Lampen durch einen Schalter löse ich momentan dadurch, dass ich 4 Notifies für den gleichen Schalterdruck erstelle. Das ganze führt leider dazu, dass je nach Last auf dem Server teilweise Verzögerungen zwischen den einzelnen Lampen zu sehen sind und manchmal auch einzelne Lampen übersprungen werden.

Kann man das ganze irgendwie besser machen?
Mein Code sieht momentan so aus:

define Schalter_Wohnzimmer_Tuer_1_Notify notify Schalter_Wohnzimmer_Tuer_1:Short.* \
IF ([Wohnzimmer_1:onoff] == 0) \
(set Wohnzimmer_1 bri 254 : ct 340 : transitiontime 4)\
ELSE (\
IF ([Wohnzimmer_1:ct] == 340)\
(set Wohnzimmer_1 bri 254 : ct 500 : transitiontime 4)\
ELSE\
(set Wohnzimmer_1 bri 254 : ct 340 : transitiontime 4)\
)
define Schalter_Wohnzimmer_Tuer_2_Notify notify Schalter_Wohnzimmer_Tuer_2:Short.* \
IF ([Wohnzimmer_1:onoff] == 1) \
(set Wohnzimmer_1 off : transitiontime 4)\
ELSE \
(set Wohnzimmer_1 bri 100 : ct 500 : transitiontime 4)

define Schalter_Wohnzimmer_Tuer_1a_Notify notify Schalter_Wohnzimmer_Tuer_1:Short.* \
IF ([Wohnzimmer_2:onoff] == 0) \
(set Wohnzimmer_2 bri 254 : ct 340 : transitiontime 4)\
ELSE (\
IF ([Wohnzimmer_2:ct] == 340)\
(set Wohnzimmer_2 bri 254 : ct 500 : transitiontime 4)\
ELSE\
(set Wohnzimmer_2 bri 254 : ct 340 : transitiontime 4)\
)
define Schalter_Wohnzimmer_Tuer_2a_Notify notify Schalter_Wohnzimmer_Tuer_2:Short.* \
IF ([Wohnzimmer_2:onoff] == 1) \
(set Wohnzimmer_2 off : transitiontime 4)\
ELSE \
(set Wohnzimmer_2 bri 100 : ct 500 : transitiontime 4)

define Schalter_Wohnzimmer_Tuer_1b_Notify notify Schalter_Wohnzimmer_Tuer_1:Short.* \
IF ([Wohnzimmer_3:onoff] == 0) \
(set Wohnzimmer_3 bri 254 : ct 340 : transitiontime 4)\
ELSE (\
IF ([Wohnzimmer_3:ct] == 340)\
(set Wohnzimmer_3 bri 254 : ct 500 : transitiontime 4)\
ELSE\
(set Wohnzimmer_3 bri 100 : ct 500 : transitiontime 4)\
)
define Schalter_Wohnzimmer_Tuer_2b_Notify notify Schalter_Wohnzimmer_Tuer_2:Short.* \
IF ([Wohnzimmer_3:onoff] == 1) \
(set Wohnzimmer_3 off : transitiontime 4)\
ELSE \
(set Wohnzimmer_3 bri 100 : ct 500 : transitiontime 4)

define Schalter_Wohnzimmer_Tuer_1c_Notify notify Schalter_Wohnzimmer_Tuer_1:Short.* \
IF ([Wohnzimmer_Stehlampe:onoff] == 0) \
(set Wohnzimmer_Stehlampe bri 254 : ct 340 : transitiontime 4)\
ELSE (\
IF ([Wohnzimmer_Stehlampe:ct] == 340)\
(set Wohnzimmer_Stehlampe bri 254 : ct 500 : transitiontime 4)\
ELSE\
(set Wohnzimmer_Stehlampe bri 254 : ct 340 : transitiontime 4)\
)
define Schalter_Wohnzimmer_Tuer_2c_Notify notify Schalter_Wohnzimmer_Tuer_2:Short.* \
IF ([Wohnzimmer_Stehlampe:onoff] == 1) \
(set Wohnzimmer_Stehlampe off : transitiontime 4)\
ELSE \
(set Wohnzimmer_Stehlampe bri 100 : ct 500 : transitiontime 4)

define Schalter_Wohnzimmer_Tuer_1long_Notify notify Schalter_Wohnzimmer_Tuer_1:Long.* set Wohnzimmer_1 dimUp : transitiontime 3
define Schalter_Wohnzimmer_Tuer_2long_Notify notify Schalter_Wohnzimmer_Tuer_2:Long.* set Wohnzimmer_1 dimDown : transitiontime 3

define Schalter_Wohnzimmer_Tuer_1along_Notify notify Schalter_Wohnzimmer_Tuer_1:Long.* set Wohnzimmer_2 dimUp : transitiontime 3
define Schalter_Wohnzimmer_Tuer_2along_Notify notify Schalter_Wohnzimmer_Tuer_2:Long.* set Wohnzimmer_2 dimDown : transitiontime 3

define Schalter_Wohnzimmer_Tuer_1blong_Notify notify Schalter_Wohnzimmer_Tuer_1:Long.* set Wohnzimmer_3 dimUp : transitiontime 3
define Schalter_Wohnzimmer_Tuer_2blong_Notify notify Schalter_Wohnzimmer_Tuer_2:Long.* set Wohnzimmer_3 dimDown : transitiontime 3

define Schalter_Wohnzimmer_Tuer_1clong_Notify notify Schalter_Wohnzimmer_Tuer_1:Long.* set Wohnzimmer_Stehlampe dimUp : transitiontime 3
define Schalter_Wohnzimmer_Tuer_2clong_Notify notify Schalter_Wohnzimmer_Tuer_2:Long.* set Wohnzimmer_Stehlampe dimDown : transitiontime 3

der-Lolo

#1
Bitte poste hier im Forum keine ausschnitte aus der fhem.cfg - dir selbst würde ich auch empfehlen den DEF teil der notifys zu editieren und die finger von der fhem.cfg zu lassen.

Du setzt IF ein um zu schalten, IF trennt befehle durch komma, Du kannst also folgendes machen...

Zitat(set wonzimmer_1 blabla, set wohnzimmer_2 blabla, .....)

Du könntest auch DOIF benutzen, es würde ein bisschen übersichtlicher...

justme1968

alle Lampen die identisch geschaltet werden sollen kannst in eine hue gruppe stecken und dann aus fhem mit einem einzigen notify diese gruppe schalten.

du kannst auch eine LightScene dafür anlegen und diese schalten.

was unterm strich besser und schneller ist hängt von der anzahl der lampen ab.

du kannst auch versuchen im set zusätzlich delayedUpdate 2 zu setzen. dann werden erste alle kommandos abgeschickt bevor der status gepollt wird statt beides jeweils pro lampe nacheinander zu machen.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

LeoSum

Zitat von: der-Lolo am 07 Februar 2015, 08:36:30
Bitte poste hier im Forum keine ausschnitte aus der fhem.cfg - dir selbst würde ich auch empfehlen den DEF teil der notifys zu editieren und die finger von der fhem.cfg zu lassen.

Was spricht denn gegen das direkte editieren der fhem.cfg? Ich finde das ehrlich gesagt übersichtlicher, als mich durch die ganzen Menüs zu klicken, deren Aufbau ich nicht ganz nachvollziehen kann.

Ich habe bisher alles direkt in die cfg geschrieben was ich machen wollte. Wie ist denn das vorgesehene Vorgehn zum Einrichten und modifizieren von FHEM?

Zitat von: justme1968 am 07 Februar 2015, 09:28:59
alle Lampen die identisch geschaltet werden sollen kannst in eine hue gruppe stecken und dann aus fhem mit einem einzigen notify diese gruppe schalten.

du kannst auch eine LightScene dafür anlegen und diese schalten.

Wo lege ich LightScenes denn am besten an wenn nicht in der cfg?

Zitat von: justme1968 am 07 Februar 2015, 09:28:59du kannst auch versuchen im set zusätzlich delayedUpdate 2 zu setzen. dann werden erste alle kommandos abgeschickt bevor der status gepollt wird statt beides jeweils pro lampe nacheinander zu machen.
An welche Stelle kommt das "delayedUpdate 2"?

der-Lolo

Wenn du direkt in der cfg rumbastelst behaupte ich jetzt mal ganz frech das Du früher oder später probleme bekommst. Die Reihenfolge der definitionen und notifys ist wichtig, wenn man diese sachen über das eingabefeld oder über DEF auf der jeweiligen Detail seite macht übernimmt Fhem das für dich, genauso übernimmt fhemm für dich das doppeln von ; das / am ende von Zeilen.
Ausserdem gibt FHEM beim eintragen über die Befehlszeile immer direkt eine meldung wenn etwas falsch ist.
Einige setzen mittlerweile eine Datenbank als fhem.cfg ersatz ein.

Du bist natürlich dein eigener Herr und kannst machen was Du möchtest - aber lass dir gesagt sein, es gäbe deutlich weniger probleme wenn die fhem.cfg nich händisch manipuliert werden würde.

Der Codeschnipsel wie du ihn oben gepostet hast stellt halt ein problem dar wenn jemand nicht versteht das er direkt in die cfg gehört oder aus dieser herauskopiert wurde.

LeoSum

Ok, ich denke das verstehe ich. Danke für deine Ausführungen. Dann werde ich mir doch mal den Beginners Guide reinziehen um die richtige Vorgehensweise zu erlernen. Auf die schnelle konnte ich in den Menüstrukturen nicht herausfinden wo ich beispielsweise ein Notify anlege.

der-Lolo

einfach in die eingabezeile der FHEM oberfläche... sobald du enter drückst kommst du in den Detailscreen des frisch angelegten notifys...
im einsteiger pdf gibt es auch noch hinweise auf das arbeiten in der cfg, das ist nicht aktuell...