ich versuche nun schon den ganzen Nachmittag bei meinen per Deconz-Binding eingebunden Ikea-Lampe den Slider für die Einstellung der Farbtemperatur zu realisieren.
Die Lampen sind grundsätzlich in der Lage die Farbtemperatur zu ändern. Wenn ich den Wert per
an die Lampe sende, wird sie umgestellt. Aber in den Einstellungen der Channel klappt das nicht. Ich habe den Type schon von Number auf Dimmer gestellt. Dann erscheint im semantischen Model auch ein Slider....aber der hat keine Funktion. D.h. ich kann den schieben wie ich will...an der Leuchte ändert sich nichts.
Der Slider nutzt exakt den Wertebereich von 0 - 100 (streng genommen sogar 0 -1, da percentType). Dein Channel erwartet aber Zahlenwerte zwischen(vermutlich) 2700 und 5600. Du musst also zwingend eine Rule nutzen, welche die Übersetzung zwischen Eingabe (Slider) und Ausgabe (Farbtemperatur) übernimmt.
Dazu legst Du ein ungebundenes Dimmer Item an. Dazu eine Rule, die auf received command triggert (mit dem Dimmer Item als Input) In der Rule nimmst Du dann eine Umrechnung vor. Beispiel: Wertebereich der Farbtemperatur ist 2700 - 5600 -> 5600-2700=2900 -> Farbtemperatur = 2700 + 2900/100 * Dimmeritem.state. bzw. Farbtemperatur = 2700 + 29 * Dimmeritem.state.
Das sendCommand kennst Du ja schon...
Die Rule kannst Du locker über die UI erstellen, mit einer Sprache Deiner Wahl (selbst mit Blockly sollte das kein Problem sein).
Falls Du die Farbtemperatur auch von anderer Stelle aus steuern möchtest, brauchst Du noch eine zweite Rule, welche bei Wertänderung von s01_ct triggert und dann das Dimmeritem passend setzt.
Dimmerposition = (((s01_ct.state as Number) - 2700)/29).intValue.
Dimmeritem.postUpdate(Dimmerposition)
Wichtig ist, hier NICHT sendCommand zu verwenden, denn das würde die erste Rule triggern. postUpdate setzt den Status eines Items, ohne jedoch einen Befehl abzusetzen.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
2022-01-01 20:32:39.001 [WARN ] [nternal.netutils.WebSocketConnection] - Websocket$1640972589478-1 encountered an error while processing the message {"e":"changed","id":"6","r":"lights","state":{"alert":null,"bri":254,"colormode":"ct","ct":250,"on":true,"reachable":true},"t":"event","uniqueid":"90:fd:9f:ff:fe:f8:3b:5a-01"}: Value must be between 0 and 100
Das probiere ich dann morgen aus. Muss es ja für 60 Leuchten setzen....da die alle nach dem Einfügen auf komplett warmweiß (2300k) stehen.
Hmm... Die Fehlermeldung beklagt sich allerdings darüber, dass ein wert zwischne 0 und 100 sein muss, dies aber nicht der Fall ist... das wäre dann ja genau das Gegenteil...
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
Wenn ich bei zwei (oder mehr) dieselben Werte für die Farbtemperatur per postUpdate(4000) setze.... dann sind bei beiden Leuchten die Channel auf 4000 gesetzt. Aber...bei der einen Leuchten sind von den 8 LED nur die weißen an...bei der anderen sind alle 8 an. Ergo...keine reines kaltweiß. Wie kann das sein??
Hatte erst gedacht...ok... Firmwareunterschiede...aber die haben ja dieselbe Version. Nun will ich morgen mal für zwei ein OTA-Update über zigbee2mqtt versuchen.
Axo.... im Hue-Binding liessen sich beide Leuchten auf rein kaltweiß (also nur die 4 weißen LEDs an) einstellen. Im schlimmsten Fall muss ich die wieder in die Hue-Bridge zurückbringen
2. Mqtt via Conbee
ich kann über die Web-Gui des ZigBee2Mqtt die OTA-Updates für meine Tradfri-Leuchten machen.
Beim Einbinden wird automatisch erkannt, das ein Update da ist...
Sowohl im Log