NEWS
Philips Hue Bewegungsmelder
-
@haselchen @cash
Hallo,
leider muss ich mit einer weiteren Frage kommen.
Irgendwie scheint es so zu sein das die BWM nur eine gewisse Zeit lang akutalisieren und danach so etwas wie eine Pause brauchen?
Es sieht so aus, dass ich zum Beispiel im Bad den BWM so eingestellt habe das er bei Bewegung das licht schaltet und dann nach 3 Minuten in denen er keine Bewegung erkannt hat das Licht wieder aus schaltet.
Befinde ich mich nun im Bad geht das Licht auch sofort an... allerdings dann nach 5 Minuten trotz Bewegung einfach aus.
Das bedeutet ja... das er quasi zwei Minuten lang neue Bewegungen erkannt hat, hier dann auch der Timer zum ausschalten entsprechend neu gestartet wird, der BWM dann aber irgendwann einfach die neu erkannte Bewegung nicht mehr übermittelt und dann das Licht abschaltet.
In diesem Fall muss ich dann das Bad verlassen... irgendwie 30 sekunden warten und danach wird das Licht dann auch wieder angeschaltet.Ist das Problem bekannt? Und kann man da etwas gegen tun?
-
Kann ich leider nicht bestätigen.
Licht bleibt an solange ich mich bewege .
Der BWM braucht ca. 11 sek bis er von True auf False schaltet.
Das eventuell für deinen Hinterkopf wenn du Skripte programmierst. -
@fuxsism das Problem ist weniger der Bewegungsmelder als Dein Script. Mein Script läuft zwar auch noch nicht so wie ich es will aber ich kann auch nur schwer testen, da meine Lampe noch keine Hue Lampe ist. Ich schalte derzeit einfach nur einen Fake-Datenpunkt.
Ich schalte je nach Uhrzeit 1-3 Minuten nach der Meldung "keine Bewegung" das Licht aus. Sobald eine neue Bewegung erkannt wird breche ich den Timer ab.
-
@haselchen @cash
Das hier ist zum Beispiel ein Skript von mir:
Da ist es aber so dass das Licht trotzdem nach 3 Minuten Bewegung aus geht.
Was ja eigentlich nicht sein dürfte.
Ich habe mal IRGENDWO so etwas wie von einer TOTZeit bei den BWM gelesen... bin mir aber nicht mehr so sicher...Aber was sollte ich an dem Skript ändern?
-
@fuxsism
versuche es doch mal so
-
@fuxsism Zu Blockly kann ich nichts sagen. Ich mache das per Javascript. Aber der Blockly von BBTown sieht besser aus da dort ein timeout enthalten ist.
Ich schreibe mal wie mein Script aufgebaut ist.
Ich ermittel erstmal Arbeitstag und freier Tag = Davon sind bei mir die Szenen Morgens abhängig. Während der Arbeit will ich schon um 6 Uhr eine helle Szene und am Wochenende später.
Falls in der Mittagszeit geschaltet wird soll eine andere Szene angehen. Je nach Arbeitstag oder Wochende giult das gleiche für Abends.
Mein Script wird getriggert durch Bewegung und keine Bewegung.
Bei Bewegung wird geprüft wie hell es ist und ob das Licht benötigt wird oder nicht (der Bewegungsmelder hat ja auch einen Helligkeitssensor).
Wenn nötig schaltet er also die entsprechende Szene. Bei keine Bewegung starte ich einen Timer (Dauer des Timers abhängig von der aktuellen Uhrzeit). Nach Ablauf des Timers also x Minuten nach den der Bewegungsmelder keine Bewegung gemeldet hat schaltet das Licht aus.
Wenn nun 30 Sekunden nach keiner Bewegung eine Bewegung erkannt wird prüft das Script gibt es einen Timer. Falls ja wird der Timer abgebrochen, der zu diesesn Zeitpunkt bei x-30 Sekunden steht. -
@bbtown
was ist denn an deinen Skript anders als an meinem?
Ich kann da wirklich keinen unterschied erkennen?@cash
warum ist das andere Skript besser? In meinem sitzt doch auch ein Timeout!@Asgothian @BBTown @cash @haselchen
ich habe übrigens gerstern Abend noch etwas rumprobiert, und es scheint wirklich ein Problem der dauerhaften Bewegung zu sein. Wenn ich also in den Flur gehe sendet der BWM "Bewegung". Verlasse ich den Flur und bleibe nur ein paar Sekunden weg, so dass der BWM keine Bewegung erkennt sendet er sofort beim erneuten Eintritt wieder "Bewegung". Das Licht wird also quasi neu geschaltet und der Timer neu gestartet.
Bleibe ich aber im FLur mit ständiger Bewegung vor dem BWM sendet der BWM kein einziges "Bewegung" mehr und der Timer läuft einfach aus und das Licht geht aus obwohl die Bewegung da ist.
Es scheint also so... als würde der BWM nur neue Bewegungen melden und keine durchgehende... -
@fuxsism sagte in Philips Hue Bewegungsmelder:
was ist denn an deinen Skript anders als an meinem?
Ich kann da wirklich keinen unterschied erkennen?es wird niemand gezwungen eine Empfehlung auch mal auszuprobieren
Mich verwundert jedoch, dass dir nicht aufgefallen, ist, dass in meinem Script immer erst einmal den timer gestoppt wird ... bei dir nur wenn bestimmte Bedingungen zutreffen.
Du solltest zudem einmal beim Trigger anstelle der Variante "wurde aktualisiert" auch einmal "wurde geändert" ausprobieren. -
ich meinre das ÜBERHAUPT gar nicht negativ oder so.
Ich find es ja mega dass du versuchst auch neun Input mit rein zu bringen.
ich hatte nur gefragt weil ich keinen Unterschied gesehen hatte und es aber verstehen wollte wo der unterschied ist.Also den Trigger auf Änderung hatte ich zu Beginn auch schon... da hatte ich aber den Eindruck das es teilweise noch schlechter funktioniert... weil der bestehende Wert wahr auch mit neuem Wert wahr akutalisiert wird und dann keine Änderung stattgefunden hat und der Timer dann auch nicht "resettet" wird.
Und der Timer wird bei mir jedes mal auch nur gestoppt wenn das Licht neu geschaltet wird... sollte also eigentlich keinen Unterschied machen oder? -
@fuxsism
Nur weil Du keinen Unterscheid SIEHST???
... also ich bin hier jetzt raus, wenn jemand lieber diskutiert und Beratungsresistent ist, anstatt einfach mal auszuprobieren, dann ist mir meine Zeit zu schade.Wie gesagt, niemand wird hier gezwungen Empfehlungen anzunehmen.
-
@bbtown
naja... also ich denke schon, dass man so ein Skript ja auch jeweils verstehen sollte.
Und so wie ich das "lese" arbeitet dein Skript genau wie meines... ih verstehe nur nicht wo der Unterschied liegt und deshalb auch nicht wieso es dann besser laufen würde?
Vielleicht kannst du es mir aber ja erklären?Und nochmal... es soll überhaupt kein Angriff sein oder so... ich bin über jeden Tipp wirklich sehr dankbar!!!
-
@fuxsism sagte in Philips Hue Bewegungsmelder:
@bbtown
naja... also ich denke schon, dass man so ein Skript ja auch jeweils verstehen sollte.
Und so wie ich das "lese" arbeitet dein Skript genau wie meines... ih verstehe nur nicht wo der Unterschied liegt und deshalb auch nicht wieso es dann besser laufen würde?Folgende Signifikante Unterschiede gibt es:
- das Skript von BBTown stoppt den Timeout bei jeder Aktualisierung des Presence Wertes, Deines nur wenn alle Bedingungen erfüllt sind.
- dein Skript hat "code Dubletten", sprich 2 Stellen die das gleiche tun. das ist ungünstig, da z.Bsp. wenn du irgendwann dich entscheidest mit geringerer Helligkeit zu arbeiten an 2 Stellen angepasst werden muss an Statt bei bbtown nur an einer
- BBTowns script nutzt die Logik-Funktionen die Blockly bietet besser, prüft dafür aber auch eine Bedingung weniger ab (Schlafen = falsch wird nicht geprüft)
- BBTowns Skript prüft die Zeitbedingung nicht identisch zu deinem Skript: Zwischen 6:00 und 7:30 würde dein Skript (wenn es denn funktionieren würde) kein Licht schalten, das von BBTown schon
- Dein Skript hat eine nicht funktionierende Bedingung die nie wahr wird. Beim Block
Zeit zwischen A und B
muss A immer kleiner sein als B, sprich 16:00 > 6:00 - das ist nicht der Fall.
Unterm Strich ist das Skript von BBTown an einer Stelle besser als deins. Er nutzt die Logikbausteine um die abzuprüfenden Bedingungen leichter lesbar zu prüfen. Dabei nutzt er die Eigenschaft das "Falls Wert = Wahr" das gleiche ist wie "Falls Wert", sowie erweiterte Optionen, und prüft die Zeiten besser ab, und erzeugt damit ein deutlich kompakteres Blockly. Solange es wenige Skripte gibt macht das wenig aus - je mehr Skripte mit unterschiedlichen Aufgaben existieren desto wichtiger ist Übersichtlichkeit der Skripte.
Es ist an einer Stelle schlechter als Deins - wenn der BWM den Status auf falsch setzt wird der timeout gestoppt. Passiert das bevor der Timeout die Lampe abgeschaltet hat dann bleibt die Lampe an.
Und nochmal... es soll überhaupt kein Angriff sein oder so... ich bin über jeden Tipp wirklich sehr dankbar!!!
A.
-
@asgothian sagte in Philips Hue Bewegungsmelder:
Es ist an einer Stelle schlechter als Deins - wenn der BWM den Status auf falsch setzt wird der timeout gestoppt. Passiert das bevor der Timeout die Lampe abgeschaltet hat dann bleibt die Lampe an.
da hast Du wahr!
Vielleicht greift das besser
-
@asgothian @BBTown
so... das is doch mal eine Erklärung. Vielen Dank dafür...Die Code Dubletten sind entstanden weil ich ja einen gewissen "Leerlauf" habe in dem das Licht nicht geschaltet werden soll.
Soll halt morgens schalten... dann tagsüber nicht und dann ab Nachmittags wieder.
Aber ich verstehe was du meinst.
Das Der Wert A immer kleiner sein muss als Wert B ist zum Beispiel ein sehr sehr guter Hinweis. Das wusste ich nicht!
Ich möchte ja aber, dass dies ab Nachmittags 16Uhr über die Nacht bis morgens um 6Uhr geht... wie würde man das am Besten dann definieren?Von der kompakteren und eventuell eleganteren Bauweise aber mal abgesehen, unterscheiden sich die beiden Skripte in ihrer eigentlich Funktion aber doch trotzdem nicht odeR?
Also das Grundproblem kann durch das andere Skript nicht gelöst werden? -
@fuxsism sagte in Philips Hue Bewegungsmelder:
Also das Grundproblem kann durch das andere Skript nicht gelöst werden?
Was genau ist das Grundproblem ? die Verzögerung die initial genannt wurde sollte (sofern du auf push umgestellt hast) ja nicht mehr das Problem sein.
ch möchte ja aber, dass dies ab Nachmittags 16Uhr über die Nacht bis morgens um 6Uhr geht... wie würde man das am Besten dann definieren?
wie BBTown es getan hat:
Aktuelle Zeit nicht zwischen 10:00 und 16:00 Uhr
-
haha ja klar... das klingt schon serh vernünftig
Is ja logisch mit der Zeit!!
Das werde ich auf jeden Fall umsetzen.Das Grunproblem:
Irgendwie scheint es so zu sein das die BWM nur eine gewisse Zeit lang akutalisieren und danach so etwas wie eine Pause brauchen?
Es sieht so aus, dass ich zum Beispiel im Bad den BWM so eingestellt habe das er bei Bewegung das licht schaltet und dann nach 3 Minuten in denen er keine Bewegung erkannt hat das Licht wieder aus schaltet.
Befinde ich mich nun im Bad geht das Licht auch sofort an... allerdings dann nach 5 Minuten trotz Bewegung einfach aus.
Das bedeutet ja... das er quasi zwei Minuten lang neue Bewegungen erkannt hat, hier dann auch der Timer zum ausschalten entsprechend neu gestartet wird, der BWM dann aber irgendwann einfach die neu erkannte Bewegung nicht mehr übermittelt und dann das Licht abschaltet.
In diesem Fall muss ich dann das Bad verlassen... irgendwie 30 sekunden warten und danach wird das Licht dann auch wieder angeschaltet.Ich habe übrigens gerstern Abend noch etwas rumprobiert, und es scheint wirklich ein Problem der dauerhaften Bewegung zu sein. Wenn ich also in den Flur gehe sendet der BWM "Bewegung". Verlasse ich den Flur und bleibe nur ein paar Sekunden weg, so dass der BWM keine Bewegung erkennt sendet er sofort beim erneuten Eintritt wieder "Bewegung". Das Licht wird also quasi neu geschaltet und der Timer neu gestartet.
Bleibe ich aber im FLur mit ständiger Bewegung vor dem BWM sendet der BWM kein einziges "Bewegung" mehr und der Timer läuft einfach aus und das Licht geht aus obwohl die Bewegung da ist.
Es scheint also so... als würde der BWM nur neue Bewegungen melden und keine durchgehende...??? -
@fuxsism Also mal ganz ganz einfach.
Erstelle ein Script das bei jeder Änderung des Wertes den Inhalt der Wertes ausgibt. Nicht mehr. Kein schalten sondern nur ein Log.
Das heißt Du solltest im Log dann sehen wann gemeldet wird und wo Dein Fehler im Script liegt..
Bewegung erkannt um x
keine Bewegung um y
Bewegung um zBin aber auch raus. Weil ich mit Blockly nichts anfangen kann und somit keine Hilfe bin. Ich kann nur sagen der Bewegungmelder funktioniert und mach das was er bei mir soll…
-
@cash
das Skript an sich läuft ja und funktioniert ja auch zuverlässig.
Mein Problem ist dann eher doch der BWM an sich und dass er einfach bei Dauerbewegung keinen neuen Zustand sendet.
Da bleibt er einfach auf Bewegung=wahr stehen und da kann natürlich das Beste Skript nicht laufen.Könnte es vielleicht sogar daran liegen dass die Akkus nicht mehr voll genug sind? So quasi etwas wie einen Stromsparmodus??
-
@fuxsism doch das beste Script kann laufen. Meins ist nicht das Beste aber es läuft mit genau diesen Bewegungsmelder! Vielleicht solltest Du darüber nachdenken ob nicht doch Dein Script das Problem ist
Es ist doch gut wenn er 10 Minuten auf wahr bleibt wenn 10 Minuten Bewegung ist. Ich würde das Licht nicht ausschalten wenn der Datenpunkt auf wahr steht.
Schalte das Licht aus wenn der Datenpunkt auf falsch geändert wird…. und zwar sollte dann ein timeout starten.
Bin aber endgültig raus. Der Bewegungsmelder macht das was er soll. Nur Dein Script ist halt einfach falsch Wenn Du es nicht glaubst kauf Dir halt ein anderen und schmeiß ihn weg.
-
Genau vor dem gleichen Problem wie Fuxsism stand ich auch.
Nein tut es nicht. Wenn der BWM ausgelöst wird (Bewegung erkannt) und nun dauerhaft Bewegung vor dem BWM
erkannt wird, ändert der BWM seinen nicht Zustand und das Licht geht nach den 2min aus.Mein Blockly sieht so aus :
Kellerflurlicht mit BWM oben und unten im Treppenhaus -
Das ähnelt dem Vorschlag von Cash - Solange wie der Zustand des BWM wahr ist bleibt das Licht an
Beim Wechsel von Bewegung erkannt auf nicht erkannt wird in meinem Fall der Timeout aktiv und das Licht
nach 30sek ausgeschaltet.Dazu habe ich im BWM die Parameter so gesetzt :
So funktioniert es bei mir