From c512ca9549c00fd169ee3c8d6cbb8af0574a1780 Mon Sep 17 00:00:00 2001 From: sebseb7 Date: Sat, 17 Jan 2026 01:21:44 -0500 Subject: [PATCH] u --- rules/waterButtonLearnAndCall.js | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/rules/waterButtonLearnAndCall.js b/rules/waterButtonLearnAndCall.js index 9b1b0be..e4a10de 100644 --- a/rules/waterButtonLearnAndCall.js +++ b/rules/waterButtonLearnAndCall.js @@ -17,6 +17,7 @@ const __dirname = path.dirname(__filename); const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); const STATE_FILE = path.join(__dirname, 'timer_state.json'); +const WATER_BUTTON_MAC = '08A6F773510C'; const REMOTE_SWITCH_MAC = 'CC8DA243B0A0'; // Helper to set local light and sync remote switch inversely @@ -72,7 +73,7 @@ function getState(mac) { export default { async run(ctx) { // Auto-on for water button when it connects (only if remote switch is online) - if (ctx.trigger.mac === '08A6F773510C' && ctx.trigger.field === 'online' && ctx.trigger.event === true) { + if (ctx.trigger.mac === WATER_BUTTON_MAC && ctx.trigger.field === 'online' && ctx.trigger.event === true) { const remoteSwitchConnected = await ctx.getState(REMOTE_SWITCH_MAC, 'system', 'online'); if (remoteSwitchConnected === true) { ctx.log('Water button connected - remote switch online, turning light on'); @@ -81,14 +82,14 @@ export default { // Double flash to indicate both devices are connected ctx.log('Double flashing to confirm connection'); for (let i = 0; i < 2; i++) { - await ctx.sendRPC('08A6F773510C', 'Light.Set', { id: 0, on: true, brightness: 20 }); + await ctx.sendRPC(WATER_BUTTON_MAC, 'Light.Set', { id: 0, on: true, brightness: 20 }); await sleep(200); - await ctx.sendRPC('08A6F773510C', 'Light.Set', { id: 0, on: false, brightness: 0 }); + await ctx.sendRPC(WATER_BUTTON_MAC, 'Light.Set', { id: 0, on: false, brightness: 0 }); await sleep(200); } } else { ctx.log('Water button connected - remote switch offline, keeping light off'); - await ctx.sendRPC('08A6F773510C', 'Light.Set', { id: 0, on: false, brightness: 0 }); + await ctx.sendRPC(WATER_BUTTON_MAC, 'Light.Set', { id: 0, on: false, brightness: 0 }); } return; } @@ -100,24 +101,24 @@ export default { // Double flash the light for (let i = 0; i < 2; i++) { - await ctx.sendRPC('08A6F773510C', 'Light.Set', { id: 0, on: true, brightness: 20 }); + await ctx.sendRPC(WATER_BUTTON_MAC, 'Light.Set', { id: 0, on: true, brightness: 20 }); await sleep(200); - await ctx.sendRPC('08A6F773510C', 'Light.Set', { id: 0, on: false, brightness: 0 }); + await ctx.sendRPC(WATER_BUTTON_MAC, 'Light.Set', { id: 0, on: false, brightness: 0 }); await sleep(200); } // Turn light on after flash - await setLight(ctx, '08A6F773510C', true, 20); + await setLight(ctx, WATER_BUTTON_MAC, true, 20); return; } // Turn off light when remote switch goes offline if (ctx.trigger.mac === REMOTE_SWITCH_MAC && ctx.trigger.field === 'online' && ctx.trigger.event === false) { ctx.log('Remote switch went offline - turning light off'); - await ctx.sendRPC('08A6F773510C', 'Light.Set', { id: 0, on: false, brightness: 0 }); + await ctx.sendRPC(WATER_BUTTON_MAC, 'Light.Set', { id: 0, on: false, brightness: 0 }); // Clear any pending timer - const state = getState('08A6F773510C'); + const state = getState(WATER_BUTTON_MAC); if (state.timer) { clearTimeout(state.timer); state.timer = null;