I have been recently going through a journey of trying to get OpenHab working with a range of Zigbee devices. I chose OpenHab as a first test because I like applications written in Java compared to Python.
I initially set up Zigbee2Mqtt but the devices were a pain to set up but after that kind of worked OK while having the ability to independently take data from Zigbee2MQTT into DB via Node Red for graphing certain environmental sensors.
What I ran into though was non integer values being sent to Zigbee2MQTT via the interface controls and basically causing things to crash. I spent ages on this without a solution, the question had already been asked but I could not see a viable solution.
To simplify a lot of things tried setting up the native Zigbee addon in OpenHab using an Ember controller. This seems to work well for small range of devices (just some Ikea and other unbranded lights) that I have tried to connect but I have hit a wall with an Ikea Tradfri Control which I thought would be a basic requirement and a bit of a show stopper if I cannot get it working successfully.
This IKEA control was detected as an unknown device but eventually after adding it as an unknown it came up with a single brightness control channel (and battery etc). From what I can see in the logs, the button just goes from 0 to 100 or 100 to 0. When doing the up and down brightness it just goes up or down by 20 or so. When it is turned off and on there is no state that is saved. This control via Zigbee2MQTT gave back a range of commands that you could then easily use in automatons. I can maybe work with this though, with an automation that turns off at 0 and on at 100. What is missing is the back and forth colour control option to change the light colours or from cool to warm and back.
So … my questions would be primarily is there some way to add other devices in the Zigbee Addon with examples on how to do them? This would be to define the back and forth control for warmth or colour values. Are there other controls that come back with commands or is it always values? Is there some way to get this control or others I might run into future recognised and running? I am happy to contribute and help add device definitions if that is possible but I am just not sure how to do it.
Hardware: Intel x86_64
OS: RHEL 8
Java Runtime Environment: OpenJDK 11
openHAB version: 3.2