NEWS
Yahka hue color nach hex convertieren
-
wie und wo diese beiden javascript's eingebunden/eingefügt werden müssen? `
2 neue Skripte im http://www.iobroker.net/docu/?page_id=6818&lang=de#Bedienung. -
Ok … Das ist schonmal ein Schritt vorwärts Danke dir.
In den beiden Skripten muss ich natürlich die Pfade anpassen und dann die Einrichtung im yahka Adapter nachmachen, so wie im Screenshot.
Da stellt sich dann aber die nächste Frage: Auf welches Script wird im yahka Adapter verlinkt?
-
Da stellt sich dann aber die nächste Frage: Auf welches Script wird im yahka Adapter verlinkt? `
So wie ich es verstanden habe, wird im yahka-Adapter auf die angelegte Variable "hue" verlinkt.
Aber es funktioniert bei mir leider nicht… Bei mir kommen regelmäßig negative Werte für R G B raus. Ich habe die Einstellungen aus dem Screenshot übernommen + level255 bei Saturation und +hue bei hue (jeweils in der zweiten Zeile im yahka-Adapter).
Muss Saturation eigentlich aktiviert sein? Bei mir bietet der Zigbee-Adapter gar kein Saturation für die HUE-Lampen an.
Kann jemand mit funktionstüchtiger Lösung bitte noch mal detailliert ausführen, welche Grenzen gesetzt werden müssen und ob die Normierungen im Skript (z.B. /360 /100 /100) korrekt sind? Ich denke, dass eine Übersicht vielen Usern bei der Einrichtung helfen würde :idea: !
Zudem habe ich das Problem, dass die Lampe mehrmals die Farbe wechselt ehe sie bei einer (nicht der korrekten, da ja RGB-Werte falsch sind) Farbe stehen bleibt. Das kann aber auch an den fehlerhaften RGB-Werten liegen? Oder benötigt man noch eine Art Verzögerung im Skript?
-
Yahka, also Apple, setzt ColorTemperature als Mired. Das Objekt (z.B. hue.0.zimmer.lampe.ct) erwartet Kelvin.
Ähnliches Problem bei hue.0.zimmer.lampe.hue. Selbst mit der ConversionFunction kommen bei mir nur sehr seltsame Werte raus (>60000).
Die Objekte (hue.0.zimmer.lampe.ct & hue.0.zimmer.lampe.hue) haben andere min/max definiert, als übergeben werden.
Werde aktuell auch noch nicht schlau daraus.
-
Okay, gefunden. Liegt an der Adapter Version 1.0.1.
Version 0.6.9 installiert, funktioniert. Bluefox hat da wohl was geändert, was "hue" und "ct" für Werte erwarten.
-
Ich müsste also zurück auf yahka 0.6.9?
Und wenn ja, könntest du mal einen Screen von deinen Yahka Einstellungen posten damit man mal sieht wie es dann funktioniert?
Ist das so wie @danw es geschrieben hat? Ist es dann vielleicht nur ein bug, oder soll es doch ein feature sein und wir nutzen es nur falsch?
-
Mache dazu bitte ein issue auf github auf ist übersichtlicher
Sent from my iPhone using Tapatalk
-
Mache dazu bitte ein issue auf github auf ist übersichtlicher `
Bei GitHub iobroker.yahka?
Da gibt es schon einen Eintrag:
-
Bei Yahka ist alles okay, mir ging es um Version 0.6.9 vom iobroker hue package.
Folgende Änderung wird das "Problem" verursachen.
Lösung wäre hier eine andere/angepasste Conversion Function im Yahka.
Mit der aktuellen neuen Version (ganz frisch von heute) kann man manuell Scripts hinzufügen, das muss ich mir noch anschauen.
https://github.com/ioBroker/ioBroker.hue
Changelog von Version 1.0.1
(bluefox) temperature changed from 153-cold, 500-warm to 2200-warm, 6500-cold
(bluefox) hue changed from 0-65535 to 0-360°
Apple übergibt den Wert als Einheit Mired (also das, was auch hue vorher erwartet hat und seit 1.0.1 aber Kelvin erwartet).
//edit: Wenn der OT tatsächlich RGB braucht, löst es sein Problem nicht.
-
Also ich habe den hue Adapter gar nicht installiert und betreibe auch keine Hue-Bridge … Bei mir gehen die Lichter über den ZigBee Stick.
Denn das gesetzte Ziel ist es ja die ganzen separaten Bridge's aus der Hausautomation verschwinden zu lassen, so das alles direkt über den ioBroker
gehändelt wird.
Was muss ich jetzt also tun ... Bin mittlerweile ein bisschen verwirrt.
-
Setz dich ein wenig näher mit dem Skript auseinander.
Am Anfang wird die colortemp abgefragt, aber wenn ich mich nicht verschaue, auch nicht weiter im Script verwendet.
-
Ich befürchte um so einen Code zu "lesen" fehlen mir die Kenntnisse.
Ein HowTo für diese ganze Sache, die ja scheinbar nicht nur mich betrifft wäre eine coole Aktion.
Ich persönlich verstehe vielleicht was du meinst oder mir sagen willst, aber dann ist auch schon Ende Gelände.
Sorry … Dafür kann ich gut kochen ... Aber das hilft hier nicht.
-
Ist halt auch schwierig dir zu helfen, wenn du ein Custom-Setup hast, was nur wenige haben und dann fertige Lösungen verlangst.
Ich habe dein Setup nicht und kann es aus der Ferne kaum nachvollziehen.
-
Oh nein … Bloß nicht.
Ich verlange gar nichts ... Ehrlich nicht. Was ich mir wünsche ist natürlich eine andere Sache.
Die EierlegendeWollMilchSau will ja jeder irgendwie.
Dabei denke ich das mein Setup gar nicht so exotisch ist.
Ich suche ja auch grundprinzipiell nur nach einer praktikablen Verbindung von ZigBeeDevice zu Yahka ... Thats all
Nur mal für's Protokoll, damit ich richtig ansetze:
Ich erstelle mir 2 Scripte, mit dem oben gepostetem Inhalt und passe die Pfade an?
Wird die von die abgesprochene Variable: hue vom Script erzeugt, oder muss ich die selber anlegen?
-
Vielleicht etwas zur Verdeutlichung, was da passiert:
Yahka macht da nicht viel, sofern du keine Conversion Function eingerichtet hast, mit den Werten die du per HomeKit eingibst.
Soll es ja auch nicht.
Das Apple nunmal den Wert in einer anderen Einheit/Berechnung übergibt, kann weder dein Lichtmodul (wie auch immer angeschlossen) oder Yahka (ohne Conversion Function) beeinflussen.
Das "hue" und das "Colortemp" ist also nicht das, was Yahka vorgibt, sondern das, was du im HomeKit für eine Farbe und/oder Farbtemperatur einstellst. Der Rohwert.
Soviel erstmal zur grundlegenden Erklärung.
Die Verknüpfung zwischen beiden Werten muss nun, wo auch immer - ob nun im Yahka mit einer Conversion Function oder per Javascript -, passieren.
Aus dem HSV Wert (also hue, saturation, brightness) wird der RGB (also Red,Green,Blue) errechnet, zwischendurch in temporäre Objekte geschrieben, und am Ende gesetzt.
In deiner Yahka Config setzt du Colortemp und Brightness direkt auf das zigbee Objekt was korrekt ist, wenn Colortemp zwischen 140 und 500 sein muss und Brightness 0-100.
Da Apple den hue Wert, also Color, in Mired übergibt (wie auch Colortemp zwischen 140 und 500 also) muss dieser dann genommen werden und in RGB umgerechnet werden.
Anpassung von Colortemp und Brightness sollte also schon funktionieren.
Jetzt muss halt einzeln geschaut werden, wo das Problem liegt.
Das Script sieht nicht falsch aus. Deswegen füge doch mal bitte vor die Zeile
setState ("javascript.0.scriptEnabled.logic.Licht.r1"/*r1*/, Math.round(255 * r));
Die Zeilen````
log(r + " " + Math.round(255 * r));
log(g + " " + Math.round(255 * g));
log(b + " " + Math.round(255 * b));hinzu. So können wir schauen, was die Variablen enthalten, bevor es dem temporären Objekt hinzugefügt wird. Das zweite Script reagiert auf eine Änderung von einer der drei temporären Objekte, rechnet es in RGB um und setzt es in das color Objekt vom zigbee. Da gibt es schon eine Logzeile ("log('#' + toHex(R) + toHex(G) + toHex(B));"). Was gibt denn das alles aus, wenn du die Farbe anpasst?
-
Das probiere ich natürlich sehr gerne und danke für die Kindergartenerklärung … Jetzt versteh auch ich es ... Hoffe ich
Bevor ich loslege:
@CrazyCreator:Ich erstelle mir 2 Scripte, mit dem oben gepostetem Inhalt und passe die Pfade an?
Wird die von die abgesprochene Variable: hue vom Script erzeugt, oder muss ich die selber anlegen? `
UND
Wo finde ich die Log's dann … Ganz normal im Log-Tab vom ioBroker, oder in irgendeinem Ordner?
-
Ich erstelle mir 2 Scripte, mit dem oben gepostetem Inhalt und passe die Pfade an?
Wird die von die abgesprochene Variable: hue vom Script erzeugt, oder muss ich die selber anlegen? `
Ja.Kleines Edit: Dürfte nicht nötig sein, aber leg die Objekte javascript.0.* selber an. Erst die Instanz starten, javascript.0 kommt dann von selbst. Ab da dann anlegen.
UND
Wo finde ich die Log's dann … Ganz normal im Log-Tab vom ioBroker, oder in irgendeinem Ordner? `
Unter dem Fenster, wo du den Skriptcode hinzugefügt hast. Ganz selten klappt das nicht, dann im normalem Log-Tab.Achte drauf, dass das Skript nicht pausiert ist, wenn du es angelegt hast.
Das Issue im GitHub von Yahka am besten schließen lassen, das hat nix mit Yahka zu tun.
-
So … Auch hier habe ich heute mal weitergemacht.
Ablauf:
Ich habe als erstes mal die Datenpunkte angelegt, denn durch anlegen der beiden Scripte, anpassen der Pfade und anschliessendes starten ist das nicht passiert.. Jetzt sieht es also so aus:
Ich hoffe das passt soweit?Im yahkaAdapter habe ich alle Einstellungen aus dem ersten und zweiten Posting (hue + level255) eingestellt.
Wenn ich jetzt in der Home.app die Farbe ändere werden fleißig Werte in die vier Datenpunkte geschrieben, manchmal ändert sich dann auch das Licht, aber überhaupt nicht nachvollziehbar oder wiederholbar. Teilweise passiert auch gar nichts oder es ändert nach ein paar Sekunden spontan die Farbe.
Der Farbkreis in der App ändert übrigens sofort die Farbe, wenn ich im ioBroker die variable hue verändere auf den passenden Wert. Nur das Licht ändert sich eben nur wie oben beschrieben.
Die zusätzlichen Zeilen habe ich natürlich auch eingefügt deshalb jetzt hier mal noch die Ausgabe aus den beiden Log's
HSVtoRGB … Von einem Rosaton zu Grünton:
1.1.2019, 23:05:02.550 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.HSVtoRGB: 0.5103449999999196 130 1.1.2019, 23:05:02.550 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.HSVtoRGB: 0.99 252 1.1.2019, 23:05:02.550 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.HSVtoRGB: -0.5247 -134 1.1.2019, 23:05:02.550 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.HSVtoRGB: 0.566774999999929 145 1.1.2019, 23:05:02.550 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.HSVtoRGB: 0.99 252 1.1.2019, 23:05:02.550 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.HSVtoRGB: -0.3465000000000001 -88
RGBtoHEX
1.1.2019, 23:06:51.333 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.RGBtoHEX: #89FFFFFF7AFC 1.1.2019, 23:06:51.343 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.RGBtoHEX: #A4FFFFFF7AFC 1.1.2019, 23:06:51.344 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.RGBtoHEX: #A4FFFFFFD5FC
Die hier im Thread schonmal erwähnten MinusWerte kann/muss ich leider bestätigen:
-
Änder die Logzeilen bitte mal wie folgt:
log("R: " + r + " - " + Math.round(255 * r)); log("G: " + g + " - " + Math.round(255 * g)); log("B: " + b + " - " + Math.round(255 * b)); Zweites Script: log('# R ' + toHex(R) + " G " + toHex(G) + " B " + toHex(B));
Teste es bitte einmal mit hue (In Zeile 2 bei Hue im Yahka) als conversion function und einmal ohne.
Saturation im HomeKit solltest du gar nicht brauchen - Brightness, Colortemperature, hue, on sollte reichen.
-
hue+255 entfernt
Log1 = HSVtoRGB
Blau zu Rosa / Rosa zu Grün
1.1.2019, 23:19:33.875 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.HSVtoRGB: R: 0.99 - 252 1.1.2019, 23:19:33.875 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.HSVtoRGB: G: 0.99 - -134 1.1.2019, 23:19:33.875 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.HSVtoRGB: B: 0.99 - 79 1.1.2019, 23:20:52.159 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.HSVtoRGB: R: -0.5247 - -134 1.1.2019, 23:20:52.159 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.HSVtoRGB: G: -0.5247 - 252 1.1.2019, 23:20:52.159 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.HSVtoRGB: B: -0.5247 - -89
Log2 = RGBtoHEX
Blau zu Rosa / Rosa zu Grün
1.1.2019, 23:19:33.878 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.RGBtoHEX: # R FC G FFFFFFC1 B FC 1.1.2019, 23:19:33.881 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.RGBtoHEX: # R FC G FFFFFF7A B FC 1.1.2019, 23:19:33.881 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.RGBtoHEX: # R FC G FFFFFF7A B 4F 1.1.2019, 23:20:52.161 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.RGBtoHEX: # R FFFFFF7A G FFFFFF7A B 4F 1.1.2019, 23:20:52.163 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.RGBtoHEX: # R FFFFFF7A G FC B 4F 1.1.2019, 23:20:52.164 [info ]: javascript.0 script.js.HomeArea.Arbeitszimmer.RGBtoHEX: # R FFFFFF7A G FC B FFFFFFA7