Treppenhauslicht mit Tastern und (mehreren) Blumotion Bewegungsmeldern ohne Cloud

  • 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 TreppiHausiLichti.txt 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,

    5 Mal editiert, zuletzt von magic_metz (26. Dezember 2023 um 20:51)

  • Was ich vergessen hatte zu erwähnen:

    Das gesamte Setup besteht, neben der klassischen Elektroninstallation (Taster and der Wand, Verbraucher an der Decke), lediglich aus einem Shelly Plus 1 und 1 oder mehreren Shelly Blumotion Bewegungsmeldern. Die Melder kommunizieren dabei direkt mit dem Shelly Plus 1 (per Funk/Bluetooth mittels sogenannter BLE Advertisements). Die Cloud ist - wie im Titel erwähnt - nicht im Spiel und ein lokaler Server für Hausautomatisierung ebenfalls nicht.

    Ich habe mich jetzt auch nochmal ein wenig mit dem Thema Verschlüsserlung auseinander gesetzt (https://bthome.io/encryption/).

    Bis dato habe ich in der Shelly API Dokumentation keine Funktion gefunden, welche AES-CCM unterstützt. Aber ich bin mir sicher man könnte es selbst in javascript programmieren und zum Script hinzufügen. Allerdings weiß ich nicht ob das Script dann zu rechenintensiv für den Shelly wird.

    Hat jemand bereits Erfahrung damit?

    Oder kennt jemand einen anderen Weg wir man direkt auf dem Shelly Plus 1 die per AES-CCM verschlüsselte Payload der BLE Advertisement entschlüsseln kann?

  • Hallo,

    nichts gegen Deinen Tatendrang.

    mein Fazit aber: Ich finde es etwas übertrieben. Nur 3 Stunden Treppenlicht, geht gar nicht. Viel zu kurz. Und dann wohlmöglich unverschlüsselt. Da kommt der gemeine Treppenlichtangreifer und stellt sich hin und knipst den ganzen Tag das Licht an und aus.

    Man nehme ein vorhandenes Treppenlicht und baue einen oder mehrere Bewegungsmelder dazu ein. Fertig.

    Was macht Dein Treppenlicht besser, als meins? Licht geht an und nach gewisser Zeit wieder aus. Wenn ich da über 3 Stunden stehenbleiben möchte, macht das nichts, da ich 13€- Melder verbaut habe, die dank 3 integrierter PIR-Sensoren sich wie Präsenzmelder verhalten. Die bleiben an, bis sich nichts mehr rührt (mit entsprechender Nachlaufzeit).

    Das mag ja für Enthusiasten ein Vergnügen sein, soviel Energie und Zeit in so eine Aufgabe zu stecken. Aber ist nicht der Grundgedanke eher so, auf die schnelle mit ein oder 2 Shellys ohne stundenlange Programmierung oder sonstwas eine Funktion zu verbessern, ohne sich da neue Fehlerquellen einzubauen. Jedes Mal, wenn was nicht funktioniert, renne ich durchs Treppenhaus, reisse die Gehäuse auf um Knöpfchen zu drücken. (mehrfach!). Sogenanntes "Smart", wie Alle das immer nennen, geht bei mir anders.

    Aber trotzdem einen guten Rutsch ins neue Jahr

    Ist übrigens kein Nörgeln oder meckern oder runtermachen der Idee. Ich bin immer so. :)

    Mit besten Grüßen

    Martin

    Falls sich Jemand von mir persönlich angegriffen fühlt, dann bitte ich um eine kurze Info. Es lässt sich alles klären. Ich bin, wie ich bin.

    Einen 3EM kann man übrigens in 1728 Varianten einbauen und verdrahten .Es sind nun noch weitere Möglichkeiten dazu gekommen.

    In den meisten Einbauanleitungen sind die Wandler in der falschen Richtung eingezeichnet.

  • Schon mal Einer. :thumbup:

    Mit besten Grüßen

    Martin

    Falls sich Jemand von mir persönlich angegriffen fühlt, dann bitte ich um eine kurze Info. Es lässt sich alles klären. Ich bin, wie ich bin.

    Einen 3EM kann man übrigens in 1728 Varianten einbauen und verdrahten .Es sind nun noch weitere Möglichkeiten dazu gekommen.

    In den meisten Einbauanleitungen sind die Wandler in der falschen Richtung eingezeichnet.

  • Dieses Thema enthält 7 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.