HSB Colour + White channel in KNX: What's the "right" way?

Yes, exactly- that’s the idea.

I think both ways (separate explicit control for white channel as you implemented and a translation for the w-channel) are valid and needful. Especially, when using unbalanced stripes, you’d prefer the seperate explicite w-control, as rendered colors won’t match to the color picker. When using balanced stripes, you’d prefer the HSV conrol.

A little problem with the DPT 232.600 is, that it is clearly defined for RGB by KNX assoc. Interestingly, MDT uses this DPT also for HSV, which might be purely vendor specific- never seen this elsewhere. Maybe, because there’s no DPT defined for HSV by KNX assoc., yet.

So a modification in DPT 232.600 should be configurable between RGB and HSV mode.
Just my 2 cents

Unfortunately that is very difficult in the current code and clearly against the spec. I don’t understand how they got that certified.

Yes, that’s also what I’m wondering about, that this got certified. However, it’s on the market since a few years, now.

Of course: On KNX side, there’s no difference, whether you transmit the RGB color channels or HSV on DPT 232.600 - these all are 3 bytes.

The breaking feature in that case is the automatic HSB to RGB translation/encoding of openHAB.

So maybe, a good way to go might be the usage of DPT 251.600 with optional translation for the w-control.
I hope, there are some more opinions on that. Wondering anyways, that there’s no more activity/discussion on that…

Yes, but the conversion depends on the configured FPT. We could work around that by defining a „custom“ DPT like 232.601, but that might be breaking if the KNX sometimes decides to add a DPT with that number.

In my previous post I was thinking of keeping DPT 232.600 untouched and working with DPT 251.600, instead (6 byte RGBW). Because we can use 251.600 as defined by KNX Assoc. (remark: the MDT actuators support this DPT as well).

Just had a look to the datapoint definition document of KNX Assoc.: The DPT subtypes (like xxx.600 or xxx.001) are defined for the dimensions/units and especially the subtypes 600-999 are defined for lighting.
0-99 is for common use
1200-50999 are Reserved
60000 and greater are manufacturer specific

Idea:
We could use a manufacturer specific subtype, as MDTs way is manufacturer specific, from my point of view. This, of course, can still bring along the problem with collisions, when KNX Assoc. officially defines subtypes within that range. But having a collision with that subtype is less likely than using something between 600 and 999, i think. When we define e.g. 262.60000, this would be according to KNX spec. from my point of view. Although it’s not an officially defined DPT subtype.
Or the other idea: Just use the dimensionless maintype “262”

I tried and reduced thing definition to:

Type color : OG_WohZi_Li_RGB1				"LED Farbe Fernseher" 			[ hsb="251.600:11/3/141" ]

But still getting the same warning:

Configured DPT '251.600' is incompatible with accepted types '[class org.openhab.core.library.types.OnOffType, class org.openhab.core.library.types.HSBType, class org.openhab.core.library.types.PercentType, class org.openhab.core.library.types.IncreaseDecreaseType]' for channel 'knx:device:bridge:rgb:OG_WohZi_Li_RGB1'

Next step will be to setup a test installation from scratch, just to be sure…

(I’m using textual configuration files only, btw…)

I‘ll check with textual configuration, I never use that.

But you can probably ignore it, it should work even with the warning.

Edit: I do not unterstand that. I just tried:

Thing knx:device:b6d4524d58:rgb (knx:ip:b6d4524d58) {
    Type color: control        "Control Switch"        [ hsb="251.600:14/1/1" ]
}

I’m using the bridge configured via UI, but that should not matter. I don’t see any warning.

Is it working?

Bridge knx:ip:bridge 
	[ 
	ipAddress="192.168.1.15", 
	portNumber=3700,  
	localIp="192.168.1.24",
	type="TUNNEL"
	] 
	{

	Thing device rgb [] {
		Type color : OG_WohZi_Li_RGB1				"LED Farbe Fernseher" 			[ hsb="251.600:11/3/141" ]
		Type color : OG_WohZi_Li_RGB2				"LED Farbe Couch" 				[ hsb="232.600:11/3/131+<11/4/131", switch="1.001:1/0/132+<1/1/132", position="5.001:11/3/135+<11/4/135" ]
		Type color : OG_WohZi_Li_RGB3				"LED Farbe Ecke" 				[ hsb="232.600:11/3/181+<11/4/181", switch="1.001:1/0/182+<1/1/182", position="5.001:11/3/185+<11/4/185" ]
	}
   }

It’s not sending data to KNX. For reference, I included my bridge definition and other DPT 232.600 based thing-definitions, which are working fine.
I did not rebuild the environment, yet…

I rebuilt my test environment from scratch with clean definition files. As soon as i specifiy DPT 251.600 for the thing, I’m getting the warning and no data is sent to KNX through the channel…

I’ve no idea, where the problem is…

Edit: No matter, whether I configured via GUI or textual config-file.

Did you really check-in the correct version for download?

Can you check which version is really active (with list like above)? I downloaded the .kar a minute ago and it works. It should show 3.2.7.202110311549. If you dropped the new .kar while openHAB was not running, it might be that the old version ist still running. If that’s the case, feature:uninstall smarthomej-binding-knx and feature:install smarthomej-binding-knx.

Got it: For some reason the version i got for download was 3.2.7.202110310334
Now, I got the new version you mentioned and the warning has gone and OH is sending the 6 byte value :slight_smile:
But there’s a glitch in the encoding, from which I don’t know whether it’s an actuator issue or an KNX binding/encoding issue, as the colors are not set correctly with the colorpicker. As ETS also behaves somehow strange, it might be related to the MDT actuator: You set the last byte to $0E which gives wired results, as well when setting this in ETS. When setting the last byte to $0F, the colors set with ETS are correct. Unfortunately, the DPT 251.600 is not in my datapoint spec document, so I don’t know the correct specs…
I’ll do some more testing and investigation on that, assuming this is an actuator issue. Fortunately, we’re one step further :slight_smile:

Bytes 1-4: R - G - B - W
Byte 5: reserved
Byte 6: status, last four bits are validity of byte 1-4 R- G -B - W

0x0E → RGB valid, W not
0x0F → all valid (which is not the case)

Looks like another thing MDT is handling wrong. From my understanding setting the first three bytes and 0x0E should set RGB and ignore the W value.

I fully agree and that’s my understanding from playing around with ETS…

Can you give me details about the device (Type, HW version, firmware, application)? I‘ll contact MDT.

We could probably work around that by a generic „sendTelegram(DPT, data);“ action on the bridge and construct a full RGBW value in a rule, when either the color or white part changes. But that‘s another PR.

I have added 232.60000 for HSV (encoded in the same way as 232.600).

New Build:
I don’t think I’ll add a workaround for the wrong usage of 251.600. This should be fixed by MDT. As mentioned above, in a Follow-Up-PR I’ll add a rule action.

1 Like

Wow, great. I’ll test later this evening :slight_smile:
I’m with you, regarding the MDT actuator. I’ll spend some further investigations on this, because it’s hard to believe that there is such a bug, as this device is on the market for quite a while. I have several HW revisions of this actuator to take a closer look. Probably, it’s just screwed up, because of the testing and receiving wrong data types on its KO (had some other behaviour beside the color rendering, which i was wondering about). I’ll give the detailed information about the device to you, then (it’s a AKD-0424V.02, btw.).

I tried the new version, but I’m getting

Failed parsing channel configuration '232.60000:11/3/141+<11/4/141'

Thing configuration:

Thing knx:device:bridge:rgb (knx:ip:bridge) {
    Type color: OG_WohZi_Li_RGB1        "Control Switch"        [ hsb="232.60000:11/3/141+<11/4/141", switch="1.001:1/0/142+<1/1/142", position="5.001:11/3/145+<11/4/145" ]
}

The bundle version I got for download has 3.2.7.202111031719

Oops. I checked that the conversion is working, but not if the channel could be configured. Only 3 or 4 digit-Sub-Types were accepted during config-check.

The fix is in