Skip to content

fix(heating): keep dimension 7 write echoes typeless in OWNEvent - #62

Merged
GreenGrassBlueOcean merged 1 commit into
OpenWebNet-HA:masterfrom
GreenGrassBlueOcean:fix/heating-dim7-write-echo
Sep 25, 2026
Merged

GreenGrassBlueOcean merged 1 commit into
OpenWebNet-HA:masterfrom
GreenGrassBlueOcean:fix/heating-dim7-write-echo

Conversation

@GreenGrassBlueOcean

Copy link
Copy Markdown
Contributor

Follow-up to #60 addressing review remarks from @fedem95 (#60 (review)).

Summary of changes

  1. Keep DIMENSION 7 write echoes typeless across entry points:

    • In OWNHeatingEvent, skip the dimension 7 block when _message_type == "DIMENSION_WRITING".
    • When parsing a program write echo (e.g. *#4*2*#7*1*1*0170##), OWNEvent.parse and direct OWNHeatingEvent construction now stay typeless (message_type is None, with unset zone_context, zone_state, and set_temperature), agreeing with OWNMessage.parse which returns an OWNHeatingCommand.
    • Added test_dimension_7_write_echo_stays_typeless_across_entry_points to verify this behavior across both entry points and direct construction.
  2. Clarify test fixture provenance comments:

    • Updated the comment block and docstrings in tests/test_heating.py to explicitly distinguish verbatim bus capture frames (from xtimmy86x and TheDarkWizard in MyHOME#429) from synthetic edge cases (unknown context/state codes, missing state, malformed temperatures, and ScenarioDevices write templates).

Verification

  • OWNd test suite: 838 passed, 1 skipped.
  • Linters & standards: ruff, mypy, and scripts/verify_library_standards.py clean.
  • MyHOME test suite: 2082 passed, 1 skipped against this branch.

- Skip the dimension 7 branch in OWNHeatingEvent when _message_type is 'DIMENSION_WRITING', ensuring write echoes (*OpenWebNet-HA#4*Z*OpenWebNet-HA#7*...##) remain typeless when parsed via OWNEvent.parse or direct OWNHeatingEvent construction, agreeing with OWNMessage.parse.

- Add test_dimension_7_write_echo_stays_typeless_across_entry_points verifying consistent typeless behavior across entry points.

- Clarify comments and docstrings in tests/test_heating.py to explicitly distinguish real bus capture fixtures from synthetic edge cases (unknown codes, missing state, malformed temperatures, and ScenarioDevices templates).
@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!

@fedem95 fedem95 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both points from #60 are in, thanks.*#4*2*#7*1*1*0170## and *#4*2*#7*2*3*## now stay typeless through OWNEvent.parse too, while OWNMessage.parse still gives the readable OWNHeatingCommand, and the real dimension 7 status *#4*2*7*1*1*0170## still decodes to heating setpoint 17.0 °C on both. The test comments now separate the #429 captures from the synthetic cases.

Approving.

@GreenGrassBlueOcean
GreenGrassBlueOcean merged commit 6002fd8 into OpenWebNet-HA:master Sep 25, 2026
8 checks passed
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.

3 participants