sde1000 / python-dali

Library for controlling DALI lighting systems
Other
150 stars 71 forks source link

DeviceInstanceMapper: do not skip devices with inputDeviceError #136

Closed jktjkt closed 3 months ago

jktjkt commented 3 months ago

I have a bunch of non-pushbutton switches connected to some of my Lunatone DALI-2 MC pushbutton couplers. These devices unfortunately set the "inputDeviceError" bit whenever any of its inputs is closed/shorted for longer than T_stuck.

The 62386-301:2017 says (Table 4, page 15) that this timer is up to 255s, which is definitely not enough for a door sensor. The same standard then says that such errors should be propagated to bit 0 in the "instanceErrorByte", which python-dali does not query. However, my devices unfortunately also propagate this status into the "inputDeviceError", and that means that the initial discovery of instance numbers to instance types won't recognize these buttons at all.

I was not able to find a reference in the standard whether any "instanceError" propagates to the "inputDeviceError", but even if this was an incorrect behavior, these devices exist, one can buy them, and presumably using them as a kind-of persistent contact inputs still makes sense; just to provide some data, I have:

I think that both use cases make sense, and I would prefer python-dali to not skip over some input devices which actually work just fine.

Fixes: 0cfddb7

sde1000 commented 3 months ago

Thank you.