Beiträge von magic_metz

    Ah. Gut zu wissen.

    Ich muss ja sagen die Shelly Dokumentation sind recht brauchbar aber haben auch einige Lücken.

    Speziell bei diesem Blumotion kann man sich lediglich aus dem Beispielscript ableiten was es tut. Und wenn man zufällig das richtige Forum gelesen hat weiß man auch dass man die Shelly BLE Debug App verwenden muss um den Blumotion zu konfigurieren. Bis ich mal rausgefunden hatte dass man dem Ding eine höhere Sensitivität geben kann :)

    Aber ob dieses Ding auch irgendwie mehr kann ist mir nicht klar. So gibt es ja beispielsweise bei BLE die Möglichkeit von aktiven Scans. Kann der Blumotion so was und falls ja was genau kann man damit tun? Ich habe mal eine Anfrage beim technischen Support gestellt und bereichte wenn ich mehr weiß.

    Oder kennst du vielleicht noch andere Quellen?

    Hi Krauskopp. Ich bin neidisch auf dein Treppenhauslicht.

    Du hat natürlich völlig recht. Die einfache Lösung ist mir nicht eingefallen. Irgendwie hatte ich mir eingebildet, ich hätte neue Kabel legen müssen zur Installation von BM. Aber ich hätte einfach direkt neben jedem Verbraucher einen BM installieren (bzw. die Verbraucher direkt durch Lampen mit integriertem BM ersetzen) können alle vorhandenen Taster abbauen können. Und jeden BM dauerhaft mit Strom versorgen. Die Taster hätten nach wie vor die Funktion das Licht "gewaltvoll" einzuschalten wenn diese ein Relais ansteuern, welches bei Betätigung eines Tasters die Stromversorgung der BM kurz unterbrechen (vielleicht geht das mit Eltako ER61 UC ?). Wobei die Dauer der Stromunterbrechung vielleicht noch Probleme machen könnte. Soweit ich das Internet verstanden habe reagieren die (meisten) BM mit Licht anschalten wenn man sie kurz stromlos schaltet.

    Das mit dem dem gemeinen "Treppenlichtangreifer" ist natürlich eine theoretisch Überlegung, da ich einen Background als IT Hampelmann habe. Generell wird ja viel Programmcode copy/pasted und niemand versteht was genau vor sich geht. Aber im allgemeinen fand ich es eine interessante Erkenntnis, dass eine unverschlüsselte BLE Nachricht keinerlei Vertrauenswürdigkeit bietet und jeder dahergelaufene Treppenlichtangreifer derartige Nachrichten fälschen kann und in den Äther Broadcasten kann. Somit ist mein Punkt eher der, dass man nichts wirklich wichtiges anhand solcher nicht vertrauenswürdigen Nachrichten schalten soll.

    Naja. Jetzt habe ich mich wenigstens mit BLE und Shelly API auseinander gesetzt.

    Abgesehen davon, dass ich mir für derlei Basteleien begeistern kann, denke ich aber auch die Komplexität von derart dynamischen Komponenten (mit Firmware, Config etc) ist doch für Privathaushalte unangebracht. Ich bin normalerweise durchaus zu begeistern für einfach Eltakos etc. Und auch motorisierte Rolländen gehen mir schon zu weit. :)

    Allen einen gutschen Rusch ebenfalls :)

    Mit ganz viel Licht und Getränken ;)

    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 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,

    Guter Punkt.

    Ein weitere interessante Beobachtung:

    einer meiner blumotions sendet jeweils im Abstand von einer Minute 2 Nachrichten direkt hintereinander:

    erste mit movement = 1

    zweite mit movement = 0

    Ich weiss nicht warum.

    Beacon mode ist deaktiviert und selbst wenn Beacon mode aktiviert wäre dann sollte die frequenz 2 mal pro Minute sein. Und es sollte dann jeweils eine einzelne Nachricht sein mit movement = 0. Denn der Blumotion liegt in einer schachtel verpackt :)

    Mal sehen ob hier ebenfalls ein Firmware update bzw. reset abhilfe schafft.


    UPDATE: Habe nochmals geprueft: Beacon mode war nicht angeschaltet, Fimware war bereits neueste Version, mit einem Reset konnte ich das Problem beheben. Meine Vermutung: Entweder ich bin doof oder es ist ein Bug in der Firmware und das Ding hing in einer Endloschleife.

    Vielleicht noch interessant in diesem Zusammenhang:

    Ich habe 3 Stück Blu Motion frisch verpackt als Weihnachtsgeschenk geliefert bekommen :)

    Auf allen 3 habe ich bereits die neueste Firmware aufgespielt.

    Alle 3 haben verschiedene Lux Werte:

    - Einer ist fast immer nahe 0. Selbst im hell beleuchteten Raum. Wenn man den blumotion direkt unter die Lampe hält kriegt man den Wert hoch auf 80. Aber als Bewegungsmelder der nur bei Dämmerung bzw. Dunkelheit das Licht anschalten soll leider unbrauchbar,

    - Ein anderer hat einen schönen Verlauf. Bei Dunkelheit 0 und mit zunehmendem Licht geht der Wert langsam hoch. Ist absolut brauchbar.

    - Der Dritte im Bunde zeigt immer 0 an. Selbst wenn man ihn direkt bestrahlt :). OK um Bewegung zu erkennen. Aber Lux wert nutzlos.

    Ich werde mal die factory Reset Methode probieren und gebe bescheid ob es geklappt hat...