Hallo,
heute habe ich Alexa eingerichtet, damit ich u.a. meine smarte Lidl-Lampe (eingebunden über zigbee2mqtt) steuern kann. Ein- und Ausschalten funktioniert problemlos, sobald ich aber Helligkeit oder Farbtemperatur ändern möchte ("Alexa Licht dunkler"), kommt: "Licht unterstützt das nicht".
Ich vermute momentan, dass meine Gerätedefinition nicht passend ist, daher frage ich hier nach.
Das System ist auf dem heutigen Stand, die Lampe habe ich neu eingerichtet und das Template neu aktiviert (s. list). Aus den Hinweisen zu homebridgeMapping, die ich gelesen habe, vermute ich, dass ich die u.a. die Readings "brightness" und "ct" benötige.
Die werden mir aber nicht im Device angezeigt (ich sehe sie nur in MQTT-Explorer ({"brightness":70,"color_mode":"color_temp","color_temp":466,"linkquality":69,"state":"ON"})).
Internals:
CID zigbee_mq2.OG.Az.Deckenlampe
DEF zigbee_mq2.OG.Az.Deckenlampe
FUUID 62da6625-f33f-fba2-9cc7-0485796a75fa0593
IODev MQTT2_FHEM_Server
NAME mq2.OG.Az.Deckenlampe
NR 985
STATE brightness
TYPE MQTT2_DEVICE
eventCount 27
Helper:
DBLOG:
attrTemplateVersion:
myFHEMdb:
TIME 1660046618.19496
VALUE 20220622
state:
myFHEMdb:
TIME 1660048316.45922
VALUE brightness
JSONMAP:
color_temp ct
color_temp_startup ct_startup
READINGS:
2022-08-09 09:41:48 IODev MQTT2_FHEM_Server
2022-08-09 14:09:02 attrTemplateVersion 20220622
2022-08-09 14:32:41 state brightness
Attributes:
alexaName Licht,Licht_Arbeitszimmer
devicetopic zigbee2mqtt2/0x2c1165fffe428934
event-on-change-reading .*
genericDeviceType light
homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
icon light_control
jsonMap color_temp:ct color_temp_startup:ct_startup
model zigbee2mqtt_light_cct
readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}); return $ret }
room MQTT,Obergeschoss->Az
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"}
verbose 2
webCmd toggle:on:off:brightness:ct
Ich hoffe, ihr könnt mir weiterhelfen.
LG Holger
a) Was hat das mit ZigBee zu tun? Gehört eher in den Bereich Sprachsteuerung oder MQTT rein...
b) Hast du die Erkennung auf der Alexa-Seite (neu) gestartet, nachdem du das Device angelegt hast (bzw. ggf. irgendwelche Parameter wie den genericDeviceType verändert)?
Ich sehe ja schon mal kein Reading brightness 8)
Und "state brightness" ist ja wohl auch nicht korrekt ;)
Ansonsten sehe ich das wie Beta-User: Sprachsteuerung bzw. mqtt um erst mal evtl. das Device generell "gerade" zu rücken. Kannst du es denn per fhem überhaupt steuern wie du willst? Weil bevor das nicht geht, kann es mit Alexa ja noch viel weniger gehen...
Gruß, Joachim
Hallo,
zudem was Joachim schon richtigerweise gesagt hat noch eine Anmerkung: Du hast das falsche template model zigbee2mqtt_light_cct
benutzt.Richtig wäre wohl irgendetwas in der Richtung das sowas in den Attributen attr DEVICE model zigbee2mqtt_light_rgb_rgb
auftaucht. Dann solltest du auch die passenden Readings bekommen. (Alexa ist da sehr wählerisch wenn das nicht passt ;) ). Eventuell mal mit unterschiedlichen Attributen jeweils neu probieren. Es gibt: attr DEVICE model zigbee2mqtt_light_rgb_rgb, zigbee2mqtt_light_rgb_hex, zigbee2mqtt_light_rgbw_rgb, zigbee2mqtt_light_rgbcct_hex oder zigbee2mqtt_light_rgbw_rgb
Einfach mal probieren, im Sprachsteuer Teils des Forums gibt es einiges, das z.Bsp:https://forum.fhem.de/index.php/topic,119632.0.html (https://forum.fhem.de/index.php/topic,119632.0.html)
Danke für eure Unterstützung!
Ich versuche mal, eure Hinweise abzuarbeiten...
@Beta-User:
Warum zigbee? ---> das Device habe ich über das Template eingerichtet. Da die Readings (wohl Voraussetzung für homebridgeMapping) nicht (korrekt) auftauchen, vermute ich, dass meine Probleme hier ihre Ursache haben (mqtt-seitig läuft alles problemlos).
Alexa habe ich mehrfach mit "set alexa restart" aktualisiert. genericDeviceType hatte ich bei meinen Test's zuerst händisch eingefügt aber dann auch wieder gelöscht. Wird anscheinend automatisch über das Template angelegt. Ich werde da aber noch mal weiter testen.
@MadMax-FHEM:
"Ich sehe ja schon mal kein Reading brightness 8) - Und "state brightness" ist ja wohl auch nicht korrekt <--- ein Grund, warum ich hier nachfrage.
Das Device lässt sich über FHEM einwandfrei steuern (ein, aus, Helligkeit und Lichtfarbe). Alexa kennt es (ein und aus funktionieren ja).
@TL60:
Die Lampe ist kein RGB-Modell sondern hat nur warm- bis kaltweiß. Im Wiki habe ich dazu folgendes gelesen: "light_cct: Das anzusteuernde Gerät besitzt eine warmweiße sowie kaltweiße Lichtfarbe welche verändert sowie gedimmt werden kann" <--- das trifft bei mir zu.
Deinen Link muss ich noch "verarbeiten". Allerdings habe ich mittlerweile so viel gelesen das mir ganz schwindlig ist.
Deswegen auch mein Ansatz, erst einmal das Device korrekt zu haben und dann weiter...
Wenn du das Ding in allen "Facetten" steuern kannst, sollte das "eigentlich" nicht das Problem sein.
ABER: du hast evtl. recht und das Problem kommt wirklich aus der ZigBee-Ecke, nämlich dann wenn die Bulb (das Leuchtmittel) keine Rückmeldung gibt.
Ob das der Fall ist, kann ich nicht beurteilen, aber tatsächlich ist der Readings-Abschnitt aus dem list sehr kurz.
Was du versuchen kannst (das ist aber wieder ein MQTT-Thema...): setStateList auf on off zu setzen. Dann müßte zumindest ein Wert mit "set_xy" in den brightness-etc.-Readings auftauchen. Näheres würde man nur sehen, wenn man den MQTT-Verkehr anschaut (über das IO ginge das, das wäre wieder MQTT ;) ).
Ich bin etwas weitergekommen...
Das attr readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }
habe ich gelöscht und durch $DEVICETOPIC:.* { json2nameValue($EVENT) }
ersetzt.
Nachdem ich dann alle Varianten gesteuert hatte (an, aus, heller, dunkler, wärmer, kälter), sieht mein Device folgenderma0en aus (die Readings sind jetzt alle da):
Internals:
CID zigbee_mq2.OG.Az.Deckenlampe
DEF zigbee_mq2.OG.Az.Deckenlampe
FUUID 62da6625-f33f-fba2-9cc7-0485796a75fa0593
IODev MQTT2_FHEM_Server
LASTInputDev MQTT2_FHEM_Server
MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_192.168.0.25_33164
MQTT2_FHEM_Server_MSGCNT 18
MQTT2_FHEM_Server_TIME 2022-08-09 17:37:42
MSGCNT 18
NAME mq2.OG.Az.Deckenlampe
NR 985
STATE brightness
TYPE MQTT2_DEVICE
eventCount 65
Helper:
DBLOG:
attrTemplateVersion:
myFHEMdb:
TIME 1660046618.19496
VALUE 20220622
brightness:
myFHEMdb:
TIME 1660059462.20141
VALUE 63
color_mode:
myFHEMdb:
TIME 1660059319.33773
VALUE color_temp
color_temp:
myFHEMdb:
TIME 1660059325.19529
VALUE 456
linkquality:
myFHEMdb:
TIME 1660059462.017
VALUE 69
state:
myFHEMdb:
TIME 1660059499.44969
VALUE brightness
JSONMAP:
color_temp ct
color_temp_startup ct_startup
READINGS:
2022-08-09 09:41:48 IODev MQTT2_FHEM_Server
2022-08-09 17:25:27 attrTemplateVersion 20220622
2022-08-09 17:37:42 brightness 63
2022-08-09 17:37:42 color_mode color_temp
2022-08-09 17:37:42 color_temp 456
2022-08-09 17:37:42 linkquality 69
2022-08-09 17:38:19 state brightness
Attributes:
alexaName Licht,Licht_Arbeitszimmer
devicetopic zigbee2mqtt2/mq2.OG.Az.Deckenlampe
event-on-change-reading .*
genericDeviceType light
homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
icon light_control
jsonMap color_temp:ct color_temp_startup:ct_startup
model zigbee2mqtt_light_cct
readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }
room MQTT,Obergeschoss->Az
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"}
verbose 2
webCmd toggle:on:off:brightness:ct
Jetzt kann ich über die Sprachsteuerung schon mal an, aus, heller und dunkler steuern :). Wärmer, kälter geht noch nicht - ich denke, da muss ich noch am homebridgeMapping arbeiten. Zigbee-seitig ist das Problem (für mich) gelöst. Da das Template aber eigentlich das attr vorgibt, ist hier vielleicht noch etwas zu tun.
Danke an alle.
LG
Holger
Zitat von: Omega am 09 August 2022, 17:47:28
Das attr readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }
habe ich gelöscht und durch $DEVICETOPIC:.* { json2nameValue($EVENT) }
ersetzt.
Vermutlich hast du das Kind mit dem Bade ausgekippt, wenigstens $JSONMAP solltest du drin lassen.
Ansonsten würde mich schon interessieren, wenn das wirklich nicht geht mit der Kleinschreibung für state (das Problem haben sonst nämlich mittelfristig noch ein paar mehr user...).
Auf dei Schnelle getestet:Wenn ich in readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }
die doppelten ";;" ändere auf ";" scheint alles richtig zu funktionieren.
Aber ich kann nur raten, da ich mir alles mehr oder weniger durch Lesen und try and error zusammenbastle.