Hue color light won't set color

Hi,
i have some zigbee color bulbs and wanted to change the color from the nymea app.
The four predefined moods above the color temperature slider work. The color temperature slider works.

But the color chooser does not work at all. The color of the bulb would not change on any choosen color.

I checked with another zigbee app and the color can change.

Any suggestions?

Are you still using the hue plugin and connect to your self built bridge emulation or is this with experimental and the real nymea ZigBee plugin?

It is still the Hue emulation.

First guess would be an incompatibility in the color mode sent by nymea… Perhaps the emulation doesn’t take all the possibilities the real hue bridge does… But let’s see.

For a start, please enable hue logs in the debug interface (System Settings -> Dev tools -> debug interface -> logs)

Then set the color from the app and paste me the log. Perhaps we’ll directly see some error there. If not we’ll have to find out how to get some logs from the hue emulation too.

debug webpage returns 4040 not found
(i changed the webserver port to 81, now it is stuck at loading the page, localhost:81/debug)
(after a restart the page works)

don’t see any error in the log:

I | PhilipsHue: Discover bridge devices QHostAddress(“192.168.0.121”)
I | PhilipsHue: Found unknown sensor: “PHDL00”
I | PhilipsHue: Found unknown sensor: “lumi.remote.b186acn01”
I | PhilipsHue: Found unknown sensor: “lumi.remote.b186acn01”
I | PhilipsHue: Found unknown sensor: “lumi.remote.b186acn01”
I | PhilipsHue: Found unknown sensor: “TRADFRI remote control”
I | PhilipsHue: Found unknown sensor: “PHOSCON_FSM_FLAG”
I | PhilipsHue: Found unknown sensor: “lumi.remote.b186acn01”
W | Tado: Request error: 503 “Error transferring https://my.tado.com/api/v2/homes/58978/zones/1/state - server replied: Service Temporarily Unavailable”
I | PhilipsHue: Execute action QUuid("{90aaffe5-6a76-47d2-a14a-550f60390245}") ParamList (count:1)
0: Param(Id: “{90aaffe5-6a76-47d2-a14a-550f60390245}”, Value:QVariant(bool, false))
I | PhilipsHue: Create power request false
I | PhilipsHue: Execute action QUuid("{90aaffe5-6a76-47d2-a14a-550f60390245}") ParamList (count:1)
0: Param(Id: “{90aaffe5-6a76-47d2-a14a-550f60390245}”, Value:QVariant(bool, true))
I | PhilipsHue: Create power request true
W | Thing: “Kaffeemaschine”: Invalid value QVariant(QString, “”) for state “effect”. Not an accepted value. Possible values: (QVariant(QString, “none”), QVariant(QString, “color loop”)) (Discarding change)
W | Thing: “Aussenstecker”: Invalid value QVariant(QString, “”) for state “effect”. Not an accepted value. Possible values: (QVariant(QString, “none”), QVariant(QString, “color loop”)) (Discarding change)
W | Thing: “Unknown 8”: Invalid value QVariant(QString, “”) for state “effect”. Not an accepted value. Possible values: (QVariant(QString, “none”), QVariant(QString, “color loop”)) (Discarding change)
I | PhilipsHue: Execute action QUuid("{d25423e7-b924-4b20-80b6-77eecc65d089}") ParamList (count:1)
0: Param(Id: “{d25423e7-b924-4b20-80b6-77eecc65d089}”, Value:QVariant(QColor, QColor(ARGB 1, 0.235294, 0.411765, 1)))
I | PhilipsHue: Create color request QColor(ARGB 1, 0.235294, 0.411765, 1)
I | PhilipsHue: Execute action QUuid("{d25423e7-b924-4b20-80b6-77eecc65d089}") ParamList (count:1)
0: Param(Id: “{d25423e7-b924-4b20-80b6-77eecc65d089}”, Value:QVariant(QColor, QColor(ARGB 1, 0.258824, 0.203922, 1)))
I | PhilipsHue: Create color request QColor(ARGB 1, 0.258824, 0.203922, 1)
I | PhilipsHue: Execute action QUuid("{d25423e7-b924-4b20-80b6-77eecc65d089}") ParamList (count:1)
0: Param(Id: “{d25423e7-b924-4b20-80b6-77eecc65d089}”, Value:QVariant(QColor, QColor(ARGB 1, 0.270588, 0.2, 1)))
I | PhilipsHue: Create color request QColor(ARGB 1, 0.270588, 0.2, 1)
I | PhilipsHue: Execute action QUuid("{d25423e7-b924-4b20-80b6-77eecc65d089}") ParamList (count:1)
0: Param(Id: “{d25423e7-b924-4b20-80b6-77eecc65d089}”, Value:QVariant(QColor, QColor(ARGB 1, 0.286275, 0.196078, 1)))
I | PhilipsHue: Create color request QColor(ARGB 1, 0.286275, 0.196078, 1)
I | PhilipsHue: Execute action QUuid("{d25423e7-b924-4b20-80b6-77eecc65d089}") ParamList (count:1)
0: Param(Id: “{d25423e7-b924-4b20-80b6-77eecc65d089}”, Value:QVariant(QColor, QColor(ARGB 1, 1, 1, 0.345098)))
I | PhilipsHue: Create color request QColor(ARGB 1, 1, 1, 0.345098)
W | Thing: “Kaffeemaschine”: Invalid value QVariant(QString, “”) for state “effect”. Not an accepted value. Possible values: (QVariant(QString, “none”), QVariant(QString, “color loop”)) (Discarding change)
W | Thing: “Aussenstecker”: Invalid value QVariant(QString, “”) for state “effect”. Not an accepted value. Possible values: (QVariant(QString, “none”), QVariant(QString, “color loop”)) (Discarding change)
W | Thing: “Unknown 8”: Invalid value QVariant(QString, “”) for state “effect”. Not an accepted value. Possible values: (QVariant(QString, “none”), QVariant(QString, “color loop”)) (Discarding change)
W | Tado: Request error: 503 “Error transferring https://my.tado.com/api/v2/homes/58978/zones/1/state - server replied: Service Temporarily Unavailable”
I | PhilipsHue: Execute action QUuid("{90aaffe5-6a76-47d2-a14a-550f60390245}") ParamList (count:1)
0: Param(Id: “{90aaffe5-6a76-47d2-a14a-550f60390245}”, Value:QVariant(bool, false))
I | PhilipsHue: Create power request false

Indeed, no error message in here…

Now I’d say you try and get some debug output from the hue emulation.

FWIW, the call that nymea does is created here:

So it’ll be something like

PUT http://<ip>/api/<apikey>/lights/<lightId>/state

with a data payload of

{"hue": <hue>, "sat": <sat>, "on": true}

You’ll find the api key in one of the /etc/nymea/pluginconfig-…conf files.

This call works fine for a real hue bridge, but for some reason seems to fail for your emulation layer. The hue bridge accepts color values either by “hue/saturation”, by “xy” value or by “color temperature”.

My suspicion is that the emulation only implements xy and ct, but not hs.

This is the REST API: http://dresden-elektronik.github.io/deconz-rest-doc/lights/#setstate
All parameters are supported.

I don’t know what is different now but with all restarting of all systems the state change now works.

It seems that it is a bug in deCONZ with correct handling of hue/sat values.
OpenHAB and Phoscon (deCONZ) are sending xy values and this works as expected.

However with nymea sending hue/sat values the UI of Phoscon gets updates with the new color. But the bulb never changes to that color.

Hmm… that’s odd… So this seems to be a bug in deCONZ and should probably be fixed there… Now I suppose I could also change the nymea-plugin-philipshue to use xy values instead but not sure what other side effects that might have. It’s been a while but I vaguely remember there was a reason why we decided to go with “hs”.

I’ll see if I can find the time to do a test run with xy instead of hs and check if everything still works as expected.