The first thing I tried in HA was this:
- channel: 45
name: Panel 12
type: rgbww
channel_size: 16bit
But the result was not what I’d hoped for. When I looked at the entity state I got this:
dmx_channels: 45, 46, 47, 48, 49
dmx_values: 24576, 26624, 0, 47616, 47616
values: 132, 143, 0, 255, 255, 3824
bright: 186
It’s confusing. The dmx_values seem to be 16 bits, but ony five dmx_channels are assigned. DMX defines what’s at a single address to be only 8 bits wide so I had hoped to see dmx_channels from 45-54 assigned.
Is there a way to properly implement the D5-E in the released integration, or should I try the experimental branch?
Diving a little deeper, risking TL;DR,
Relating dmx_values: to values: and bright: confounds me as well. Each dmx_value ~ bright: * values:, but not exactly. I tried going +/-1 on each but still not an exact match.
It also looks like the architecture of having an overall fixture brightness setting and individual settings for r, g, b, ww, cw, as defined in the custom channel assignment feature, is kind of mixed in here as well. E.g. there are six values, but only five channels.
So while Chef-dr-IT’s comments are semantic, the semantics do matter because concepts seem to be getting mixed together in ways I can’t figure out. PyArtNet has a pretty orthogonal set of definitions but the current HACS integration dosen’t seem to be. It looks like the open-fixture-format defines things in a pretty orthogonal way.
That open-fixture-format schema seems to be pretty big. Parsing that (and capturing all the semantics) must have been a huge effort! Mapping this into how HA models light colors is a whole other challenge. From the point of view of an end-user it seems to make sense, but from a lighting engineering perspective, such as how to accomodate Chef-de-IT’s environmental and subjective calibration requirements, it seems to me that a “shadow” set of HA entities would be needed to be able to control the actual fixture knobs to do calibration.
So it seems like several layers of mapping may be needed to turn an end user setting into the actual DMX 8 bit settings:
user intent → fixture capabilities → fixture standalone calibration adjustments → characteristics of the environment the fixture is used in → fixture 8 bit DMX channel settings
I’m trying to get through the first two (and the last) step right now, just for the D5-E.