Vraag


Acties:
  • 0 Henk 'm!

  • Jasper8014
  • Registratie: Oktober 2015
  • Laatst online: 24-09 11:48
Mijn vraag
Hoe krijg ik location based acties aan het werk?

Relevante software en hardware die ik gebruik
Shelly BLU Button Tough 1
Shelly BLU Motion
Shelly BLU Deur sensor
Shelly Gateway

Wat ik al gevonden of geprobeerd heb
In de scenes kan ik niks vinden over locatie gebaseerde acties.
Alleen dingen met knop.
Scripts ben ik nog niet goed in of überhaupt ervaring in.

Het gaat er uiteindelijk om dat op het moment dat Buttons binnen bluetooth bereik zijn, het alarm eraf gaat.
En zodra er geen Button binnen het bereik is, het alarm erop gaat.

Is dat überhaupt mogelijk? Zo ja, kan iemand hier ons bij helpen?

Alle reacties


Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 17:08

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Voor zover ik weet (maar dat is niet veel :) ) is de Button een passief apparaat. Het zendt alleen uit als de knop wordt ingedrukt. Het is dus géén BLE beacon dat door de gateway wordt opgepikt. Mogelijk is je telefoon dat wel (check de Shelly app), en anders zijn er nog goedkope beacons bij de Action te krijgen. Al weet ik niet of die met de Shelly gateway werken.

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

  • Jasper8014
  • Registratie: Oktober 2015
  • Laatst online: 24-09 11:48
In settings van de button kan ik wel als beacon instellen. Dit staat ook op de product pagina van Shelly.

Alleen het daadwerkelijk maken van bijvoorbeeld een script kan ik zelf niet.

Acties:
  • 0 Henk 'm!

  • Jasper8014
  • Registratie: Oktober 2015
  • Laatst online: 24-09 11:48
Wij zijn ondertussen iets verder gekomen, met dank aan chatgpt.

Huidige script is als volgt. Deze staat ingevoerd in de gateway.
// Lijst met sleutelhangers (MAC-adressen aanpassen!)
let keys = [
"AA:BB:CC:DD:EE:01",
"AA:BB:CC:DD:EE:02",
"AA:BB:CC:DD:EE:03",
"AA:BB:CC:DD:EE:04"
];

// Houdt bij wie er aanwezig is
let presence = {
"AA:BB:CC:DD:EE:01": false,
"AA:BB:CC:DD:EE:02": false,
"AA:BB:CC:DD:EE:03": false,
"AA:BB:CC:DD:EE:04": false
};

// Alarm status
let alarmOn = true;

// Functie om alarmstatus te zetten
function setAlarm(state) {
if (alarmOn === state) return; // geen verandering
alarmOn = state;
if (alarmOn) {
Shelly.call("Switch.Set", { id: 0, on: true }); // Alarm AAN
print("Alarm ingeschakeld (niemand aanwezig).");
} else {
Shelly.call("Switch.Set", { id: 0, on: false }); // Alarm UIT
print("Alarm uitgeschakeld (iemand aanwezig).");
}
}

// Controleer of er nog iemand aanwezig is
function updateAlarm() {
let someoneHome = false;
for (let i = 0; i < keys.length; i++) {
if (presence[keys[i]]) {
someoneHome = true;
break;
}
}
setAlarm(!someoneHome); // als niemand thuis => alarm AAN
}

// Event handler voor BLE
Shelly.addEventHandler(function (event) {
if (event.component === "ble") {
let mac = event.info.addr;

if (keys.indexOf(mac) >= 0) {
if (event.name === "device_discovered") {
presence[mac] = true;
print("Sleutel " + mac + " is thuis.");
updateAlarm();
}

if (event.name === "device_lost") {
presence[mac] = false;
print("Sleutel " + mac + " is weg.");
updateAlarm();
 }
    }
  }
});


Wij hebben de mac adressen van de buttons toegevoegd.
Maar helaas werkt het nog niet helemaal.

Is er iets simpels dat wij over het hoofd zien?