Alexa Smarthomeskill und Milight über MQTT2

Begonnen von Heimweh, 21 November 2018, 22:38:20

Vorheriges Thema - Nächstes Thema

Heimweh

Ich hoffe jemand kann mir helfen, ich habe noch Verständnissprobleme bezüglich des Homebridgemappings.

Alexa läuft nun anstandslos. Mit der tollen Anleitung von Beta-Teilchen habe ich auch die Sidoh-Bridge am laufen die auch funktioniert.

Jetzt würde ich gerne mit Alexa mehr machen als LED an und aus. Für den Anfang würde mir Brightness reichen. Mit "Alexa schalte den Spiegel auf 50%", sagt sie "ok" - aber nichts passiert.
Ich bin mir fast sicher ich hab das Homebridgemapping nicht richtig definiert. Kann mir jemand auf die Sprünge helfen?

Das Json2list vom Spiegel (LED-Band):


{
  "Arg":"Spiegel",
  "Results": [
  {
    "Name":"Spiegel",
    "PossibleSets":"on:noArg off:noArg on:noArg off:noArg on off level:colorpicker,BRI,0,1,100 hue:colorpicker,HUE,0,1,359 command brightness next_mode mode_speed_up mode_speed_down saturation color_temp on-for-timer off-till-overnight intervals on-till-overnight on-till off-till off-for-timer blink toggle",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 IODev devicetopic disable:0,1 disabledForIntervals model readingList:textField-long setList:textField-long getList:textField-long event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DbLogExclude DbLogInclude alexaName alexaRoom cmdIcon devStateIcon devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon sortby webCmd webCmdLabel:textField-long widgetOverride lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0 userattr",
    "Internals": {
      ".eventMapCmd": "on:noArg off:noArg on:noArg off:noArg",
      ".triggerUsed": "0",
      "DEVICETOPIC": "Spiegel",
      "LASTInputDev": "MQTTServer",
      "MQTTServer_MSGCNT": "3",
      "MQTTServer_TIME": "2018-11-21 22:24:37",
      "MSGCNT": "3",
      "NAME": "Spiegel",
      "NR": "1580",
      "STATE": "on",
      "TYPE": "MQTT2_DEVICE"
    },
    "Readings": {
      "brightness": { "Value":"255", "Time":"2018-11-21 22:24:37" },
      "bulb_mode": { "Value":"white", "Time":"2018-11-21 22:24:37" },
      "color_b": { "Value":"255", "Time":"2018-11-21 22:24:37" },
      "color_g": { "Value":"255", "Time":"2018-11-21 22:24:37" },
      "color_r": { "Value":"255", "Time":"2018-11-21 22:24:37" },
      "color_temp": { "Value":"153", "Time":"2018-11-21 22:24:37" },
      "command": { "Value":"night_mode", "Time":"2018-11-18 18:13:01" },
      "device_id": { "Value":"12886", "Time":"2018-11-18 18:13:01" },
      "effect": { "Value":"white_mode", "Time":"2018-11-21 22:24:37" },
      "group_id": { "Value":"2", "Time":"2018-11-17 23:26:39" },
      "hue": { "Value":"270", "Time":"2018-11-18 11:58:29" },
      "level": { "Value":"100", "Time":"2018-11-21 22:24:37" },
      "mode": { "Value":"6", "Time":"2018-11-17 23:28:12" },
      "saturation": { "Value":"100", "Time":"2018-11-18 18:13:03" },
      "state": { "Value":"ON", "Time":"2018-11-21 22:24:37" },
      "status": { "Value":"ON", "Time":"2018-11-21 22:24:37" }
    },
    "Attributes": {
      "IODev": "MQTTServer",
      "eventMap": "/on:on/off:off/ON:on/OFF:off/",
      "genericDeviceType": "light",
      "homebridgeMapping": "Brightness=Spiegel:brightness",
      "icon": "light_control",
      "readingList": "milight_hub_317564:milight/0x3256/rgb_cct/2:.* { json2nameValue($EVENT) }\nmilight_hub_317564:milight/states/0x3256/rgb_cct/2:.* { json2nameValue($EVENT) }\nmilight_hub_317564:milight/states/0x3256/rgb_cct/2:.* { json2nameValue($EVENT) }",
      "room": "MQTT,alexa",
      "setList": "on milight/0x3256/rgb_cct/2 {\"status\":\"ON\"}\u005c\u005c\noff milight/0x3256/rgb_cct/2 {\"status\":\"OFF\"}\u005c\u005c\nlevel:colorpicker,BRI,0,1,100 milight/0x3256/rgb_cct/2 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\u005c\nhue:colorpicker,HUE,0,1,359 milight/0x3256/rgb_cct/2 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\u005c\ncommand milight/0x3256/rgb_cct/2 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\u005c\nbrightness milight/0x3256/rgb_cct/2 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\u005c\nnext_mode milight/0x3256/rgb_cct/2 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\u005c\nmode_speed_up milight/0x3256/rgb_cct/2 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\u005c\nmode_speed_down milight/0x3256/rgb_cct/2 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\u005c\nsaturation milight/0x3256/rgb_cct/2 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\u005c\ncolor_temp milight/0x3256/rgb_cct/2 {\"$EVTPART0\":\"$EVTPART1\"}",
      "userattr": "lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0",
      "verbose": "5",
      "webCmd": "command:brightness:saturation:color_temp",
      "webCmdLabel": "command:brightness:saturation:color_temp",
      "widgetOverride": "command:uzsuSelectRadio hue:colorpicker,HUE,0,1,359 color_temp:colorpicker,CT,153,1,357 brightness:colorpicker,BRI,0,1,255 saturation:colorpicker,BRI,0,1,100"
    }
  }  ],
  "totalResultsReturned":1
}


Ich habe es mal so versucht:


homebridgeMapping": "Brightness=Spiegel:brightness


RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

Beta-User

Moin,
bin zwar nicht Beta-Teilchen, sondern Beta-User, und habe auch keine Ahnung von Homebridge, insgesamt sieht mir das mit brightness und level aber inkonsistent aus.Versuche es evtl. einfach mal, das so zu ändern:
"homebridgeMapping": "Brightness=Spiegel:level",

Sonst ggf. das brightness am MQTT2_DEVICE ergänzen (wie level, aber mit 0-255 als Wertbereich)

Gruß und viel Erfolg,

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

Heimweh

Hallo Beta-User,

sorry  :-X bitte verzeih mir.

Ich habe jetzt das Setlist von:


brightness milight/0x3256/rgb_cct/2 {"$EVTPART0":"$EVTPART1"}\\


auf
brightness:colorpicker,BRI,0,1,255 milight/0x3256/rgb_cct/2 {"$EVTPART0":"$EVTPART1"}\\


geändert. So meintest Du doch oder? Funktioniert auch nicht.

Eine Änderung auf:


"homebridgeMapping": "Brightness=Spiegel:level",


hat leider auch nicht geholfen. Ich habe irgendwie so im Gefühl es hängt nur an einer Kleinigkeit....

Könnte es damit zu tun haben das bei den Internals ein



.eventMapCmd
on:noArg off:noArg on:noArg off:noArg


steht?
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

Beta-User

Hmmm,
irgendwie hatte ich das in der json-Form vorliegende setList usw. nicht richtig gedeutet. An sich müßte es so passen, aber es gab da auch einige Änderungen in MQTT2_DEVICE usw. in der letzten Zeit (angefangen damit, dass bei Anbindung über MQTT2_SERVER das Format "mqtt-id:..." verwendet wird, was im Wiki noch nicht immer reflektiert wird). Da im json2list aber teilweise noch die "\""-Formatierung drin ist, solltest du mal nachsehen, ob das noch erforderlich ist.

Wenn es soweit bereinigt ist: Kannst du alles über die Slider (brightness bzw. level) ordnungsgemäß bedienen? Wenn nein, kann es nicht klappen (wobei mich dann wundert, dass on/off gehen soll). Wenn es geht, liegt es m.E. tatsächlich nur an der homebridge-Sache und ich kann wirklich nicht helfen...
Gruß, Beta-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

Heimweh

Also Stand heute funktionieren die Slider. Leider bin ich überhaupt nicht fit bzgl. JSON. Ich habe mir mein Device aus Deinen Beispielen zusammengebastelt.

Ich habe noch 2 RGBWW Downlights, die ich ebenfalls mit Deinen Beispielen angelegt habe, und in der Alexa App lassen sich damit Farben schalten, und das funktioniert auch (der Wert HUE ändert sich).
Also liegt es nur an den readings brighness und oder Level.

Um es mal zu vergleichen, hier das Json2list von der "Duschlampe" bei der sich HUE über Alexa ändern lässt:


{
  "Arg":"Dusche",
  "Results": [
  {
    "Name":"Dusche",
    "PossibleSets":"Weiss:noArg Nacht:noArg white:noArg on:noArg off:noArg on:noArg off:noArg Mode:noArg Up:noArg Down:noArg on off level:colorpicker,BRI,0,1,100 hue:colorpicker,HUE,0,1,359 command brightness next_mode mode_speed_up mode_speed_down saturation color_temp on-till-overnight on-till on-for-timer intervals off-till-overnight blink off-for-timer toggle off-till",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 IODev devicetopic disable:0,1 disabledForIntervals model readingList:textField-long setList:textField-long getList:textField-long event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DbLogExclude DbLogInclude alexaName alexaRoom cmdIcon devStateIcon devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon sortby webCmd webCmdLabel:textField-long widgetOverride lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0 userattr",
    "Internals": {
      ".eventMapCmd": "Weiss:noArg Nacht:noArg white:noArg on:noArg off:noArg on:noArg off:noArg Mode:noArg Up:noArg Down:noArg",
      "DEVICETOPIC": "Dusche",
      "LASTInputDev": "MQTTServer",
      "MQTTServer_MSGCNT": "19",
      "MQTTServer_TIME": "2018-11-22 14:27:52",
      "MSGCNT": "19",
      "NAME": "Dusche",
      "NR": "1576",
      "STATE": "on",
      "TYPE": "MQTT2_DEVICE"
    },
    "Readings": {
      "brightness": { "Value":"252", "Time":"2018-11-22 14:27:52" },
      "bulb_mode": { "Value":"color", "Time":"2018-11-22 14:27:52" },
      "color_b": { "Value":"255", "Time":"2018-11-19 00:06:16" },
      "color_g": { "Value":"255", "Time":"2018-11-19 00:06:16" },
      "color_r": { "Value":"255", "Time":"2018-11-19 00:06:16" },
      "color_temp": { "Value":"329", "Time":"2018-11-19 00:06:16" },
      "command": { "Value":"night_mode", "Time":"2018-11-17 22:42:04" },
      "device_id": { "Value":"12886", "Time":"2018-11-17 23:23:40" },
      "effect": { "Value":"white_mode", "Time":"2018-11-19 00:06:16" },
      "group_id": { "Value":"1", "Time":"2018-11-17 22:40:47" },
      "hue": { "Value":"120", "Time":"2018-11-22 14:27:52" },
      "level": { "Value":"99", "Time":"2018-11-22 14:27:52" },
      "mode": { "Value":"2", "Time":"2018-11-17 22:41:44" },
      "saturation": { "Value":"15", "Time":"2018-11-22 14:27:52" },
      "state": { "Value":"ON", "Time":"2018-11-22 14:27:52" },
      "status": { "Value":"ON", "Time":"2018-11-22 14:27:52" }
    },
    "Attributes": {
      "IODev": "MQTTServer",
      "eventMap": "/set_white:Weiss/night_mode:Nacht/white_mode:white/on:on/off:off/ON:on/OFF:off/next_mode:Mode/mode_speed_up:Up/mode_speed_down:Down/",
      "genericDeviceType": "light",
      "icon": "light_control",
      "readingList": "milight_hub_317564:milight/0x3256/rgb_cct/1:.* { json2nameValue($EVENT) }\nmilight_hub_317564:milight/states/0x3256/rgb_cct/1:.* { json2nameValue($EVENT) }\nmilight_hub_317564:milight/states/0x3256/rgb_cct/1:.* { json2nameValue($EVENT) }",
      "room": "MQTT,alexa",
      "setList": "on milight/0x3256/rgb_cct/1 {\"status\":\"ON\"}\u005c\noff milight/0x3256/rgb_cct/1 {\"status\":\"OFF\"}\u005c\nlevel:colorpicker,BRI,0,1,100 milight/0x3256/rgb_cct/1 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\nhue:colorpicker,HUE,0,1,359 milight/0x3256/rgb_cct/1 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\ncommand milight/0x3256/rgb_cct/1 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\nbrightness milight/0x3256/rgb_cct/1 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\nnext_mode milight/0x3256/rgb_cct/1 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\nmode_speed_up milight/0x3256/rgb_cct/1 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\nmode_speed_down milight/0x3256/rgb_cct/1 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\nsaturation milight/0x3256/rgb_cct/1 {\"$EVTPART0\":\"$EVTPART1\"}\u005c\ncolor_temp milight/0x3256/rgb_cct/1 {\"$EVTPART0\":\"$EVTPART1\"}",
      "userattr": "lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0",
      "webCmd": "command:brightness:saturation:color_temp:hue",
      "webCmdLabel": "command:brightness:saturation:color_temp:hue",
      "widgetOverride": "command:uzsuSelectRadio,Weiss,Nacht,Mode,Up,Down hue:colorpicker,HUE,0,1,359 color_temp:colorpicker,CT,153,1,357 brightness:colorpicker,BRI,0,1,255 saturation:colorpicker,BRI,0,1,100"
    }
  }  ],
  "totalResultsReturned":1
}


In der Alexa App wird nur ein Helligkeitsregler angezeigt wenn ich das homebridgemapping mit Brightness anlege...

Was genau meinst Du mit "\"" ? In der Setlist?
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

Beta-User

Hmm, mysteriös, sieht auch für mich ziemlich gleich aus das json2List von Dusche und Spiegel...

Mit dem "\"" war das escapen der Kochkommata (und anderer Sonderzeichen wie newline) gemeint, das ist in der neueren Fassung der Module nicht mehr erforderlich; dass es hier angezeigt wird, kann auch an json2List liegen (ist das für Homebridge erforderlich?)
Was bedeutet "In der Alexa App wird nur ein Helligkeitsregler angezeigt wenn ich das homebridgemapping mit Brightness anlege..."?Liegt die Betonung auf "nur" oder auf "ein" (also: fehlen andere Regler bzw. wird (nur) level unterschlagen?)? Im Prinzip sollte es egal sein, die sidoh-Bridge versteht ja beides; es "reicht" also, wenn einer der Befehle ankommt.

Kann es sein, dass Homebridge versucht, ein _anderes_ Device zu schalten? Kann man das irgendwie loggen, was da im Hintergrund passiert?
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

Heimweh

Ich meinte damit, dass der Helligkeitsregler in der Alexa App nur angezeigt wird, wenn ich das homebridgemapping so angebe wie in meinem ersten Beitrag.
Ich muss heute Abend nochmal ausgiebig forschen was da los ist. Wenn es garnicht anders geht, muss ich eben Lichtszenen anlegen. Wäre aber schon deluxe wenn ich
mit direkten Prozentangaben steuern könnte.

Ich würde das alles ja mit dem Wifilight Modul mal testen, aber das unterstützt das CCT Protokoll ja nicht.... Und der "Rückkanal" aus Deiner Lösung ist halt echt ein Quantensprung...

Was die homebridge genau tut, keine Ahnung wie ich das rausfinde, aber ich werde heute Abend mal schauen was im Alexa LogFile steht, vielleicht wird es dann deutlicher....

Dankeschonmal, ich halte Dich auf dem laufenden....


RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

Beta-User

Die Anzeige in der App würde ich mal als notwendig ansehen. Kann man über die App dann auch schalten/sliden (mit Effekt in der wirklichen Welt)?

Wenn nein, solltest du m.E. da mal nach irgendwas ähnlichem suchen (vielleicht sogar mal ein wifilight-Beispiel im Detail vergleichen, kann man ja auch parallel machen), wenn ja, liegt es vermutlich an der Umsetzung von Spracherkennung zu Befehl. Kann aber eigentlich auf beiden Seiten kein Hexenwerk sein, ist ja an sich nichts ungewöhnliches...

Viel Erfolg!
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

Heimweh

Hatte jetzt leider weniger Zeit als geplant...

Also betrachte ich die Duschlampe, kann ich verschiedene Farben auswählen und die stellen sich dann an den bulps auch ein. Aber die Helligkeit nicht. Ich habe mal einen
Auszug aus dem Eventmonitor, was passiert wenn ich eine Farbe wechsle, falls es hilft...


2018-11-22 21:57:06 MQTT2_DEVICE Dusche hue
2018-11-22 21:57:06 MQTT2_DEVICE MQTT2_milight_hub_317564 hue: 40
2018-11-22 21:57:06 MQTT2_SERVER MQTTServer milight/updates/0x3256/rgb_cct/1:{"hue":40}
2018-11-22 21:57:06 MQTT2_DEVICE Dusche on
2018-11-22 21:57:06 MQTT2_DEVICE Dusche status: on
2018-11-22 21:57:06 MQTT2_DEVICE Dusche brightness: 252
2018-11-22 21:57:06 MQTT2_DEVICE Dusche saturation: 15
2018-11-22 21:57:06 MQTT2_DEVICE Dusche bulb_mode: color
2018-11-22 21:57:06 MQTT2_DEVICE Dusche level: 99
2018-11-22 21:57:06 MQTT2_DEVICE Dusche hue: 40
2018-11-22 21:57:06 MQTT2_SERVER MQTTServer milight/states/0x3256/rgb_cct/1:{"state":"ON","status":"ON","brightness":252,"level":99,"hue":40,"saturation":15,"color":{},"bulb_mode":"color"}


Noch eine Beobachtung, sobald ich das Homebridgemapping ändere, also nicht mehr Brighness da steht, verschwindet in der Alexa App auch der Slider für Helligkeit oder
er lässt sich zwar schieben, aber er springt wieder auf den vorher eingestellten Wert zurück .....

RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,