Seite 2 von 3

Re: Gledopto RGB-Strip Zigbee einbinden

Verfasst: 5. Aug 2020 21:56
von Andy089
Also zum Beispiel Blau Übermittelt HA einmal an:

zigbee2mqtt/LED-Strip/set

Code: Alles auswählen

{
  "state" : "ON",
  "color" : {
    "x" : 0.136,
    "y" : 0.04
  }
}
Und an

zigbee2mqtt/LED-Strip

Code: Alles auswählen

{
  "state" : "ON",
  "brightness" : 255,
  "color_temp" : 127,
  "color" : {
    "x" : 0.136,
    "y" : 0.04
  }
}
Und beim Wechsel zu Rot Übermittelt HA an:

zigbee2mqtt/LED-Strip/set

Code: Alles auswählen

{
  "state" : "ON",
  "color" : {
    "x" : 0.701,
    "y" : 0.299
  }
}
Und an
zigbee2mqtt/LED-Strip:

Code: Alles auswählen

{
  "state" : "ON",
  "brightness" : 255,
  "color_temp" : 37,
  "color" : {
    "x" : 0.701,
    "y" : 0.299
  }
}
 

Re: Gledopto RGB-Strip Zigbee einbinden

Verfasst: 21. Aug 2020 19:21
von technick90
Gibt es schon neue Erkenntnisse?
Ich stehe vor dem gleichem Problem mit einem Osram LED Strip RGBW sowie einer INNR E14 RGBW.
Die scheinen genauso bedient zu werden. Gibt auch color_temp und color mit x und y.

Re: Gledopto RGB-Strip Zigbee einbinden

Verfasst: 21. Aug 2020 21:02
von udo1toni
Das ist meines Wissens (noch) nicht implementiert (allerdings gibt es, wenn ich es richtig gesehen habe, dazu einen Issue in github).

Re: Gledopto RGB-Strip Zigbee einbinden

Verfasst: 24. Aug 2020 21:30
von technick90
Im Fall der Innr E14 geht die Ansteuerung auch per RGB.
So z. B. erfolgreich mit MQTT Explorer getestet:

Code: Alles auswählen

{"color":{"rgb":"66,158,245"}}
Im Internet habe ich dazu folgende Config für die .things gefunden:

Code: Alles auswählen

	Type colorRGB : color "Farbe" [  
		stateTopic="zigbee2mqtt/Innr_E14_2", 
		transformationPattern="JSONPATH:$.color",
		commandTopic="zigbee2mqtt/Innr_E14_2/set",
		formatBeforePublish="{\"color\":{\"rgb\":\"%s\"}}" ]
    }
Leider ist die Formatierung scheinbar nicht korrekt, es wird beim Ändern der Farbe folgende Fehlermeldung protokolliert:

Code: Alles auswählen

21:25:02.823 [WARN ] [hab.binding.mqtt.generic.ChannelState] - Command '{x=0, y=0}' not supported by type 'ColorValue': {x=0, y=0} is not a valid RGB syntax
Jemand eine Idee dazu?

Zusätzlich habe ich bezogen auf FHEM noch folgenden Thread zur Konvertierung von RGB auf x/y gefunden. Eventuell lässt sich das auf Openhab übertragen.
https://forum.fhem.de/index.php?topic=96783.0

Re: Gledopto RGB-Strip Zigbee einbinden

Verfasst: 25. Aug 2020 09:54
von udo1toni
Die Frage ist, was da als stateTopic zurückgeliefert wird. Der befehl als solcher (also commandTopic + formatBeforePublish) kann die Fehlermeldung nicht auslösen.

Re: Gledopto RGB-Strip Zigbee einbinden

Verfasst: 25. Aug 2020 10:04
von technick90
Aaah, die Fehlermeldung resultiert aus der Rückmeldung.
Das macht dann Sinn, weil zurückgemeldet wird der Farbwert in x und y, nicht in RGB.

Dazu passend gibt es ja für FHEM diesen Beitrag zur Konvertierung von rgb in x und y.
Gibt es bei Openhab auch so eine Möglichkeit?
Also sowohl die Rückmeldung als auch den Befehl zu konvertieren?
Für die Rückmeldung wäre dies sicher mit transforms möglich oder?
Leider reichen meine Kenntnisse dafür nicht aus.

Re: Gledopto RGB-Strip Zigbee einbinden

Verfasst: 25. Aug 2020 10:50
von udo1toni
Vermutlich ließe sich eine Transformation am ehesten über JS erledigen, da hier ja doch ein bisschen gerechnet werden muss.

Re: Gledopto RGB-Strip Zigbee einbinden

Verfasst: 25. Aug 2020 10:53
von technick90
So habe ich mir das auch schon gedacht nachdem was ich bisher gelesen habe.
Das bekomme ich alleine aber leider nicht hin.
Ich recherchiere mal weiter im Internet.
Ich kann m. E. nicht der erste sein der vor diesen Problem steht. Ich hoffe noch ein fertiges Transformfile zu finden.
Falls ich was finde dokumentiere ich das hier für andere Leute mit dem selben Problem.

Re: Gledopto RGB-Strip Zigbee einbinden

Verfasst: 13. Mär 2022 03:15
von Mordi
Guten Morgen,

Angeschlossen über eine ZBBridge und MQTT

nach 6 Stunden try and error.
Ich glaube ich habe ein ähnliches oder gleiches Modul.
Bei mir heißt das Teil GL-C-008 und ist auch von Gledopto
Die LED Leiste ist eine RGB-CCT.

Aus und einschalten kann ich diese über:

Code: Alles auswählen

  - id: Schreibtisch_LED_Leiste_Power
    channelTypeUID: mqtt:switch
    label: Schreibtischlampenschalter
    description: ""
    configuration:
      commandTopic: cmnd/tasmota_945D3D/ZBSend
      stateTopic: stat/tasmota_945D3D/RESULT
      transformationPattern: JSONPATH:$.Power
      off: '{"Device":"0x54BA","Send":{"Power":0}}'
      on: '{"Device":"0x54BA","Send":{"Power":1}}'
Ich bekomme das RGB Licht über Openhab3 bekomme ich nicht hin.
Ich kann diese über MQTT.fx steuern über:

Code: Alles auswählen

x=Wert

cmnd/tasmota_945D3D/0x54BA/ZBsend
{"Device":"0x54BA","Send":{"HUE":x}}
{"Device":"0x54BA","Send":{"color":"x,y"}}
{"Device":"0x54BA","Send":{"CT":x}}
{"Device":"0x54BA","Send":{"Dimmer":x}}
Die weißen, Dimmer habe ich bis dato noch gar nicht versucht zu programmieren.

Mein MQTT.fx ausgaben sehen wie folgt aus:

Bei Veränderung der Lichtfarbe

Code: Alles auswählen

{
  "ZbReceived" : {
    "0x54BA" : {
      "Device" : "0x54BA",
      "ColorMode" : 1,
      "X" : 48240,
      "Y" : 17125,
      "RGB" : "FA0008",
      "RGBb" : "2A0001",
      "Endpoint" : 11,
      "LinkQuality" : 81
    }
  }
}
Bei Veränderung der Weißen LED:

Code: Alles auswählen

{
  "ZbReceived" : {
    "0x54BA" : {
      "Device" : "0x54BA",
      "CT" : 196,
      "Endpoint" : 11,
      "LinkQuality" : 81
    }
  }
}
Beim Dimmer:

Code: Alles auswählen

{
  "ZbReceived" : {
    "0x54BA" : {
      "Device" : "0x54BA",
      "Dimmer" : 126,
      "Endpoint" : 11,
      "LinkQuality" : 81
    }
  }
}
Ein paar Informationen konnte ich hier entnehmen, die mich nicht weitergebracht haben.

https://www.zigbee2mqtt.io/devices/GL-C-008P.html

Wie bekomme ich den Jsonpath gebacken?

Leider stürzt meine Zbbridge mit Tasmota mit der HUE Emulation ab, das wäre sicher einfacher gewesen.

Vielleicht hat hier jemand eine Idee.

Vielen Dank!

Mordi

Re: Gledopto RGB-Strip Zigbee einbinden

Verfasst: 13. Mär 2022 10:44
von udo1toni
Der Schalter wird so nicht korrekt funktionieren. Stattdessen musst Du ein formatBeforePublish setzen.

Code: Alles auswählen

  - id: Schreibtisch_LED_Leiste_Power
    channelTypeUID: mqtt:switch
    label: Schreibtischlampenschalter
    description: ""
    configuration:
      commandTopic: cmnd/tasmota_945D3D/ZBSend
      stateTopic: stat/tasmota_945D3D/RESULT
      transformationPattern: JSONPATH:$.Power
      formatBeforePublish:  '{"Device":"0x54BA","Send":{"Power":%s}}'
      off: '0'
      on: '1'
Denn $.Power enthält ja nur den Wert 0 oder 1, nicht ein JSON im entsprechenden Format. Der Unterschied wird dann deutlich, wenn die Lampe mal nicht über openHAB gesteuert wird, dann kann openHAB nicht erkennen, dass sich der Status der Lampe geändert hat.

Bezüglich der Color Steuerung wird es auf ein externes Script hinauslaufen, da das Modul ein Format verwendet, welches von openHAB so nicht unterstützt wird (xy- mit getrenntem Helligkeitswert). Die alternative RGB wird vermutlich auch nicht funktionieren, da die Lampe hier offensichtlich HEX-Werte verwendet. Kann man machen, ist dann halt Grütze.

Meine Mutmaßung dazu (ich habe sowas noch nicht umgesetzt): Du legst einen String Channel an, in dem das JSON ankommen bzw. Abgehend landet. Diesen Channel nutzt Du mit einem String Item.
Du legst ein Color Item an, welches zum Steuern verwendet wird und den aktuellen Zustand anzeigt.
Du schreibst zwei Rules, die eine reagiert auf changed für das String Item, die andere reagiert auf received command für das Color Item.
Die erste Rule extrahiert über ihren Code den Status dr Lampe und schreibt den Status als HSBvalue in das Color Item.
Die zweite Rule wandelt den Befehl vom Color Item in den passenden Befehl als JSON Objekt und sendet diesen an den Channel.

Einen einfachen Dimmer kann man aber als Hersteller nicht so einfach verhunzen. Abbildung analog zum Switch Channel, nur mit dem Brightnes-Parameter statt Power. Kann natürlich sein, dass auch dort HEX-Zahlen verwendet werden, dann vielleicht einfach ein Erschießungskommando in die Entwicklungsabteilung der Firma schicken (ok, in der jetzigen Lage unpassender Humor...). Man könnte in diesem Fall versuchen, den Wert mittels JS umzuwandeln, aber vermutlich wäre dann eine Kombination zweier Rules analog zum Color Channel die leichtere Variante.