Seite 3 von 3

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Verfasst: 19. Dez 2023 08:01
von go1974
Korrekt. Die Version JSONPATH transformation 4.0.3 ist geladen.

Ich habe mal vor das letzte transform ein '+' gesetz, aber leider war es das auch nicht.
Ansonsten habe ich einfach mal ein String-Item mit dem Channel verbunden um zu schauen was da rauskommt, aber das ding bleibt immer null.
Schwierig :lol:

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Verfasst: 19. Dez 2023 17:12
von udo1toni
Nein, das ist hier ja kein Ratespiel :) Das + dient ja nur dazu, eine Zeichenkette zusammenzusetzen, bestehend aus den drei Werten, die jeweils von transform() geliefert werden und zwei Kommata (die stehen in Anführungszeichen mit jeweils einem Leerzeichen...)

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Verfasst: 19. Dez 2023 17:51
von go1974
Das + dient ja nur dazu, eine Zeichenkette zusammenzusetzen
Schon klar, aber hier
von udo1toni » 14. Dez 2023 14:31
fehlte halt das '+' vor dem letzten Transform und dann kann es natürlich nicht klappen. Aber jetzt sieht das Ding eigentlich gut aus und dennoch bleibt das String-Item leer und die Color-Item reagieren nicht auf die eingehenden status Änderungen.

Leider bin ich jetzt tatsächlich im Rate-Modus, denn sonst Fällt mir nicht mehr viel ein. Hast Du noch eine Idee? Gibt es vielleicht noch eine Log-Datei (außer /var/log/openhab/openhab.log /var/log/openhab/events.log) die ich mir mal anschauen sollte?

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Verfasst: 19. Dez 2023 18:35
von udo1toni
Also, evtl. habe ich oben irgendwo einen Copy&Paste Fehler drin...
Auf meinem Testsystem sieht der Channel genau so aus:

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": %s, {"color": {"x": %s,"y": %s}}}'
      commandTopic: zigbee2mqtt/p3z/set
      colorMode: XYY
      stateTopic: zigbee2mqtt/p3z
      transformationPattern: DSL:|transform("JSONPATH","$.color.x",input)+",
        "+transform("JSONPATH","$.color.y",input)+",
        "transform("JSONPATH","$.brightness",input)
      off: "0"
      on: "1"
      onBrightness: 10
wobei der Zeilenumbruch in der Transformation von openHAB selbst erzeugt ist und ignoriert wird (der befindet sich ja innerhalb der übergebenen Teilstrings ", "
Den Channel habe ich mit einem Color Item verknüpft (hier Textform in Ermangelung einer gescheiten Code-Anzeige, die auch den Link enthält):

Code: Alles auswählen

Color Col "Color" {channel="mqtt:topic:mosquitto:p3z:col"}
und dieses Item habe ich in eine oh-grid-cell verbunden:

Code: Alles auswählen

component: oh-grid-cells
config: {}
slots:
  default:
    - component: oh-colorpicker-cell
      config:
        header: Test Color
        title: Item Color
        item: Col
        modules:
          - wheel
          - current-color
Ergebnis ist ein Widget, über das ich das Item verstellen kann und sehen kann, was bei Werteänderung passiert.
Ergibt in mqtt die beiden Topics zigbee2mqtt/p3z und zigbee2mqtt/p3z/set. Verstelle ich das Widget, sendet openHAB ein JSON auf ...set:

Code: Alles auswählen

{"brightness": 0.6585, {"color": {"x": 0.3026,"y": 63.0}}}
und genauso kann ich von mqtt aus über das erste Topic den Status senden:

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"
}
was direkt zum Ändern des Widget führt. Hab ich mehrfach ausprobiert.

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Verfasst: 19. Dez 2023 18:40
von udo1toni
Noch zur Ergänzung...
ON und OFF werden evtl. so nicht funktionieren, vermutlich muss man für on und off andere Werte setzen, z.B.:

Code: Alles auswählen

      off: "0, 0, 0"
      on: "0, 0, 1"
Ist aber auch nur geraten :) es muss halt der gewünschte HSB-Wert oder xyY-Wert wert sein, damit openHAB den Wert beim Senden korrekt transformieren kann.

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Verfasst: 20. Dez 2023 10:30
von go1974
Hmm. Also das senden funktioniert bei mir ja auch. Ich sehe den Json im Mqtt-Explorer, ich sehe die Farbänderungen entsprechend der Eingaben bei den Lampen, aber der Rückkanal funktioniert halt nicht - bzw, er funktionierte nicht bis vor zwei Minuten.

Jetzt klappt es:

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)
Es lag an dem '/' hinter dem 'stateTopic: ' :oops:

...und wie immer sitzt der Fehler hinter dem Bildschirm :lol:

VIELEN DANK, Toni!

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Verfasst: 20. Dez 2023 11:12
von go1974
Wie hast du eigentlich das Mapping von 'brightness' (Slider -> 0-100) auf die Lampe gelöst (0-254)? In dem eIgentlichen Channel für 'brightness' kann man ja mit min/max den Bereich definieren, aber in dem color channel findet dieser Wert ja auch Verwendung...

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Verfasst: 20. Dez 2023 15:27
von udo1toni
Ich habe ja keine echte Lampe, ist alles nur Theorie. Wenn der Wertebereich nicht stimmt, wird es vermutlich schwierig, das direkt im Channel zu fixen, zumindest fällt mir auf die Schnelle da keine Lösung ein.
Was nicht heißt, dass Du die Lampe nicht ansteuern (und auch passende Rückmeldung erhalten) kannst, aber evtl. nicht direkt, sondern nur mit Helper Script.

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Verfasst: 21. Dez 2023 08:01
von go1974
Alles klar, dann überlege ich mal ob ich nicht mit einer Rule mache. Schöne Feiertage!