Zigbee2mqtt setList Lidl RGB Lampe

Begonnen von morrpheus, 18 Dezember 2020, 23:27:51

Vorheriges Thema - Nächstes Thema

morrpheus

Moin Moin.
Ich habe den conbee2 jetzt mal probehalber per zigbee2mqtt eingebunden. Ein neues Device wurde auch direkt gefunden. Das passende Template ist eingestellt. Aber mir fehlt die Möglichkeit die Farben in RGB Form einzustellen.
Also wie muss ich die setList erweitern damit das funktioniert?

Beta-User

Evtl. hilft https://forum.fhem.de/index.php/topic,96783.0.html weiter. rgb ist vermutlich nicht optimal, aber da sind Wege für hue zu finden (bitte aber v.a. die letzten Beiträge ansehen).

Wenn ihr dann was funktionierendes zusammengestellt habt, wäre es nett, wenn ihr das als neues attrTemplate zur Verfügung stellen könntet; das fehlt wohl noch, genau wie es im Wiki steht...
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

morrpheus

Danke erstmal, aber das ist mir definitiv noch zu hoch.
Ich kann die Farben zwar per RGB-Wert ansteuern aber für den Weißanteil funktioniert das nicht.


defmod PBoben MQTT2_DEVICE zigbee_0x588e81fffee75095
attr PBoben IODev myBroker
attr PBoben devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr PBoben devicetopic zigbee2mqtt/0x588e81fffee75095
attr PBoben icon hue_filled_white_and_color_e27_b22
attr PBoben model zigbee2mqtt_light_rgbcct_rgb
attr PBoben readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }
attr PBoben room MQTT2_DEVICE
attr PBoben 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"}\
  color_temp:colorpicker,CT,154,2,500 $DEVICETOPIC/set {"$EVTPART0":"$EVTPART1"}\
  color:colorpicker,RGB {"$DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
attr PBoben stateFormat {lc ReadingsVal($name,"state",0)}
attr PBoben userReadings state_ {if(ReadingsVal($name,"availability","") eq "offline") {return "off"} elsif(ReadingsVal($name,"state","") eq "ON") {return "on"} elsif(ReadingsVal($name,"state","") eq "OFF") {return "off"} elsif(ReadingsVal($name,"state","") eq "on") {return "on"} elsif(ReadingsVal($name,"state","") eq "off") {return "off"}}, hex:color_y.* {Color::xyY2hex(ReadingsVal($name,"color_x",0),ReadingsVal($name,"color_y",0),ReadingsVal($name,"brightness",254))}, rgb:color_y.* {Color::xyY2rgb(ReadingsVal($name,"color_x",0),ReadingsVal($name,"color_y",0),ReadingsVal($name,"brightness",254))}, hue {my ($hue,$sat,$val) = Color::hex2hsv(ReadingsVal($name,"hex",""));;;; $hue}, sat {my ($hue,$sat,$val) = Color::hex2hsv(ReadingsVal($name,"hex",""));;;; $sat}, val {my ($hue,$sat,$val) = Color::hex2hsv(ReadingsVal($name,"hex",""));;;; $val}
attr PBoben webCmd toggle:on:off:brightness:color_temp:color
attr PBoben webCmdLabel brightness\
:color_temp\
:Color

setstate PBoben on
setstate PBoben 2020-12-18 21:35:12 0x588e81fffee75095_brightness 60
setstate PBoben 2020-12-18 21:35:12 0x588e81fffee75095_linkquality 2
setstate PBoben 2020-12-18 21:35:12 0x588e81fffee75095_state ON
setstate PBoben 2020-12-18 21:34:54 associatedWith MQTT2_zigbee_pi
setstate PBoben 2020-12-19 18:24:05 attrTemplateVersion 20200904
setstate PBoben 2020-12-19 22:55:45 brightness 254
setstate PBoben 2020-12-19 22:55:45 color_temp 400
setstate PBoben 2020-12-19 22:55:45 color_x 0.476993298233858
setstate PBoben 2020-12-19 22:55:45 color_y 0.413675289942435
setstate PBoben 2020-12-19 22:55:45 hex FFB73A
setstate PBoben 2020-12-19 22:55:45 hue 0.105555555555556
setstate PBoben 2020-12-19 22:55:45 linkquality 29
setstate PBoben 2020-12-19 22:55:45 rgb 0.231053220968439
setstate PBoben 2020-12-19 22:55:45 sat 0.772549019607843
setstate PBoben 2020-12-19 22:55:45 state ON
setstate PBoben 2020-12-19 22:55:45 state_ on
setstate PBoben 2020-12-19 22:55:45 val 1

morrpheus

Ich wieder.
Ich habe bei einem Device die setlist um Funktionen fürs dimmen erweitert.
Die Funktion wollte ich jetzt auch ins template einpflegen. Funktioniert auch, aber wenn ich das template anwenden will bekomme ich den Fehler 'unknown command'.

Beta-User

Wenn du nicht zeigst, wie der Code aussieht, ist es ziemlich schwierig zu raten. Glaskugel sagt, dass das Zeilenende der Zeile vor der neuen nicht escaped ist (\)?
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

morrpheus

Sorry, hab ich glatt vergessen.

on:noArg $DEVICETOPIC/set {"state":"ON"}
  off:noArg $DEVICETOPIC/set {"state":"OFF"}
  brightness:colorpicker,BRI,0,5,255 $DEVICETOPIC/set {"state":"on","$EVTPART0":"$EVTPART1"}
  color_temp:colorpicker,CT,154,2,500 $DEVICETOPIC/set {"$EVTPART0":"$EVTPART1"}
  Color:colorpicker,RGB {"$DEVICETOPIC/set ".zigbee2mqtt_RGB2JSON($EVTPART1)}
dimup:noArg { my $num=maxNum(ReadingsNum('PBoben','brightness',0)+20,0);; fhem("set PBoben brightness $num")}
dimdown:noArg { my $num=maxNum(ReadingsNum('PBoben','brightness',0)-20,0);; fhem("set PBoben brightness $num")}


Das ist die aktuelle setlist. Funktioniert auch so. Wenn ich allerdings die Parameter in die Template-Datei eingebe bekomme ich den angesprochenen Fehler.

Beta-User

#6
*Augenreib*

Also: der "Fehler" ist mit deiner Beschreibung immer noch nicht wirklich gut zu lokalisieren, weil nicht klar ist, was du denn in der template-File eingegeben hattest. Den Namen in Klartext reinzuschreiben ist auch schwierig, weil man dann aufpassen muss, wenn man so ein Gerät dann doch mal umbenennt...

Na ja, wie dem auch sei, dimmen düfte "eventschonender" so gehen (zur Bearbeitung des Attributs in FHEMWEB):
  dimup:noArg { my $num=minNum(ReadingsNum($NAME,'brightness',0)+20,255); return qq {$DEVICETOPIC/set {"state":"on","$EVTPART0":"$num"} } }
  dimdown:noArg { my $num=maxNum((ReadingsNum($NAME,'brightness',0)-20),0); return qq {$DEVICETOPIC/set {"state":"on","$EVTPART0":"$num"} } }


Aber was hat das mit der ursprünglichen Frage zu tun? Da ging es doch um "RGB"...?

Was mir auch nicht klar ist: warum verarbeitest du "availability" in "state_" und nicht in "state"?

(Nachtrag: "availability" kommt afaik sowieso nur, wenn man was in der yaml einstellt, und wenn, dann auf einem eigenen Topic...?)
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

morrpheus

#7
Zitat von: Beta-User am 21 Dezember 2020, 14:16:03

Aber was hat das mit der ursprünglichen Frage zu tun? Da ging es doch um "RGB"...?


Naja, etwas abgeschweift.

ZitatNa ja, wie dem auch sei, dimmen düfte "eventschonender" so gehen (zur Bearbeitung des Attributs in FHEMWEB):
Code: [Auswählen]
  dimup:noArg { my $num=minNum(ReadingsNum($NAME,'brightness',0)+20,255); return qq {$DEVICETOPIC/set {"state":"on","$EVTPART0":"$num"} } }
  dimdown:noArg { my $num=maxNum((ReadingsNum($NAME,'brightness',0)-20),0); return qq {$DEVICETOPIC/set {"state":"on","$EVTPART0":"$num"} } }

Der Code bringt den gleichen Fehler.

Unknown command dimup:noArg, try help.
Unknown command dimdown:noArg, try help


Und den Klarnamen muss ich verwenden weil der Platzhalter nicht funktioniert.

Beta-User

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

morrpheus


Beta-User

OK...
Dort musst du den Zeilenumbruch und das DEVICE in DEVICE TOPIC schützen mit \
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