HUE - Effekte über FHEM anzeigen und steuern

Begonnen von Fabiango, 16 September 2024, 16:15:52

Vorheriges Thema - Nächstes Thema

Fabiango

Hallo zusammen,

ich habe verschiedene RGBW Kampen von HUE im Einsatz.
Diese lassen sich auch über FHEM steuern > ausser die Effekte welche in Zigbee2MQTT aktiviert werden können.

Hier stehe ich auf dem Schlauch.........
Wie kann ich die Effekte in FHEM anzeigen & aktivieren?

Danke für eure Hilfe.

Viele Grüsse, Fabian

passibe

Auf der zigbee2mqtt-"Devices"-Seite siehst du immer welche MQTT-Kommandos du schicken musst, um den jeweiligen Wert zu setzen. Beispielhaft für irgendein Hue-Leuchtmittel (musst du natürlich nach deinem suchen, auch wenn sich das vermutlich nicht groß unterscheidet): https://www.zigbee2mqtt.io/devices/9290011370B.html
Da siehst du unter "Exposes", dass es einen Eintrag für "Effect" gibt – so wie es dir auch in der Weboberfläche angezeigt wird.

Dort siehst du auch den Payload, den du schicken musst, also hier
To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"effect": NEW_VALUE}. The possible values are: blink, breathe, okay, channel_change, candle, finish_effect, stop_effect, stop_hue_effect.

Dann einfach in FHEM das setList-Attribut von deinem Device entsprechend anpassen. Da einfach an dem orientieren, was dort schon eingetragen ist, sollte einigermaßen selbsterklärend sein (oder nochmal bisschen googeln/hier im Forum suchen).

Fabiango

Hallo passibe,

danke für deine schnelle Antwort.
Soweit Leuchtet mir das auch ein, nur bin ich mit der Übersetzung in FHEM überfordert.

Bei meiner Lampe steht folgendes zu den Effekten:
Value will not be published in the state. It's not possible to read (/get) this value.
To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"effect": NEW_VALUE}.
The possible values are: blink, breathe, okay, channel_change, candle, fireplace, colorloop, finish_effect, stop_effect, stop_hue_effect.

In FHEM sieht mein SetList aktuell so aus:
on:noArg $DEVICETOPIC/set {"state":"ON"}
  off:noArg $DEVICETOPIC/set {"state":"OFF"}
  brightness:colorpicker,BRI,0,5,255 $DEVICETOPIC/set {"state":"on","$EVTPART0":$EVTPART1}
  ct:colorpicker,CT,154,2,500 $DEVICETOPIC/set {"color_temp":$EVTPART1}
  warm:noArg $DEVICETOPIC/set {"brightness": 120 , "color_temp": 320}
  white:noArg $DEVICETOPIC/set {"brightness": 120, "color_temp": 250}
  rgb:colorpicker,RGB {"$DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
  power_on_behavior:on,off,toggle,previous $DEVICETOPIC/set {"power_on_behavior": "$EVTPART1"}

Um welche drei Zeilen müsste ich dies ergänzen wenn ich die Effekte
candle  +  fireplace  +  colorloop   hinzufügen möchte ???


Hatte es mit den folgenden Einträgen versucht, aber leider schaltet hier nichts:
candle:noArg $DEVICETOPIC/set {"effect":"candle"}
fireplace:noArg $DEVICETOPIC/set {"effect":"fireplace"}
colorloop:noArg $DEVICETOPIC/set {"effect":"colorloop"}

passibe

Hmm, das sollte eigentlich schon so stimmen, wie du das machst.

Vielleicht mal einen "basic" Effekt wie blink oder okay probieren?
Kann auch sein, dass die Lampe einige der besonderen Effekte entgegen der Doku doch nicht richtig unterstützt oder da sonst irgendwas schiefläuft, da müsstest du mal ein bisschen rumgoogeln/in den GitHub Issues von zigbee2mqtt schauen, ob du fündig wirst.
Hab selbst leider keine Hue-Lampen, bei mir funktionieren aber jedenfalls diese blink und okay-Effekte bei fast allen anderen Lampen.

Damit du nicht für jeden Effekt einen eigenen Eintrag machen musst bietet sich übrigens auch Folgendes an:
effect:blink,breathe,okay,channel_change,candle,fireplace,colorloop,finish_effect,stop_effect,stop_hue_effect $DEVICETOPIC/set {"effect": "$EVTPART1"}

Fabiango

#4
Danke für das SetList.
Ist so natürlich etwas komfortabler und übersichtlicher - Super!

Auch der Hinweis mit dem Test von Okey oder Breath war Hilfreich.
Diese beiden Effekte funktionieren und somit auch die Funktionsweise.

Bei den Einzelnen Devices funktionieren ALLE Effekte.
Bei dem Gruppen Device (2 Lampen sind eine Gruppe) dort funktioniert nur Blink & Okey

Demnach liegt das Problem im Detail beim Gruppen Device
Das Problem schein bekannt zu sein:  Github Link

Vielleicht eine andere Idee:
Kann ich mir eventuell ein Dummy Device / Notify oder DOIF anlegen das die einzelnen Effekte an beide Einzel Devices sendet?
(Dummy = Schalte Lightbar 1 effekt blink & Schalte Lightbar 2 effekt blink)
Wie könnte ich das am einfachsten realisieren?

passibe

Ah perfekt. Dann mal hoffen, dass das bald gefixt wird.

Ich würde das über eine structure realisieren, also z.B.:
defmod hue_gruppe structure hue_lampen hue_lampe_1 hue_lampe_2 hue_lampe_nDann kannst du mit
set hue_gruppe effect xydie Effekte aktivieren. Falls das dann nicht alle Lampen übernehmen, weil wegen des Schwalls an Kommandos die Zigbee-Übertragung an die Lampen nicht mehr klappt, kannst du mitattr hue_gruppe async_delay 2 noch z.B. 2 Sekunden Verzögerung zwischen den einzelnen Befehlen einbauen, dann sollte es immer sauber laufen.

Fabiango

Das funktioniert ja wunderbar.

Das heisst ja eigentlich das ich gar keine Zigbee2MQTT Gruppen benötige sondern ein Gruppen Device mit dem Structure bauen könnte.

Danke für die wertvollen Hinweise.

Thema somit geschlossen und erfolgreich erledigt.

Viele Grüsse,
Fabian