Handling von Nicht-Hue-RGB-Leuchtmitteln

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

go1974
Beiträge: 14
Registriert: 20. Feb 2023 09:26
Answers: 0

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Beitrag 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:

Benutzeravatar
udo1toni
Beiträge: 15244
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Beitrag 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...)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

go1974
Beiträge: 14
Registriert: 20. Feb 2023 09:26
Answers: 0

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Beitrag 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?

Benutzeravatar
udo1toni
Beiträge: 15244
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Beitrag 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.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
udo1toni
Beiträge: 15244
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Beitrag 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.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

go1974
Beiträge: 14
Registriert: 20. Feb 2023 09:26
Answers: 0

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Beitrag 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!

go1974
Beiträge: 14
Registriert: 20. Feb 2023 09:26
Answers: 0

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Beitrag 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...

Benutzeravatar
udo1toni
Beiträge: 15244
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Beitrag 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.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

go1974
Beiträge: 14
Registriert: 20. Feb 2023 09:26
Answers: 0

Re: Handling von Nicht-Hue-RGB-Leuchtmitteln

Beitrag von go1974 »

Alles klar, dann überlege ich mal ob ich nicht mit einer Rule mache. Schöne Feiertage!

Antworten