Seite 2 von 3
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Verfasst: 12. Dez 2023 14:13
von udo1toni
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.
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Verfasst: 12. Dez 2023 15:37
von go1974
Hier das Json aus dem Topic der Lampe:
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"
}
Das ist es doch was du sehen wolltest?
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Verfasst: 12. Dez 2023 16:14
von go1974
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?!

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Verfasst: 12. Dez 2023 16:32
von udo1toni
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;
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
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.
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Verfasst: 12. Dez 2023 17:26
von go1974
Vielen Dank, Udo.
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
Werde morgen wohl noch ein wenig weiter fummeln um auch mit der Antwort umgehen zu können.
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Verfasst: 13. Dez 2023 15:45
von udo1toni
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...
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Verfasst: 14. Dez 2023 11:36
von go1974
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:
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"
}
..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".
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Verfasst: 14. Dez 2023 14:31
von udo1toni
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:
Code: Alles auswählen
transformationPattern: DSL:|transform("JSONPATH","$.color.x",input)+", "+transform("JSONPATH","$.color.y",input)+", "transform("JSONPATH","$.brightness",input)
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
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Verfasst: 18. Dez 2023 12:00
von go1974
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:
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)
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.
Re: Handling von Nicht-Hue-RGB-Leuchtmitteln
Verfasst: 18. Dez 2023 20:49
von udo1toni
Ist JSONPATH installiert?