Skip to content

test(trace): add authentic BTicino F453AV Central Unit #0 and WHO 4 trace fixtures (#619) - #692

Merged
GreenGrassBlueOcean merged 1 commit into
OpenWebNet-HA:v2-phase1-architecturefrom
GreenGrassBlueOcean:test/issue-619-f453av-who4-traces
Oct 11, 2026
Merged

GreenGrassBlueOcean merged 1 commit into
OpenWebNet-HA:v2-phase1-architecturefrom
GreenGrassBlueOcean:test/issue-619-f453av-who4-traces

Conversation

@GreenGrassBlueOcean

Copy link
Copy Markdown
Contributor

Summary

Ingests 6 authentic on-wire traces (519 frames) captured from a physical BTicino F453AV gateway (FW 3.0.14) with Central Unit #0 contributed by @nce2704 in OWNd#97 (comment 6110745254).

These authentic bus captures provide empirical hardware evidence resolving the physical verification gate for OpenWebNet-HA/OWNd#97 and companion PR #689.

Hardware Profile

  • Gateway: BTicino F453AV (Audio/Video Web Server & Gateway)
  • Firmware: 3.0.14 (*#13**16*3*0*14##)
  • Connection: TCP OpenWebNet (Port 20000)
  • Subsystem: WHO 4 (Thermoregulation / Central Unit #0, 99-zone plant, zone thermostats)

Ingested Traces

File Frames Behavior Captured & Verified
myhome_trace_F453AV_who4_2026-10-11T11-02-55.Holiday.ON.json 88 Setting Daily Holiday (Holiday Plan) on Central Unit #0 via *4*115#1101*#0##. Proves 1101 encodes weekly program 1 (program = 1101 % 100 = 1), permanently disproving the legacy misparsing of 1101 as temperature -10.1 °C. Replays central status flags *4*21*#0## / *4*22*#0## and subordinate zone reports *4*111*#Z##.
myhome_trace_F453AV_who4_2026-10-11T11-10-23.Holiday.OFF.automatically.json 20 Automatic expiration of Daily Holiday, restoring Central Unit #0 to weekly program 1 via *4*1101*#0## alongside status flags *4*21*#0## / *4*22*#0##.
myhome_trace_F453AV_who4_2026-10-11T11-13-06.Antifreeze.ON.json 112 Switching Central Unit #0 to Antifreeze via *4*102*#0##, cleanly propagating *4*102*#Z## (subzones) and *4*102*Z## (physical zone actuators), with inactive zones staying OFF (*4*303*Z##).
myhome_trace_F453AV_who4_2026-10-11T11-15-50.one.zone.to.cool.json 63 Freedompro app transition switching a zone from Heat to Cool: Central Unit #0 automatically transitions plant from Winter to Summer into Thermal Protection via *4*202*#0## / *4*202*Z##, resetting setpoints to cooling targets (*#4*Z*12*0350*3##).
myhome_trace_F453AV_who4_2026-10-11T10-49-26.Central.to.OFF.json 115 Setting Central Unit #0 to OFF via *4*103*#0##, propagating *4*103*#Z## and turning off physical zones via *4*303*Z##.
myhome_trace_F453AV_who4_2026-10-11T10-29-57.json 121 Status sweep demonstrating concurrent *4*1*Z## (zone heating season status) and *4*111*#Z## (zone weekly program), proving season telemetry does not displace weekly schedule mode.

Key Changes

  • Golden Trace Fixtures: Added all 6 JSON captures under tests/fixtures/traces/issue_619/.
  • Fixture Documentation: Updated tests/fixtures/traces/issue_619/README.md with hardware profile, trace index, and verified behavioral analysis.
  • Deterministic Replay Test Suite: Added tests/test_issue_619_who4_trace.py with 6 deterministic test cases validating all 519 frames replay without exceptions and result in 0 device health faults.

Verification

  • pytest tests/test_issue_619_who4_trace.py: Passed (6/6 tests passed in 10.18s)
  • pytest tests/test_fixture_privacy.py: Passed (24/24 passed)
  • verify_ha_standards.py: Passed (54/54 passed)
  • sync_documentation.py --check: Passed (0 violations, 0 drift)
  • ruff check: Passed cleanly

Co-authored-by: nce2704 268661926+nce2704@users.noreply.github.com

…race fixtures (OpenWebNet-HA#619)

Ingest 6 authentic on-wire traces (519 frames) from a physical BTicino F453AV gateway (FW 3.0.14) with Central Unit #0 contributed by @nce2704 on OWNd#97 comment 6110745254.

- Cover Daily Holiday activation (*4*115#1101*#0##) encoding weekly program 1, automatic holiday expiration and return to program (*4*1101*#0##), central antifreeze (*4*102*#0##), central off (*4*103*#0##), Freedompro summer transition (*4*202*#0##), and heating season coexistence (*4*1*Z## with *4*111*#Z##)
- Update tests/fixtures/traces/issue_619/README.md with hardware profile and subsystem analysis
- Add deterministic replay unit test suite tests/test_issue_619_who4_trace.py replaying all 6 captures cleanly with 0 device health faults

Co-authored-by: nce2704 <268661926+nce2704@users.noreply.github.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 1a9819f into OpenWebNet-HA:v2-phase1-architecture Oct 11, 2026
16 checks passed
@GreenGrassBlueOcean
GreenGrassBlueOcean deleted the test/issue-619-f453av-who4-traces branch October 11, 2026 18:32
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