MQTT color channel only allows one commandTopic. It restricts your device to handle on/off (power), color, and brightness in one topic. While in the OP’s case it is possible because it takes a JSON where you could put any of those in, the brightness being embedded in the HSB (or RGB for that matter) isn’t suitable, at least for my case, because my devices have a separate brightness, especially when the light is in white mode.
Basically the short conclusion of the above, is that it’s more versatile to just have separate channels for each of those things
- on/off (power)
- brightness (independent of color settings)
- color
- color temperature
This is also easier because you don’t have to use any transformations. The caveat is to program your device to match and communicate using simple data such as plain r,g,b instead of using JSON.
I just created my own esphome yaml configuration - isn’t that how everyone does it? What’s your device and what does your esphome yaml configuration look like?
I can create whatever mqtt topic structure / data I want with esphome and in my case I tried to make it simpler to work with openhab.