Repository navigation
feat(message): add native parsers and command builders for WHO 8, WHO 3, WHO 18, and WHO 22 verified dialects - #85
Closed
GreenGrassBlueOcean wants to merge 4 commits into
Conversation
…al verdict fixtures
- verify actual verdict hash 53df92a0 and row counts (MH200N 84 rows/78 inputs, MHS1 51 rows/46 inputs, 135 total) - add semantic validation for WHO 1001 diagnostic mask frame - add dedicated test for the 17 empirical NACK-with-bus-forwarding verdict rows - cross-validate golden corpus intersecting fixtures using mcp_valid and known discrepancies - drive gateway profile parity dynamically from gateways fixture metadata - parameterize rejection frames with explicit expected_gateways - fix LF line endings in firmware_oracle.json - make README corpus validator invocation portable
… 3, WHO 18, and WHO 22 verified dialects
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
GreenGrassBlueOcean
added a commit
to GreenGrassBlueOcean/OWNd
that referenced
this pull request
Oct 9, 2026
…ercom dialects - Register WHO 8 event and command parsers (OWNLockEvent / OWNLockCommand) - Expose public is_camera_on and is_camera_off properties on OWNDoorEntryEvent - Expand WHO 8 support with full TS10/oracle and trace dialects from draft PR OpenWebNet-HA#85 (calls, session actions, cameras, PTZ, amplifier mute, teleloops, and command builders) - Add OWNIntercomEvent and OWNIntercomCommand aliases and export constants in OWNd.message - Clean up stale WHO 6 from OWNCommand.parse fallback dispatch - Add WHO_DOOR_ENTRY and WHO_LOCK to MH200 and MH200N supported profiles - Add comprehensive test coverage asserting WHO 8 registry parsing and 100% statement/branch coverage
Contributor
Author
|
Superseded. This draft bundled four WHO families, and each has since moved on in its own PR, built against current
This branch is far behind 🤖 Generated with Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds native protocol message parsers and command builders in
OWNdfor empirical frame dialects verified inown-firmware-oracleandopenwebnet-mcp:WHO 8 (Video Door Entry & Advanced Intercom):
OWNIntercomEventandOWNIntercomCommandinOWNd/message/intercom.py.*8*19*WHERE##,*8*20*WHERE##), staircase lighting (*8*21*WHERE##,*8*22*WHERE##), camera switching/cycling (*8*4#CALLER*CAM##,*8*6#CALLER*MASTER##), PTZ movements (up, down, left, right with press/release), internal/external/pager calling (*8*1#KIND#MM#CALLER*CALLEE##), call answering, termination, stop video feed, VCT init (*8*37#MODE*WHERE##), teleloops (*8*76..79##), amplifier mute (*8*63/64##), and status requests.WHO 3 (Load Control & Shedding):
OWNLoadEventandOWNLoadCommandinOWNd/message/load.py.*3*0*#PRIORITY##), enable/automatic (*3*1*#PRIORITY##), force reconnect (*3*2*#PRIORITY##), and remove forcing (*3*3*#PRIORITY##).*#3*10*0..4##: all, voltage, current, power, energy) and priority line status queries.WHO 18 (Energy Management Expansion):
OWNEnergyEventandOWNEnergyCommandinOWNd/message/energy.py.WHO 22 (Sound / Multi-Room Audio):
_OWNMultiroomMixin,OWNMultiroomEvent, andOWNMultiroomCommandinOWNd/message/sound.py.2#Ssource,3#A#Pspeaker point,4#Aarea,5#...general prefix,6all sources).3,4) and levels (dim 1,0..31), Follow Me routing (34#MM#A), Source Select (35#MM#A#S), tuner search UP/DOWN, track/station next/prev/store, tone controls (high, mid, low1..63), balance (1..63), presets (1..63), loudness ON/OFF, device state (dim 12), active areas mask (dim 13), and RDS reporting (31,32).Exports & Dispatcher Integration:
"intercom"and"load"to_WHO_SUBMODULESinOWNd/message/base.py.OWNd/message/__init__.py.Conformance Testing & Quality Gates:
test_oracle_empirical_dialects_parse_into_specialized_classesintests/test_firmware_oracle_conformance.py.scripts/verify_coverage.py.scripts/verify_library_standards.py).ruffandmypytyping checks (28 source files).Note
This PR is opened as Draft and stacks on PR #84 (which will be merged once all queued gateways complete emulation).