Hallo Allerseits,
Anbei möchte ich mein erstes Shelly Projekt samt Script beschreiben um Ideen und Anregungen zu geben.
Jeder der selbst an elektrischen Anlagen arbeitet oder Shelly Geräte konfiguriert oder Scripte auf Shelly Geräten betreibt tut dies natürlich auf eigene Verantwortung.
Es geht darum dass ich mein vorhandenes Treppenhauslicht ein wenig intelligenter machen wollte: und zwar mit Bewegungsmeldern (BM).
Das Treppenhaus geht auch einmal ums Eck so dass ein einzelner BM nicht ausreicht.
Bisher gab es lediglich drei Taster welcher ein Eltako Stromstrossrelais beim Tasten jeweils ein bzw. ausgeschaltet haben.
Und daraufhin gingen dann 3 Lampen an bzw. aus.
Die Anzahl Taster und Anzahl Lampen spielen aber in meinem Fall keine Rolle, da diese jeweils alle parallel geschaltet sind.
Alle benötigten Adern (Null-Leiter, Schutz-Leiter, Phase, Taster, Lampendraht) waren bereits in der Unterputzdose vorhanden so dass ein 1:1 Austausch des alten Eltako Stromstossrelais gegen ein Shelly Plus 1 möglich waren.
Gesagt getan
Nach Anschließen des Shelly Plus 1 konnte ich mittels der Weboberfläche des Shelly im Handumdrehen den alten Zustand wiederherstellen:
- Input Mode = Button
- Output Type = Momentary Switch
Nun aber zu den Bewegungsmeldern:
Ich habe mich für Shelly blumotion entschieden, da dieser eine lange Batterielaufzeit haben soll und dank Bluetooth Low Energy kein neues Kabel verlegt werden muss. Außerdem kann ich 1, 2 oder mehr von diesen Dingern an verschiedenen Orten anbringen, so dass das komplette Treppenhaus ausreichend ausgeleuchtet ist.
Es ist wichtig zu wissen dass man sich auf dem Smartphone die "Shelly BLE debug" installieren muss um den Blumotion zu konfigurieren bzw. kennenzulernen:
- Sensitivität von 1 auf 2 erhöhen falls notwendig
- Firmware aktualisieren
- MAC Adresse auslesen (jeder einzelne Blumotion hat eine andere eindeutige Mac Adresse)
- Für das von mir fabrizierte Script soll der sogenannte Beacon Modus ausgeschaltet bleiben (Default) und
- die voreingestellte Blindtime von 60 Sekunden ist auch in Ordnung
- Luxmeter Wert auslesen um einen Eindruck davon zu bekommen, welche Werte bei welcher Helligkeit ausgegeben werden
Die reguläre Shelly App war für mich unbrauchbar und macht nur dann Sinn wenn man die Cloud verwendet.
Aber auch die "Shelly BLE debug" verhielt sich bei mir komisch: Manchmal habe ich mehrere Anläufe gebraucht bis die App den Blumotion gefunden hatte. Auf jeden Fall muss man mittels Schlitzschraubendreher das Gehäuse des Blumotion öffnen damit man an den kleinen schwarzen Knopf gelangt. Diesen muss man gelegentlich Drücken (einfach um das Gerät zu finden bzw. 10 Sekunden lang um zu Pairen zum Zwecke des Firmware Update). Die App sagt einem mehr oder weniger was man tun muss aber für mich was es dennoch ein kleiner Kampf bis es endlich geklappt hat. Ich behaupte mal die App bzw. die Blumotion Firmware sind noch etwas verbugt.
Nun wollte ich das Ganze aber mit dem Shelly Plus 1 verbinden, so dass mein Treppenhauslicht intelligent wird:
- Es soll sich automatisch einschalten wenn eine Bewegung erkannt wird
- Wenn keine Bewegung mehr vorhanden ist soll Licht automatisch wieder ausschalten
- Die Taster dienen als Fallback: Wenn man einen Taster drückt soll das Licht angehen und für eine bestimmte Mindestdauer anbleiben. Einfach für den Fall dass man vom BM mal nicht erkannt wird
Ich hatte mir auch eine Weile lang überlegt, ob ich das Licht wieder ausschalten soll wenn es bereits an ist und der Taster gedrückt wird: Aber ich musste dann feststellen dass dies im Kombination mit Bewegungsmeldern keinen Sinn macht und zu diversen verwirrenden, und teilweise gefährlichen, Situation führen kann.
Deswegen: Taster drücken = Licht anschalten bzw. angeschaltet lassen
Als nächstes habe ich die Konfiguration des Shelly angepasst:
- Bluetooth settings: enable Bluetooth
(RPC und Enable Bluetooth Gateway sind nicht zwingend notwendig in diesem Anwendungsfall) - Input Mode = Button
- Output Type = Activation Switch
- Action on Power on = was du willst
- Scheduler Auto OFF = deaktiviert
Alternativ: Wenn euch Strom sparen wichtiger ist als ggf. Sicherheit dann könnte ihr Auto OFF auch aktivieren und einen langen Timeout einstellen (mindestens 1800 Sekunden).
Es kann dann aber passieren dass das Licht ausgeht obwohl sich noch Personen vor den BM bewegen. - Unter Advanced > KVS (Key Value Storage) muss eine ganze Latte von Werten hinterlegt werden:
- karcsas_blumotion_mac_list - Liste mit den MAC Adressen aller Blumotion Devices welche zu berücksichtigen sind. z.B.
["aa:e0:7e:d0:f5:01", "bb:e0:7e:d0:f5:02", "cc:e0:7e:d0:f5:03"] - karcsas_button_auto_off_timer_seconds - Dauer in Sekunden wie lange das Licht angeschaltet bleiben soll wenn ein Taster betätigt wird
Vorschlag: 120 - karcsas_illuminance_treshold_lux - Luxwert ab welchem das Licht eingeschaltet werden soll wenn einen Bewegung erkannt wird.
Vorschlag: 100
Oder 0 wenn das vorhanden Umgebungslicht ignoriert werden soll
HINWEIS: Das Script sieht nur einen Wert vor. Aber leider hat meine Erfahrung gezeigt, dass jeder einzelne Blumotion eine individuelle Skale für den Luxmeter hat. - karcsas_blumotion_timeout_seconds - Wenn ein bestimmer Blumotion den Start einer Bewegung meldet und dann für diese Anzahl Sekunden sich gar nicht mehr meldet, geht das Script davon aus, dass der Melder defekt oder außerhalb der Reichweite ist und es wird angenommen dass die Bewegung beendet ist.
Vorschlag: 10800 (= 3 Stunden)
ABER: Wenn man sich wirklich 10800 Sekunden vor dem Bewegungsmelder aufhält (weil man beispielsweise gerade die Wand streicht oder einen Schwatz mit dem Nachbarn hält oder eben weil das Treppenhaus permanent frequentiert ist), dann geht das Licht nach dieser Dauer aus und man steht im Dunkeln. Denn der Blumotion sendet - so lange die Bewegung anhält - keine weitere Nachricht. Man steht dann also ggfs im Dunkeln und muss einen Taster betätigen damit das Licht wieder für die Dauer von 2 Minuten angeht bzw. alle Personen müssen den Erfassungsbereich des Melders für mindestens eine Minute (Blindtime) verlassen und erneu betreten damit der Melder wieder vom Script berücksichtigt wird. - karcsas_post_motion_additional_seconds - Sobald alle Blumotion das Ende der Bewegung gemeldet haben (d.h. keine Bewegung während der Blindtime) soll das Licht dennoch weiterhin für diese Anzahl Sekunden eingeschaltet bleiben
Vorschlag: 60
Gerne auch 0 falls ihr wollt, dass das Licht sofort ausgeht sobald alle Blumotion das Ende der Bewegung gemeldet haben
Dann habe ich das angehänge Script
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
programmiert und in den Shelly hochgeladen und gestartet.
Das Script gibt jede Menge Debug Meldungen aus. Unter anderem auch für unpassende / fehlende Konfiguration.
Wenn ihr das Script ebenfalls verwenden wollt (als Anregung oder Ideengeber), dann schaut es euch bitte erst an und macht euch euer eigenes Bild bzw. passt es euren Vorstellungen an.
Denn ich kann keinerlei Gewährleistung oder Verantwortung für das Script übernehmen und Ihr führt es auf eigene Verantwortung aus
Außerdem ist wichtig zu wissen:
Das Script geht davon aus dass die Verschlüsselungsfunktion des Blumotion nicht eingeschaltet ist (ist im Auslieferungszustand der Fall).
Sofern die Verschlüsselung eingeschaltet werden soll (das geht mit der Shelly BLE Debug App) dann muss das Script entsprechend überarbeitet werden.
Aufgrund der ausgeschalteten Verschlüsselung wäre es einem potentiellen Angreifer leicht möglich gefälschte Bluetooth Nachrichten an euren Shelly zu senden und somit den Switch des Shelly beliebig ein und auszuschalten.
Deswegen sollten mit diesem Script lediglich experimentelle Aufbauten betrieben werden, aber keine sicherheitsrelevanten Anlagen.
Feedback und Fragen gerne willkommen,