NEWS
Anwesenheit über Radar
-
Moin zusammen,
ich beschäftige seit Anfang des Jahres immer mal wieder mit meinem kleinen Projekt. Bin bislang dank des guten Forums ohne viel nachzufragen gut durchgekommen.
Aber nun begreife ich mein Problem einfach nicht.
Ich möchte gerne Anwesenheit übers Handy (Bluetooth) via Radar realisieren.
In Objekten wird der Status geändert.
Wenn die Tür aufgeht soll entweder die Begrüßung oder Hausarlam ausgelöst werden.
Aber Irgendwie habe ich da noch Anfänger Denkfehler….
// Anwesenheit über Radar - S7 function Sprechen( Text) { setState("alexa2.0.Echo-Devices.G090LF11749xxxx.Commands.speak"/*speak*/, Text ); } on(({id: "hm-rpc.0.OEQ042xxxxx.1.STATE"/*Tür.STATE*/, val : true}), function (obj) { var thomas = getSate("radar.0.S7.btHere"/*S7.btHere*/).val; var value = obj.state.val; var oldValue = obj.oldState.val; console.log('Türsensor'); setTimeout(function() { // Ausführen nach 10 Sek. if (thomas === false) { sendTo("pushover", "send", { message: 'Hausarlam', sound: "siren", priority: 1 } ); Sprechen('Alarm'); console.warn("pushover: " + 'Hausarlam'); } else if (thomas === true){ Sprechen('Moin Thomas'); console.log(`Anwesend`);} }, 10000); } );Danke für die Unterstützung
-
Die 2. Klammer bei on() ist zuviel.
on({id: "hm-rpc.0.OEQ042xxxxx.1.STATE"/*Tür.STATE*/, val: true}, function() {Ansonsten ist zu bemängeln, dass überflüssige Befehle enthalten sind und das Skript schlecht lesbar ist (sinnvolle Einrückungen fehlen).
-
Überflüssig ist dei Deklaration von Variablen (value, oldValue), die nie benutzt werden.
@thomson:wie könnte es aussehen? `
!
// Anwesenheit über Radar - S7 ! function Sprechen( Text) { setState("alexa2.0.Echo-Devices.G090LF11749xxxx.Commands.speak"/*speak*/, Text ); } ! on({id: "hm-rpc.0.OEQ042xxxxx.1.STATE"/*Tür.STATE*/, val : true}, function() { var thomas = getState("radar.0.S7.btHere"/*S7.btHere*/).val; console.log('Türsensor'); setTimeout(function() { // Ausführen nach 10 Sek. if(!thomas) { sendTo("pushover", "send", { message: 'Hausarlam', sound: "siren", priority: 1 }); Sprechen('Alarm'); console.warn("pushover: " + 'Hausarlam'); } else { Sprechen('Moin Thomas'); console.log(`Anwesend`); } }, 10000); }); !
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