NEWS
Scrypt schaltet in Software aber nicht Physisch
-
Moin,
ich habe keine Ahnung und habe es von ChatGPT machen lassen aber vielleicht könnt ihr mir da besser weiter helfenwie gesagt ich kann in den Objekten sehen wie das Licht auf TRUE schaltet aber es ist nicht an, aber wenn ich es selbst mit der Maus auf TRUE schalte geht es an.
const licht = 'zigbee.0.a4c1386f336183e9.state'; const bewegungsmelder = 'zigbee.0.0017880103295819.occupancy'; const luefter = 'hm-rpc.1.00255BE98CF4E0.4.STATE'; let lichtTimer = null; let luefterTimer = null; let luefterStartTimer = null; let bewegungStart = null; on({ id: bewegungsmelder, change: 'ne' }, function (obj) { if (obj.state.val) { // Bewegung erkannt -> Licht sofort an setState(licht, true, true); // Zeitstempel speichern, wann Bewegung erkannt wurde bewegungStart = Date.now(); // Falls Licht- oder Lüfter-Timer laufen, abbrechen if (lichtTimer) { clearTimeout(lichtTimer); lichtTimer = null; } if (luefterTimer) { clearTimeout(luefterTimer); luefterTimer = null; } if (luefterStartTimer) { clearTimeout(luefterStartTimer); luefterStartTimer = null; } // Lüfter erst nach 2 Min prüfen luefterStartTimer = setTimeout(() => { if (Date.now() - bewegungStart >= 2 * 60 * 1000) { // Falls Bewegung noch aktiv ist -> nach 3 weiteren Minuten Lüfter an luefterTimer = setTimeout(() => { setState(luefter, true, true); luefterTimer = null; }, 3 * 60 * 1000); } }, 2 * 60 * 1000); } else { // Keine Bewegung mehr -> Licht nach 20 Sekunden aus lichtTimer = setTimeout(() => { setState(licht, false, true); // Falls Lüfter an ist, nach 3 Minuten aus if (getState(luefter).val) { luefterTimer = setTimeout(() => { setState(luefter, false, true); luefterTimer = null; }, 3 * 60 * 1000); } }, 20 * 1000); } });MOD-EDIT: Code in code-tags gesetzt!
vielen dank
-
Moin,
ich habe keine Ahnung und habe es von ChatGPT machen lassen aber vielleicht könnt ihr mir da besser weiter helfenwie gesagt ich kann in den Objekten sehen wie das Licht auf TRUE schaltet aber es ist nicht an, aber wenn ich es selbst mit der Maus auf TRUE schalte geht es an.
const licht = 'zigbee.0.a4c1386f336183e9.state'; const bewegungsmelder = 'zigbee.0.0017880103295819.occupancy'; const luefter = 'hm-rpc.1.00255BE98CF4E0.4.STATE'; let lichtTimer = null; let luefterTimer = null; let luefterStartTimer = null; let bewegungStart = null; on({ id: bewegungsmelder, change: 'ne' }, function (obj) { if (obj.state.val) { // Bewegung erkannt -> Licht sofort an setState(licht, true, true); // Zeitstempel speichern, wann Bewegung erkannt wurde bewegungStart = Date.now(); // Falls Licht- oder Lüfter-Timer laufen, abbrechen if (lichtTimer) { clearTimeout(lichtTimer); lichtTimer = null; } if (luefterTimer) { clearTimeout(luefterTimer); luefterTimer = null; } if (luefterStartTimer) { clearTimeout(luefterStartTimer); luefterStartTimer = null; } // Lüfter erst nach 2 Min prüfen luefterStartTimer = setTimeout(() => { if (Date.now() - bewegungStart >= 2 * 60 * 1000) { // Falls Bewegung noch aktiv ist -> nach 3 weiteren Minuten Lüfter an luefterTimer = setTimeout(() => { setState(luefter, true, true); luefterTimer = null; }, 3 * 60 * 1000); } }, 2 * 60 * 1000); } else { // Keine Bewegung mehr -> Licht nach 20 Sekunden aus lichtTimer = setTimeout(() => { setState(licht, false, true); // Falls Lüfter an ist, nach 3 Minuten aus if (getState(luefter).val) { luefterTimer = setTimeout(() => { setState(luefter, false, true); luefterTimer = null; }, 3 * 60 * 1000); } }, 20 * 1000); } });MOD-EDIT: Code in code-tags gesetzt!
vielen dank
@powerpeer Kann sein, das die Lampe nur auf 'sendpayload' reagiert:
Generiere eine Variable: const lichtpay = 'zigbee.0.a4c1386f336183e9.send_payload';
Ersetze mal sie Zeilen:
setState(licht, true, true);
durch:
setState(lichtpay /* Send a raw json payload /, '{"state": "on"}');
und :
setState(licht, false, true);
durch:
setState(lichtpay / Send a raw json payload */, '{"state": "off"}');falls der Lüfter auch nicht geht, dann dito,
-
Kurz:
setState(wo, was, false)
oder einfach
setState(wo, was) -
@powerpeer Kann sein, das die Lampe nur auf 'sendpayload' reagiert:
Generiere eine Variable: const lichtpay = 'zigbee.0.a4c1386f336183e9.send_payload';
Ersetze mal sie Zeilen:
setState(licht, true, true);
durch:
setState(lichtpay /* Send a raw json payload /, '{"state": "on"}');
und :
setState(licht, false, true);
durch:
setState(lichtpay / Send a raw json payload */, '{"state": "off"}');falls der Lüfter auch nicht geht, dann dito,
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden