5 Commits

Author SHA1 Message Date
david ba3e172dda fix: power outage auto-recovery improvements
Mosquitto:
- Change restart: always (was unless-stopped) to survive daemon restarts
- Add healthcheck (pub/sub ping) for depends_on conditions
- All downstream services use condition: service_healthy

Party-lock:
- Add MQTT connection retry loop (was crashing on DNS race after restart)

Zigbee2mqtt:
- Add entrypoint wrapper that auto-applies BLZ bridge patch at startup
- Bridge patch no longer needs manual 'just z2m-patch-bridge' after image pulls

Mopidy:
- Add python3-gi + python3-gi-cairo via apt (fixes 'No module named gi')
- Set PYTHONPATH to expose system gi module to Python 3.12
2026-07-09 18:56:36 -07:00
david ad9a5b4e02 party-lock: use Docker SDK instead of docker kill CLI
The docker binary is not available inside the party-lock container,
so switch to the Python Docker SDK via unix socket.
2026-07-02 23:33:43 -07:00
david 67bb68b097 party-lock: fix ACL file permissions (0700, owner 1883)
Mosquitto 2.1.2 silently skips ACL file if world-readable or wrong owner.
Listener now sets proper permissions on ACL file writes.
Add CYD lock flash feedback on blocked tap.
2026-07-02 20:46:21 -07:00
david 3e06bc9e4b party-lock: global ACL block all zigbee2mqtt/+/set
Global party lock toggled via party-lock/set ON/OFF.
When locked, mosquitto ACL denies ALL zigbee2mqtt/+/set publishes.
Add lock button to CYD status bar.
2026-07-02 20:14:41 -07:00
david 36f9d0a284 party-lock: add MQTT ACL-based plug lock service
Listener watches party-lock/<plug>/set and dynamically generates
mosquitto ACL deny rules. Test against bamboo first, then dj-booth.
Add lock button to CYD dashboard.
2026-07-02 20:04:11 -07:00