Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DeviceInstanceMapper: do not skip devices with inputDeviceError #136

Merged
merged 1 commit into from
May 3, 2024

Conversation

jktjkt
Copy link
Contributor

@jktjkt jktjkt commented Apr 29, 2024

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:

  • magnet and a reed switch for door status monitoring,
  • a "permanent" switch for disabling automation at a hallway where our baby sometimes sleeps.

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

I have a bunch of non-pushbuttons 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:

- magnet and a reed switch for door status monitoring,
- a "permanent" switch for disabling automation at a hallway where our
  baby sometimes sleeps.

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 Add support for DALI 24-bit event messages
@sde1000 sde1000 merged commit cedc4d2 into sde1000:master May 3, 2024
5 checks passed
@sde1000
Copy link
Owner

sde1000 commented May 3, 2024

Thank you.

@jktjkt jktjkt deleted the device-instance-error branch July 26, 2024 15:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants