const ROLLO = 'hm-rpc.0.OEQ0550361.1.LEVEL'; const MOWER_START = 'navimow.0.21EAB2545Y4281.remote.start'; const MOWER_STATUS = 'navimow.0.21EAB2545Y4281.status.state'; let watcher = null; let blockStart = false; // 🔁 START ABFANGEN (egal wo ausgelöst!) on({id: MOWER_START, change: "any"}, async function (obj) { if (obj.state.val === true && !blockStart) { log("⚠️ Direkter Start abgefangen"); blockStart = true; // Start sofort wieder zurücksetzen (verhindert direktes Losfahren) setState(MOWER_START, false); // Tor öffnen setState(ROLLO, 100); log("🚪 Tor öffnet"); // 2 Minuten warten await wait(120000); // Jetzt "echten" Start auslösen log("🤖 Starte Mäher kontrolliert"); setState(MOWER_START, true); blockStart = false; // alten Listener entfernen if (watcher) unsubscribe(watcher); // Rückkehr überwachen watcher = on({id: MOWER_STATUS, change: "any"}, async function (state) { if (state.state.val === "isDocked") { log("🏠 Mäher ist zurück"); unsubscribe(watcher); watcher = null; // 2 Minuten warten await wait(120000); // Tor schließen setState(ROLLO, 0); log("🔒 Tor schließt"); } }); } });