Repository navigation
docs(who-25): document gateway compatibility and hardware boundaries - #49
Conversation
- Document gateway compatibility for WHO 25 (CEN+, Dry Contact / IR). - Clarify supported gateways (MH200N, MH202, F454, MyHomeServer1) vs unsupported legacy MH200 (Model 4) returning gateway NACK (*#*0##). - Cite normative Legrand WHO 25 v1.0.0 p. 13 and live bench verification. - Update Machine KB section identities, chunk identities, claim coverage, and regenerated deterministic artifacts.
|
Thank you @GreenGrassBlueOcean! Documenting this gateway boundary is useful, and the published manuals do support the MH200 limitation 🙂 I’d like a few changes before merging, mainly to keep the conclusions aligned with their evidence and make sure the new information is represented properly in the Machine KB:
The checks passing is a good foundation. These changes would make the documented boundary traceable and usable by both readers and machine consumers. Thanks again! |
|
I’ve prepared the documentation corrections and Machine KB integration on my side, keeping the manual-backed MH200 limitations and the scoped published oracle results 🙂 Could you share the sanitized MH200 FW 2.1.0 captures behind the bench observations? In particular, it would help to have:
Please remove credentials, network identifiers, and unrelated installation details while preserving the protocol exchanges and timing needed to interpret them. For now, I’ve left out the immediate-NACK, namespace-wide rejection, and event-handling claims that depend on those missing captures. Once the traces are available, we can add the observations with their firmware and test conditions stated explicitly. There’s no need for you to allocate the new KB IDs; I’m handling that with the integration changes. |
|
Thank you @anotherjulien for reconciling Below are:
1. Physical MH200 (FW 2.1.0) Bench Setup & Gateway IdentificationHardware & Bus Setup
2. Sanitized Dual-Session Wire Capture (Physical MH200 FW 2.1.0)2.1 Primary Capture: Identification + Three Separated
|
| Gateway | Firmware | *25*21#1*21## & *25*23#8*233## (who25-messages.tsv) |
*25*11#0*11## (trace-corpus.tsv L79) |
*#25*21## (trace-corpus.tsv L49) |
who25-messages.tsv Git Blob / SHA-256 at 8a61bbe |
|---|---|---|---|---|---|
| MH200 | 020102 |
nack / silent (-) |
nack / silent (-) |
nack / silent (-) |
169ebf04e8934fb29b93ff585f96ef7271150f348895d1c545f80ae4c0177a6cc2ea135d7112b11983cc8875119f38a21100ba5e |
| MH200N | 010108 |
ack / out (bus:24 30 34 42... | own:*25*...##) |
ack / out (bus:24 30 34 42 31 30 31 39 33 30 30 0d | own:*25*11#0*11##) |
nack / silent (-) |
22568253f2f90aeb352f421ff3f52a55b88dafee1dfd7a802bb2a763276187bc13649d7071deefb492f9a9f7a070957feef30148 |
| F453 | 010100 |
ack / out (bus:24 30 34 42... | own:*25*...##) |
ack / out (bus:24 30 34 42 31 30 31 39 33 30 30 0d | own:*25*11#0*11##) |
nack / silent (-) |
d4a3f0b4c77762f9301d5c04db34ef90bb481b8eac9d494099c530c5a8500d4cb74db6400add3ffe9f6862dadea0fdaccb01a6df |
| F453AV | 030014 |
ack / out (bus:24 30 34 42... | own:*25*...##) |
ack / out (bus:24 30 34 42 31 30 31 39 33 30 30 0d | own:*25*11#0*11##) |
nack / silent (-) |
42ad2fb4d3171889d0ccd1cd17ec02b5f9ab84ce5989266aa693b33cb119c2e3e1fade2a46f121efbd4c1a397fdea67d4ded91bf |
| F454 | 020051 |
ack / out (bus:24 30 34 42... | own:*25*...##) |
ack / out (bus:24 30 34 42 31 30 31 39 33 30 30 0d | own:*25*11#0*11##) |
nack / silent (-) |
dd9eebd6b5bb4792ef3f561fbebf44d1a7904d55f6669f98ab5297be2ae36566138d360c1d0e5f2aa3e71fad493f5f248bd70ba1 |
| F459 | 020105 |
ack / out (bus:24 30 34 42... | own:*25*...##) |
ack / out (bus:24 30 34 42 31 30 31 39 33 30 30 0d | own:*25*11#0*11##) |
nack / silent (-) |
703d33abdf103145d68be398ea668c65de5f7dec917c7e85308757c757dd89631914d938e07ccbd31dae6756765ad48c4e3c0dcf |
| MH202 | 010024 |
ack / out (bus:24 30 34 42... | own:*25*...##) |
ack / out (own:*#*0##) |
nack / silent (-) |
c1e437f88708d28b9840720a759d829cd58f202053e76991e2324d02f101a1b66da692a450f5d0ba3274de76642debe0ab462fab |
| MyHomeServer1 | 028206 |
nack / out (bus:24 30 34 42...) |
nack / out (bus:24 30 34 42 31 30 31 39 33 30 30 0d) |
nack / silent (-) |
febe9c37b4358d61474d916b3e62c9f059dfe818a444bf040cf2af9bd887a66251de4c90730e1d61f6940e767e2cea5e0643522f |
| F460 | 020012 |
nack / out (bus:24 30 30 34 42...) |
nack / out (bus:24 30 30 34 42 31 30 31 39 33 30 30 0d) |
nack / silent (-) |
0c307cde8731cc441ed2e3b32f0c5df5248068eec247ba5d7c43abdf903d3b871b0742a6730d5742e17ec65266124fda6720f2fb |
| F461 | 020011 |
nack / out (bus:24 30 30 34 42...) |
nack / out (bus:24 30 30 34 42 31 30 31 39 33 30 30 0d) |
nack / silent (-) |
329fb1e52a8cfb58c19124d9ecc126e5dc20cbead98089d6d8c8157e69569bf16767ebdb14584e6028d65b8b5668e16aa890943a |
| F450 | 020010 |
nack / silent (-) |
nack / silent (-) |
nack / silent (-) |
eee8dfb608ae2987d85f3426686bef9bfc7adf92b796a99f205ef8d9d5ec8444430044c15752d836916fedb67a30c74ef53b7da6 |
| H4684 | 020054 |
nack / silent (-) |
nack / silent (-) |
nack / silent (-) |
6e62367fa0f2fc668f0aa0d7f85045434528801c1922b20d87b9336b09839a36a95c0441e7355dc1329938386875ef65e8153c47 |
Let me know if you need any additional probes run on the physical MH200 (FW 2.1.0)!
|
Thanks for providing the captures and explaining the newer oracle results 🙂 This gives us enough to document the rejection of the tested commands on MH200 firmware 2.1.0. We’ll keep that conclusion specific to those tests and leave incoming WHO 25 event handling open. Could you also attach the I can handle the small formatting corrections and update our documentation and Machine KB to reflect the newer oracle results. I don’t think we need further hardware tests for this PR’s current scope. |
|
Thanks @anotherjulien, and sorry, a correction before you build on my last comment. I can't attach I'll redo the physical MH200 (FW 2.1.0) capture and post a complete package: Two corrections to the oracle part of that comment. Everything else checks out against
|
|
As promised, here is the new physical capture from the BTicino MH200 (FW 2.1.0, WHO 13 MODEL 4), recorded 2026-10-22T08:59:19Z. It replaces the 2026-10-17 capture details I withdrew above. Setup. Concurrent event ( Result. Every WHO 25 frame got a command-session
The identification queries and both positive controls were each answered with data plus Provenance. The capture was recorded with a small stdlib-only script, and every value in the package is computed from the recording. Before posting I checked that:
|
|
Thanks @GreenGrassBlueOcean for the fresh capture and for working through the oracle corrections with us 🙂 I’ve integrated the updated evidence into the documentation and Machine KB, and all CI checks have passed. This is ready to merge from my side. Thanks for taking the time to get it right! |
Summary
Document gateway compatibility for CEN+ and dry-contact/IR, keeping published support, recorded socket replies and recorded bus output separate.
Evidence and limits
The current oracle comparison is pinned to
8a61bbeb1d26354241debac84a7310142e5ab3a5and covers two CEN+ inputs on six specified firmware versions. The physical capture covers a different MH200 firmware version and a setup with no WHO 25 device installed or configured. No independent physical bus recording was supplied. We inspected the published evidence; we did not run hardware or firmware ourselves.The withdrawn 17 October capture supports no physical claims. The replacement is retained as an explicitly derived privacy projection: authentication, clock data and installation identifiers are removed, and the lighting control address is synthetic. Original fingerprints and record mappings remain available for verification.
Original oracle files, source fingerprints, provenance and review limits are recorded in the evidence review. The generated catalogue contains 74,401 claims and 8,008 retrieval chunks across 346 canonical documents.
Validation
python3 check.pypassed: two clean deterministic builds, committed freshness, schemas, lifecycle and references, cross-artifact consistency, text hygiene, privacy gates and Device completeness.5d6f5e9875194407631b087b85efb7fe13f2c955.