attrTemplate: zigbee2mqtt_light_rgbcct_rgb

Begonnen von TomLee, 06 Oktober 2022, 12:46:47

Vorheriges Thema - Nächstes Thema

TomLee

Ob ihr es wissen wollt oder auch nicht:

Hab ich mir eben gekauft für 14,99€, klappt problemlos mit dem Template, denke werd noch eine holen.

Die Optik macht nix her, vergleichbare "normale" Leuchten kosten im "Baumarkt" aber auch schon fast das gleiche Geld.

https://www.zigbee2mqtt.io/devices/HG08008.html

MadMax-FHEM

FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

TomLee

Jetzt nimmer:

Ich meine es fehlt ein :

attr <devicename> jsonMap color_temp:ct

defmod MQTT2_zigbee_Lager_Decke1 MQTT2_DEVICE zigbee_0x04cd15fffea4c6ad
attr MQTT2_zigbee_Lager_Decke1 devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr MQTT2_zigbee_Lager_Decke1 devicetopic zigbee2mqtt/0x04cd15fffea4c6ad
attr MQTT2_zigbee_Lager_Decke1 group Kuechenflur
attr MQTT2_zigbee_Lager_Decke1 homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr MQTT2_zigbee_Lager_Decke1 icon hue_filled_white_and_color_e27_b22
attr MQTT2_zigbee_Lager_Decke1 jsonMap color_temp:ct
attr MQTT2_zigbee_Lager_Decke1 model zigbee2mqtt_light_rgbcct_rgb
attr MQTT2_zigbee_Lager_Decke1 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state}) if defined $ret->{state};; return $ret }
attr MQTT2_zigbee_Lager_Decke1 room Lager,MQTT2_DEVICE
attr MQTT2_zigbee_Lager_Decke1 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"}\
  color:colorpicker,RGB {"$DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
attr MQTT2_zigbee_Lager_Decke1 webCmd toggle:on:off:brightness:ct:color

setstate MQTT2_zigbee_Lager_Decke1 off
setstate MQTT2_zigbee_Lager_Decke1 2022-10-06 12:19:17 IODev MQTT2_Server
setstate MQTT2_zigbee_Lager_Decke1 2022-10-06 12:19:18 associatedWith MQTT2_zigbee_bridge
setstate MQTT2_zigbee_Lager_Decke1 2022-10-06 12:30:13 attrTemplateVersion 20220913
setstate MQTT2_zigbee_Lager_Decke1 2022-10-07 08:31:57 brightness 20
setstate MQTT2_zigbee_Lager_Decke1 2022-10-06 20:40:42 color 370
setstate MQTT2_zigbee_Lager_Decke1 2022-10-07 08:31:57 color_mode color_temp
setstate MQTT2_zigbee_Lager_Decke1 2022-10-06 20:47:06 color_temp 328
setstate MQTT2_zigbee_Lager_Decke1 2022-10-07 08:31:57 color_x 0.4632


Für mehr Infos hab ich jetzt keine Zeit mehr, hat mich jetzt schon genug Zeit gekostet die Lampe zu integrieren und zu montieren, ich muss jetzt was arbeiten, einfach glauben das mit dem jsonMap.


TomLee

384 attr DEVICE sonMap color_temp:ct

Ich arbeite an mir und leider auch an meinen Möglichkeiten! (ja, trotz, !noch!, guter Laune), dich dabei zu ünterstützen so kleine Aufgaben zu übernehmen, mit "Tester" hab ich offensichtlich etwas völlig falsch verstanden (der wird wohl wieder rückgängig gemacht).

Ich geb zu mich zu wenig/bis gar nicht mit dem Thema SVN beschäftigt zu haben (etwas schlauer bin ich jetzt, nach mal genauer lesen), kurz -> wie du liest wird weiterhin, auch nach so langer Zeit, noch einiges an Wasser den Rhein runterfliessen bis da meinerseits mal irgendwas kommt.


Beta-User

 :o Ähm, sorry für den Typo, und Danke für's (doppelte) aufpassen.

War wohl doch eigentlich schon zu müde heute, wollte das (und die andere Neuerung) halt zeitnah abgearbeitet haben...

(Tester finde ich aber eigentlich gut! Es war aber ausdrücklich nicht als Test gedacht!)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

TomLee

Mir ist das zu hoch, gibt es in FHEM bereits eine Funktion die aus den  x/y Werten brauchbare rgb oder hex Werte zurückgibt oder geht das gar nicht ohne diesen z -Wert  ?

setstate MQTT2_zigbee_Lager_Decke_1 off
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 19:08:03 brightness 30
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 19:08:03 color_mode color_temp
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 19:08:03 color_x 0.4599
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 19:08:03 color_y 0.4106
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 19:08:03 ct 370
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 19:08:03 linkquality 111
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 19:08:03 state off

TomLee

Ein lesender "Gast" hat mich zu diesem Thread geführt und in der mqtt2.template gibts ein Beispiel zu xyY2hex.

Nächste doofe Frage, anhand der Werte des letzten Beitrags was mach ich mit der Dezimalzahl die zurückgegeben wird ?
Hätte jetzt erwartet da kommt ein RGB-Wert zurück.

{Color::xyY2rgb(ReadingsNum('MQTT2_zigbee_Lager_Decke_1','color_x',1),ReadingsNum('MQTT2_zigbee_Lager_Decke_1','color_y',1),ReadingsNum('MQTT2_zigbee_Lager_Decke_1','brightness',0))}
0.279396897464057


Natürlich wird das Käse sein aber es passt in etwa wenn ich den zurückgegebenen Wert von xyY2hex in ein rgb-Reading schreibe:

defmod MQTT2_zigbee_Lager_Decke_1 MQTT2_DEVICE zigbee_0x04cd15fffea4c6ad
attr MQTT2_zigbee_Lager_Decke_1 devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr MQTT2_zigbee_Lager_Decke_1 devicetopic zigbee2mqtt/0x04cd15fffea4c6ad
attr MQTT2_zigbee_Lager_Decke_1 group Lagerflur
attr MQTT2_zigbee_Lager_Decke_1 homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr MQTT2_zigbee_Lager_Decke_1 icon hue_filled_white_and_color_e27_b22
attr MQTT2_zigbee_Lager_Decke_1 jsonMap color_temp:ct
attr MQTT2_zigbee_Lager_Decke_1 model zigbee2mqtt_light_rgbcct_rgb
attr MQTT2_zigbee_Lager_Decke_1 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state}) if defined $ret->{state};; return $ret }
attr MQTT2_zigbee_Lager_Decke_1 room Lager,MQTT2_DEVICE
attr MQTT2_zigbee_Lager_Decke_1 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"}\
rgb:colorpicker,RGB {"$DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
attr MQTT2_zigbee_Lager_Decke_1 setStateList on off
attr MQTT2_zigbee_Lager_Decke_1 userReadings rgb:color_y.* {Color::xyY2hex(ReadingsVal($name,'color_x',0),ReadingsVal($name,'color_y',0),ReadingsVal($name,'brightness',254))}
attr MQTT2_zigbee_Lager_Decke_1 webCmd toggle:on:off:brightness:ct:rgb

setstate MQTT2_zigbee_Lager_Decke_1 on
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 23:53:21 brightness 30
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 23:53:21 color_mode xy
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 23:53:21 color_x 0.1874
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 23:53:21 color_y 0.3472
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 23:53:21 ct 67
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 23:53:21 linkquality 127
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 23:53:21 rgb 6FF4FD
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-10 23:53:21 state on



Beta-User

In Color.pm findet sich nicht nur diese Funktion, sondern (soweit ich mich entsinne) auch xyY2rgb(). Vielleicht paßt das besser?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

TomLee

Zitat... auch xyY2rgb(). Vielleicht paßt das besser?

Wie du oben siehst hab ich mich beim letzten Beitrag schon mit beiden Funktion beschäftigt gehabt und die Frage war/ist was ich mit der Dezimalzahl dann anfangen soll welche mir mit xyY2rgb() ?

Wenn man zigbee2mqtt_light_rgbcct_hex um das userReadings erweitert passt es meiner Meinung nach wenn man einen Hex-Wert haben will, auch wenn die xyY2hex-Funktion einen anderen Wert zurückgibt wie den den man in dem Widget gewählt hat:

Zitatdefmod MQTT2_zigbee_0x04cd15fffea4c6ad MQTT2_DEVICE zigbee_0x04cd15fffea4c6ad
attr MQTT2_zigbee_0x04cd15fffea4c6ad devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr MQTT2_zigbee_0x04cd15fffea4c6ad devicetopic zigbee2mqtt/0x04cd15fffea4c6ad
attr MQTT2_zigbee_0x04cd15fffea4c6ad homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr MQTT2_zigbee_0x04cd15fffea4c6ad icon hue_filled_white_and_color_e27_b22
attr MQTT2_zigbee_0x04cd15fffea4c6ad jsonMap color_temp:ct
attr MQTT2_zigbee_0x04cd15fffea4c6ad model zigbee2mqtt_light_rgbcct_hex
attr MQTT2_zigbee_0x04cd15fffea4c6ad readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state}) if defined $ret->{state};; return $ret }
attr MQTT2_zigbee_0x04cd15fffea4c6ad room MQTT2_DEVICE
attr MQTT2_zigbee_0x04cd15fffea4c6ad 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_0x04cd15fffea4c6ad userReadings hex:color_y.* {Color::xyY2hex(ReadingsVal($name,'color_x',0),ReadingsVal($name,'color_y',0),ReadingsVal($name,'brightness',254))}
attr MQTT2_zigbee_0x04cd15fffea4c6ad webCmd toggle:on:off:brightness:ct:hex

setstate MQTT2_zigbee_0x04cd15fffea4c6ad off
setstate MQTT2_zigbee_0x04cd15fffea4c6ad 2022-10-11 11:25:11 IODev MQTT2_Server
setstate MQTT2_zigbee_0x04cd15fffea4c6ad 2022-10-11 11:25:12 associatedWith MQTT2_zigbee_bridge
setstate MQTT2_zigbee_0x04cd15fffea4c6ad 2022-10-11 11:33:55 attrTemplateVersion 20220913
setstate MQTT2_zigbee_0x04cd15fffea4c6ad 2022-10-11 11:38:16 brightness 30
setstate MQTT2_zigbee_0x04cd15fffea4c6ad 2022-10-11 11:38:16 color_mode xy
setstate MQTT2_zigbee_0x04cd15fffea4c6ad 2022-10-11 11:25:12 color_temp 128
setstate MQTT2_zigbee_0x04cd15fffea4c6ad 2022-10-11 11:38:16 color_x 0.162
setstate MQTT2_zigbee_0x04cd15fffea4c6ad 2022-10-11 11:38:16 color_y 0.3122
setstate MQTT2_zigbee_0x04cd15fffea4c6ad 2022-10-11 11:38:16 ct 45
setstate MQTT2_zigbee_0x04cd15fffea4c6ad 2022-10-11 11:38:16 hex 4FC6FC
setstate MQTT2_zigbee_0x04cd15fffea4c6ad 2022-10-11 11:38:16 linkquality 167
setstate MQTT2_zigbee_0x04cd15fffea4c6ad 2022-10-11 11:38:16 state off

OT
Sry das das Device jetzt schon wieder anders heisst, bin auf der Suche warum es in letzter Zeit öfter vorkam das plötzlich mein MQTT2_ClIENT, nach irgendeiner Aktion die ich vermutlich anstosse (Template anwenden ?), als IODev in meinen Geräten steht ?

TomLee

Ich werd das bei mir so umsetzen das ich den setter und das userReadings in rgb umbenenne, das ich meine Spielerei mit pahcolor weiter umsetzen kann und der setter überall gleich (rgb) heisst.
{my $pc = substr(Color::pahColor(0,15,30,ReadingsVal('HF_Aussensensor_Vorderhaus','temperature','0'),2,0),0,6);;return $pc}

TomLee

Also so wie oben schon gezeigt:

defmod MQTT2_zigbee_Lager_Decke_1 MQTT2_DEVICE zigbee_0x04cd15fffea4c6ad
attr MQTT2_zigbee_Lager_Decke_1 devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr MQTT2_zigbee_Lager_Decke_1 devicetopic zigbee2mqtt/0x04cd15fffea4c6ad
attr MQTT2_zigbee_Lager_Decke_1 group Lagerflur
attr MQTT2_zigbee_Lager_Decke_1 homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr MQTT2_zigbee_Lager_Decke_1 icon hue_filled_white_and_color_e27_b22
attr MQTT2_zigbee_Lager_Decke_1 jsonMap color_temp:ct
attr MQTT2_zigbee_Lager_Decke_1 model zigbee2mqtt_light_rgbcct_hex
attr MQTT2_zigbee_Lager_Decke_1 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state}) if defined $ret->{state};; return $ret }
attr MQTT2_zigbee_Lager_Decke_1 room Lager,MQTT2_DEVICE
attr MQTT2_zigbee_Lager_Decke_1 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"}\
rgb:colorpicker,RGB {"$DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
attr MQTT2_zigbee_Lager_Decke_1 userReadings rgb:color_y.* {Color::xyY2hex(ReadingsVal($name,'color_x',0),ReadingsVal($name,'color_y',0),ReadingsVal($name,'brightness',254))}
attr MQTT2_zigbee_Lager_Decke_1 webCmd toggle:on:off:brightness:ct:rgb

setstate MQTT2_zigbee_Lager_Decke_1 off
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-11 12:55:30 brightness 30
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-11 12:55:30 color_mode color_temp
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-11 12:55:30 color_x 0.4164
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-11 12:55:30 color_y 0.396
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-11 12:55:30 ct 302
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-11 12:55:30 linkquality 167
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-11 12:55:30 rgb FFD96F
setstate MQTT2_zigbee_Lager_Decke_1 2022-10-11 12:55:30 state off

Beta-User

Thx für die Mühe, werde das mit dem rgb-Setter dann bei Gelegenheit einchecken.

Zitat von: TomLee am 11 Oktober 2022, 12:03:25
bin auf der Suche warum es in letzter Zeit öfter vorkam das plötzlich mein MQTT2_ClIENT, nach irgendeiner Aktion die ich vermutlich anstosse (Template anwenden ?), als IODev in meinen Geräten steht ?
Vermutung: du löschst das/die IODev-Reading/s? (ggf. iVm. einem FHEM restart)

Dann geht das Internal IODev verloren, und wenn weder Reading noch Attribut gesetzt sind, "rät" fhem.pl bei der IODev-Zuweisung (und nimmt das letzte passende, das in der config steht).

Aus diesen Grund steht bei den löschenden attrTemplate das hier drin:
deletereading -q DEVICE (?!associatedWith|IODev).*
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

TomLee

Zitat... wenn weder Reading noch Attribut gesetzt sind, "rät" fhem.pl bei der IODev-Zuweisung (und nimmt das letzte passende, das in der config steht).

Ja  :) das kann ich nachvollziehen, aber nur bei einem restart, da hätte ich noch lange gesucht, restart mach ich eigentlich selten. DANKE

TomLee

Die "Leuchte" merkt sich den letzten Zustand nach dem ausschalten (auch wenn sie mal spannungsfrei war), ich (ja, mag nicht allgemein so sein) fänds gut wenn man beim on-Befehl einen ct-Wert mitgibt, damit ist die Lampe immer "weiß" beim einschalten.

Gute oder weniger gute Idee den Wert vorzusehen/mitzugeben ?
(Evt. sogar mit Abfrage beim Template anwenden welcher ct-Wert default sein soll )

Beta-User

Zitat von: TomLee am 12 Oktober 2022, 08:44:35
Die "Leuchte" merkt sich den letzten Zustand nach dem ausschalten (auch wenn sie mal spannungsfrei war), ich (ja, mag nicht allgemein so sein) fänds gut wenn man beim on-Befehl einen ct-Wert mitgibt, damit ist die Lampe immer "weiß" beim einschalten.

Gute oder weniger gute Idee den Wert vorzusehen/mitzugeben ?
(Evt. sogar mit Abfrage beim Template anwenden welcher ct-Wert default sein soll )
Na ja, einfach beim "on"-Befehl den JSON erweitern, würde ich mal behaupten. Bringt zwar nichts, wenn das Ding spannungslos war, aber zumindest beim Einschalten sollte es helfen. Kannst auch noch einen brightness-Wert mit reinknödeln, wenn du willst.

Was das vertemplaten angeht, bin ich eher zögerlich; das ist bei jeder Hardware-Variante ggf. etwas anders, und zum Teil auch eine Geschmacksfrage. Würde das eher im Wiki verorten und ggf. einen Hinweis in farewell/comment aufnehmen?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files