RFC: Handling physical actuator hardware anomalies & protection lockouts via Home Assistant Repairs (Ref PR #593) #594
GreenGrassBlueOcean
started this conversation in
Ideas
Replies: 1 comment
|
@anotherjulien tagging you here as our most trusted openwebnet expert. I am mostly concerned how we are going to implement this as traces for hardware failure are difficult to collect |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Purpose & Context
This discussion is about how and if the MyHOME integration should detect, show and trace physical actuator faults on the SCS bus: missing wiring, open circuits, protective lockouts. Maintainer and community input is welcome.
Companion PR: #593, refactor(repairs): track device faults per gateway and raise them as self-clearing repair issues.
The Real-World Motivating Case (Light 74)
Modular actuators can enter an internal protection lockout. One live installation shows it reproducibly:
A=7, PL=4) with a load wire missing from its output terminal; its front LED blinks red.EVID-MH200-WHAT19-FAULTin the OpenWebNet Encyclopedia):*#1001*0*7*111111111111111101101111##, so zero bits do not by themselves mean a fault.unknownwithunknown_state: 19, but the user is not told why.The Implementation in PR #593
One tracker per gateway (
device_health.py) is the only code that creates or deletes per-device fault issues in Settings → System → Repairs:unmapped_device_status, which shows the address and the code.unmapped_device_status_autodiag). It is not decoded and does not raise an issue on its own.Coverage: how we know it does not cry wolf
The PR replays every capture we hold through the tracker:
This proves the absence of false positives on healthy plants. It does not prove that WHAT 19 is the general fault signature: we have one faulty actuator on one gateway firmware.
Collecting fault traces
Hardware failures are hard to catch in the wild, so the proposal is to cause them on a bench and record them with the trace recorder:
*#1*WHERE##and*#1001*WHERE*7##.That tells us whether WHAT 19 is universal or model- and firmware-specific. Comparing faulty and healthy masks of the same model is the only route towards ever giving a mask bit a meaning.
Open Questions
binary_sensor(PROBLEM,EntityCategory.DIAGNOSTIC) per affected device, so faults can trigger automations and have history? The tracker makes this a small addition.unknown;unavailablewould hide the last state seen on the bus. Is that the right call?All reactions