NEWS
Philips Hue Bewegungsmelder
-
@fuxsism sagte in Philips Hue Bewegungsmelder:
Könnt ihr mir irgendwie helfen wie die ganze Schaltung schneller wird?
Ich weiß leider keinen Weg im Moment...Das wird nur gehen wenn Du die Verbindung ioBroker - Hue Bridge von Polling auf Push umstellst. Es gibt dazu im Forum einen Thread der sich mit diesem Thema beschäftigt. Wie gut das geht kann ich Dir nicht sagen.
Alternativ kannst du die Hue Bridge auch durch einen Zigbee Stick und den Hue Adapter durch den Zigbee-Adapter ersetzen.
A.
-
Stell das Polling im Adapter mal auf 3 oder 5 sek.
Meine Birnen reagieren mit dem BWM im Zusammenspiel in nicht mal 1sek.
Hatte dazu mal nen Vergleich mit der Einbindung in Node Red gemacht.
Das hat sich beides nichts genommen , Reaktion in fast unter 1sek. -
@asgothian
hey... vielen Dank für die schnelle Antwort.
Ehm wo ist denn der unterschied zwischen Polling und Push?
Und hast du vielleicht ein Link zu dem Thema?Ist es wirklich so, dass es in Verbindung mit einen ZigbeeStick schneller laufen würde?
Hatte ich auch schon einmal überlegt... irgendwie scheint aber die ganze ZigBee Stick Sache recht kompliziert und auch nicht so wirklich stabil zu sein oder?? -
@fuxsism sagte in Philips Hue Bewegungsmelder:
Ist es wirklich so, dass es in Verbindung mit einen ZigbeeStick schneller laufen würde?
Hatte ich auch schon einmal überlegt... irgendwie scheint aber die ganze ZigBee Stick Sache recht kompliziert und auch nicht so wirklich stabil zu sein oder??Ich habe damit keine Probleme.
Zum Link muss ich dich auf die Foren-Suche verweisen. Genau das würde ich auch nutzen.
A.
-
hab schon was gefunden, da muss irgendwie ein zusätzliches Skript akiviert werden?
Meintest du das? -
Bevor du dir noch mehr Hardware und zusätzlich noch Wissen aneignen willst/musst , probier doch erstmal andere Einstellungen aus.
Was du probieren kannst habe ich oben geschrieben.
Node Red kannst du auch ausprobieren.
Das würde ich eher machen, als zusätzlich noch Kohle für nen Gateway rauszuhauen. -
@haselchen
ja ich werde da mit dem Polling heute Abend auch jeden Fall mal versuchen.
Wäre natürlich kool wenn das reichen würde.Momentan braucht er aber locker 4 Sekunden oder so bis das Licht dann endlich geschaltet wird.
Wenn man da ins Badezimmer geht und die Tür zu macht steht man erst einmal noch im Dunkel... -
Verstehe das man da gefrustet ist.
Aber ich denke, dass lässt sich bestimmt optimieren.
Bei Fragen, schreib einfach. -
@fuxsism
hier noch der Link zum "hue-push" Thread -
Der Vollständigkeithalber. Ich nutze meine Bewegungsmelder über die Hue-App. Dort kann man sowohl für unterscheidliche Zeiten als auch Wochentag, Wochenende unterschiedliche Szenen einstellen.
Trotzdem habe ich einmal getestet wie schnell der Bewegunsmelder mit den Push-Script auf eine Bewegung reagiert. Ich würde sagen weniger als 0,5 Sekunden. Also wirklich sehr schnell.
Man könnte also wirklich das Licht auch per ioBroker schalten lassen. Nachteil bei der Hue-App, die weiß nicht wann ich Urlaub habe oder ein Feiertag ist und dort möchte ich morgens früh das Licht weniger hell als an Arbeitstagen.
Die gute Nachricht für alle die nicht basteln wollen Peter Murray wird die neue Api von Philips implementieren, so dass ioBroker danach auch mit Push umgehen kann, wenn der ioBroker Adapter angepasst wurde ohne das man noch das extra Script benötigt.
-
ich habe jetzt versucht dieses PUSH Skript zu installieren.
Jetzt laufen die BWM aber gar nicht mehr und das Skript gibt folgende Fehlersammlung:script.js.Hue_PUSH: TypeScript compilation failed: 'lights.status.status': { stateName: 'reachable', convert: (val) => { return val === 'connected' ? true : false; }, validTypes: ['Extended color light', 'Color temperature light', 'Dimmable light', 'On/Off plug-in unit'], after: (stateId, value) => { updateHueState(stateId.substring(0, stateId.lastIndexOf('.')) + '.on', value); } }, ^ERROR: Expected 3 arguments, but got 2. 'sensors.button.last_event': { stateName: 'buttonevent', convert: (val) => { return ((UUIDs[this.idv2] && UUIDs[this.idv2].metadata) ? UUIDs[this.idv2].metadata.control_id : 0) * 1000 + (val === 'repeat' ? 1 : 0) + (val === 'short_release' ? 2 : 0) + (val === 'long_release' ? 3 : 0); }, validTypes: ['ZLLSwitch'] }, ^ERROR: Object is possibly 'undefined'. 'sensors.button.last_event': { stateName: 'buttonevent', convert: (val) => { return ((UUIDs[this.idv2] && UUIDs[this.idv2].metadata) ? UUIDs[this.idv2].metadata.control_id : 0) * 1000 + (val === 'repeat' ? 1 : 0) + (val === 'short_release' ? 2 : 0) + (val === 'long_release' ? 3 : 0); }, validTypes: ['ZLLSwitch'] }, ^ERROR: Object is possibly 'undefined'. 'sensors.button.last_event': { stateName: 'buttonevent', convert: (val) => { return ((UUIDs[this.idv2] && UUIDs[this.idv2].metadata) ? UUIDs[this.idv2].metadata.control_id : 0) * 1000 + (val === 'repeat' ? 1 : 0) + (val === 'short_release' ? 2 : 0) + (val === 'long_release' ? 3 : 0); }, validTypes: ['ZLLSwitch'] }, ^ERROR: Object is possibly 'undefined'. 'lights.status.status': { stateName: 'state.reachable', convert: (val) => { return val === 'connected' ? true : false; }, validTypes: ['Extended color light', 'Color temperature light', 'Dimmable light', 'On/Off plug-in unit'], after: (stateId, value) => { updateHueState(stateId.substring(0, stateId.lastIndexOf('.')) + '.on', value); } }, ^ERROR: Expected 3 arguments, but got 2. 'sensors.button.last_event': { stateName: 'state.buttonevent', convert: (val) => { return ((UUIDs[this.idv2] && UUIDs[this.idv2].metadata) ? UUIDs[this.idv2].metadata.control_id : 0) * 1000 + (val === 'short_release' ? 2 : 0) + (val === 'long_release' ? 3 : 0); }, validTypes: ['ZLLSwitch'] }, ^ERROR: Object is possibly 'undefined'. 'sensors.button.last_event': { stateName: 'state.buttonevent', convert: (val) => { return ((UUIDs[this.idv2] && UUIDs[this.idv2].metadata) ? UUIDs[this.idv2].metadata.control_id : 0) * 1000 + (val === 'short_release' ? 2 : 0) + (val === 'long_release' ? 3 : 0); }, validTypes: ['ZLLSwitch'] }, ^ERROR: Object is possibly 'undefined'. 'sensors.button.last_event': { stateName: 'state.buttonevent', convert: (val) => { return ((UUIDs[this.idv2] && UUIDs[this.idv2].metadata) ? UUIDs[this.idv2].metadata.control_id : 0) * 1000 + (val === 'short_release' ? 2 : 0) + (val === 'long_release' ? 3 : 0); }, validTypes: ['ZLLSwitch'] }, ^ERROR: Object is possibly 'undefined'. updateHueState(stateId + '.r', Math.round(rgb.Red * 255)); ^ERROR: Expected 3 arguments, but got 2. updateHueState(stateId + '.g', Math.round(rgb.Green * 255)); ^ERROR: Expected 3 arguments, but got 2. updateHueState(stateId + '.b', Math.round(rgb.Blue * 255)); ^ERROR: Expected 3 arguments, but got 2. updateHueState(stateId + '.rgb', Math.round(rgb.Red * 255) + ',' + Math.round(rgb.Green * 255) + ',' + Math.round(rgb.Blue * 255)); ^ERROR: Expected 3 arguments, but got 2.
Kannst du damit was anfangen?
-
Ich benutze das Skript nicht .
Du musst dein Anliegen in den entsprechenden Thread schreiben , wo du das Skript her hast .
Btw. hattest du mal meine Vorschläge ausprobiert ? -
@fuxsism Wie hast Du das Script angelegt als TypeScript? Das ist falsch. Das ist normales Javascript.
-
@haselchen @cash
also inzwischen läuft das Skript!
Bin auch soweit wirklich sehr zufrieden mit der Verzögerung... die ist wirklich nicht mehr zu merken.
Ist nahezu Echtzeit!Vielen Dank schin einmal für die Tippps
-
@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.