Shelly BLU Motion Sensor - Automatische Lichtschaltung bei Bewegungsmeldung
Der Shelly BLU Motion Sensor eignet sich hervorragend in Kombination mit einem Shelly Relais zur automatischen Schaltung von Licht. Erkennt der BLU Motion eine Bewegung, kann er diese automatisch an ein Shelly Relais schicken, welches dann das Licht automatisch anschaltet. Ist keine Bewegung mehr vom Sensor registriert, schaltet dieser das Licht wieder aus. Das Ganze ist dann noch kombinierbar mit dem eingebauten Helligkeitssensor und / oder einer API, die uns die Sonneaufgangs- / Untergangszeiten mitteilt. Alles was dafür benötigt wird ist der Shelly BLU Motion Sensor selbst und ein Shelly Relais, welches Bluetooth und die Shelly Scripting Funktion unterstützt:
- Shelly BLU Motion Sensor
- Shelly Relais, wie zum Beispiel:
Einrichtung
Als aller erstes müssen, das Shelly Relais, wie auch der Shelly BLU Motion Sensor eingerichtet und nach belieben konfiguriert werden. Dies macht man am besten über die Mobile App von Shelly. Die neuste Firmware auf aufspielen, sollte obligatorisch sein. Hat man beide Geräte eingerichtet und erfolgreich die Funktionalität beider getestet, kann man nun die beiden miteinander verknüpfen. Dafür muss folgendes getan werden:
- Am besten per Browser direkt auf das Shelly Relais zugreifen. (http://ipadresse)
- Bluetooth auf dem Shelly Relais aktivieren, Bluetooth Gateway muss deaktiviert sein oder werden.
- eines der nachfolgenden Skripte auf dem Relais einfügen, konfigurieren, starten und den Autostart aktivieren.
- Testen und Feintuning (zum Beispiel die Sensor Sensibilität und die Motion Blind Time)
Licht an bei Bewegung
shelly-blu-motion.js
Dieses Skript, basierend auf einem original Shelly Beispiel Script schaltet immer wenn eine Bewegung registriert wird das Licht, oder besser gesagt den Switch des Shelly Relais an. Nachdem der Sensor keine Bewegung mehr registriert hat und die "Blind Time" abgelaufen ist, schaltet es das Licht wieder aus. Das Script kann zwar mit mehreren Motion Sensoren arbeiten, wird aber immer wenn ein Sensor keine Bewegung erkennt das Licht ausschalten.
GitHub Link: https://github.com/alaub81/shelly/blob/main/shelly-blu-motion.js
Konfigurationsoptionen
Das Script möchte als Konfiguration die Mac Adresse des Motion Sensors, wollt ihr mehrere Sensoren nutzen, dann einfach in die Liste mehrere Sensor Mac Adressen eintragen. Die Mac Adresse bekommt ihr in der Mobile App unter den Einstellungen des Motion Sensors. Die Konfiguration kann zum Beispiel so aussehen:
- allowedMacAddresses:
Array of Strings
- Listet die MAC-Adressen der zugelassenen Geräte auf, für die Bewegungs- und Lichtdaten verarbeitet werden sollen. Beispiel:
allowedMacAddresses: [
"0b:ae:5f:33:9b:3c",
"1a:22:33:62:5a:bc",
]
Sollte man mit einen Shelly Relais mit zwei Ausgängen wie dem Shelly Plus 2PM zum Beispiel arbeiten und nicht den ersten Ausgang (ID0) schalten wollen, kann man die switchId
anpassen:
- switchId:
Number
- Gibt die ID des Shelly-Schalters (Output) an, der bei Bewegungserkennung im Dunkeln aktiviert werden soll. Diese ID wird verwendet, um den Zielschalter zu identifizieren, wenn die FunktionShelly.call("Switch.Set", { id: switchId, on: motion }
aufgerufen wird. Default:0
Debug und Scanning Konfigurationen
- debug:
true
oderfalse
- Aktiviert den Debug Mode um mehr Logging Informationen auf der Konsole anzuzeigen. Default:false
- active:
true
oderfalse
- Aktiviert oder deaktiviert das aktive Bluetooth scanning. Default:false
Licht an bei Bewegung nur bei Dunkelheit
shelly-blu-motion-illuminance.js
Dieses Skript konfiguriert und betreibt einen Shelly Blu Motion Sensor, um Bewegungen zu erkennen und das Verhalten an die Umgebungshelligkeit anzupassen. Der Sensor aktiviert die Bewegungserkennung nur, wenn es dunkel ist, basierend auf den konfigurierbaren Parametern im CONFIG.darknessThreshold Objekt
. Wenn eine Bewegung korrekt erkannt wird, wird der konfigurierte Schalter eingeschaltet, andernfalls wird der Schalter ausgeschaltet wenn von keinem Sensor mehr eine Bewegung erkannt wird.. Zusätzlich wird der Status der Schalter überprüft, um redundante Ein- und Ausschaltbefehle zu vermeiden.
GitHub Link: https://github.com/alaub81/shelly/blob/main/shelly-blu-motion-illuminance.js
Konfigurationsoptionen
- allowedMacAddresses:
Array of Strings
- Listet die MAC-Adressen der zugelassenen Geräte auf, für die Bewegungs- und Lichtdaten verarbeitet werden sollen. Beispiel:
allowedMacAddresses: [
"0b:ae:5f:33:9b:3c",
"1a:22:33:62:5a:bc",
]
- darknessThreshold:
Number
- Legt den Lichtschwellenwert in Lux fest; jeder Wert unterhalb dieses Schwellenwerts gilt als „dunkel“ und löst die Bewegungserkennung aus. Default:1
Sollte man mit einen Shelly Relais mit zwei Ausgängen wie dem Shelly Plus 2PM zum Beispiel arbeiten und nicht den ersten Ausgang (ID0) schalten wollen, kann man die switchId
anpassen:
- switchId:
Number
- Gibt die ID des Shelly-Schalters (Output) an, der bei Bewegungserkennung im Dunkeln aktiviert werden soll. Diese ID wird verwendet, um den Zielschalter zu identifizieren, wenn die FunktionShelly.call("Switch.Set", { id: switchId, on: motion }
aufgerufen wird. Default:0
Debug und Scanning Konfigurationen
- debug:
true
oderfalse
- Aktiviert den Debug Mode um mehr Logging Informationen auf der Konsole anzuzeigen. Default:false
- active:
true
oderfalse
- Aktiviert oder deaktiviert das aktive Bluetooth scanning. Default:false
Licht an bei Bewegung nur bei Dunkelheit und nur bei Nacht
shelly-blu-motion-darknight.js
Dieses Skript bietet eine robuste Möglichkeit, die Beleuchtung auf der Grundlage von Bewegungserkennung, Umgebungslicht und Nachterkennung mit Shelly Geräten und BLU Motion Sensoren zu steuern. Mit der Flexibilität von konfigurierbaren Parametern und Echtzeit-Sensormessungen hilft es, die Beleuchtung effizient und mit reduzierter Redundanz zu automatisieren. Es stellt sicher, dass sich das Licht nur dann einschaltet, wenn es dunkel, Nacht ist und eine Bewegung erkannt wird. Es schaltet sich erst dann aus, wenn von keinem Sensor mehr eine Bewegung erkannt wird.
Das Skript verwendet geografische Koordinaten zur Berechnung der Sonnenaufgangs- und Sonnenuntergangszeiten (Sunset and sunrise times API) und kann so zwischen Tag und Nacht unterscheiden. Außerdem wird der Schalterzustand (Output) überprüft, um redundante Ein- und Ausschaltbefehle zu vermeiden.
1. Bewegungserkennung: Das Skript überwacht Bewegungsdaten von mehreren Sensoren.
2. Lichtsteuerung: Das Licht schaltet sich nur ein, wenn:
- Es ist dunkel genug (bestimmt durch einen Lux-Schwellenwert),
- die aktuelle Uhrzeit Nacht ist (basierend auf den Zeiten für Sonnenuntergang/Sonnenaufgang) und
- eine Bewegung von einem beliebigen Sensor erkannt wird.
3. Vermeidet redundante Schaltvorgänge: Bevor das Skript den Zustand des Lichts (Output) ändert, prüft es, ob es bereits ein- oder ausgeschaltet ist.
4. Licht schaltet sich aus: Das Licht schaltet sich nur aus, wenn keine Sensoren eine Bewegung melden.
GitHub Link: https://github.com/alaub81/shelly/blob/main/shelly-blu-motion-darknight.js
Konfigurationsoptionen
- allowedMacAddresses:
Array of Strings
- Listet die MAC-Adressen der zugelassenen Geräte auf, für die Bewegungs- und Lichtdaten verarbeitet werden sollen. Beispiel:
allowedMacAddresses: [
"0b:ae:5f:33:9b:3c",
"1a:22:33:62:5a:bc",
]
- darknessThreshold:
Number
- Legt den Lichtschwellenwert in Lux fest; jeder Wert unterhalb dieses Schwellenwerts gilt als „dunkel“ und löst die Bewegungserkennung aus. Default:1
- latitude:
float
- Der Breitengrad Ihres Standorts, der zur Berechnung der Sonnenaufgangs- und Sonnenuntergangszeiten verwendet wird. - longitude:
float
- Der Längengrad Ihres Standorts. - timezone:
string
- Zeitzonenkennung (am besten beiUTC
lassen!) für die Sonnenaufgang/Sonnenuntergang-API-Anfrage.
Sollte man mit einen Shelly Relais mit zwei Ausgängen wie dem Shelly Plus 2PM zum Beispiel arbeiten und nicht den ersten Ausgang (ID0) schalten wollen, kann man die switchId
anpassen:
- switchId:
Number
- Gibt die ID des Shelly-Schalters (Output) an, der bei Bewegungserkennung im Dunkeln aktiviert werden soll. Diese ID wird verwendet, um den Zielschalter zu identifizieren, wenn die FunktionShelly.call("Switch.Set", { id: switchId, on: motion }
aufgerufen wird. Default:0
Debug und Scanning Konfigurationen
- debug:
true
oderfalse
- Aktiviert den Debug Mode um mehr Logging Informationen auf der Konsole anzuzeigen. Default:false
- active:
true
oderfalse
- Aktiviert oder deaktiviert das aktive Bluetooth scanning. Default:false
GitHub Repository
Alle Shelly Script findet ihr auch in meinem GitHub Repository: