STYRBAR remote control N2: Farbtemperatur und Helligkeit auslesen

Begonnen von ChrisH, 01 März 2022, 17:46:30

Vorheriges Thema - Nächstes Thema

ChrisH

Hallo,

ich brauche einen Schubser wie ich weitermachen kann/soll.
zigbee2mqtt: 1.22.1
MQTT: mosquitto steht auf latest
beide im docker auf Debian 10

Ich will ein https://www.zigbee2mqtt.io/devices/L1528.html#notes IKEA Floalt Display ansteuern, das funktioniert auch aus dem FHEM prima.
Als Eingabedevice habe ich  STYRBAR remote control N2 https://www.zigbee2mqtt.io/devices/E2001_E2002.html ausgesucht. Das Panel ein und ausschalten kann ich mit diesem notify:


define Schalter_Hauswirtschaft_Naehtisch_notify_1 notify Schalter_Hauswirtschaft_Naehtisch:action:.* set Lichtpanel_Naehtisch $EVTPART1


Das sollte die config des Panels sein:

defmod Lichtpanel_Naehtisch MQTT2_DEVICE zigbee_clio
attr Lichtpanel_Naehtisch devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr Lichtpanel_Naehtisch devicetopic zigbee2mqtt/Lichtpanel_Hauswirtschaft_Naehtisch
attr Lichtpanel_Naehtisch icon light_control
attr Lichtpanel_Naehtisch jsonMap color_temp:ct color_temp_startup:ct_startup
attr Lichtpanel_Naehtisch model zigbee2mqtt_light_cct
attr Lichtpanel_Naehtisch readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr Lichtpanel_Naehtisch room Hauswirtschaft,MQTT2_DEVICE
attr Lichtpanel_Naehtisch 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"}\
  ct_startup:coolest,cool,neutral,warmest,previous $DEVICETOPIC/set {"color_temp_startup":"$EVTPART1"}
attr Lichtpanel_Naehtisch stateFormat {lc ReadingsVal($name,"state",0)}
attr Lichtpanel_Naehtisch userReadings hex:color_y.* {Color::xyY2hex(ReadingsVal($name,"color_x",0),ReadingsVal($name,"color_y",0),ReadingsVal($name,"brightness",254))}
attr Lichtpanel_Naehtisch webCmd toggle:on:off:brightness:ct

setstate Lichtpanel_Naehtisch on
setstate Lichtpanel_Naehtisch 2022-03-01 13:07:01 IODev myBroker
setstate Lichtpanel_Naehtisch 2022-03-01 12:17:50 attrTemplateVersion 20211019
setstate Lichtpanel_Naehtisch 2022-03-01 16:49:19 brightness 75
setstate Lichtpanel_Naehtisch 2022-03-01 16:49:19 color_mode color_temp
setstate Lichtpanel_Naehtisch 2022-02-28 17:34:20 color_temp 362
setstate Lichtpanel_Naehtisch 2022-02-28 17:37:50 color_temp_startup 65535
setstate Lichtpanel_Naehtisch 2022-03-01 16:49:19 ct 250
setstate Lichtpanel_Naehtisch 2022-02-28 17:31:22 ct_startup 65535
setstate Lichtpanel_Naehtisch 2022-03-01 16:49:19 linkquality 57
setstate Lichtpanel_Naehtisch 2022-02-28 17:37:50 power_on_behavior on
setstate Lichtpanel_Naehtisch 2022-03-01 16:49:19 state ON
setstate Lichtpanel_Naehtisch 2022-03-01 16:49:19 update_state idle


Ein set Lichtpanel_Naehtisch ct 1 und set Lichtpanel_Naehtisch brightness 1 funktioniert.

simulated_brightness ist an, es kommen kommt aber kein reading brightness nur diese Werte bei action:
brightness_stop
brightness_move_up
brightness_move_down
arrow_left_click
arrow_right_click


Frage:
Wir kann ich nun aus diesen Werten sinnvolle Aktionen ableiten? Meine erste Idee waere, brightness und ct auslesen und dann Werte aufaddieren oder abziehen,
aber wirklich elegant ist das nicht.

Beta-User

Prinzipiell:
Wenn man ZigBee-Geräte untereinander "normal" verwenden will, sollte man schauen, ob eine Gruppenfunktion oder ein "binding" innerhalb der ZigBee-Software eingerichtet werden kann.

Wenn das nicht geht, kann man entweder den Umweg über einen Eventhandler gehen (hier notify, und dann ist es eben so umständlich wie es ist...), oder man kann die Befehle auch direkt aus dem MQTT2_DEVICE heraus (per Perl-Programm) zuordnen. Irgendwo hier im Forum gibt es ein Beispiel von mir, wo das für die Signale einer MiLight-Fernbedienung gemacht wird (die hat direkt Helligkeitschieber usw.).
Müßte man halt anpassen, könnte es dann aber ggf. auch zentral bereitstellen, so dass man dann neben $EVENT nur die passende Leuchte mit übergeben müßte...
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

ChrisH

Zitat von: Beta-User am 01 März 2022, 18:02:06
Prinzipiell:
Wenn man ZigBee-Geräte untereinander "normal" verwenden will, sollte man schauen, ob eine Gruppenfunktion oder ein "binding" innerhalb der ZigBee-Software eingerichtet werden kann.

Das war es. Mit Binding habe ich es nicht hinbekommen, die Gruppe vom zigbee2mqtt wollte die Fernbedinung nicht per GUI dazunehmen. Aber vi und ich sind gute Freunde und jetzt klappt alles bis auf...

Änderungen per Fernbedienung werden nicht zum FHEM GUI propagiert. Muss da evtl. der Coordinator mit in die Gruppe?

Christian

Beta-User

Zitat von: ChrisH am 01 März 2022, 22:02:58
Änderungen per Fernbedienung werden nicht zum FHEM GUI propagiert. Muss da evtl. der Coordinator mit in die Gruppe?
Ich _glaube_ nicht, dass es eine gute Idee wäre, den Coordinator mit reinzunehmen. Soweit ich mich entsinne, hängt es vom Aktor ab, ob der geänderte Status propagiert wird, und Tradfri ist mir da als "schlechte Ausnahme" (die das nicht machen) im Hinterkopf hängen geblieben. (Das ist ein vages Zitat aus einem Issue bei deconz (?).)
Vielleicht ginge es, bei einem Taster-Event ein "set ... statusRequest" an die Leuchte/Gruppe hinterherzuschicken?
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