Handling von Nicht-Hue-RGB-Leuchtmitteln
- udo1toni
- Beiträge: 15244
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Was kommt denn von Zigbee2mqtt von der Lampe zurück? Es ist ja laut Anleitung möglich, die Lampe per rgb anzusteuern.
Ansonsten läuft es darauf hinaus, dass Die Lampe nur über Tricks vernünftig angesteuert werden kann (z.B. indem ein Color Item mit zwei Channels gleichzeitig verlinkt wird, im Link zum Brightness-Channel wird dann ein Script verwendet, um nur die Brightness-Information weiterzugeben. Naturgemäß ist das nicht schön, weil sich die beiden Topics vielleicht in die Quere kommen können.
Ansonsten läuft es darauf hinaus, dass Die Lampe nur über Tricks vernünftig angesteuert werden kann (z.B. indem ein Color Item mit zwei Channels gleichzeitig verlinkt wird, im Link zum Brightness-Channel wird dann ein Script verwendet, um nur die Brightness-Information weiterzugeben. Naturgemäß ist das nicht schön, weil sich die beiden Topics vielleicht in die Quere kommen können.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 14
- Registriert: 20. Feb 2023 09:26
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Hier das Json aus dem Topic der Lampe:
Das ist es doch was du sehen wolltest?
Code: Alles auswählen
{
"action":"on",
"brightness":185,
"color":{
"h":241,
"hue":241,
"s":100,
"saturation":100,
"x":0.1401,
"y":0.0232
},
"color_mode":"xy",
"color_power_on_behavior":"previous",
"color_temp":582,
"do_not_disturb":true,
"last_seen":"2023-12-12T15:28:51+01:00",
"linkquality":117,
"state":"ON"
}
-
- Beiträge: 14
- Registriert: 20. Feb 2023 09:26
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Hmm, keine Ahnung ob es die Lampe ist, oder nur die Doku oder beides, aber ich habe gerade mal
gesendet und das klappt.
oder
...klappt auch.
Allerdings ändern sich dann die values in den anderen Topics nicht. Also die Values in "Brightness" oder auch "State" ändern sich dann nicht. Ist das normal?!
Code: Alles auswählen
{"x":0.174900,"y":0.744600, "brightness":100}
Code: Alles auswählen
{"r":255,"g":102,"b":150,"brightness":10}
Code: Alles auswählen
{"h":150,"s":100,"brightness":155}
Allerdings ändern sich dann die values in den anderen Topics nicht. Also die Values in "Brightness" oder auch "State" ändern sich dann nicht. Ist das normal?!

- udo1toni
- Beiträge: 15244
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Ich habe gerade noch mal die Doku gelesen, es handelt sich in Wirklichkeit ja doch um das gleiche Topic...
Ich denke, die Formulierung ist nur etwas missverständlich. Meine Vermutung hinsichtlich der Konfiguration;
Das ist erst mal nur zum Ansteuern. Für die Gegenrichtung muss noch das stateTopic gesetzt werden und es braucht ein Script, welches die drei Werte x, y und brightness als kommaseparierte Liste erzeugt. Leider habe ich diese Woche keine Zeit mehr, mich damit zu beschäftigen, aber vielleicht hilft das schon als Einstieg.
Ich denke, die Formulierung ist nur etwas missverständlich. Meine Vermutung hinsichtlich der Konfiguration;
Code: Alles auswählen
UID: mqtt:topic:mosquitto:p3z
label: Nous P3Z
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:mosquitto
channels:
- id: col
channelTypeUID: mqtt:color
label: Color
description: null
configuration:
retained: false
postCommand: false
formatBeforePublish: '{"brightness": %3$d, {"color": {"x": %1d,"y": %2d}}}'
commandTopic: zigbee2mqtt/p3z/set
colorMode: XYY
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 14
- Registriert: 20. Feb 2023 09:26
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Vielen Dank, Udo.
Das hat so leider nicht geklappt, aber immerhin konnte ich nach etwas fummelei ein Ergebnis erzielen:
Werde morgen wohl noch ein wenig weiter fummeln um auch mit der Antwort umgehen zu können.
Das hat so leider nicht geklappt, aber immerhin konnte ich nach etwas fummelei ein Ergebnis erzielen:
Code: Alles auswählen
- id: Nous_01_color
channelTypeUID: mqtt:color
label: Nous_01_color
description: color
configuration:
commandTopic: zigbee2mqtt/nous_01/set/color
retained: false
postCommand: false
colorMode: XYY
formatBeforePublish: '{ "x": %s, "y": %s, "brightness": %s}'
stateTopic: zigbee2mqtt/nous_01/color
- udo1toni
- Beiträge: 15244
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Das geht so aber nicht. %s ist immer der gesamte Status, Du musst die einzelnen Teile verwenden. Das Topic hätte ich auch anders erwartet (zumindest nach der Dokumentation). Oder hast Du separate Topics für die einzelnen Werte? Man kann das in zigbee2mqtt konfigurieren...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 14
- Registriert: 20. Feb 2023 09:26
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Ich hattes es zuerst mit deiner Syntax probiert - ohne Erfolg.
Das es mit %s klappt, sehe ich im MQTT Explorer:
Den Status der Lampen bekommen ich sowohl als einen Json:
..als auch als einzelne Werte unter den jeweiligen Topics.
In der Doku https://www.openhab.org/addons/bindings/mqtt.generic/ findet man unter dem Punkt formatBeforePublish den Hinweis:" Currently only "%s" is supported".
Das es mit %s klappt, sehe ich im MQTT Explorer:
Code: Alles auswählen
{
"x": 0.562,
"y": 0.4047,
"brightness": 100
}
Code: Alles auswählen
{
"brightness": 27.94,
"color": {
"h": 25,
"hue": 25,
"s": 95,
"saturation": 95,
"x": 0.5267,
"y": 0.4133
},
"color_mode": "color_temp",
"color_power_on_behavior": "previous",
"color_temp": 500,
"do_not_disturb": true,
"last_seen": "2023-12-14T11:30:18+01:00",
"linkquality": 60,
"state": "OFF"
}
In der Doku https://www.openhab.org/addons/bindings/mqtt.generic/ findet man unter dem Punkt formatBeforePublish den Hinweis:" Currently only "%s" is supported".
- udo1toni
- Beiträge: 15244
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Strange. Schau mal etwas weiter unten... https://www.openhab.org/addons/bindings ... re-publish dort wird explizit (allerdings nur für rgb und hsb) die Schreibweise mit den Einzelwerten beschrieben.
Aber umso besser, wenn es über ein einzelnes %s funktioniert, offensichtlich wird dann halt jeweils der nächste Einzelwert eingesetzt, statt des Gesamtstrings (der Status ist z.B. "0.5, 0.9, 23")
Was den Status betrifft, so wird es auf eine Script Transformation hinaus laufen, sowas:
input ist in diesem Fall das komplette JSON Objekt, welches mittels dreier Transformations die drei Werte in korrekter Reihenfolge liefert.
Die Schreibweise ist ein Inline Script und als Scriptsprache kommt die DSL zum Einsatz. Geht genauso auch mit JavaScript, welches aber extra installiert sein muss. Wahlweise könnte man das Inline Script auch als Datei anlegen und auf die Datei verweisen
Aber umso besser, wenn es über ein einzelnes %s funktioniert, offensichtlich wird dann halt jeweils der nächste Einzelwert eingesetzt, statt des Gesamtstrings (der Status ist z.B. "0.5, 0.9, 23")
Was den Status betrifft, so wird es auf eine Script Transformation hinaus laufen, sowas:
Code: Alles auswählen
transformationPattern: DSL:|transform("JSONPATH","$.color.x",input)+", "+transform("JSONPATH","$.color.y",input)+", "transform("JSONPATH","$.brightness",input)
Die Schreibweise ist ein Inline Script und als Scriptsprache kommt die DSL zum Einsatz. Geht genauso auch mit JavaScript, welches aber extra installiert sein muss. Wahlweise könnte man das Inline Script auch als Datei anlegen und auf die Datei verweisen
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 14
- Registriert: 20. Feb 2023 09:26
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Hey Toni, vielen Dank für die Hilfe. Leider klappt es noch nicht so ganz und ich habe keine Ahnung wo das Problem liegt. Es ist halt so, dass ich die Lampe zwar ansprechen kann, aber die Transformation anscheinend nicht beim Item ankommt. Zumindest ändert sich dieses nicht, obwohl sich auf dem Topic/Json die Werte ändern.
Hier mal die Channel konfig:
Ich sehe im Log auch ein paar Warnungen, allerdings nicht für "color", sonder für "color temperature" - hier kommen Werte im Bereich von um die 500, aber OH erwartet was zwischen 0-100 (Prozent). Ich glaube aber nicht das die beiden Probleme zusammenhängen.
Okay - das mit der CT hat sich aufgeklärt. Zwar sind dort Werte lt. doku zwischen 153-500 zu erwarten, aber wenn man mit der Farbe 'spielt', dann können diese zwischen 90 und 590 liegen - daher die Warnungen. Ganz sauber sind diese Nous-Dinger nicht programmiert. Schade.
Hier mal die Channel konfig:
Code: Alles auswählen
- id: Nous_01_color
channelTypeUID: mqtt:color
label: Nous_01_color
description: color
configuration:
retained: false
postCommand: false
formatBeforePublish: '{ "x": %s, "y": %s, "brightness": %s}'
commandTopic: zigbee2mqtt/nous_01/set/color
colorMode: XYY
stateTopic: zigbee2mqtt/nous_01/
transformationPattern: DSL:|transform("JSONPATH","$.color.x",input)+",
"+transform("JSONPATH","$.color.y",input)+",
"transform("JSONPATH","$.brightness",input)
Okay - das mit der CT hat sich aufgeklärt. Zwar sind dort Werte lt. doku zwischen 153-500 zu erwarten, aber wenn man mit der Farbe 'spielt', dann können diese zwischen 90 und 590 liegen - daher die Warnungen. Ganz sauber sind diese Nous-Dinger nicht programmiert. Schade.
- udo1toni
- Beiträge: 15244
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Ist JSONPATH installiert?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet