Replace the current day/night scene toggle with a single scene-cycle button, then remove the separate on/off lights button.
Desired behavior
One button. Each press advances to the next scene; after the last scene, the next press turns the lights off; the press after that restarts the cycle at the first scene.
scene 1 → scene 2 → … → scene N → off → scene 1 → …
"last on is off" — off is the terminal step of the rotation, so a dedicated on/off control is no longer needed.
Consequence
The day/night two-state toggle is replaced by the full rotation.
The separate on/off button is removed (off now lives inside the cycle).
Implementation notes / open questions
The card drives scenes via CardController → the house bot (door_url) → zigbee2mqtt. A full cycle needs (a) the ordered scene list and (b) the current position tracked across presses.
Where does the scene list come from — z2m scenes, the bot, or card config? Pin this first.
Where is the current index stored — client-side, or read back from the device/bot each press (survives reload, more robust)?
Button label/icon should reflect the current scene (and "off") so the cycle position is visible.
## Request
Replace the current **day/night scene toggle** with a single **scene-cycle** button, then remove the separate **on/off lights** button.
## Desired behavior
One button. Each press advances to the next scene; after the last scene, the next press turns the lights **off**; the press after that restarts the cycle at the first scene.
```
scene 1 → scene 2 → … → scene N → off → scene 1 → …
```
"last on is off" — off is the terminal step of the rotation, so a dedicated on/off control is no longer needed.
## Consequence
- The day/night two-state toggle is replaced by the full rotation.
- The separate on/off button is removed (off now lives inside the cycle).
## Implementation notes / open questions
- The card drives scenes via `CardController` → the house bot (`door_url`) → zigbee2mqtt. A full cycle needs (a) the **ordered scene list** and (b) the **current position** tracked across presses.
- Where does the scene list come from — z2m scenes, the bot, or card config? Pin this first.
- Where is the current index stored — client-side, or read back from the device/bot each press (survives reload, more robust)?
- Button label/icon should reflect the current scene (and "off") so the cycle position is visible.
z2m holds the scenes — source of truth for the scene list.
The bot calls the scenes from z2m — the card never talks to z2m directly.
Both the NC card and @zigbee interface with the bot — the bot is the shared front end for both.
Design implication
Because the card and @zigbee both go through the bot, the cycle state (current position; "next press after the last scene = off") must live in the bot, not client-side in the card — otherwise the card and @zigbee drift out of sync on where the rotation is. So:
ordered scene list: from z2m, via the bot;
current position + advance/next-is-off logic: in the bot, exposed to both the card and @zigbee;
the card button just asks the bot to "advance" and renders what comes back (scene name, or off).
This resolves the open questions in the description.
## Architecture (clarified)
- **z2m holds the scenes** — source of truth for the scene list.
- **The bot calls the scenes from z2m** — the card never talks to z2m directly.
- **Both the NC card and @zigbee interface with the bot** — the bot is the shared front end for both.
## Design implication
Because the card *and* @zigbee both go through the bot, the **cycle state** (current position; "next press after the last scene = off") must live in the **bot**, not client-side in the card — otherwise the card and @zigbee drift out of sync on where the rotation is. So:
- **ordered scene list:** from z2m, via the bot;
- **current position + advance/next-is-off logic:** in the bot, exposed to both the card and @zigbee;
- **the card button** just asks the bot to "advance" and renders what comes back (scene name, or off).
This resolves the open questions in the description.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
🐄 PERSONAL SOVEREIGN NODE • ZERO-TRUST ARCHITECTURE · timezone: RSO-Standard-Time · complaints → @neon
Request
Replace the current day/night scene toggle with a single scene-cycle button, then remove the separate on/off lights button.
Desired behavior
One button. Each press advances to the next scene; after the last scene, the next press turns the lights off; the press after that restarts the cycle at the first scene.
"last on is off" — off is the terminal step of the rotation, so a dedicated on/off control is no longer needed.
Consequence
Implementation notes / open questions
CardController→ the house bot (door_url) → zigbee2mqtt. A full cycle needs (a) the ordered scene list and (b) the current position tracked across presses.Architecture (clarified)
Design implication
Because the card and @zigbee both go through the bot, the cycle state (current position; "next press after the last scene = off") must live in the bot, not client-side in the card — otherwise the card and @zigbee drift out of sync on where the rotation is. So:
This resolves the open questions in the description.