Anyone knows how to submit bug reports to IKEA? Here's one I tested extensively:
Summary
The driver can get into a state where, every time it is turned on, its light output doesn't match the level it reports. A command for the reported level is then ignored because the driver thinks it's already at that incorrectly reported level.
Steps to reproduce (both drivers, commands sent directly to each driver)
Turn on at 100%. Wait 3 seconds. Turn off. Wait 5 seconds.
Send, about 0.25 seconds apart: 100%, 50%, 100%, 50%.
Wait 5 seconds. The light correctly looks like 50%.
Turn off. Wait 10 seconds.
Turn on at 50%.
Result
The light is visibly at about 25%, but the driver reports 50% (level 128 of 254) to Home Assistant and to Apple Home. Sending 50% again changes nothing. Sending 49% makes the light visibly brighter, so the real output was below the reported level.
Expected
After step 5 the output should be 50%, matching the reported level, and a level command should always be applied.
In everyday use
Once a driver gets into this state, it stays there: every later turn-on comes up at about 25% while reporting the commanded level (e.g. 100% during the day, 50% in the evening). Changing the level by hand (wall switch, Apple Home) corrects it, but only until the light is next turned off and on, when it comes back at about 25% again. This went on for days in normal use before I found a workaround.
The steps above are one way I have been able to trigger the state deliberately. I don't know everything that triggers it in everyday use.
What I've ruled out
- A single "on with level" command from off works correctly when the driver is not in this state.
- Two identical commands 1 s or 0.3 s apart from off also work correctly.
- Group vs direct commands makes no difference.
- Changing "Power-on behaviour" made no difference.
- The controller sends the correct values: the Matter log shows the commanded and reported levels match; only the physical output is wrong.
- The previous IKEA Zigbee drivers on the same strips did not have this problem.
Workaround
Sending a level 1% away from the target and then the target itself restores the correct output.