Seite 1 von 1

mqtt ... mal wieder

Verfasst: 21. Sep 2021 20:53
von Spuckiii
Hallo Leute,

ich habe eine innr RS230 RGB GU 10 Lampe im Einsatz.. An und Ausschalten - funktioniert, Helligkeit - funktioniert... nur die Farbauswahl will mir nicht gelingen.. hab mal wieder n Brett vorm Kopf...

meine Lampe hat den Friendly namen fel2..

Um Color zu bekommen hier die Definition von zigbee2mqtt...
color_xy: To control the XY color (CIE 1931 color space) publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"color": {"x": X_VALUE, "y": Y_VALUE}} (e.g. {"color":{"x":0.123,"y":0.123}}). To read the XY color send a message to zigbee2mqtt/FRIENDLY_NAME/get with payload {"color":{"x":"","y":""}}. Alternatively it is possible to set the XY color via RGB:

{"color": {"r": R, "g": G, "b": B}} e.g. {"color":{"r":46,"g":102,"b":150}}
{"color": {"rgb": "R,G,B"}} e.g. {"color":{"rgb":"46,102,150"}}
{"color": {"hex": HEX}} e.g. {"color":{"hex":"#547CFF"}}

color_hs: To control the hue/saturation (color) publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"color": {"hue": HUE, "saturation": SATURATION}} (e.g. {"color":{"hue":360,"saturation":100}}). To read the hue/saturation send a message to zigbee2mqtt/FRIENDLY_NAME/get with payload {"color":{"hue":"","saturation":""}}. Alternatively it is possible to set the hue/saturation via:

HSB space (hue, saturation, brightness): {"color": {"h": H, "s": S, "b": B}} e.g. {"color":{"h":360,"s":100,"b":100}} or {"color": {"hsb": "H,S,B"}} e.g. {"color":{"hsb":"360,100,100"}}
HSV space (hue, saturation, brightness):{"color": {"h": H, "s": S, "v": V}} e.g. {"color":{"h":360,"s":100,"v":100}} or {"color": {"hsv": "H,S,V"}} e.g. {"color":{"hsv":"360,100,100"}}
HSL space (hue, saturation, lightness){"color": {"h": H, "s": S, "l": L}} e.g. {"color":{"h":360,"s":100,"l":100}} or {"color": {"hsl": "H,S,L"}} e.g. {"color":{"hsl":"360,100,100"}}

jetzt meine Frage:

Welchen Channel Type benöitge ich jetzt?
Color Value RGB
Color Value HSB
oder
Color Value (HSB, RGB or CIE

den Channel lege ich genau wie an? also mqtt state:
zigbee2mqtt/fel2/get/color?
und das Command Topic?
zigbee2mqtt/fel2/set/color?

Danke
greetz Spuckiii

Re: mqtt ... mal wieder

Verfasst: 21. Sep 2021 21:35
von udo1toni
Vor dem Hintergrund, dass openHAB intern mit HSB als Farbmodell arbeitet, wäre es das Einfachste, auch hier HSB zu verwenden. Du brauchst also diese Form:

Code: Alles auswählen

{"color": {"h": H, "s": S, "b": B}}
Dies ist der Rahmen für die Werte, die gewöhnlich einfach mit Komma getrennt gesendet werden. Stattdessen brauchen wir die Werte separat, anstelle der Großbuchstaben H, S und B. Dafür gibt es die Platzhalter %1$d, %2$d und %3$d.
Was nun noch fehlt, ist das stateTopic. Leider ist das Topic, welches mit get endet, hierfür nicht geeignet. Das dient dazu, einen Befehl zu senden, woraufhin der aktuelle Wert gesendet wird. Da fehlt also noch was, was Du nicht aus der Doku kopiert hast...

Das Thing mit einem Channel sähe ohne stateTopic so aus:

Code: Alles auswählen

UID: mqtt:topic:mosquitto:myColor
label: Generic MQTT Color Thing
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:mosquitto
channels:
  - id: ch1
    channelTypeUID: mqtt:color
    label: Channel 1
    description: ""
    configuration:
      formatBeforePublish: '{"color": {"h": %1$d, "s": %2$d, "b": %3$d}}'
      commandTopic: zigbee2mqtt/fel2/set
      colorMode: HSB

Re: mqtt ... mal wieder

Verfasst: 21. Sep 2021 22:05
von Spuckiii
udo1toni hat geschrieben: 21. Sep 2021 21:35 Vor dem Hintergrund, dass openHAB intern mit HSB als Farbmodell arbeitet, wäre es das Einfachste, auch hier HSB zu verwenden. Du brauchst also diese Form:

Code: Alles auswählen

{"color": {"h": H, "s": S, "b": B}}
Dies ist der Rahmen für die Werte, die gewöhnlich einfach mit Komma getrennt gesendet werden. Stattdessen brauchen wir die Werte separat, anstelle der Großbuchstaben H, S und B. Dafür gibt es die Platzhalter %1$d, %2$d und %3$d.
Was nun noch fehlt, ist das stateTopic. Leider ist das Topic, welches mit get endet, hierfür nicht geeignet. Das dient dazu, einen Befehl zu senden, woraufhin der aktuelle Wert gesendet wird. Da fehlt also noch was, was Du nicht aus der Doku kopiert hast...

Das Thing mit einem Channel sähe ohne stateTopic so aus:

Code: Alles auswählen

UID: mqtt:topic:mosquitto:myColor
label: Generic MQTT Color Thing
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:mosquitto
channels:
  - id: ch1
    channelTypeUID: mqtt:color
    label: Channel 1
    description: ""
    configuration:
      formatBeforePublish: '{"color": {"h": %1$d, "s": %2$d, "b": %3$d}}'
      commandTopic: zigbee2mqtt/fel2/set
      colorMode: HSB
Hallo Udo,
erstmal danke dass Du Dich uns unwissenden immer so annimmst.
Das Thing / der Channel habe ich jetzt per Copy / Paste mal erstellt. und wie sieht das jetzt mit dem Item aus? :-( Ich habe über Model ein Add to Equipment gemacht, unter Metadata ein Default Standalone Widget gewählt mit oh-colorpicker-card und als Modules HSB Sliders gewählt... aber ich bekomme keine Farbbalken in dem Item?

**Update**
also das Things wie oben gesagt per copy/paste eingefügt.. dann etwas recherchiert und folgenden Befehl über die openhab-cli gesendet:
openhab:send Color_Channel1 "0,0,0"
jetzt erscheinen die Farbbalken... jedoch wird die Brightness nicht berücksichtigt...:-(