Smarte Lidl-Lampe, Readings, Alexa

Begonnen von Omega, 09 August 2022, 14:55:58

Vorheriges Thema - Nächstes Thema

Omega

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
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

Beta-User

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)?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

TL60

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

Omega

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...


NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

Beta-User

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 ;) ).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Omega

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

NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

Beta-User

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...).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Omega

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.
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave