Skip to content

test(traces): add live MH200 Dimension 1 probe trace for relays and dimmers (#733) - #763

Merged
GreenGrassBlueOcean merged 1 commit into
v2-phase1-architecturefrom
test/issue-733-mh200-dim1-probe-trace
Oct 20, 2026
Merged

GreenGrassBlueOcean merged 1 commit into
v2-phase1-architecturefrom
test/issue-733-mh200-dim1-probe-trace

Conversation

@GreenGrassBlueOcean

Copy link
Copy Markdown
Contributor

Summary

Adds the live trace and replay tests for the post-sweep dimmer capability probe of #733 / PR #742: what an on/off relay and a dimmer answer to a Dimension 1 request (*#1*WHERE*1##).

  • Fixture: tests/fixtures/traces/issue_733/myhome_trace_MH200_dim1_probe_2026-10-20T19-22-47.json. It holds 107 event-session frames from a physical BTicino MH200 (firmware 2.1.0, WHO=13 device type 4), recorded with the myhome-gateway MCP. It is anonymised: no IP, MAC or device names, and the gateway clock frames are removed.
  • Documentation: tests/fixtures/traces/issue_733/README.md
  • Replay tests: tests/test_issue_733_mh200_dim1_probe_trace.py. They pass standalone on v2-phase1-architecture, since dimmer promotion on a Dimension 1 frame already exists there.

Capture

  1. A general light status request *#1*0##.
  2. *#1*W*1## to three relays that were ON (81, 84, 57), one relay that was OFF (11) and two F418U2 dimmer channels that were ON (29, 67).

Findings

Request Device Bus answer
*#1*81*1##, *#1*84*1##, *#1*57*1## relay, ON *1*1*W##
*#1*11*1## relay, OFF *1*0*11##
*#1*29*1## dimmer, ON *1*1*29##, *#1*29*1*200*2##, *1*1*29##
*#1*67*1## dimmer, ON *1*1*67##, *#1*67*1*174*2##, *1*1*67##
  • Relays: a relay answers a Dimension 1 request with its plain WHAT status and no level. It neither NACKs on the bus nor stays silent, so a Dimension 1 probe cannot promote a relay to a dimmer. Command-session ACK/NACK are not in the capture.
  • Dimmers: a dimmer answers with *#1*W*1*LEVEL*SPEED##, framed by two *1*1*W##.
  • ON dimmers in the sweep: the ON dimmers 29 and 67 first answered *#1*0## with a plain *1*1*W##, and sent their level (*1*10*29##, *1*9*67##) only later in the same sweep.

Tests

  • The replies to each probe are exactly the table above.
  • Fed to bus-discovered (ONOFF) lights, the replies promote only the two dimmers to BRIGHTNESS.
  • In the sweep, each ON dimmer's first frame carries no level, and its later frames promote it.

🤖 Generated with Claude Code

…immers (#733)

Live BTicino MH200 (firmware 2.1.0) capture, event session only and
anonymised: a *#1*0## sweep, then *#1*W*1## to three ON relays, one OFF
relay and two ON F418U2 dimmer channels.

Relays answer a Dimension 1 request with their plain WHAT status and no
level, so a post-sweep probe cannot promote a relay; dimmers answer with
*#1*W*1*LEVEL*SPEED##. ON dimmers first answer the general request with a
plain *1*1*W## and send their level later in the same sweep.

The replay tests pass standalone on v2-phase1-architecture.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@GreenGrassBlueOcean
GreenGrassBlueOcean merged commit 6ef6848 into v2-phase1-architecture Oct 20, 2026
16 checks passed
@GreenGrassBlueOcean
GreenGrassBlueOcean deleted the test/issue-733-mh200-dim1-probe-trace branch October 20, 2026 20:00
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