-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Description
Expected Behavior
For devices of type Extended color light
which report "modes": ["ct", "hs", "xy"]
and have valid ctmin
, ctmax
, and colorcapabilities
, the color_temperature
channel should be exposed automatically as part of the discovered Thing and a new channel brighness_ct
should be created in the deCONZ binding.
Channel Behavior
The device (GLEDOPTO GL-C-007P
) reports:
{
"capabilities": {
"alerts": [
"none",
"select",
"lselect"
],
"color": {
"ct": {
"max": 500,
"min": 158
},
"effects": [
"none",
"colorloop"
],
"modes": [
"ct",
"hs",
"xy"
]
},
"sleeper": false
},
"colorcapabilities": 31,
"config": {
"groups": [
"0",
"1",
"2"
]
},
"ctmax": 500,
"ctmin": 158,
"ddf_hash": null,
"ddf_policy": "latest_prefer_stable",
"etag": "637a44b303a511d5b9279d5e01688d3d",
"hascolor": true,
"lastannounced": null,
"lastseen": "2025-03-29T09:22Z",
"manufacturername": "GLEDOPTO",
"modelid": "GL-C-007P",
"name": "Led Corridoio Notte",
"nwkaddress": 7671,
"state": {
"alert": "none",
"bri": 254,
"colormode": "hs",
"ct": 363,
"effect": "none",
"hue": 0,
"on": true,
"reachable": true,
"sat": 254,
"xy": [0, 0]
},
"swversion": "20241206",
"type": "Extended color light",
"uniqueid": "a4:c1:38:89:fb:f3:c5:a3-0b"
}
The generated Thing (via inbox discovery) has these code:
UID: deconz:extendedcolorlight:000000000000:a4c13889fbf3c5a30b
label: Phoscon Led Corridoio Notte
thingTypeUID: deconz:extendedcolorlight
configuration:
lastSeenPolling: 1440
id: "11"
bridgeUID: deconz:deconz:000000000000
location: Corridoio Notte
channels:
- id: color
channelTypeUID: system:color
label: Color
description: Controls the color of the light
configuration: {}
- id: color_temperature
channelTypeUID: system:color-temperature-abs
label: Color Temperature
description: Controls the color temperature of the light in Kelvin
configuration: {}
- id: ontime
channelTypeUID: deconz:ontime
label: On Time
description: Time that the light stays on before switched off automatically (0=forever)
configuration: {}
- id: alert
channelTypeUID: deconz:alert
label: Alert
configuration: {}
- id: effect
channelTypeUID: deconz:effect
label: Effect Channel
configuration: {}
- id: last_seen
channelTypeUID: deconz:last_seen
label: Last Seen
description: The date and time when the sensor was last seen.
configuration: {}
the UI has these channels:
color
ontime
alert
effect
last_seen
But the expected color_temperature
channel is missing, even though:
- The device is in
colormode: "ct"
at discovery time - The capabilities clearly advertise support for
ct
Creating a Number
item manually linked to ...:color_temperature
does work, and returns Kelvin values correctly converted from the reported CT (e.g., ct: 363
→ 2755 K
). This confirms that the channel backend exists but is not exposed via UI or inbox Thing definition.
Brighness Behavior
Even if the hidden color_temperature channel works, the brightness control is not behaving correctly.
deConz API exposes two different values of state.bri
depending of state.colormode
.
If state.colormode : ct
the state.bri
report the brightness of the White channel (W), while in state.colormode : hs | xy
the brighness is referred to RGB channels.
This is working fine if you have a white lamp with temperature (no color), but if you have both RGB+CT, then the binding handles the RGB channell with brighness, CT with the hidden channel, but not the CT brightness.
The results is the brigthness value in Color, depends on the last action, if you change che color it is the right one, if you change the temperature it is the W channel brightness
Possible Solution
When object has CT and others channels, create a kind of Followup
between the two state.bri
:
- when brightness is changed in RGB channels:
{state.colormode: hs|xy, state.bri <value>}
a second command shold be executed to change the one in CT channels with the same value:
{state.colormode: ct, state.bri <value>}
and viceversa.
this maintain compatibility with HomeKit that has only one brightness for color and temperature
Steps to Reproduce (for Bugs)
- Create GLEDOPTO GL-C-007P or GL-G-004P in deCONZ/Phoscon
- Discover the Thing from OpenHAB inbox
- Observe that the channel
color_temperature
is missing - Link an item manually to the expected UID
...:color_temperature
and observe that it works correctly
Context
I'm trying to control both color and white brightness of the GL-C-007P or GL-G-004P via OpenHAB. The inability to access the color_temperature
channel from the UI complicates both automation and HomeKit integration.
Your Environment
- Version used: openHAB 4.3.3 (Main UI Commit 1cc0b830)
- Add-on: org.openhab.binding.deconz (latest from addons 4.3)
- Environment name and version: Java 17, DSM 7.2 (Synology)
- Operating System: Linux (Synology NAS)