This commit is contained in:
legop3
2026-08-09 00:13:38 -04:00
parent 70f71b2d1e
commit 0083c887f4
3 changed files with 19 additions and 3 deletions
+10 -2
View File
@@ -19,7 +19,7 @@ async function setEnabled(nextValue, options = {}) {
const next = Boolean(nextValue);
if (enabled === next) return enabled;
if (next) {
if (next && homeAssistantService.enabled) {
/*
Lock first because the existing locked-on transition sets lights white.
Recoloring RGB lights afterward leaves them green while retaining the
@@ -54,7 +54,7 @@ async function setEnabled(nextValue, options = {}) {
if (failures.length) {
logger.warn('Some room controls failed to enter green mode', { failures });
}
} else {
} else if (!next && homeAssistantService.enabled) {
// Disabling the visual mode simply releases the lock it created. Bulb
// colors remain untouched, matching the existing one-shot light behavior.
await homeAssistantService.setLightsLockedOn(false, {
@@ -62,6 +62,14 @@ async function setEnabled(nextValue, options = {}) {
});
}
/*
Home Assistant is deliberately optional here. When it is not configured,
skipping the physical-room operations still allows the session theme,
CardFrame styling, alerts, commands, and timed reward to work normally.
The integration's generic lock state is also left untouched because there
are no server-managed room controls to lock.
*/
enabled = next;
logger.info('Green mode changed', {
enabled,