NEWS
Anwesenheit durch BLE
-
Hallo alle zusammen, ich würde gerne zu dem geofancy über Smartphone noch soetwas über ein BLE und Shellys realisieren.
Folgene Situation war bei mir gegeben. Abends war das Handy meiner Frau beim nach Hause kommen bereits aus. Also kein ich bin wieder zuhause Signal empfangen.
Morgens bin ich dann losgefahren und der Iobroker dachte es ist keiner mehr zuhause. Kurze zeit später bekamm ich dann die Meldung der Alarmanlage aufs Handy Einbrecher im Haus Alarmsirenen an. Blöde nur das meine Frau fast ein Herzinfarkt bekommen hat.Nun meine Vorstellung ein kleines BLE Gerät ähnlich dem Button von Shelly der aber nicht aktiv geschaltet wird sondern im Auto liegt und der Iobroker bzw die Shellys mit bekommen ist da ist weg und somit der DP bin zuhause geschaltet wird.
Gruß
Mico -
-
Hallo alle zusammen, ich würde gerne zu dem geofancy über Smartphone noch soetwas über ein BLE und Shellys realisieren.
Folgene Situation war bei mir gegeben. Abends war das Handy meiner Frau beim nach Hause kommen bereits aus. Also kein ich bin wieder zuhause Signal empfangen.
Morgens bin ich dann losgefahren und der Iobroker dachte es ist keiner mehr zuhause. Kurze zeit später bekamm ich dann die Meldung der Alarmanlage aufs Handy Einbrecher im Haus Alarmsirenen an. Blöde nur das meine Frau fast ein Herzinfarkt bekommen hat.Nun meine Vorstellung ein kleines BLE Gerät ähnlich dem Button von Shelly der aber nicht aktiv geschaltet wird sondern im Auto liegt und der Iobroker bzw die Shellys mit bekommen ist da ist weg und somit der DP bin zuhause geschaltet wird.
Gruß
Mico@Mico das geht mit dem Shelly-Adapter. Du brauchst einen Shelly Gen2+ (Plus/Pro/Gen3) in der Nähe vom Auto als BLE-Gateway. Das Script dafür kann man direkt im Device Manager vom Adapter installieren ("BLE-Gateway-Skript installieren oder aktualisieren"). Achtung: Gen4 im Zigbee-Modus kann kein BLE scannen.
Doku: https://github.com/iobroker-community-adapters/ioBroker.shelly/blob/master/docs/de/ble-devices.md
Ein BLU Button eignet sich dafür eher nicht, weil der nur beim Drücken sendet. Besser ist z. B. ein Shelly BLU H&T oder ein BLU Door/Window im Beacon-Modus im Auto. Die senden regelmäßig, ohne dass man etwas tun muss. In
shelly.0.ble.<mac>.receivedBysiehst du, welcher Shelly das Gerät zuletzt empfangen hat, mit Zeitstempel und RSSI. Im Script prüfst du dann einfach: Wurde in den letzten X Minuten etwas empfangen, dann ist das Auto da und "zuhause" bleibt an.Was du im Hinterkopf behalten solltest: Das Auto da heißt nicht unbedingt jemand zuhause, und andersrum genauso. Für die Alarmanlage würde ich zusätzlich eine Verzögerung einbauen, z. B. erst eine Push-Nachricht, und scharf wird sie erst nach ein paar Minuten ohne Bewegung im Haus. Dann gibt es so eine Überraschung am Morgen nicht mehr.
-
Das klingt ja schon mal vielversprechend
Also auf allen Shellys Gen2 läuft bei mir der BLE Script zZ. Vers. 1.4
Ich habe noch ein Door Window liegen zum testen.Der hat ja zwei Teile den großen und der kleine der sich webewegt wenn Tür oder Fenster geöffnet werden. Denn großen würde ich dann ins Auto legen.
Dann bräuchte ich also den DP wenn der da ist bzw. weg das wäre der DP shelly.0.ble.receivedby die müßte ich dann von allen shelly überprüfen ob dort der Sender da bzw. weg ist und dann kann ich etwas schalten richtig? -
Das klingt ja schon mal vielversprechend
Also auf allen Shellys Gen2 läuft bei mir der BLE Script zZ. Vers. 1.4
Ich habe noch ein Door Window liegen zum testen.Der hat ja zwei Teile den großen und der kleine der sich webewegt wenn Tür oder Fenster geöffnet werden. Denn großen würde ich dann ins Auto legen.
Dann bräuchte ich also den DP wenn der da ist bzw. weg das wäre der DP shelly.0.ble.receivedby die müßte ich dann von allen shelly überprüfen ob dort der Sender da bzw. weg ist und dann kann ich etwas schalten richtig?@Mico fast. Du musst nicht jeden Shelly einzeln prüfen.
receivedBygibt es pro BLE-Gerät, nicht pro Shelly:shelly.0.ble.<mac>.receivedBy. Darin steht ein JSON mit allen Shellys, die das Gerät empfangen haben, jeweils mitrssiundts. Du wertest also nur diesen einen DP aus und nimmst den neuesten Zeitstempel.Ja, das große Teil (Sensor mit Batterie) kommt ins Auto, der Magnet bleibt liegen. Wichtig: In der Shelly App den Beacon-Modus aktivieren, sonst sendet er nur beim Öffnen/Schließen und du bekommst im Auto nichts.
Beispiel für den javascript-Adapter:
const BLE_ID = 'shelly.0.ble.<mac>.receivedBy'; // MAC anpassen const PRESENCE_ID = '0_userdata.0.autoZuhause'; const TIMEOUT_MIN = 10; createState(PRESENCE_ID, false, { type: 'boolean', role: 'indicator', read: true, write: false }); function check() { let lastTs = 0; const st = getState(BLE_ID); if (st && st.val) { try { const list = JSON.parse(st.val); for (const dev of Object.keys(list)) { lastTs = Math.max(lastTs, list[dev].ts || 0); } } catch (e) { log(`Cannot parse receivedBy: ${e}`, 'warn'); } } const present = Date.now() - lastTs < TIMEOUT_MIN * 60000; if (getState(PRESENCE_ID).val !== present) { setState(PRESENCE_ID, present, true); } } on({ id: BLE_ID, change: 'any' }, check); schedule('* * * * *', check); check();Der Schedule ist wichtig. Wenn das Auto weg ist, kommt nämlich kein Update mehr, und "weg" erkennst du nur am Timeout. Den Timeout würde ich nicht zu kurz wählen, weil BLE im Auto (Blech, Garage) gerne mal ein paar Pakete verliert. Schau dir am besten erst ein, zwei Tage die
ts/rssiWerte an, bevor du die Alarmanlage dranhängst.
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