Fix: MRAUDIO8x8 source selection and command failures
Problem
All commands (source selection, volume, power, etc.) failed silently on Xantech MRAUDIO8x8 amplifiers. The root cause was a zone ID mismatch between two layers:
- Config flow defaults suggested zone IDs
11-18for all xantech8 models - pyxantech only validated against primary zones
1-8for xantech8, rejecting11-18withValueError
Because the integration uses optimistic state updates, the errors were swallowed — the UI appeared to work but no RS232 commands were actually sent to the amplifier.
Other xantech8 models (MRC88, MX88) were less affected because users with those models often entered zones matching pyxantech's expected format.
flowchart LR
A[Config flow defaults<br/>zones 11-18] --> B[pyxantech validates<br/>zones 1-8 only]
B --> C[ValueError: Invalid zone 11]
C --> D[Commands fail silently<br/>optimistic state masks it]Fix
pyxantech v0.10.7 (upstream dependency):
- New
_get_valid_zones()merges primaryzoneswithalternative_zonesfrom device config - All 8 command functions now accept both zone ID formats
- xantech8 now validates against the full set:
1-8,11-18,21-28,31-38
hass-xantech v0.3.2 (this release):
- Config flow and options flow now validate entered zone IDs against pyxantech's device config
- Invalid zone IDs show a clear error instead of silently failing later
- Updated zone step descriptions to explain both formats:
- Two-digit (11-18): Most Xantech models (MRC88, MX88) — first digit is controller unit, second is zone
- Single-digit (1-8): Standalone MRAUDIO8x8 units
- Defaults remain
11-18since most users have newer multi-unit models
Dependencies
- Requires pyxantech >= 0.10.7 — release notes