[Gelöst] zigbee2mqtt: LIDL Livarno Lux smart LED light strip support

Begonnen von juppy_jupp, 11 Januar 2022, 08:17:53

Vorheriges Thema - Nächstes Thema

juppy_jupp

Hallo zusammen,

ich hab mir aus dem Vorweihnachtsangebot bei LIDL eine Zigbee Steckdose und eine LED Strip (Livarno Lux smart LED light strip HG06104A) zugelegt.
Die Steckdose konnte ich einfach in FHEM und auch in FTUI einbinden, bei dem LED Strip hab ich so meine Probleme.
Bei mir läuft auf dem Raspi eine MQTT2_zigbee_bridge zusammen mit einem CC2511 als Coordinator
FHEM ist aktuell, zigbee2mqtt ist aktuell auf 1.2.2

FHEM Einbindung:

defmod MQTT2_zigbee_LEDLightStrip MQTT2_DEVICE zigbee_LED
attr MQTT2_zigbee_LEDLightStrip alias LED-Strip
attr MQTT2_zigbee_LEDLightStrip devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr MQTT2_zigbee_LEDLightStrip devicetopic zigbee2mqtt/LEDLightStrip
attr MQTT2_zigbee_LEDLightStrip icon hue_filled_white_and_color_e27_b22
attr MQTT2_zigbee_LEDLightStrip jsonMap color_temp:ct
attr MQTT2_zigbee_LEDLightStrip model zigbee2mqtt_light_rgbcct_rgb
attr MQTT2_zigbee_LEDLightStrip readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT2_zigbee_LEDLightStrip room MQTT2_DEVICE
attr MQTT2_zigbee_LEDLightStrip setList on:noArg $DEVICETOPIC/set {"state":"ON"}\
  off:noArg $DEVICETOPIC/set {"state":"OFF"}\
  brightness:colorpicker,BRI,0,5,255 $DEVICETOPIC/set {"state":"on","$EVTPART0":"$EVTPART1"}\
  ct:colorpicker,CT,150,2,500 $DEVICETOPIC/set {"color_temp":"$EVTPART1"}\
  color:colorpicker,RGB {"$DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
attr MQTT2_zigbee_LEDLightStrip stateFormat {lc ReadingsVal($name,"state",0)}
attr MQTT2_zigbee_LEDLightStrip userReadings hex:color_y.* {Color::xyY2hex(ReadingsVal($name,"color_x",0),ReadingsVal($name,"color_y",0),ReadingsVal($name,"brightness",254))}
attr MQTT2_zigbee_LEDLightStrip webCmd toggle:on:off:brightness:ct:color


Ich hab mit diversen attrTemplates getestet, das "zigbee2mqtt_light_rgbcct_rgb" erschien mir am besten passend.
An/Aus, Helligkeit und Farbe kann ich über WEBcmd steuern.
Jedoch habe ich im Reading immer folgende Fehlermeldung:

hex Error evaluating MQTT2_zigbee_LEDLightStrip userReading hex: Undefined subroutine &Color::xyY2hex called at (eval 100809) line 1.\


Mit der Fehlermeldung kann ich nur bedingt was anfangen (bin Newbee), ich vermute das LED Strip gibt keine HEX Werte zurück

Auf der ZIGBEE2MQTT Seite wird diese LED Strip als supported angezeigt:
https://www.zigbee2mqtt.io/devices/HG06104A.html
Wenn ich das richtig lese, kann man hier aber nur X/Y Werte für Color auslesen.

Kann mir jemand einen Tipp geben wie ich die Fehlermeldung weg bekomme?

Einbindung in FTUI:
ich hab versucht den LED Strip in FTUI einzubinden. An/Aus und Brightness geht. Aber ich bekomme es nicht hin z.B. mittels Color Picker eine Farbauswahl zu senden. Ich weiß nicht wie ich den Wert übertragen kann. Der u.a. Code funktioniert nicht sendet wohl direkt HEX Werte an das Device

Für die Farbe:

<div data-type="colorwheel"
data-device="MQTT2_zigbee_LEDLightStrip"
data-get="color"
data-set="color"
class="lineIndicator">
</div>


Für die Brightness (das funktioniert):

        <div data-type="volume"
data-device="MQTT2_zigbee_LEDLightStrip"
data-get="brightness"
data-set="brightness"
data-min="0"
data-max="255"
data-tickstep="5"
data-unit="%"
class="small dim-tick dim-back">
</div>


Für sachdienliche Hinweise wäre ich sehr dankbar ;-)

Gruss Jupp

isy

Ein ähnlicher Strip, anfangs die gleiche FM, die jetzt weg ist nach Update gestern.
Ich habe zusätzlich die Farb-Buttons im WebCmd hinzugefügt.
Vielleicht hilft meine RAW Def weiter.
VG Helmut

defmod MQTT2_zigbee_0xec1bbdfffe2731d8 MQTT2_DEVICE zigbee_0xec1bbdfffe2731d8
attr MQTT2_zigbee_0xec1bbdfffe2731d8 alias Lightstrip
attr MQTT2_zigbee_0xec1bbdfffe2731d8 devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr MQTT2_zigbee_0xec1bbdfffe2731d8 devicetopic zigbee2mqtt/0xec1bbdfffe2731d8
attr MQTT2_zigbee_0xec1bbdfffe2731d8 group Zigbee Leuchten
attr MQTT2_zigbee_0xec1bbdfffe2731d8 icon hue_filled_lightstrip
attr MQTT2_zigbee_0xec1bbdfffe2731d8 jsonMap color_temp:ct
attr MQTT2_zigbee_0xec1bbdfffe2731d8 model zigbee2mqtt_light_rgbcct_hex
attr MQTT2_zigbee_0xec1bbdfffe2731d8 readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }\
zigbee2mqtt/0xec1bbdfffe2731d8/availability:.* availability
attr MQTT2_zigbee_0xec1bbdfffe2731d8 room MQTT2_DEVICE,Wohnzimmer
attr MQTT2_zigbee_0xec1bbdfffe2731d8 setList on:noArg $DEVICETOPIC/set {"state":"ON"}\
  off:noArg $DEVICETOPIC/set {"state":"OFF"}\
  brightness:colorpicker,BRI,0,5,255 $DEVICETOPIC/set {"state":"on","$EVTPART0":"$EVTPART1"}\
  ct:colorpicker,CT,154,2,500 $DEVICETOPIC/set {"color_temp":"$EVTPART1"}\
  hex:colorpicker,HEX,0,15,255 $DEVICETOPIC/set {"color":{"$EVTPART0":"#$EVTPART1"}}
attr MQTT2_zigbee_0xec1bbdfffe2731d8 stateFormat {lc ReadingsVal($name,"state",0)}
attr MQTT2_zigbee_0xec1bbdfffe2731d8 userReadings hex:color_y.* {Color::xyY2hex(ReadingsVal($name,"color_x",0),ReadingsVal($name,"color_y",0),ReadingsVal($name,"brightness",254))}
attr MQTT2_zigbee_0xec1bbdfffe2731d8 webCmd toggle:on:off:brightness:ct:hex:hex ff0000:hex 98ff23:hex 0000ff :hex ffffff

setstate MQTT2_zigbee_0xec1bbdfffe2731d8 on
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-10 09:47:29 IODev MyMQTT
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-10 09:45:45 associatedWith MQTT2_zigbee_pi
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-10 09:33:22 attrTemplateVersion 20211018
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-11 08:46:41 availability online
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-11 08:48:22 brightness 254
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-11 08:48:22 color_hue 29
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-11 08:48:22 color_mode color_temp
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-11 08:48:22 color_saturation 88
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-10 09:32:47 color_temp 500
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-11 08:48:22 color_x 0.4861
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-11 08:48:22 color_y 0.4147
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-11 08:48:22 ct 416
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-11 08:48:22 hex FFB235
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-11 08:48:22 linkquality 0
setstate MQTT2_zigbee_0xec1bbdfffe2731d8 2022-01-11 08:48:22 state ON
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Beta-User

Zitat von: juppy_jupp am 11 Januar 2022, 08:17:53
FHEM ist aktuell, zigbee2mqtt ist aktuell auf 1.2.2

[...]

hex Error evaluating MQTT2_zigbee_LEDLightStrip userReading hex: Undefined subroutine &Color::xyY2hex called at (eval 100809) line 1.\


Mit der Fehlermeldung kann ich nur bedingt was anfangen (bin Newbee), ich vermute das LED Strip gibt keine HEX Werte zurück
Die Fehlermeldung klingt eher nicht danach, als wäre Color.pm aktuell. Und Sinn und Zweck eines userReadings ist gerade, ein Reading zu erzeugen, dass es nicht gibt bzw. das nicht geliefert wird...

Was liefert "version Color"? (Soll: "Color.pm 20813 2019-12-22 18:42:10Z justme1968")
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

juppy_jupp

Hi,

danke für die Info. Ich bin schon ein Stück weiter.
Hier die geänderte Definition:


defmod MQTT2_zigbee_LEDLightStrip MQTT2_DEVICE zigbee_LED
attr MQTT2_zigbee_LEDLightStrip alias LED-Strip
attr MQTT2_zigbee_LEDLightStrip devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr MQTT2_zigbee_LEDLightStrip devicetopic zigbee2mqtt/LEDLightStrip
attr MQTT2_zigbee_LEDLightStrip icon hue_filled_lightstrip
attr MQTT2_zigbee_LEDLightStrip jsonMap color_temp:ct
attr MQTT2_zigbee_LEDLightStrip model zigbee2mqtt_light_rgbcct_hex
attr MQTT2_zigbee_LEDLightStrip readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }\
zigbee2mqtt/LEDLightStrip/availability:.* availability
attr MQTT2_zigbee_LEDLightStrip room MQTT2_DEVICE
attr MQTT2_zigbee_LEDLightStrip setList on:noArg $DEVICETOPIC/set {"state":"ON"}\
  off:noArg $DEVICETOPIC/set {"state":"OFF"}\
  brightness:colorpicker,BRI,0,5,255 $DEVICETOPIC/set {"state":"on","$EVTPART0":"$EVTPART1"}\
  ct:colorpicker,CT,150,2,500 $DEVICETOPIC/set {"color_temp":"$EVTPART1"}\
  hex:colorpicker,HEX,0,15,255 $DEVICETOPIC/set {"color":{"$EVTPART0":"#$EVTPART1"}}
attr MQTT2_zigbee_LEDLightStrip stateFormat {lc ReadingsVal($name,"state",0)}
attr MQTT2_zigbee_LEDLightStrip userReadings hex:color_y.* {Color::xyY2hex(ReadingsVal($name,"color_x",0),ReadingsVal($name,"color_y",0),ReadingsVal($name,"brightness",254))}
attr MQTT2_zigbee_LEDLightStrip webCmd toggle:on:off:brightness:ct:hex:hex ff0000:hex 98ff23:hex 0000ff:ct 150:ct 500

setstate MQTT2_zigbee_LEDLightStrip on
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 09:48:56 IODev MQTT2_FHEM_Server
setstate MQTT2_zigbee_LEDLightStrip 2022-01-02 17:09:43 associatedWith MQTT2_zigbee_pi
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 09:17:35 attrTemplateVersion 20211018
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 09:49:57 brightness 115
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 09:49:57 color_mode color_temp
setstate MQTT2_zigbee_LEDLightStrip 2022-01-02 19:36:32 color_temp 500
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 09:49:57 color_x 0.311099001465878
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 09:49:57 color_y 0.321247023404895
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 09:49:57 ct 150
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 09:49:57 hex Error evaluating MQTT2_zigbee_LEDLightStrip userReading hex: Undefined subroutine &Color::xyY2hex called at (eval 1311) line 1.\

setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 09:49:57 linkquality 55
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 09:49:57 state ON
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 09:47:32 { json2nameValue($EVENT,'',$JSONMAP) }  {"brightness":180,"color":{"x":0.7006,"y":0.2993},"color_mode":"xy","color_temp":37,"linkquality":52,"state":"ON"}
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 09:47:32 { json2nameValue($EVENT,'',$JSONMAP) }  {"brightness":180,"color":{"x":0.7006,"y":0.2993},"color_mode":"xy","color_temp":37,"linkquality":52,"state":"ON"}


Was hab ich gemacht:
- umgestellt auf "model zigbee2mqtt_light_rgbcct_hex2
- readingList angepasst -> $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }\ zigbee2mqtt/LEDLightStrip/availability:.* availability
- Web CMD Anpassungen vorgenommen. Das ist Kosmetik, aber jetzt kan ich die Grundfarben sowie Kalt- und Warmweis direkt über ein Button setzen (das ist super)

Nebenbei funktioniert mit den Änderungen jetzt auch das Farben setzen mittels Color Picker im FTUI ;-)

Nur ein Wehrmutstropfen bleibt: ich hab immer noch die Fehlermedung im Reading :-(




juppy_jupp

Hi Beta-user,

version Color liefert:

no loaded modules found that match: Color
fhemweb.js                 25366 2021-12-22 09:39:03Z rudolfkoenig
fhemweb_colorpicker.js     23068 2020-11-01 16:15:57Z justme1968

Heißt das mir fehlt das "Color" Modul?
Wenn ja, Wie bekomme ich das nachinstalliert?

Jupp

Beta-User

Zitat von: juppy_jupp am 11 Januar 2022, 10:03:00
no loaded modules found that match: Color
Installiert ist es dann wohl, nur eben nicht geladen.

Im Zweifel kannst du dir in (d)eine 99_myUtils.pm-File am Anfang einen Eintrag mit "use Color;" machen. Falls du noch keine solche im Einsatz haben solltest, einfach eine anlegen wie unter https://wiki.fhem.de/wiki/99_myUtils_anlegen beschrieben, das "use" hinter die beiden vohandenen einfügen, das sollte genügen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

juppy_jupp

Hi Beta-User,

das hat geholfen :)

ich hab wie beschrieben eine 99 myUtils mit "use Color" angelegt und danach einen shutdown restart durchgeführt.

Jetzt zeigt das HEX reading mir einen Wert statt der Fehlermeldung an:


setstate MQTT2_zigbee_LEDLightStrip on
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 10:16:43 IODev MQTT2_FHEM_Server
setstate MQTT2_zigbee_LEDLightStrip 2022-01-02 17:09:43 associatedWith MQTT2_zigbee_pi
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 09:17:35 attrTemplateVersion 20211018
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 10:18:00 brightness 115
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 10:18:00 color_mode color_temp
setstate MQTT2_zigbee_LEDLightStrip 2022-01-02 19:36:32 color_temp 500
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 10:18:00 color_x 0.526676280311873
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 10:18:00 color_y 0.41329727450763
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 10:18:00 ct 500
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 10:18:00 hex FF991F
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 10:18:00 linkquality 21
setstate MQTT2_zigbee_LEDLightStrip 2022-01-11 10:18:00 state ON



Und "version Color" zeigt mir das:
File     Rev   Last Change
Color.pm 20813 2019-12-22 18:42:10Z justme1968

fhemweb.js                 25366 2021-12-22 09:39:03Z rudolfkoenig
fhemweb_colorpicker.js     23068 2020-11-01 16:15:57Z justme1968


Danke für den schnellen Support

Jupp

Beta-User

 :) [gelöst]?

Anmerkungen noch:
- Leiche entsorgen mit:
deletereading MQTT2_zigbee_LEDLightStrip color_temp
- Color.pm muss nur einmalig "irgendwo" geladen werden, manche Module machen das "nebenbei", so dass man das nicht mehr benötigt, wenn man was passendes definiert hat.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

isy

Guter Tipp mit dem use color;
War bei mir im Testsystem Ursache für den obigen Fehler.
Ein Weg wird erst zu einem Weg, wenn man ihn geht

rudolfkoenig

Das geht alternativ auch mit
define useColor notify global:INITIALIZED { use Color }
Bin aber nicht ueberzeugt, dass das die bessere Variante ist :)

Beta-User

...da hatte ich gerätselt, ob das dauerhaft wirkt. Ein "relaod" wäre wohl die Alternative, bewirkt aber halt uU. ein doppeltes Laden. Das zu verhindern geht vermutlich auch, aber ob es dann einfacher ist...?

Irgendwie ist Color.pm gefühlt eine gewisse "Lücke", mir fällt aber auch nichts ein, wie man das sinnvoll umgehen kann. Das Gegenstück zu global/disableFeatures wäre auch nicht viel einfacher aufzufinden, und an die MQTT2-IO's gehört es auch nicht so recht... (Einfach automatisch mit laden und das per disableFeatures verhindern können?)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors