Hallo FHEM Begeisterte....
ich nutze FHEM seit ca. 3 Jahren und konnte bisher alle Probleme anhand der Doku oder diesem außergewöhnlichen Forum lösen.
Nun bin ich aber so tief abgestiegen, dass ich mich nicht mehr zurecht finde.
Mein Problem ist, dass die Farbeinstellung tint E14 RGB white + color von Müller Licht (zigbee) nicht funktioniert.
Bei jedem RGB-Wert wird ein Birne blau. Nach meinen Erkenntnissen sendet das Widget colorpicker die Daten wohl nicht mit dem erforderlichen Hashtag zum Device.
Hier die Daten aus dem Pairing:
{"modelId":"ZBT-ExtendedColor","manufacturerName":"MLI"}' from endpoint 1 with groupID 0
{"powerSource":1,"zclVersion":3}' from endpoint 1 with groupID 0
{"appVersion":1,"stackVersion":1}' from endpoint 1 with groupID 0
{"hwVersion":1,"dateCode":"20190827-98"}' from endpoint 1 with groupID 0
{"swBuildId":"5.2"}' from endpoint 1 with groupID 0
Ich nutze fhem 6.0 (SVN rev: 22960) mit ENOCEAN (TCM_ESP3_0 an USB) und ZIGBEE (CC2531 an USB) und zigbee2mqtt 1.11.0
Ausgabe von list <device> in fhem:
Internals:
DEF 404000/404005/404012 0xccccccfffee8xxxx
FRIENDLYNAME 0xccccccfffee8xxxx
FUUID 5f85652c-f33f-8ac5-5818-56281d0bxxxxxxxx
IODev MQTT
MODEL 404000/404005/404012
NAME 0xccccccfffee8xxxx
NOTIFYDEV global
NR 261
NTFY_ORDER 50-0xccccccfffee8xxxx
SID 0xccccccfffee8xxxx
STATE OFF
TOPIC zigbee2mqtt
TYPE XiaomiMQTTDevice
Helper:
DBLOG:
brightness:
logdb:
TIME 1602623868.45528
VALUE 254
color:
logdb:
TIME 1602623868.45528
VALUE FFE1A1
color-hue:
logdb:
TIME 1602623868.45528
VALUE 166
color-saturation:
logdb:
TIME 1602623868.45528
VALUE 77
color-x:
logdb:
TIME 1602612886.30547
VALUE 0.4105
color-y:
logdb:
TIME 1602612886.30547
VALUE 0.3927
color_mode:
logdb:
TIME 1602623868.45528
VALUE 1
color_temp:
logdb:
TIME 1602623868.45528
VALUE 153
linkquality:
logdb:
TIME 1602623868.45528
VALUE 52
rgb:
logdb:
TIME 1602623868.45528
VALUE FFE1A1
state:
logdb:
TIME 1602623868.45528
VALUE OFF
transmission-state:
logdb:
TIME 1602623868.20047
VALUE incoming publish received
READINGS:
2020-10-13 23:17:48 brightness 254
2020-10-13 23:17:48 color FFE1A1
2020-10-13 23:17:48 color-hue 166
2020-10-13 23:17:48 color-saturation 77
2020-10-13 20:14:46 color-x 0.4105
2020-10-13 20:14:46 color-y 0.3927
2020-10-13 23:17:48 color_mode 1
2020-10-13 23:17:48 color_temp 153
2020-10-13 23:17:48 linkquality 52
2020-10-13 23:17:48 rgb FFE1A1
2020-10-13 23:17:48 state OFF
2020-10-13 23:17:48 transmission-state incoming publish received
message_ids:
subscribe:
zigbee2mqtt/0xccccccfffee8xxxx
xiaomi/0xccccccfffee8xxxx/#
subscribeExpr:
^zigbee2mqtt\/0xccccccfffee8xxxx$
^xiaomi\/0xccccccfffee8xxxx.*$
subscribeQos:
xiaomi/0xccccccfffee8xxxx/# 0
zigbee2mqtt/0xccccccfffee8xxxx 0
Attributes:
IODev MQTT
alias TINT Lampe1
devStateIcon {Color::devStateIcon($name,"rgb","rgb","state")}
icon hue_filled_white_e27_b22
stateFormat state
userReadings color { cieToRgb(ReadingsVal("0xccccccfffee8xxxx","color-x",0),ReadingsVal("0xccccccfffee8xxxx","color-y",0),ReadingsVal("0xccccccfffee8xxxx","brightness",254) ) }, rgb { cieToRgb(ReadingsVal("0xccccccfffee8xxxx","color-x",0),ReadingsVal("0xccccccfffee8xxxx","color-y",0),ReadingsVal("0xccccccfffee8xxxx","brightness",254) ) }
webCmd on:off:toggle:brightness:color_temp:color:rgb
widgetOverride brightness:slider,0,15,255 color_temp:colorpicker,CT,100,1,500 color:colorpicker,HSV rgb:colorpicker,RGB
Zum Extrakt bzw. Konvertierung des eingestellten Farbcodes von CIE xy als RGB habe ich mir entlang des Beitrages von KernSani in meiner eigene Bibliothek die Funktion cieToRGB eingefügt und nutze diese bei den userReadings: https://forum.fhem.de/index.php?topic=96783.0. D.h. die UserReadings color und rgb wurden von mir mit der Funktion cieToRGB aus den Werten X,Y,Brightness berechnet, sie werden nicht direkt vom Device gesandt.
Ich kann die LED-Birne ein-/ausschalten, ich kann die Helligkeit (brightness) und auch Farbtemperatur (color_temp) über die FHEM Widgets einstellen.
Leider kann ich die Farbe nicht über ein FHEM Widget einstellen, die LED erstrahl immer in blau.
Das Einstellen der Farbe via 'RGB' funktioniert überhaupt nicht. Das Setzen von 'color' funktioniert nur, wenn ich ein Hashtag vorne anfüge, bspw. "set 0xccccccfffee8xxxx color #FF00FF".
Das Widget colorpicker sendet die Daten wohl nicht mit Hashtag zum Device. Obwohl ich im Quellcode von /var/fhem/FHEM/72_XiaomiMQTTDevice.pm sehen kann, dass bei color angeblich ein # angefügt wird.....
sub Set($$$@) {
...
if ($hash->{MODEL} eq "bridge") {
...
} else {
...
if($command eq "color") {
$json_cmd->{$command} = {"hex" => "#" . $value1};
} elsif($command eq "hue") {
$json_cmd->{"color"} = {$command => $value1};
} elsif($command eq "saturation") {
$json_cmd->{"color"} = {$command => $value1};
} else {
$json_cmd->{$command} = $value1;
}
...
Im FHEM-Logfile sehe ich bei MQTT (fhem> attr MQTT verbose 5), dass der RGB-Code ohne Hashtag übermittelt wird, und die Birne wird einfach blau.
2020.10.13 23:37:23 5: MQTT MQTT message sent: Publish/at-least-once zigbee2mqtt/0xccccccfffee8xxxx/set/943
7b 22 63 6f 6c 6f 72 22 3a 22 66 66 64 66 61 64 {"color":"ffdfad
22 7d "}
Wenn ich den RGB-Code manuell mit "set 0xccccccfffee8xxxx color #FF00FF" sende, wird die richtige Farbe eingestellt, siehe MQTT Protokoll:
2020.10.13 23:39:40 5: MQTT MQTT message sent: Publish/at-least-once zigbee2mqtt/0xccccccfffee8xxxx/set/944
7b 22 63 6f 6c 6f 72 22 3a 22 23 46 46 44 46 41 {"color":"#FFDFA
44 22 7d D"}
Wer kann helfen und mir ggf. sein funktionierendes Setup erläutern?
Wer kann mir sagen, wie ich in diesem speziellen Fall sicherstelle, dass bei color ein # angefügt wird?
Oder kann ich mir ein eigenes Widget bauen, bei dem ich selbst für den Hashtag sorge?
Ich bin auf eure Antworten gespannt.
Vielen Dank vorab.
Beste Grüße,
Torsten
Hallo Thorsten,
ich glaub zwar nicht, dass es Dir hilft(Deine Frage ist sehr speziell), aber mal meine Rückmeldung der tint-Birne bei blau aus dem event monitor
Befehl
2020-10-14 07:04:55 MQTT2_DEVICE Deckenlamped hex
meine setlist zum Befehl sieht so aus
hex:colorpicker,HEX,0,15,255 zigbee2mqtt/0x00158d0003247a3c/set {"color":{"$EVTPART0":"#$EVTPART1","transition":10}}
Rückmeldung
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped device_nwkAddr: 47114
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped device_status: online
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped color_temp: 425
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped color_x: 0.495
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped device_manufId: 4635
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped device_ieeeAddr: 0x00158d0003247a3c
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped color_y: 0.476
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped device_modelId: ZBT-ExtendedColor
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped color_hue: 55.7
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped brightness: 150
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped device_type: Router
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped device_powerSource: Mains (single phase)
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped ON
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped device_friendlyName: 0x00158d0003247a3c
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped device_manufName: MLI
2020-10-14 07:04:56 MQTT2_DEVICE Deckenlamped color_saturation: 98.4
2020-10-14 07:04:57 structure GruppetA undefined
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped device_powerSource: Mains (single phase)
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped ON
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped device_manufName: MLI
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped device_friendlyName: 0x00158d0003247a3c
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped color_saturation: 100
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped device_status: online
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped device_nwkAddr: 47114
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped device_manufId: 4635
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped color_y: 0.045
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped device_ieeeAddr: 0x00158d0003247a3c
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped color_x: 0.14
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped color_temp: 556
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped device_modelId: ZBT-ExtendedColor
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped device_type: Router
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped brightness: 150
2020-10-14 07:04:57 MQTT2_DEVICE Deckenlamped color_hue: 241.1
Grüße Markus
Da du das Xiaomi-MQTT-Modul nutzt, solltest du dich an den Autor dieses Moduls (extern) wenden.
Oder eben auf die von Rudi bereitgestellte MQTT-Variante MQTT2_DEVICE umstellen, die auch KölnSolar nutzt (es gibt zur Umstellung ein paar Threads im MQTT-Bereich des Forums, ggf. da einfach einklinken, wenn was unklar bleiben sollte).
Vielen Dank für die Tipps. Ich habe mich ein wenig zu MQTT2_* informiert, das werde ich weiter verfolgen.
Ich habe doch eine andere Lösung gefunden, ein Zufall. Natürlich hatte ich immer wieder Updates des Rasbian und FHEM und Modulen durchgeführt, alle Dienste mit einem Skript neu gestartet, jedoch seit Monaten nicht mehr den ganzen RaspiPi neu gestartet.
Als ich eben in einer Pause wegen einer Änderung der IP-Adresse doch mal gebootet habe, und wegen des Debuggen in der Protokolldatei des MQTT das falsche Senden der Daten weiter nachvollziehen wollte, funktionierte es plötzlich! Der colorpicker funktioniert nun, die korrekten Farben werden übermittelt und die tint LED Birne übernimmt diese.
Ich prüfe am Abend mal alle weiteren Protokolle um zu schauen, was sich nach dem Reboot wirklich verändert hat.