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

TomLee

Wie das umzusetzen wäre ist klar und war keine Frage.
So ein Bulb https://www.zigbee2mqtt.io/devices/404000_404005_404012_404019.html verhält sich genau gleich, ähnliche Leuchten von Ikea vlt. auch ?
Es gibt halt keinen direkten Befehl (bei meinen zweien, von unterschiedlichen Herstellern wie du liest) auf Weiß zu schalten, das geht nur über "ct", darum dacht ich es wäre eine gute Idee/Basis. Mach wie du es für richtig hältst.

Beta-User

Zitat von: TomLee am 13 Oktober 2022, 17:58:31
Mach wie du es für richtig hältst.
Wenn es nachweislich mit 2 verschiedenen klappt und die bisherige Quote 100% ist, halte ich für richtig, was du dazu konkret vorschlägst ;) . (Ich habe jetzt leider etwas den Faden verloren, was der gewünschte Sollzustand ist, ein c/p-Vorschlga in attrTemplate-Form wäre super!).
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

Als Basis hab ich zigbee2mqtt_light_rgbw_hex genommen, welchen Namen man dem Template jetzt gibt weiß ich auch nicht, da wär ich bei dir schon gespannt gewesen welchen du gewählt hättest oder mit welchem Template verwurstet, denke mal zigbee2mqtt_light_rgbcct_rgb.


Getestet:
#source post: https://forum.fhem.de/index.php/topic,97303.msg905935.html#msg905935
name:zigbee2mqtt_light_rgbw_hex
filter:TYPE=MQTT2_DEVICE:FILTER=CID~zigbee.*
desc: A dimmable rgbw light connected via zigbee2mqtt<br>rgb value is encoded as HEX value<br>Tested with:<br><a href="https://www.zigbee2mqtt.io/devices/HG08008.html" target="_blank">Livarno Home LED ceiling light</a><br><a href="https://www.zigbee2mqtt.io/devices/404000_404005_404012_404019.html#m%25C3%25BCller%2520licht-404000%252F404005%252F404012%252F404019" target="_blank">Mueller Light tint RGBW bulb</a>
order:L_02d
par:BASE_TOPIC;base topic set in configuration.yaml of the zigbee2mqtt bridge;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m,[\b]?([^/:]+)[/].+, ? $1 : undef }
par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m,[^/]+[/]([^/:]+).*, ? $1 : undef }
par:ICON;ICON as set, defaults to hue_filled_white_and_color_e27_b22;{ AttrVal('DEVICE','icon','hue_filled_white_and_color_e27_b22') }
attr DEVICE icon ICON
attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr DEVICE webCmd toggle:on:off:brightness:ct:warm:white:rgb
attr DEVICE devicetopic BASE_TOPIC/DEV_ID
attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret }
attr DEVICE setList \
  on:noArg $\DEVICETOPIC/set {"state":"ON", "color_temp": 320}\
  off:noArg $\DEVICETOPIC/set {"state":"OFF"}\
  warm:noArg $\DEVICETOPIC/set {"brightness": 200 , "color_temp": 320}\
  white:noArg $\DEVICETOPIC/set {"brightness": 254, "color_temp": 250}\
  ct:colorpicker,CT,250,1,454 $\DEVICETOPIC/set {"color_temp":"$EVTPART1"}\
  brightness:colorpicker,BRI,0,5,255 $\DEVICETOPIC/set {"state":"on","$EVTPART0":"$EVTPART1"}\
  rgb:colorpicker,RGB {"$\DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
attr DEVICE userReadings rgb:color_y.* {Color::xyY2hex(ReadingsVal($name,'color_x',0),ReadingsVal($name,'color_y',0),ReadingsVal($name,'brightness',254))}
attr DEVICE jsonMap color_temp:ct
set DEVICE attrTemplate speechcontrol_type_light_255
attr DEVICE model zigbee2mqtt_light_rgbw_hex
setreading DEVICE attrTemplateVersion 20221014


Mit option will ich mich wieder beschäftigen, alles vergessen und muss mich wieder einlesen, weil das würd mir gefallen wenn der Wert abgefragt würde beim anwenden Geht das überhaupt, den Wert color_temp als Variable zu übergeben mein ich ?

Beta-User

Zitat von: TomLee am 14 Oktober 2022, 13:34:00
mit welchem Template verwurstet, denke mal zigbee2mqtt_light_rgbcct_rgb.
So hätte ich das auch gesehen, ist ja nur eine Erweiterung, und wer es nicht/anders mag, muss es halt ändern...

Zitat
Mit option will ich mich wieder beschäftigen, alles vergessen und muss mich wieder einlesen, weil das würd mir gefallen wenn der Wert abgefragt würde beim anwenden Geht das überhaupt, den Wert color_temp als Variable zu übergeben mein ich ?
Also z.B. alles, wo jetzt "320" steht mit einem Wert zu belegen, den der User (mit) angeben kann? Sollte gehen.

Wobei sich da die Frage stellt, ob man nicht "par:" vorsieht, aber eine Vorbelegung mit 320 macht. Wer es anders will, muss dann halt das attrTemplate mit dem passenden anderen Wert aufrufen?
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

Cool.

Komm hier aber nicht genau mit wie das genau gemeint ist:
Zitataber eine Vorbelegung mit 320 macht. Wer es anders will, muss dann halt das attrTemplate mit dem passenden anderen Wert aufrufen?

Das man die Auswahl hat vorgegebene oder eigene Werte zu übergeben ?




Zitatname:zigbee2mqtt_light_rgbcct_rgb
filter:TYPE=MQTT2_DEVICE:FILTER=CID~zigbee.*
desc: A dimmable rgbw light connected via zigbee2mqtt<br>rgb value is encoded as HEX value<br>remove color_temp in setlist command <b>on</b> if default white is not desired<br>Tested with:<br><a href="https://www.zigbee2mqtt.io/devices/HG08008.html" target="_blank">Livarno Home LED ceiling light</a><br><a href="https://www.zigbee2mqtt.io/devices/404000_404005_404012_404019.html#m%25C3%25BCller%2520licht-404000%252F404005%252F404012%252F404019" target="_blank">Mueller Light tint RGBW bulb</a>
order:L_02e1
par:BASE_TOPIC;base topic set in configuration.yaml of the zigbee2mqtt bridge;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m,[\b]?([^/:]+)[/].+, ? $1 : undef }
par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m,[^/]+[/]([^/:]+).*, ? $1 : undef }
par:ICON;ICON as set, defaults to hue_filled_white_and_color_e27_b22;{ AttrVal('DEVICE','icon','hue_filled_white_and_color_e27_b22') }
par:BRIGHTNESS;default brightness in <b>brightness</b>-command;undef
par:CTWARMVALUE;default color_temp in <b>warm</b>-command;undef
par:CTWHITEVALUE;default color_temp in <b>white</b>-command;undef

attr DEVICE icon ICON
attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr DEVICE webCmd toggle:on:off:brightness:ct:warm:white:rgb
attr DEVICE devicetopic BASE_TOPIC/DEV_ID
attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret }
attr DEVICE setList \
  on:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS , "state":"ON", "color_temp": CTVALUE}\
  off:noArg $\DEVICETOPIC/set {"state":"OFF"}\
  warm:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS , "color_temp": CTWARMVALUE}\
  white:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS, "color_temp": CTWHITEVALUE}\
  ct:colorpicker,CT,250,1,454 $\DEVICETOPIC/set {"color_temp":"$EVTPART1"}\
  brightness:colorpicker,BRI,0,5,255 $\DEVICETOPIC/set {"state":"on","$EVTPART0":"$EVTPART1"}\
  rgb:colorpicker,RGB {"$\DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
attr DEVICE userReadings rgb:color_y.* {Color::xyY2hex(ReadingsVal($name,'color_x',0),ReadingsVal($name,'color_y',0),ReadingsVal($name,'brightness',254))}
attr DEVICE jsonMap color_temp:ct
set DEVICE attrTemplate speechcontrol_type_light_255
attr DEVICE model zigbee2mqtt_light_rgbcct_rgbt
setreading DEVICE attrTemplateVersion 20221014

Mir fehlt dabei irgendwo noch ein Hinweis, entweder irgendwo in dem Dialogfeld wo man die Werte angibt oder danach wenn man mit OK bestätigt hat, so in der Art:
The specified values ​​can be adjusted at any time in the setlist attribute

Beta-User

par:BRIGHTNESS;default brightness in <b>brightness</b>-command;{200}
Ruft man dann das attrTemplate ohne Parameter auf, wird die 200 gezogen. Ruft man es mit BRIGHTNESS=230 auf, wird es zu 230. Ob man das auch mit nicht namentlich übergebenen Argumenten ohne weitere machen kann, weiß ich grade nicht.
Nicht ermittelbare Argumente werden in der Reihenfolge aufgelöst, in der sie nicht automatisch bestimmt werden können. Der "undef"-Fall würde daher die Eingabe von Argumenten erzwingen, was vielleicht nicht gewünscht ist bzw. die User verwirrt (hilfreich ist dann wenigstens die Angabe des (gedachten) defaults im angezeigten Kommentar).
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

#21
ZitatDer "undef"-Fall würde daher die Eingabe von Argumenten erzwingen, ...

das ist aber genau das was ich mir vorstelle, damit wird, nebenbei, meiner Meinung nach sofort Verständnis dazu aufgebaut warum welche Werte irgendwo stehen, es steht doch schließlich auch da was man anzugeben hat und in der Beschreibung des Template ist die Doku verlinkt aus der man sich die Info ziehen kann welche Werte gerade abgefragt werden:

Specify the unknown parameters for MQTT2_zigbee_0x00158d0003e5ee0c/zigbee2mqtt_light_rgbcct_rgbtest:
default brightness in brightness-command   
default color_temp in on-command   
default color_temp in warm-command   
default color_temp in white-command

Zitat... was vielleicht nicht gewünscht ist bzw. die User verwirrt

dann seh ich das wsl. halt mit anderen Augen.


Ein Template mit Parametern aufrufen, wo/wann kam das mal vor, woher weiß das ein User der einfach nur ein Template anwenden will und keine Ahnung von der Materie hat, woher soll er die Info haben, wo steht das? im Wiki, wo ich als Anfänger zuerst lesen würde, nicht ?

Und dann noch was, ich habs mit Edge und Chrome ausprobiert, schonmal über die Kommandozeile ein Template aufgerufen welches wieder dann ein Sprachtemplate aufruft und das Dialogfeld erscheinen sollte ?
Bei mir ist der Inhalt des Dialogfelds dann einfach über die ganze Breite der rechten Seite von "FHEMWEB" und es gibt keinen OK-Button mehr zum bestätigen.


edit:

OK, im Wiki steht doch was:
ZitatParameterName wird in jeder Befehlzeile ersetzt mit dem Wert. Zusätzlich: DEVICE wird mit dem Namen des Gerätes ersetzt, wird DEVICE (z.B. für Modulnamen) als Text benötigt, muß es escaped werden (z.B. MQTT2_\DEVICE)

Es ist aber mMn. gewiss nicht gängige Praxis/geläufig Templates mit Parameter über die Kommandozeile auszuführen.


Beta-User

Vermutlich hast du recht, und es wäre in der Tat Zeit, die User (noch mehr) daran zu gewöhnen, dass man auch mal was eingeben muss.

Würde dann allerdings wie schon geschrieben gleich einen "default"-Wert in die Beschreibung mit aufnehmen, also z.B.:

default color_temp in on-command (numeric, 0-370, 270 might be a good value to start).

Ist halt lang, aber es würde evtl. reichen, die "Langform" für den ersten Parameter zu zeigen.
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

das freut mich zu lesen.

Zitat von: TomLee am 14 Oktober 2022, 17:38:56
Das man die Auswahl hat vorgegebene oder eigene Werte zu übergeben ?

Als ich oben "option" schrieb war damit Radio gemeint, meine Vorstellung ist, das als erstes das Dialogfeld kommt mit zwei Optionen zur Auswahl -> einmal vorgegebene Werte zu übernehmen (die man dann in der desc auch erwähnen sollte) oder selbst Werte angeben möchte.

Hab mir speechcontrol.template wieder mal angeschaut und meine das ist genau der Punkt (das mit den Radio Buttons) als ich damals ausgestiegen bin  ;D , irgendwann konnt ich nicht mehr folgen, ich hab mir vorgenommen mich da wieder einzudenken und es zu verstehen.

Beta-User

Puh, also... das mit den Radio-Buttons funktioniert (soweit ich das jetzt noch im Kopf habe) nur deswegen, weil jeweils ein anderes "Unter-template" aufgerufen wird, jeweils abhängig von dem, was der User vorher ausgewählt hat. Ich glaube, das ist (jedenfalls in der jetzigen Form) keine Lösung für solche Fälle wie hier, weil man sonst 2 oder drei Templates für jede Konfiguration braucht (2, falls! man es gefahrlos rekursiv (=mit Parametern) aufrufen könnte, wenn die Wahl klar ist).
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

Beta-User

Habe jetzt mal "auf Verdacht" was eingecheckt, weil ich eh' wegen was anderem an dem Thema war. Bitte melden, falls es nicht paßt...
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

Sry für die späte Rückmeldung.

Gestern Morgen, nach den Äuglein aufmachen, hab ich mich für rd. 1/2 Wochen Arbeit entschlossen die nicht geplant waren (und auch direkt losgelegt) und heute Morgen gings unerwartet schnell in die Pilze.

Bei default color_temp in on-command (numeric, 0-370, 270 might be a good value to start) stimm ich dir zu, das etwas lang und bei den anderen Parametern find ich es merkwürdig wenn da einfach eine Zahl mit ? dasteht, hab aber erstmal auch keine bessere Idee.

Ich bin noch kein Stückchen weiter damit mich mit den Templates zu beschäftigen, warum wird farewell nicht angezeigt, liegt es daran das die Sprachtemplates danach aufgerufen werden ? Da farewell nicht "greift" ist es ja gut das du es comment auch nochmal vorgesehen hast, aber warum gleich zweimal farewell und comment ?




in webCmd ist das ersetzen von color noch untergegangen.


Beta-User

Zitat von: TomLee am 19 Oktober 2022, 18:19:11
Sry für die späte Rückmeldung.
Kein Ding.

Zitat
in webCmd ist das ersetzen von color noch untergegangen.
Thx, gefixt.

Zitathab aber erstmal auch keine bessere Idee.
Na ja, irgendwie muss man es halt lösen, wenn man was dialogisches haben will. Ist mal ein Vorschlag, bin da offen, sobald jemand was noch besseres einfällt...

Zitat
warum wird farewell
V.a. weil mir klar war, dass das zumindest bei den usern nicht angezeigt werden wird, bei denen danach noch ein anderes template mit farewell aufgerufen wird (also denen, die eine Sprachsteuerung im Einsatz haben), habe ich die Doppelung nach comment gemacht. Es ist aber auch so, dass man allgemein eine Rückmeldung eher wegklickt und/oder dann irgendwann deren Inhalt vergessen hat, wenn es denn später mal drauf ankäme...

Oder war mit "doppelt" noch was anders gemeint und ich habe wieder irgendwo was übersehen?
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

ZitatNa ja, irgendwie muss man es halt lösen, wenn man was dialogisches haben will. Ist mal ein Vorschlag, bin da offen, sobald jemand was noch besseres einfällt...

Vorschlag für "vorübergehend", aber bei jedem Parameter ( der erste lange fällt einfach weg):

Zitatdefault brightness in brightness-command (numeric, 0-255, e.g. 120)
default ct value in on-command (numeric, 0-370, e.g. 320)
default ct value in warm-command (e.g. 320)   
default ct value in white-command (e.g. 250)

Das mit dem ? kann nicht so bleiben, das verwirrt mMn. .

Eher an einen anderen Adressaten, wäre es viel Aufwand den einen Satz  Specify the unknown parameters for MQTT2_zigbee_Lager_Decke_1test/zigbee2mqtt_light_rgbcct_rgb: je nach gewählter Sprache in global auch dann entsprechend in dem Dialogfeld anzuzeigen ?

ZitatOder war mit "doppelt" noch was anders gemeint und ich habe wieder irgendwo was übersehen?

Nö.


TomLee

Hey, ich hab das nicht mitbekommen das du das Template meinem letzten Wunsch angepasst hast (und ich denke die ganze Zeit wann meldet der sich mal), Danke

Hier passt doch aber was nicht ?

par:BRIGHTNESS;default brightness in <b>brightness</b>-command (numeric, 0-255, e.g. 120);undef


->

par:BRIGHTNESS;default brightness in <b>on</b>-command (numeric, 0-255, e.g. 120);undef


und hier :

par:CTVALUE;default color temp (ct) value in <b>on</b>-command (numeric, 0-370, e.g. 320);undef

fänd ich besser:

par:CTVALUE;default ct value in <b>on</b>-command (numeric, 0-370, e.g. 320);undef

wie in der "Abfrage" zum warm/white-command ?

Schreibt man in allen "Abfragen" besser ct value mit Bindestrich -> ct-value ?


TomLee

Ach ich verstehe, "default color temp (ct) value ..." sollte als Hinweis dienen, auf die Abkürzungen ct in den weiteren "Abfagen", ja warum nicht, dann doch beibehalten ?

Beta-User

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 würde es so gefallen, ohne default ?


Zitat#source post: https://forum.fhem.de/index.php/topic,97303.msg905935.html#msg905935
name:zigbee2mqtt_light_rgbcct_rgb
filter:TYPE=MQTT2_DEVICE:FILTER=CID~zigbee.*
order:L_02e1
desc: A dimmable rgbw light connected via zigbee2mqtt<br>rgb value is encoded as HEX value<br>remove color_temp in setlist command <b>on</b> if default white is not desired<br>Tested with:<br><a href="https://www.zigbee2mqtt.io/devices/HG08008.html" target="_blank">Livarno Home LED ceiling light</a><br><a href="https://www.zigbee2mqtt.io/devices/404000_404005_404012_404019.html#m%25C3%25BCller%2520licht-404000%252F404005%252F404012%252F404019" target="_blank">Mueller Light tint RGBW bulb</a>
farewell:specified values ​​can be adjusted at any time in the setList attribute
par:BASE_TOPIC;base topic set in configuration.yaml of the zigbee2mqtt bridge;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m,[\b]?([^/:]+)[/].+, ? $1 : undef }
par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m,[^/]+[/]([^/:]+).*, ? $1 : undef }
par:BRIGHTNESS;brightness in <b>on</b>-command (numeric, 0-255, e.g. 120);undef
par:CTVALUE;ct-value (color temp) in <b>on</b>-command (numeric, 0-370, e.g. 320);undef
par:CTWARMVALUE;ct-value in <b>warm</b>-command (e.g. 320);undef
par:CTWHITEVALUE;ct-value in <b>white</b>-command (e.g. 250);undef
par:ICON;ICON as set, defaults to hue_filled_white_and_color_e27_b22;{ AttrVal('DEVICE','icon','hue_filled_white_and_color_e27_b22') }
attr DEVICE icon ICON
attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr DEVICE webCmd toggle:on:off:brightness:ct:rgb
attr DEVICE devicetopic BASE_TOPIC/DEV_ID
attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret }
attr DEVICE jsonMap color_temp:ct
attr DEVICE setList \
  on:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS , "state":"ON", "color_temp": CTVALUE}\
  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"}\
  warm:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS , "color_temp": CTWARMVALUE}\
  white:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS, "color_temp": CTWHITEVALUE}\
  rgb:colorpicker,RGB {"$\DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
attr DEVICE userReadings rgb:color_y.* {Color::xyY2hex(ReadingsVal($name,'color_x',0),ReadingsVal($name,'color_y',0),ReadingsVal($name,'brightness',254))}
attr DEVICE comment The specified ct and brightness values in on and warm etc. commands ​​can be adjusted at any time via the setList attribute
set DEVICE attrTemplate speechcontrol_type_light_255
attr DEVICE model zigbee2mqtt_light_rgbcct_rgb
setreading DEVICE attrTemplateVersion 20221106

TomLee

und vlt. noch was, ist mir gestern aufgefallen als ich attrTemplate ? aufgerufen hatte, ich wär dafür das man einen Forum Thread in jedem Template in der desc verlinkt.
Und der Link sollte immer in einem neuen Tab aufgerufen werden (target="_blank"), das nicht bei allen Templates, die bisher einen Link haben, so.

Also auch noch ergänzen, welcher dort drin steht überlass ich dir, ich hab hier den über dem Template eingesetzt:

Zitat#source post: https://forum.fhem.de/index.php/topic,97303.msg905935.html#msg905935
name:zigbee2mqtt_light_rgbcct_rgb
filter:TYPE=MQTT2_DEVICE:FILTER=CID~zigbee.*
order:L_02e1
desc: <a href="https://forum.fhem.de/index.php/topic,97303.msg905935.html#msg905935" target="_blank">Forum Thread</a><br>A dimmable rgbw light connected via zigbee2mqtt<br>rgb value is encoded as HEX value<br>remove color_temp in setlist command <b>on</b> if default white is not desired<br>Tested with:<br><a href="https://www.zigbee2mqtt.io/devices/HG08008.html" target="_blank">Livarno Home LED ceiling light</a><br><a href="https://www.zigbee2mqtt.io/devices/404000_404005_404012_404019.html#m%25C3%25BCller%2520licht-404000%252F404005%252F404012%252F404019" target="_blank">Mueller Light tint RGBW bulb</a>
farewell:specified values ​​can be adjusted at any time in the setList attribute
par:BASE_TOPIC;base topic set in configuration.yaml of the zigbee2mqtt bridge;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m,[\b]?([^/:]+)[/].+, ? $1 : undef }
par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m,[^/]+[/]([^/:]+).*, ? $1 : undef }
par:BRIGHTNESS;brightness in <b>on</b>-command (numeric, 0-255, e.g. 120);undef
par:CTVALUE;ct-value (color temp) in <b>on</b>-command (numeric, 0-370, e.g. 320);undef
par:CTWARMVALUE;ct-value in <b>warm</b>-command (e.g. 320);undef
par:CTWHITEVALUE;ct-value in <b>white</b>-command (e.g. 250);undef
par:ICON;ICON as set, defaults to hue_filled_white_and_color_e27_b22;{ AttrVal('DEVICE','icon','hue_filled_white_and_color_e27_b22') }
attr DEVICE icon ICON
attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr DEVICE webCmd toggle:on:off:brightness:ct:rgb
attr DEVICE devicetopic BASE_TOPIC/DEV_ID
attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret }
attr DEVICE jsonMap color_temp:ct
attr DEVICE setList \
  on:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS , "state":"ON", "color_temp": CTVALUE}\
  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"}\
  warm:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS , "color_temp": CTWARMVALUE}\
  white:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS, "color_temp": CTWHITEVALUE}\
  rgb:colorpicker,RGB {"$\DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
attr DEVICE userReadings rgb:color_y.* {Color::xyY2hex(ReadingsVal($name,'color_x',0),ReadingsVal($name,'color_y',0),ReadingsVal($name,'brightness',254))}
attr DEVICE comment The specified ct and brightness values in on and warm etc. commands ​​can be adjusted at any time via the setList attribute
set DEVICE attrTemplate speechcontrol_type_light_255
attr DEVICE model zigbee2mqtt_light_rgbcct_rgb
setreading DEVICE attrTemplateVersion 20221106

Beta-User

Bindestrich-Englisch gefällt mir immer noch nicht, den Rest habe ich jetzt "nebenbei" eingecheckt.
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

das default bei brightness ist entgangen oder soll weiter da stehen ?

Beta-User

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

Ich frag nur, wenn man drüber nachdenkt, könnte man es als default für "alle" weiteren Abfragen interpretieren, vlt. mal drüber schlafen !?

Beta-User

"Ups..." meinte: Übersehen, hab's direkt geändert. Besteht jetzt noch Handlungsbedarf bei diesem Template?
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

#39
ZitatBesteht jetzt noch Handlungsbedarf bei diesem Template?

Bedingt. Funktional, mein ich nicht. Was meine Gedanken dazu betrifft, ja. Eilt was ? Nimmt das jemals ein Ende ? Es gib doch  noch mehrere Morgen an denen man aufwacht und es fällt einem was Neues ein (heute wars nach einem arbeitsreichen Tag, mit Händen und Füssen, nicht mit dem Kopf).


TomLee

Würdest du bitte bei Gelegenheit die HG08010 ergänzen ?

Wenn ich mir attrTemplate ? anschaue, geht mir durch den Kopf das kompakter umzusetzen/Zeilen zu sparen, darum mein Vorschlag die "Tested with" Geräte, mindestens drei in der Anzahl, in einer Zeile mit Komma und Leerzeichen getrennt anzugeben und bei grösser vier Geräte dann erst ein <br> ?

Zitat#source post: https://forum.fhem.de/index.php/topic,97303.msg905935.html#msg905935
name:zigbee2mqtt_light_rgbcct_rgb
filter:TYPE=MQTT2_DEVICE:FILTER=CID~zigbee.*
order:L_02e1
desc: <a href="https://forum.fhem.de/index.php/topic,97303.msg905935.html#msg905935" target="_blank">Forum Thread</a><br>A dimmable rgbw light connected via zigbee2mqtt<br>rgb value is encoded as HEX value<br>remove color_temp in setlist command <b>on</b> if default white is not desired<br>Tested with:<br><a href="https://www.zigbee2mqtt.io/devices/HG08008.html" target="_blank">Livarno Home LED ceiling light,&nbsp;</a><a href="https://www.zigbee2mqtt.io/devices/404000_404005_404012_404019.html#m%25C3%25BCller%2520licht-404000%252F404005%252F404012%252F404019" target="_blank">Mueller Light tint RGBW bulb,&nbsp;</a><a href="https://www.zigbee2mqtt.io/devices/HG08010.html" target="_blank">Livarno Home outdoor spotlight</a>
farewell:specified values ​​can be adjusted at any time in the setList attribute
par:BASE_TOPIC;base topic set in configuration.yaml of the zigbee2mqtt bridge;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m,[\b]?([^/:]+)[/].+, ? $1 : undef }
par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m,[^/]+[/]([^/:]+).*, ? $1 : undef }
par:BRIGHTNESS;brightness in <b>on</b>-command (numeric, 0-255, e.g. 120);undef
par:CTVALUE;ct (color temp) value in <b>on</b>-command (numeric, 0-370, e.g. 320);undef
par:CTWARMVALUE;ct value in <b>warm</b>-command (e.g. 320);undef
par:CTWHITEVALUE;ct value in <b>white</b>-command (e.g. 250);undef
par:ICON;ICON as set, defaults to hue_filled_white_and_color_e27_b22;{ AttrVal('DEVICE','icon','hue_filled_white_and_color_e27_b22') }
attr DEVICE icon ICON
attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr DEVICE webCmd toggle:on:off:brightness:ct:rgb
attr DEVICE devicetopic BASE_TOPIC/DEV_ID
attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret }
attr DEVICE jsonMap color_temp:ct
attr DEVICE setList \
  on:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS , "state":"ON", "color_temp": CTVALUE}\
  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"}\
  warm:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS , "color_temp": CTWARMVALUE}\
  white:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS, "color_temp": CTWHITEVALUE}\
  rgb:colorpicker,RGB {"$\DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
attr DEVICE userReadings rgb:color_y.* {Color::xyY2hex(ReadingsVal($name,'color_x',0),ReadingsVal($name,'color_y',0),ReadingsVal($name,'brightness',254))}
attr DEVICE comment The specified ct and brightness values in on and warm etc. commands ​​can be adjusted at any time via the setList attribute
set DEVICE attrTemplate speechcontrol_type_light_255
attr DEVICE model zigbee2mqtt_light_rgbcct_rgb
setreading DEVICE attrTemplateVersion 202211xx

Und par:BRIGHTNESS;brightness in <b>on</b>-command (numeric, 0-255, e.g. 120);undef ist mir noch zu wenig beschrieben, BRIGHTNESS wird ja in allen "spezifizierten" Befehlen in dem Device übergeben, hab aber auch keine kurze Lösung dazu, vlt. so in der Art:
par:BRIGHTNESS;brightness in <b>all</b> specific commands (numeric, 0-255, e.g. 120);undef

Vlt. hast du da ja eine Idee ?

TomLee

#41
Es hat sich bei mir der Bedarf ergeben das zwei Leuchten nach Spannungsausfall / Spannungszufuhr im Aus-Zustand sein sollen.
Hab ich mal so in diesem Template festgehalten, Name hab ich nicht geändert (spart man sich das jsonMap) und bei power_on_behavior belassen (hoffe hab nix übersehen/falsch gemacht):

https://www.zigbee2mqtt.io/devices/404006_404008_404004.html#power-on-behavior-enum

Zitat#source post: https://forum.fhem.de/index.php/topic,97303.msg905935.html#msg905935
name:zigbee2mqtt_light_rgbcct_rgb
filter:TYPE=MQTT2_DEVICE:FILTER=CID~zigbee.*
order:L_02e1
desc: <a href="https://forum.fhem.de/index.php/topic,97303.msg905935.html#msg905935" target="_blank">Forum Thread</a><br>A dimmable rgbw light connected via zigbee2mqtt<br>rgb value is encoded as HEX value<br>remove color_temp in setlist command <b>on</b> if default white is not desired<br>Tested with:<br><a href="https://www.zigbee2mqtt.io/devices/HG08008.html" target="_blank">Livarno Home LED ceiling light,&nbsp;</a><a href="https://www.zigbee2mqtt.io/devices/404000_404005_404012_404019.html#m%25C3%25BCller%2520licht-404000%252F404005%252F404012%252F404019" target="_blank">Mueller Light tint RGBW bulb,&nbsp;</a><a href="https://www.zigbee2mqtt.io/devices/HG08010.html" target="_blank">Livarno Home outdoor spotlight</a>
farewell:specified values ​​can be adjusted at any time in the setList attribute
par:BASE_TOPIC;base topic set in configuration.yaml of the zigbee2mqtt bridge;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m,[\b]?([^/:]+)[/].+, ? $1 : undef }
par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m,[^/]+[/]([^/:]+).*, ? $1 : undef }
par:BRIGHTNESS;brightness in <b>all</b> specific commands (numeric, 0-255, e.g. 120);undef
par:CTVALUE;ct (color temp) value in <b>on</b>-command (numeric, 0-370, e.g. 320);undef
par:CTWARMVALUE;ct value in <b>warm</b>-command (e.g. 320);undef
par:CTWHITEVALUE;ct value in <b>white</b>-command (e.g. 250);undef
par:ICON;ICON as set, defaults to hue_filled_white_and_color_e27_b22;{ AttrVal('DEVICE','icon','hue_filled_white_and_color_e27_b22') }
attr DEVICE icon ICON
attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr DEVICE webCmd toggle:on:off:brightness:ct:rgb
attr DEVICE devicetopic BASE_TOPIC/DEV_ID
attr DEVICE getList power_on_behavior:noArg power_on_behavior $\DEVICETOPIC/get {"power_on_behavior": ""}
attr DEVICE readingList $\DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret }
attr DEVICE jsonMap color_temp:ct
attr DEVICE setList \
  on:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS , "state":"ON", "color_temp": CTVALUE}\
  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"}\
  warm:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS , "color_temp": CTWARMVALUE}\
  white:noArg $\DEVICETOPIC/set {"brightness": BRIGHTNESS, "color_temp": CTWHITEVALUE}\
  rgb:colorpicker,RGB {"$\DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}\
  power_on_behavior:on,off $\DEVICETOPIC/set {"power_on_behavior": "$EVTPART1"}
attr DEVICE userReadings rgb:color_y.* {Color::xyY2hex(ReadingsVal($name,'color_x',0),ReadingsVal($name,'color_y',0),ReadingsVal($name,'brightness',254))}
attr DEVICE comment The specified ct and brightness values in on and warm etc. commands ​​can be adjusted at any time via the setList attribute
set DEVICE attrTemplate speechcontrol_type_light_254
attr DEVICE model zigbee2mqtt_light_rgbcct_rgb
setreading DEVICE attrTemplateVersion 20230110


11:42:25.357

SENT

zigbee2mqtt/0x00158d0003274a6c/get

{"power_on_behavior": ""}

11:42:25.441

mqttjs_175455c0

zigbee2mqtt/0x00158d0003274a6c

{"brightness":120,"color_mode":"color_temp","color_temp":320,"color_temp_startup":370,"linkquality":95,"power_on_behavior":"off","state":"OFF"}
11:42:35.345

SENT

zigbee2mqtt/0x00158d0003274a6c/set

{"power_on_behavior": "off"}

11:42:35.428

mqttjs_175455c0

zigbee2mqtt/0x00158d0003274a6c

{"brightness":120,"color_mode":"color_temp","color_temp":320,"color_temp_startup":370,"linkquality":103,"power_on_behavior":"off","state":"OFF"}
11:42:40.061

SENT

zigbee2mqtt/0x00158d0003274a6c/set

{"power_on_behavior": "on"}

11:42:40.145

mqttjs_175455c0

zigbee2mqtt/0x00158d0003274a6c

{"brightness":120,"color_mode":"color_temp","color_temp":320,"color_temp_startup":370,"linkquality":103,"power_on_behavior":"on","state":"OFF"}


Beispieldevice:

defmod MQTT2_zigbee_gu10_1 MQTT2_DEVICE zigbee_0x00158d0003274a6c
attr MQTT2_zigbee_gu10_1 userattr irgendwas irgendwas_map lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0 structexclude wzdl wzdl_map
attr MQTT2_zigbee_gu10_1 IODev MQTT2_Server
attr MQTT2_zigbee_gu10_1 alexaName decke1
attr MQTT2_zigbee_gu10_1 comment The specified ct and brightness values in on and warm etc. commands ​​can be adjusted at any time via the setList attribute
attr MQTT2_zigbee_gu10_1 devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr MQTT2_zigbee_gu10_1 devicetopic zigbee2mqtt/0x00158d0003274a6c
attr MQTT2_zigbee_gu10_1 event-on-change-reading state,pct,ct
attr MQTT2_zigbee_gu10_1 genericDeviceType light
attr MQTT2_zigbee_gu10_1 getList power_on_behavior:noArg power_on_behavior $DEVICETOPIC/get {"power_on_behavior": ""}
attr MQTT2_zigbee_gu10_1 group Wohnzimmer
attr MQTT2_zigbee_gu10_1 homebridgeMapping Brightness=brightness::brightness,maxValue=100,max=100,factor=0.39371,delay=true
attr MQTT2_zigbee_gu10_1 icon light_control
attr MQTT2_zigbee_gu10_1 imageLink /fhem/deviceimages/mqtt2/404006-404008-404004.jpg
attr MQTT2_zigbee_gu10_1 jsonMap color_temp:ct
attr MQTT2_zigbee_gu10_1 model zigbee2mqtt_light_rgbcct_rgb
attr MQTT2_zigbee_gu10_1 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state}) if defined $ret->{state};; return $ret }
attr MQTT2_zigbee_gu10_1 room MQTT2_DEVICE,Privat->OG->Wohnzimmer
attr MQTT2_zigbee_gu10_1 setList on:noArg $DEVICETOPIC/set {"brightness": 120 , "state":"ON", "color_temp": 320}\
  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"}\
  warm:noArg $DEVICETOPIC/set {"brightness": 120 , "color_temp": 320}\
  white:noArg $DEVICETOPIC/set {"brightness": 120, "color_temp": 250}\
  rgb:colorpicker,RGB {"$DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}\
  power_on_behavior:on,off $DEVICETOPIC/set {"power_on_behavior": "$EVTPART1"}
attr MQTT2_zigbee_gu10_1 setStateList on off
attr MQTT2_zigbee_gu10_1 userReadings rgb:color_y.* {Color::xyY2hex(ReadingsVal($name,'color_x',0),ReadingsVal($name,'color_y',0),ReadingsVal($name,'brightness',254))}
attr MQTT2_zigbee_gu10_1 verbose 2
attr MQTT2_zigbee_gu10_1 webCmd toggle:on:off:brightness:ct:rgb
attr MQTT2_zigbee_gu10_1 webCmdLabel Helligkeit\
:

setstate MQTT2_zigbee_gu10_1 off
setstate MQTT2_zigbee_gu10_1 2023-03-10 11:35:40 attrTemplateVersion 20221201
setstate MQTT2_zigbee_gu10_1 2023-03-10 11:42:40 brightness 120
setstate MQTT2_zigbee_gu10_1 2023-03-10 11:42:40 color_mode color_temp
setstate MQTT2_zigbee_gu10_1 2023-03-10 11:42:40 color_temp_startup 370
setstate MQTT2_zigbee_gu10_1 2023-03-10 11:42:40 ct 320
setstate MQTT2_zigbee_gu10_1 2023-03-10 11:42:40 linkquality 103
setstate MQTT2_zigbee_gu10_1 2023-03-10 11:42:40 power_on_behavior on
setstate MQTT2_zigbee_gu10_1 2023-03-10 11:42:40 state off

Beta-User

Danke für die Anregung, ist seit gestern im template drin.
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

Vlt. sollte man alle möglichen Werte berücksichtigen ::)

Zitatpower_on_behavior:on,off,toggle,previous $DEVICETOPIC/set {"power_on_behavior": "$EVTPART1"}