FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: morrpheus am 18 Dezember 2020, 23:27:51

Titel: Zigbee2mqtt setList Lidl RGB Lampe
Beitrag von: morrpheus am 18 Dezember 2020, 23:27:51
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?
Titel: Antw:Zigbee2mqtt setList Lidl RGB Lampe
Beitrag von: Beta-User am 19 Dezember 2020, 06:41:58
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...
Titel: Antw:Zigbee2mqtt setList Lidl RGB Lampe
Beitrag von: morrpheus am 19 Dezember 2020, 23:02:00
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
Titel: Antw:Zigbee2mqtt setList Lidl RGB Lampe
Beitrag von: morrpheus am 21 Dezember 2020, 00:11:39
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'.
Titel: Antw:Zigbee2mqtt setList Lidl RGB Lampe
Beitrag von: Beta-User am 21 Dezember 2020, 07:34:42
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 (\)?
Titel: Antw:Zigbee2mqtt setList Lidl RGB Lampe
Beitrag von: morrpheus am 21 Dezember 2020, 13:56:14
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.
Titel: Antw:Zigbee2mqtt setList Lidl RGB Lampe
Beitrag von: Beta-User am 21 Dezember 2020, 14:16:03
*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...?)
Titel: Antw:Zigbee2mqtt setList Lidl RGB Lampe
Beitrag von: morrpheus am 21 Dezember 2020, 18:11:04
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.
Titel: Antw:Zigbee2mqtt setList Lidl RGB Lampe
Beitrag von: Beta-User am 21 Dezember 2020, 18:20:18
Wo GENAU versucht du das einzugeben?
Titel: Antw:Zigbee2mqtt setList Lidl RGB Lampe
Beitrag von: morrpheus am 21 Dezember 2020, 18:47:21
In der MQTT2.template.
Titel: Antw:Zigbee2mqtt setList Lidl RGB Lampe
Beitrag von: Beta-User am 21 Dezember 2020, 19:58:11
OK...
Dort musst du den Zeilenumbruch und das DEVICE in DEVICE TOPIC schützen mit \