NEWS
Sonos/Hue - Hilfe/Ideen für Badezimmer Script
-
@paul53 - herzlichen Dank für deine ausführliche Unterstützung. Ich werde das heute Abend mal nachbauen und dann berichten.
Folgendes fiel mir noch ein: Wie würdest du den Status des "manuellen Stop" wieder zurücksetzen? Ich kann ja bei dem Hue-Bewegungsmelder theoretisch prüfen, ob länger als 10-15 Minuten keine Bewegung erkannt wurde (was ein recht sicherer Indikator wäre, das niemand mehr im Bad ist) und dann wieder zurücksetzen. Ergibt das Sinn, oder hast du vielleicht einen besseren Vorschlag?
Vielen Dank nochmal und beste Grüße
Sundance
-
@Sundance sagte:
Wie würdest du den Status des "manuellen Stop" wieder zurücksetzen?
Im Vorschlag wird er durch manuelle Betätigung von "Play" zurück gesetzt.
-
@paul53 said in Sonos/Hue - Hilfe/Ideen für Badezimmer Script:
@Sundance sagte:
Ja, durch Vergleich vorheriger Ursprung != "system.adapter.javascript.0", wenn man nur bei Update triggert. vorheriger Ursprung ist eine Eigenschaft des Trigger-Datenpunktes.
Diesen Punkt verstehe ich leider nicht ganz - was muss ich für Datenpunkte/States erstellen, oder wie komme ich an den "Urpsprung"? Ich habe das Blockly soweit nachgebaut, aber an dem Punkt komme ich nicht weiter..
Etwa so
Und eine weitere Sache verstehe ich nicht auf Anhieb - wofür ist der zweite Trigger oben in deinem Vorschlag da? (der einfach nur "Wert" als Platzhalter Variable hat) Ich verstehe nicht, was ich meiner variante dort einsetzen/austauschen muss.
Ich danke dir im voraus für deine Hilfe!
Beste Grüße
Sundance
-
@Sundance sagte:
wie komme ich an den "Urpsprung"?
Wert und vorheriger Ursprung sind Eigenschaften des Trigger-Datenpunktes (Blöcke "Trigger"):
-
@paul53 - super, das habe ich gefunden - das funktioniert auch wie erwartet. Leider scheint mit der Abfrage bei den Bewegungsmeldern etwas nicht so zu klappen, wie geplant. Ich poste erstmal mein aktuelles Blockly, vielleicht hast du ja noch eine Idee (oder ich habe irgendwelche Platzhalter falsch "übersetzt"..)
(Der abgeschnittene Teil beinhaltet weitere Voraussetzungen: Anwesenheit, Uhrzeit, "manuellPause", und dass der Sonos grade nicht bereits abspielt)
"Play" wird korrekt ausgelöst, allerdings funktioniert das pausieren nicht konstant - manchmal wird die Nachricht "No Motion Anymore: PAUSING in 3 Minutes" ausgelöst, und wenige Sekunden später wird trotzdem die Pause gesendet.
Ich nutze Hue-Bewegungsmelder, die direkt per Zigbee verbunden sind (da sie so deutlich schneller bzw. direkter auslösen) - kann es sein das sich hier gelegentlich irgendein Abfrage bzw. Polling Intervall überschneidet?
Ich habe einige Debug Logs eingefügt, damit ich besser nachvollziehen kann, wann was passiert. Alle Nachrichten werden zwei mal gepostet, weil ich oben zwei Object-IDs bzw. Haupt-Trigger habe. Kann es auch damit zusammenhängen?
Vielen Dank vorab für deine Unterstützung..
-
@Sundance sagte:
weil ich oben zwei Object-IDs bzw. Haupt-Trigger habe.
Bei zwei Triggern funktioniert die einfache Abfrage von Wert nicht. Außerdem muss die Bewegungserkennung mit ODER verknüpft werden. Prinzip:
-
@paul53 - Okay, die initiale Abfrage von einem der Bewegungsmelder reicht ja erstmal - oder gibt es einen einfachen Weg, zwei Werte abzufragen?
In meinem "Falls" habe ich ja mit ODER gearbeitet, oder macht es einen Unterschied, dass du die externen Ausgänge aktiviert hast?
-
@Sundance sagte:
In meinem "Falls" habe ich ja mit ODER gearbeitet
Was ist rechts noch mit UND verknüpft ?
@Sundance sagte in Sonos/Hue - Hilfe/Ideen für Badezimmer Script:
macht es einen Unterschied, dass du die externen Ausgänge aktiviert hast?
Nein, sieht nur übersichtlicher aus.
-
@paul53 said in Sonos/Hue - Hilfe/Ideen für Badezimmer Script:
Was ist rechts noch mit UND verknüpft ?
Hab es mal etwas übersichtlicher umgebaut - Hier ein Auszug davon:
Ich frage beide BWM, die Anwesenheit, den aktuellen Status der Sonos Box, die "manuellPause" und den Zeitraum ab.
Ich habe jetzt mal auf einen BWM im Trigger reduziert - macht es einen Unterschied, wenn ich danach sowieso im zweiten Trigger die beidem BWMs abfrage?
Vielen Dank
Gruß
sundance
-
Hallo - ich habe mich anfangs auch beim Sonos-schalten auch auf die Bewegungsmelder konzentriert.
Ging soweit - nur wollte ich dann Nachts (z.b. von 0.00 bis 5.00 Uhr) beim Bad/Toiletten-Besuch kein Sonos-Gerät am laufen haben ...
... also neuer Ansatz: Bewegung egal! - Das HUE-Licht (Helligkeit) wird abgefragt!
Da hat ja HUE die geniale Nachtsteuerung der Lampen wo man eine Uhrzeit definieren kann und die Helligkeit - z.b. nur 50% - alles gut, denn Sonos wird ja nur bei 100% geschalten. Dieses funktioniert sehr zuverlässig.
Hui dachte ich - also nehmen wir doch den Helligkeitswert der HUE-Lampe und frage den Status mit Blockly ab und schalte Sonos. Siehe da - alles ist gut!
... hat den weiteren Vorteil das vor dem Abschalten der Lampe sich die Helligkeit der Lampe verringert - also wirds Zeit sich zu Bewegen das es Hell bleibt und Sonos geht ja nur bei 0% aus. Wenns dann Dunkel wird ist dein Sonos auch aus.... hier das Blockly:
<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="on" id="c08~!?}h/;gsL^zE(OMo" x="13" y="12"> <field name="OID">hue.0.Bridge_GR.Bad.level</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="#F]0/Q8r1ut@.?^FOc-6"> <value name="IF0"> <block type="logic_compare" id="IR~LLs/L%xH)P=(Rcz*F"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="Qz9J,V+C3-4TJsFPJXGN"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="yb+v2-:?bRaB?bM)Wk[j"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="0,KyWH6YQux.JP0zd;*k"> <mutation delay_input="false"></mutation> <field name="OID">sonos.0.root.192_168_0_150.favorites_set</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="y2e8}+q(WtF|~z34=UeV"> <field name="TEXT">SWR3</field> </block> </value> <next> <block type="control" id="cR|BEa*?=9#a~oZo#`,T"> <mutation delay_input="false"></mutation> <field name="OID">sonos.0.root.192_168_0_150.play</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Ln_6B6brsLJ~u+[T/i`N"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </xml>