NEWS
Zigbee Adapter Objektbeschreibung Farbe/Farbtemperatur
-
Hallo zusammen,
ich bin gerade dabei meine Leuchten in den Zigbee Adapter einzubinden, kann aber die Objekte nicht ganz begreifen.
Wenn ich unter Farbe eine 1 setze, dann ist die Farbe blau.
Bei 200 Grün.Mehr konnte ich noch nicht rausfinden.
Bei der Farbtemperatur ist es ähnlich.
300 ist warmweiß
1 ist Kaltweiß
999 ist wieder KaltweißNach welcher Logik folgt das?
Hab Hue GU10 Lampen. Neueste Gen.
-
@loverz klick im Zigbee Adapter auf den blauen Link mit dem Namen des Objekts. Dann kommst du auf die Seite, auf der alle Einstellungen beschrieben sind
-
@ahnungsbefreit danke.
Konnte schonmal rausfinden:Brightness:
Min: 0
Max: 254
-> Wobei das falsch ist, hier geht im ioBroker nur 0-100Colortemp:
Min: 153
Max: 454 -
@loverz also bei mir funktioniert die Helligkeit mit 0-100 bei allen Lampen, ich glaube das ist so gewollt
-
@ahnungsbefreit ja genau 0-100, aber auf der Seite die du beschrieben hast steht 0-254
und bezüglich der Colortemp: Hiermit kommt YAHKA direkt klar, ohne Konvertierung. Keine Ahnung, was das für ein genormter Wert ist
-
@loverz
im Zigbee Adapter kann die Colortemp in mired (150-500) oder Kelvin (2000-6600) angegeben werden. Beides führt zu sauberen Ergebnissen.
Einzelne Lampen decken nicht den gesamten Bereich ab, so das es passieren kann das eine Lampe einen Wert ausserhalb des unterstützen Bereiches nicht akzeptiert und nicht bestätigt.Farbe läuft zumeist als RGB (6 stelliger hex wert). Alternativ kann da oft auch eine Farbe "namentlich" eingetragen werden. Für eine Liste der Farben: https://simple.wikipedia.org/wiki/Web_color
Brightness geht immer von 0 - 100
-
@asgothian danke für die Tipps.
Das mit den Farben bereitet mir noch Kopfschmerzen, da dieser HEX-Wert ein sagen wir mal eher iobroker untypischer Wert ist.
YAHKA zB arbeitet mit HUE und SAT.
Wie ich das dort umrechnen soll ist mir noch ein Rätsel.
Es wäre echt cool, wenn man vom Zigbee Adapter diese Werte direkt ziehen könnte. -
@loverz sagte in Zigbee Adapter Objektbeschreibung Farbe/Farbtemperatur:
Wie ich das dort umrechnen soll ist mir noch ein Rätsel.
Es wäre echt cool, wenn man vom Zigbee Adapter diese Werte direkt ziehen könnte.Ja, das wäre es, und ich habe das auch schon auf der Liste - leider habe ich das nicht zu 100% selber in der Hand, da es davon abhängt in wie weit die Herdsman-converters (die Bibliothek die wir zur Kommunikation mit der hardware verwenden) das für alle Lampen unterstützt. Bis es da Besserung gibt kann ich die JS Bibliothek color-convert empfehlen. Diese kannst du zum JS Adapter hinzufügen und dann in einem Skript nutzen. Sie stellt Funktionen zur Umwandlung zwischen HSV und RGB zur Verfügung.
-
@asgothian Ich hätte da auch gleich mal eine Frage. Bei meinen Hue Color Lampen ist der Color Wert nicht beschreibbar.
{ "type": "state", "common": { "name": "Color", "type": "string", "read": true, "write": false, "role": "level.color.rgb", "smartName": { "de": "Deckenlampe im Schlafzimmer", "smartType": "LIGHT" } }, "native": {}, "_id": "zigbee.1.0017880103f808f7.color", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.zigbee.1", "user": "system.user.admin", "ts": 1632731509973 }
Wenn ich ihn auf true setze funktioniert er, allerdings wird er irgendwann wieder auf false gesetzt.
Wie kann ich den Wert dauerhaft verändern?Dankeschön im Voraus
Jan -
@jan-s100 sagte in Zigbee Adapter Objektbeschreibung Farbe/Farbtemperatur:
Wenn ich ihn auf true setze funktioniert er, allerdings wird er irgendwann wieder auf false gesetzt.
Wie kann ich den Wert dauerhaft verändern?gar nicht. Das muss im Adapter liegen. Kannst Du mir bitte die genaue Bezeichnung des / der betroffenen Geräte zukommen lassen, dann kann ich schauen wie der State intern definiert ist.
A.
-
@asgothian sagte in Zigbee Adapter Objektbeschreibung Farbe/Farbtemperatur:
JS Bibliothek color-convert
meinst du diese Funktion:
-
@asgothian Ich hänge dir mal ein Bild mit den Eigenschaften der Lampe an.
Danke das du dich darum kümmerst.
Jan -
@asgothian sagte in Zigbee Adapter Objektbeschreibung Farbe/Farbtemperatur:
@loverz sagte in Zigbee Adapter Objektbeschreibung Farbe/Farbtemperatur:
Wie ich das dort umrechnen soll ist mir noch ein Rätsel.
Es wäre echt cool, wenn man vom Zigbee Adapter diese Werte direkt ziehen könnte.Bis es da Besserung gibt kann ich die JS Bibliothek color-convert empfehlen. Diese kannst du zum JS Adapter hinzufügen und dann in einem Skript nutzen. Sie stellt Funktionen zur Umwandlung zwischen HSV und RGB zur Verfügung.
@Asgothian Wie würde so ein Skript aussehen wenn man color-convert zur JS Bibliothek hinzugefügt hat?
-
@jack99n sagte in Zigbee Adapter Objektbeschreibung Farbe/Farbtemperatur:
@Asgothian Wie würde so ein Skript aussehen wenn man color-convert zur JS Bibliothek hinzugefügt hat?
das könnte so aussehen.
Wichtig ist das bei diesem Beispiel es die states
- 0_userdata.lightstates.lamp1.hue
- 0_userdata.lightstates.lamp1.sat
- zigbee.0.0017880103124d6d.color
- zigbee.0.0017880103124d6d.brightness
gibt, ansonsten klappt das nicht.
Ausserdem muss in der JS Adapter Konfiguration das Paket color-convert als zusätzliches Paket eingetragen sein.
var colorconv = require('color-convert'); // temp states with hue, sat const HS = '0_userdata.lightstates.lamp1' const Lamp = 'zigbee.0.0017880103124d6d' function HSVtoRGB(source, dest) { setState(dest, colorconv.hsv.hex(getState(source+".hue").val, getState(source+".sat").val, getState(dest + ".brightness"))); } function RGBtoHSV(source, dest) { const hsv = colorconv.rgb.hsv(colorconv.hex.rgb(getState(source+'.color'))); setState(dest+'.hue', hsv[0]); setState(dest+'.sat', hsv[1]); } on({[HS+'.hue', HS+'.sat'], change:'ne'}, function(obj) { if (obj.from.includes('javascript')) return; HSVtoRGB(HS, Lamp) } on ({Lamp1+'.color'm change:'ne')}, function(obj) { if (obj.from.includes('javascript')) return; RGBtoHSV(Lamp1, HS); }
-
@asgothian Vielen dank für deine Hilfe! Leider bekomme ich beim Start von deinem Skript diesen Fehler.
javascript.0 2021-10-02 08:21:13.617 error at Object.createScript (vm.js:261:10) javascript.0 2021-10-02 08:21:13.616 error at new Script (vm.js:88:7) javascript.0 2021-10-02 08:21:13.615 error SyntaxError: Unexpected token ',' javascript.0 2021-10-02 08:21:13.614 error ^ javascript.0 2021-10-02 08:21:13.599 error on({[HS+'.hue', HS+'.sat'], change:'ne'}, function(obj) { javascript.0 2021-10-02 08:21:13.598 error script.js.LED-Wand.Color_convert compile failed: at script.js.LED-Wand.Color_convert:22
08:39:14.588 info javascript.0 (24619) Stop script script.js.LED-Wand.Skript-test 08:39:17.078 info javascript.0 (24619) Start javascript script.js.LED-Wand.Skript-test 08:39:17.080 error javascript.0 (24619) script.js.LED-Wand.Skript-test compile failed: at script.js.LED-Wand.Skript-test:22
-
@jack99n Stimmt.. das passiert wenn man "mal eben schnell" ein einen teil aus einem grossen Skript heraus nimmt und "nur eben" anpasst. mir sind beim anpassen 2 Fehler unterlaufen:
Das skipt müsste so laufen
ar colorconv = require('color-convert'); // temp states with hue, sat const HS = '0_userdata.lightstates.lamp1' const Lamp = 'zigbee.0.0017880103124d6d' function HSVtoRGB(source, dest) { setState(dest, colorconv.hsv.hex(getState(source+".hue").val, getState(source+".sat").val, getState(dest + ".brightness"))); } function RGBtoHSV(source, dest) { const hsv = colorconv.rgb.hsv(colorconv.hex.rgb(getState(source+'.color'))); setState(dest+'.hue', hsv[0]); setState(dest+'.sat', hsv[1]); } on({id:[HS+'.hue', HS+'.sat'], change:'ne'}, function(obj) { if (obj.state.from.includes('javascript')) return; HSVtoRGB(HS, Lamp) } on ({id:Lamp1+'.color', change:'ne')}, function(obj) { if (obj.state.from.includes('javascript')) return; RGBtoHSV(Lamp1, HS); }
-
@asgothian Geht leider immer noch nicht, kannst ja mal wenn du Ruhe und Zeit hast dir es noch mal anschauen.
2021-10-02 22:29:24.985 error at processImmediate (internal/timers.js:463:21) javascript.0 2021-10-02 22:29:24.985 error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1306:17) javascript.0 2021-10-02 22:29:24.984 error at /opt/iobroker/node_modules/iobroker.javascript/main.js:1817:17 javascript.0 2021-10-02 22:29:24.984 error at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1716:37) javascript.0 2021-10-02 22:29:24.984 error at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1469:28) javascript.0 2021-10-02 22:29:24.983 error at Object.createScript (vm.js:261:10) javascript.0 2021-10-02 22:29:24.983 error at new Script (vm.js:88:7) javascript.0 2021-10-02 22:29:24.983 error SyntaxError: missing ) after argument list javascript.0 2021-10-02 22:29:24.982 error ^ javascript.0 2021-10-02 22:29:24.982 error } javascript.0 2021-10-02 22:29:24.981 error script.js.LED-Wand.Skript_Test compile failed: at script.js.LED-Wand.Skript_Test:25
-
@jack99n stimmt.. fehlt noch eine ')' in Zeile 25 und 30
A.