Skip to content

test(sound): replay live MH200 + L4561N trace; send tuner frequency unpadded - #662

Merged
GreenGrassBlueOcean merged 1 commit into
v2-phase1-architecturefrom
test/l4561n-source-trace
Oct 8, 2026
Merged

GreenGrassBlueOcean merged 1 commit into
v2-phase1-architecturefrom
test/l4561n-source-trace

Conversation

@GreenGrassBlueOcean

Copy link
Copy Markdown
Contributor

What

  • Adds the live recording from 2026-10-07 on the MH200 plant (firmware 2.0.32) to tests/fixtures/traces/mh200_l4561n_source/. The L4561N stereo control is source 102; zone 21 is in environment 2. The trace has a README.
  • Adds tests/test_l4561n_source_trace_replay.py, so the trace runs in CI. It checks that:
    • the frames MyHOMESoundSource builds (on, off, next/previous, preset write *#16*102*#7*n##) are exactly the ones that went out on the plant;
    • source 102 reports *16*3*102## (on) throughout, and the entity stays on;
    • zone 21 reports off at volume 0, and the entity matches.
  • async_set_frequency no longer zero-pads: 96.2 MHz is now sent as *#16*101*#6*0*96200##, not …*096200##. That form is the one the F500N capture in feat(media_player): tuner entity for WHO=16 sound sources (F500) #427 shows working. No capture or oracle row uses the padded form. The spec's "6 digits" comes only with the example 107000, where padding changes nothing. This is the same fix as in OWNd#95, raised by fedem95 in this review.

What the trace does not show

The capture is filtered on WHO 16 and WHERE 102/21, so the gateway's *#*1## / *#*0## replies are not in it. It shows that these frames were sent on a real plant. It does not show that the gateway ACKed them. None of the commands changed the reported state: source 102 stayed on after the off commands, and zone 21 stayed off after *16*0*21##. The fixture's README spells this out. The same file is in own-firmware-oracle#25 as the live counterpart of the emulated WHO 16 suite.

Tests

Against the pinned OWNd==2.0.0b10:

  • Full suite: 3474 passed, coverage 100%.
  • ruff check, verify_ha_standards.py and sync_documentation.py --check are clean.

🤖 Generated with Claude Code

…npadded

Adds the 2026-10-07 recording from the MH200 2.0.32 plant (L4561N as
source 102, zone 21) with a replay test, so it runs in CI:
- the frames MyHOMESoundSource builds (on, off, next/previous, preset
  write) are the ones that went out on the plant;
- source 102 reports on throughout, zone 21 off at volume 0.

The capture is filtered on WHO 16 and WHERE 102/21, so it holds no
ACK/NACK; the README says so.

async_set_frequency no longer zero-pads: the F500N capture (#427) shows
*#16*101*#6*0*96200## accepted, and nothing uses the padded form.

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 0ae14a0 into v2-phase1-architecture Oct 8, 2026
16 checks passed
@GreenGrassBlueOcean
GreenGrassBlueOcean deleted the test/l4561n-source-trace branch October 8, 2026 20:25
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