diff --git a/docs/AlarmClientDiscovery.md b/docs/AlarmClientDiscovery.md index 5eee686..b8581c8 100644 --- a/docs/AlarmClientDiscovery.md +++ b/docs/AlarmClientDiscovery.md @@ -881,6 +881,25 @@ returns a failure code that the gateway surfaces as `FailedPrecondition`. `AcknowledgeByGuid` maps the synthetic GUID back to its reference via an internal dictionary, then calls the same write path. +`SubtagAlarmConsumer.Subscribe` advises the ack-comment subtag alongside the +observed ones (active/acked/priority). This is required: MXAccess rejects a +write to an item that has been added but not advised with `E_INVALIDARG` +("Value does not fall within the expected range"). Advising it at subscribe +time makes it an active item so the later ack write succeeds — its value +changes carry no transition (the state machine ignores unmapped addresses). + +### Live validation + +The subtag path was validated against live MXAccess on the dev rig +(`DESKTOP-6JL3KKO`, Galaxy `DEV`, `TestMachine_001.TestAlarm001`): + +- `…​.InAlarm` → `True` (Boolean), `…​.Acked` → `False` (Boolean), + `…​.Priority` → `500` (Int32), `…​.AckMsg` → string — confirming the field + names **and** the runtime reference shape `..` + with **no** intermediate alarm-condition segment. +- `AcknowledgeByName` (AckMsg write) returned `0` once the ack-comment subtag + was advised — confirming the ack-by-comment-write mechanism end to end. + ### Fidelity limitations The following fields are not available or have lower quality in subtag mode: