Skip to the content.

Power commands have a blast radius

TL;DR: A single “power on” can wake zones you never named — scope power commands to the zone, then verify each zone independently, because “I turned it off” is not the same as “it is off.”

The situation

Multi-zone hardware — an AVR driving a main room plus two secondary zones, a matrix amplifier, anything with more outputs than it has front-panel buttons — exposes more than one power command. There is a system-level one that the documentation lists first, and there are zone-scoped ones buried further down. The system-level command is shorter, it appears in every example you find, and it works. So it ends up in your scripts.

It works in the sense that the room you were testing comes on. What it also does is invisible from where you are standing.

What bit me

A system-level power command sent to a multi-zone amplifier powered its main zone and two secondary zones. One of those secondary zones came up on the source it had retained from days earlier, at a normal listening volume, and played into an outdoor area for roughly fifty minutes before anyone noticed. The display in that zone stayed dark the entire time, so there was no visual cue that anything was on — just audio, in a part of the house nobody was in.

The same command had woken a different room’s secondary zone an hour earlier, and that one went unnoticed too. The fix that seemed obvious — power off the main zone — left both secondary zones running, because the off command had been scoped to one zone while the on command had not.

The general rule

Device power is hierarchical, and the top of that hierarchy is rarely what you want. A system-level power command is a broadcast to every zone the device owns, each of which comes up on whatever source and volume it happened to retain. You did not choose those. The device did, at some point in the past, and it remembered.

The corollary is about verification. A power-off that returns success tells you a command was accepted, not that a room is silent — and asymmetric scoping (broad on, narrow off) is the specific shape this failure takes. Treat every power-off as unverified until each zone’s state has been read back individually.

How to apply it

How to verify

Related: idempotent commands, and stale state is not proof of silence for the other half of this problem — what your automation platform believes about a room versus what the room sounds like.