NEWS
[gelöst]Steuerung Hue mit Blockly
-
Versuche mal den "colormode" und ggf. auch "ct" ebenfalls in eine variable zu parken und dann wieder mit zurückzugeben
Gesendet von iPad mit Tapatalk
-
Moin Heiko,
danke für den Tip, habe ich natürlich gleich umgesetzt - hat aber leider auch nichts gebracht…
Der CT-Wert zeigt ja nur die Farbtemperatur, wenn man sich im kalt-warm-Weiß-Bereich befindet,
der colormode zeigt eben mit "xy" an, dass man sich im Farbbereich, mit "ct" im kalt-warm-Weiß-Bereich befindet.
Da ich aber von Farbe zu Farbe wechsle, ändern sich die Werte hier nicht.
Dennoch Danke für Deine Hilfe, werde weiter probieren müssen...
Viele Grüße,
Stefan
-
@Stefan Hanke:Der CT-Wert zeigt ja nur die Farbtemperatur, wenn man sich im kalt-warm-Weiß-Bereich befindet,
der colormode zeigt eben mit "xy" an, dass man sich im Farbbereich, mit "ct" im kalt-warm-Weiß-Bereich befindet.
Da ich aber von Farbe zu Farbe wechsle, ändern sich die Werte hier nicht. ` ja, beim CT Wert war ich auch eher unsicher, jedoch habe ich einen Fall bei dem aus irgend einem Grund der colormode von xy auf hs wechselt und ich ruhe habe seitdem ich das explizit mitgebe.
schade, dass dies nicht bei dir den Unterschied ausmacht …
[EDIT]
und wenn Du den (auch noch) "xy-Wert" in einer Variable parkst und dann wieder mitgibst?
Falls das ebenfalls nicht funktioniert:
vlt kommst Du zum erwarteten Ergebnis wenn Du anstelle RGB und colormode "xy" auf colormode"hs" und Mitgabe des "hue" Wertes umstellst?
1. colormode auf "hs" unstellen
2. "hue" Wert in Variable übernehmen
… damit sollten dann aber auch alle Möglichkeiten durch sein 8-)
-
Moinsens,
dein Blockly mal etwas anders:
- bei dem "schaltet auf Rot"
die ersten 3 "steuere"-Anweisungen durch "aktualisiere"-Anweisungen ersetzen.
Das sorgt dann dafür, daß nur einmal ein Befehl an die Hue-Bridge gesendet wird
und zwar im "steuere"-Befehle für level.
2.) Bei dem "schaltet auf alte Einstellung" einen Timeout einbauen mit einem Delay von 10 Sekunden.
Darunter dann die Anweisungen ohne Verzögerung.
Dabei die ersten 3 wieder auf "aktualisiere" setzen, statt "steuere".
Somit wird dann auf die alten Einstellungen gesetzt, wenn "Philips_hue.Vitrine.level" gesteuert wird (also wie bei 1.).
3.) Bei dem Falls-Block kannst du "ist anerkannt" auf "true" angeben, da die HM-Fernbedienungen immer true
senden, wenn sie gedrückt werden. Ist aber eigentlich nur Kosmetik am Skript.
Dein Problem mit den Zufallsfarben kann durch die asynchrone Abarbeitung der States kommen,
da "Wert von Objekt-Id R,B oder G" im letzten Segment schon bei Start des Skript ausgelesen wird
und dann evtl. schon alter oder neuer Wert drin steht; je nachdem wie schnell die "setState"-Kommandos abgearbeitet wurden
Daher der Einbau des Timeout, da dann erst nach 10 Sekunden die "alten" Werte gelesen werden
und entsprechend zurückgesetzt werden kann.
Zum Testen, ob das so funktioniert das alte Skript kopieren und dann das neue testen,
wobei das alte dann erstmal gestoppt wird.
Wenn das auch nicht funktioniert, dann versuche "hue", "sat" und "ct" als Werte zu speichern,
und diese bei Setzen auf "alte Einstellungen" wieder zu verwenden.
-
- bei dem "schaltet auf Rot"
die ersten 3 "steuere"-Anweisungen durch "aktualisiere"-Anweisungen ersetzen.
Das sorgt dann dafür, daß nur einmal ein Befehl an die Hue-Bridge gesendet wird
und zwar im "steuere"-Befehle für level. ` Interessanter Ansatz, ich bin auf das Ergebnis gespannt.
Ich hatte mir als Faustformel mal abgespeichert, dass "aktualisiere" für Variablen genutzt wird und "steuere" für Datenpunkte
-
- bei dem "schaltet auf Rot"
die ersten 3 "steuere"-Anweisungen durch "aktualisiere"-Anweisungen ersetzen.
Das sorgt dann dafür, daß nur einmal ein Befehl an die Hue-Bridge gesendet wird
und zwar im "steuere"-Befehle für level. `
"Aktualisiere" ändert nur die Datenpunkte in ioBroker und sendet KEINE Daten zum Aktor.Mit "aktualisiere" kann man keine Aktoren schalten.
Grüße
-
Dachte auch ich wäre schlau .. funktioniert aber nur auf den ersten Blick …
Daher das mit dem "auf aktualisieren" setzen vergessen; wie rantanplan sagt.
Hätte gedacht, daß er beim Setzen des "level" dann auch die aktuellen Werte
mit schickt, tut er aber nicht. Also blöde Idee.
Das mit dem Timeout einbauen, bleibt aber bestehen:
Eine ganz andere Idee wäre noch ein "Command" zu schicken, dann hätte man nur einen Aufruf,
der R,G,B und LEVEL auf einmal schaltet.
Wie das aber in Blockly gemacht wird, kann ich nicht sagen.
Aufruf in Javascript wäre dann:
setState('hue.0.Philips-Hue.Vitrine.command', '{"level":100,"r":255,"g":0,"b":0}');
-
Männers, ihr seid spitze !!!
Ich wollte die Tips, die ihr mir freundlicherweise gegeben habt, nach und nach testen, doch gleich die erste Änderung wars :
~~http://www.hanke-online.de/iobroker/4.jpg" />
Ich habe das jetzt eben mal mit ca. 20 verschiedenen "Startfarben" versucht, ging jedesmal wie gewünscht nach Rot auf "Start" zurück.
Tatsächlich nur eine Kleinigkeit, aber mit großer Auswirkung.
Ich werde das jetzt dann noch von meinem Testaufbau auf die richtigen Lampen umschreiben,
dann sollte das Script schon in Kürze einsatzbereit sein.
<size size="150">Vielen herzlichen Dank an alle meine Helfer !</size>
Viele Grüße,
Stefan~~
-
coool .. da habe ich auch wieder etwas dazu gelernt 8-)
-
Ich muss mal was zu dem Blockly Code fragen. Im Command an den Hie Adapter steht transitiontime 4
Was ist das genau? 4 Sekunden sind es nicht aber auch keine Milisekunden?
-
@Flexer
transitiontime benutzt Du um das Licht langsam hoch/runter zu dimmen
Die Angabesollte Sekunden seinist ein Multiplikator von 100ms.
Transitiontime = 4 = 400ms -
@BBTown Ah super dank dir! Jetzt hab och es verstanden. Irgendwie hatte das nicht gepasst.
Noch eine Frage. Was sagt level aus?
-
@Flexer "level" ist analog zu "bri" die Helligkeit
level steuer im Bereich 0 - 100
bri hhingegen im Bereich 0-254 -
Hallo an die Hue Experten,
Ich habe mir die Commandozeile nochmal angeschaut. Ich verstehe es immer noch nicht.
Kann mir einer vielleicht wort für wort von dem kommando erklären?
Das fängt mit on: true an.
Habe versucht eine lampe mit level 0 auszuschalten. Klappt nicht.
Wenn ich r g b jeweil auf 0 setze wird erst alles lila und geht dann aus.
Würde gerne licht auch langsam ausschalten mit transitiontime
Viele Grüsse
-
@Flexer sagte in [gelöst]Steuerung Hue mit Blockly:
Würde gerne licht auch langsam ausschalten mit transitiontime
-
@Dr-Bakterius OK super vielen Dank das funktioniert!
Wenn ich jedoch beim einschalten {"on":true,"level":78,"r":254,"g":162,"b":82,"transitiontime":4} absende wird der Level immer auf 100% gestellt. Was mache ich falsch? -
@Flexer Lass mal "on":true weg.
-
Nein leider keine änderung
-
@Flexer
schalte einfach mit der App die Lampe so an wie Du es haben möchtest und schau Dir die Werte in den Objekten ab, oder schaue im LOG was dann unter final light state (oder so ähnlich) steht und nehme diese Werte dann im command. -
Hier ein Screenshoot vom Hue Adapter. Da sieht man was gesendet wurde und was im Level steht