alexa-fhem: amazon alexa smart home skill für fhem, api version 3

Begonnen von justme1968, 19 Dezember 2017, 22:16:30

Vorheriges Thema - Nächstes Thema

holzfelix

wo muss alexa-fhem abgelegt werden? ist /opt/fhem okay?

muss die config.json unter /home/.alexa/config.json liegen?

justme1968

Zitatwo muss alexa-fhem abgelegt werden? ist /opt/fhem okay?
ja.

Zitatmuss die config.json unter /home/.alexa/config.json liegen?
nein.

bitte lies dir den installations abschnitt im wiki durch. wenn etwas nicht geht den troubleshooting teil im wiki. wenn es dann immer noch nicht geht frag im probleme thread.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

McDiller

So hab jetzt mal eine nach drüber geschlafen und es hat funktioniert  ;D

Nun würde ich aber gerne die anderen Sonoff´s einbinden aber da tutu sich nix  ???

[2018-1-2 13:04:38] this is alexa-fhem 0.4.4
[2018-1-2 13:04:38] Fetching FHEM devices...
[2018-1-2 13:04:38] [FHEM] starting longpoll: https://192.168.178.28:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1514894678654
[2018-1-2 13:04:38] Server listening on: https://:::3000
[2018-1-2 13:04:38] [FHEM] Checking devices and attributes...
[2018-1-2 13:04:38] [FHEM]   executing: https://192.168.178.28:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&fwcsrf=csrf_818115345570432&XHR=1
[2018-1-2 13:04:38] [FHEM]   executing: https://192.168.178.28:8083/fhem?cmd=jsonlist2%20TYPE=alexa&fwcsrf=csrf_818115345570432&XHR=1
[2018-1-2 13:04:38] [FHEM] Fetching FHEM devices...
[2018-1-2 13:04:38] [FHEM] fetching: https://192.168.178.28:8083/fhem?cmd=jsonlist2%20room=alexa&fwcsrf=csrf_818115345570432&XHR=1
[2018-1-2 13:04:39] [FHEM] alexa device is alexa
[2018-1-2 13:04:39] [FHEM] alexa is switch
[2018-1-2 13:04:39] [FHEM] alexa has
[2018-1-2 13:04:39] [FHEM] homebridgeMapping: #Characteristic=<name>=<value>,...
On=verb=schalte,valueOn=an;ein,valueOff=aus,valueToggle=um

Brightness=verb=stelle,property=helligkeit,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

Hue=verb=stelle,valuePrefix=auf,values=rot:0;grün:128;blau:200
Hue=verb=färbe,values=rot:0;grün:120;blau:220

Saturation=verb=stelle,property=sättigung,valuePrefix=auf,values=AMAZON.NUMBER
Saturation=verb=sättige,values=AMAZON.NUMBER

TargetPosition=verb=mach,articles=den;die,values=auf:100;zu:0
TargetPosition=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

TargetTemperature=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=grad

Volume:verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

#Weckzeit=verb=stelle,valuePrefix=auf;für,values=AMAZON.TIME,valueSuffix=uhr
[2018-1-2 13:04:39] [FHEM]   executing: https://192.168.178.28:8083/fhem?cmd=%7B$defs%7Balexa%7D-%3E%7B%22active%22%7D%20=%201;;undef%7D;%7B$defs%7Balexa%7D-%3E%7B%22alexa-fhem%20version%22%7D%20=%20%220.4.4%22%7D;%7B$defs%7Balexa%7D-%3E%7B%22active%22%7D%20=%200;;undef%7D&fwcsrf=csrf_818115345570432&XHR=1
[2018-1-2 13:04:39] perfectOfVerb:
[2018-1-2 13:04:39] { stelle: 'gestellt',
  schalte: 'geschaltet',
  'färbe': 'gefärbt',
  mach: 'gemacht' }
[2018-1-2 13:04:39] verbsOfIntent:
[2018-1-2 13:04:39] [ OnIntent: [ 'schalte' ],
  prozentIntent: [ 'stelle' ],
  HueIntent: [ 'stelle' ],
  HueIntentB: [ 'färbe' ],
  SaturationIntent: [ 'stelle' ],
  SaturationIntentB: [ 'sättige' ],
  TargetPositionIntent: [ 'mach' ],
  gradIntent: [ 'stelle' ] ]
[2018-1-2 13:04:39] characteristicsOfIntent:
[2018-1-2 13:04:39] { OnIntent: [ 'On' ],
  prozentIntent: [ 'Brightness', 'TargetPosition', 'Volume' ],
  HueIntent: [ 'Hue' ],
  HueIntentB: [ 'Hue' ],
  SaturationIntent: [ 'Saturation' ],
  SaturationIntentB: [ 'Saturation' ],
  TargetPositionIntent: [ 'TargetPosition' ],
  gradIntent: [ 'TargetTemperature' ] }
[2018-1-2 13:04:39] prefixOfIntent:
[2018-1-2 13:04:39] { OnIntent: undefined,
  prozentIntent: 'auf',
  HueIntent: 'auf',
  HueIntentB: undefined,
  SaturationIntent: 'auf',
  SaturationIntentB: undefined,
  TargetPositionIntent: undefined,
  gradIntent: 'auf' }
[2018-1-2 13:04:39] suffixOfIntent:
[2018-1-2 13:04:39] { OnIntent: undefined,
  prozentIntent: 'prozent',
  HueIntent: undefined,
  HueIntentB: undefined,
  SaturationIntent: undefined,
  SaturationIntentB: undefined,
  TargetPositionIntent: undefined,
  gradIntent: 'grad' }
[2018-1-2 13:04:39] alexaTypes:
[2018-1-2 13:04:39] { light: [ 'licht', 'lampen' ],
  blind:
   [ 'rolladen',
     'rolläden',
     'jalousie',
     'jalousien',
     'rollo',
     'rollos' ] }
[2018-1-2 13:04:39] roomOfEcho:
[2018-1-2 13:04:39] {}
[2018-1-2 13:04:39] fhemIntents:
[2018-1-2 13:04:39] { FHEMgutenMorgenIntent: 'gutenMorgen',
  FHEMguteNachtIntent: 'guteNacht' }
[2018-1-2 13:04:39] [FHEM]   executing: https://192.168.178.28:8083/fhem?cmd=%7B$defs%7Balexa%7D-%3E%7B%22active%22%7D%20=%201;;undef%7D;list%20alexa%20.Alexa.Authorization;%7B$defs%7Balexa%7D-%3E%7B%22active%22%7D%20=%200;;undef%7D&fwcsrf=csrf_818115345570432&XHR=1
[2018-1-2 13:04:39] [FHEM] got: 5 results
[2018-1-2 13:04:39] [FHEM] Alexa.Party is switch
[2018-1-2 13:04:39] [FHEM] Alexa.Party has
[2018-1-2 13:04:39] [FHEM]   On [state;on,off]
[2018-1-2 13:04:39] [FHEM] { reading: 'state',
  valueOff: '/off|A0|000000/',
  cmdOn: 'on',
  cmdOff: 'off',
  device: 'Alexa.Party',
  informId: 'Alexa.Party-state',
  characteristic_type: 'On',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'FHEM' } }
  2018-01-02 13:04:39 caching: Alexa.Party-state: off
[2018-1-2 13:04:39] [FHEM] Sonoff_4ch is switch
[2018-1-2 13:04:39] [FHEM] Sonoff_4ch has
[2018-1-2 13:04:39] [FHEM]   On [state;on,off]
[2018-1-2 13:04:39] [FHEM] { reading: 'state',
  valueOn: 'on',
  cmdOn: 'on',
  cmdOff: 'off',
  device: 'Sonoff_4ch',
  informId: 'Sonoff_4ch-state',
  characteristic_type: 'On',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'FHEM' } }
  2018-01-02 13:04:39 caching: Sonoff_4ch-state: OFF
[2018-1-2 13:04:39] [FHEM] Sonoff_4ch2 is switch
[2018-1-2 13:04:39] [FHEM] Sonoff_4ch2 has
[2018-1-2 13:04:39] [FHEM] Sonoff_4ch3 is switch
[2018-1-2 13:04:39] [FHEM] Sonoff_4ch3 has
[2018-1-2 13:04:39] [FHEM] Sonoff_4ch4 is switch
[2018-1-2 13:04:39] [FHEM] Sonoff_4ch4 has



Jemand eine idee?

flipkill


justme1968

das sendet eine nachricht an einen custom skill. und der skill kann dann irgendetwas damit tun.

das ist nicht um eine nachricht an einen echo zu schicken und es geht auch nur für custom skills. nicht für home automation skills. d.h. man kann es noch nicht mal dazu verwenden um regelmässig ein neues token zu bekommen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Morluktom

ich habe ein Problem mit meinen KNX Dimmern.
Der Status der Lampe wird in der Alexa-App immer mit "an" angezeigt.
Das Dimmen und die Rückmeldung der Helligkeit funktioniert ohne Probleme.
Ich verwende die Alexa-Fhem Version 0.4.4.

Hier eine jsonlist2 eines Dimmers:

{
  "Arg":"EG.Wohnen.Spots_Essbereich",
  "Results": [
  {
    "Name":"EG.Wohnen.Spots_Essbereich",
    "PossibleSets":"on:noArg off:noArg value:slider,0,1,100 raw rgb:colorpicker on-until on-for-timer string off on toggle intervals off-till on-till-overnight blink off-for-timer off-till-overnight on-till",
    "PossibleAttrs":"alias comment:textField-long eventMap group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 IODev do_not_notify:1,0 listenonly:1,0 readonly:1,0 showtime:1,0 answerReading:1,0 stateRegex stateCmd stateCopy format slider event-on-change-reading event-on-update-reading event-aggregator event-min-interval 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 userattr",
    "Internals": {
      "DEF": "0/2/13:dpt5.001:dimmen-absolut 0/1/15:dpt1:schalten  0/2/14:dpt5.001:status-dimmen 0/3/26:dpt1:status-schalten",
      "DEVNAME": "EG.Wohnen.Spots_Essbereich",
      "KNX_MSGCNT": "184",
      "KNX_RAWMSG": "C01017w0020e00",
      "KNX_TIME": "2018-01-02 23:17:48",
      "LASTInputDev": "KNX",
      "MSGCNT": "184",
      "NAME": "EG.Wohnen.Spots_Essbereich",
      "NR": "459",
      "NTFY_ORDER": "50-EG.Wohnen.Spots_Essbereich",
      "STATE": "0 %",
      "TYPE": "KNX"
    },
    "Readings": {
      "dimmen-absolut-set": { "Value":"50 %", "Time":"2018-01-02 22:49:11" },
      "last-sender": { "Value":"1/0/23", "Time":"2018-01-02 23:17:48" },
      "schalten-get": { "Value":"off", "Time":"2018-01-02 22:32:55" },
      "schalten-set": { "Value":"off", "Time":"2018-01-02 23:17:48" },
      "state": { "Value":"0 %", "Time":"2018-01-02 23:17:48" },
      "status-dimmen-get": { "Value":"0 %", "Time":"2018-01-02 23:17:48" },
      "status-schalten-get": { "Value":"off", "Time":"2018-01-02 23:17:48" }
    },
    "Attributes": {
      "IODev": "KNX",
      "alexaName": "Spots Essbereich",
      "alexaRoom": "Wohnzimmer",
      "event-on-change-reading": ".*",
      "event-on-update-reading": ".*",
      "eventMap": "/on g2:on/off g2:off",
      "genericDeviceType": "light",
      "group": "Licht",
      "homebridgeMapping": "clear Brightness=status-dimmen-get,cmd=value On=state,cmdOn=on,cmdOff=off",
      "room": "EG-Wohnen,alexa",
      "slider": "0,1,100",
      "stateRegex": "/schalten-[sg]et:on/100 %/ /schalten-[sg]et:off/0 %/ /status-dimmen-[sg]et:// /dimmen-absolut-[sg]et://",
      "webCmd": "on::off::value"
    }
  }  ],
  "totalResultsReturned":1
}

justme1968

automatisch wird nur state on und off erkannt. du musst das homebridge mapping anpassen damit ein state mit 0 % auch als aus erkannt wird.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

AmunRe

#127
Ich habe jetzt hochgerüstet auf V0.4.4.




Bekomme im Log aber :


Zitat[2018-01-03 12:42:23] event not supported
[2018-01-03 12:42:23] ERROR: UnsupportedOperationError from ::ffff:34.253.169.188
response :{"header":{"name":"UnsupportedOperationError","payloadVersion":"2","namespace":"Alexa.ConnectedHome.Control","messageId":"8dae21b2-b59f-4cd6-8cce-504cfd813dd2"},"payload":{}}
[2018-01-03 12:42:24] event not supported
[2018-01-03 12:42:24] ERROR: UnsupportedOperationError from ::ffff:34.253.169.188
response :{"header":{"name":"UnsupportedOperationError","payloadVersion":"2","namespace":"Alexa.ConnectedHome.Control","messageId":"80583dca-036f-48a4-a11c-1d10249d84e4"},"payload":{}}
[2018-01-03 12:42:24] event not supported
[2018-01-03 12:42:24] ERROR: UnsupportedOperationError from ::ffff:34.253.169.188
response :{"header":{"name":"UnsupportedOperationError","payloadVersion":"2","namespace":"Alexa.ConnectedHome.Control","messageId":"4804ff7a-10c8-42c0-951e-1f03947908c6"},"payload":{}}
[2018-01-03 12:42:25] event not supported
[2018-01-03 12:42:25] ERROR: UnsupportedOperationError from ::ffff:34.253.169.188
response :{"header":{"name":"UnsupportedOperationError","payloadVersion":"2","namespace":"Alexa.ConnectedHome.Control","messageId":"5638b26f-501a-44cf-a2ea-df0c5b8bc445"},"payload":{}}


@justme1968 Alexa Fhem sagt aber 0.4.4 wäre drauf, dachte damit würde V3 unterstützt? Wer schickt hier jetzt in V2? Alexa-fhem? Oder amazon?


Internals:
   CFGFN     
   NAME       alexa
   NR         141
   STATE      active
   TYPE       alexa
   active     0
   alexa-fhem version 0.4.4
   READINGS:
     2017-11-03 17:50:41   echoId          amzn1.ask.device.AEGSNPW7IO44IPBUQUN6G25XRDL54VBEGH3MRLJOKBBCFSNLIZZIBJFPA2WBVHJLVAMAXG5MVGU6DXGAGU5XEBLB6N5XCRCPJZZ6TQNENQTFIYGU6MLUG7K2LTIANTIQWBO7LJJ36JEMD5KH63FUIFJIYOWA
     2017-11-03 17:50:41   echoRoom        wohnzimmer
     2017-11-03 17:50:41   fhemIntent      IchWillFernsehen
     2017-10-27 20:47:49   intent          SessionEndedRequest





Das schöne daran ist, ich habe extra einen snapshot erstellt um bei Gefahr einfach zurück zu gehen, aber wenn Du bei Amazon einmal V3 ausgewählt hast, kommst nicht mehr zurück.
4 x Echo Dot, HMLAN Gateway, und diverse HM Komponenten, Philips Hue + OSRAM Plugs

Pfriemler

Nach 1,5 Tagen lockerem Pfriemeln und zahllosen zwischenzeitlichen Stolperfallen: Es läuft  ::) 8)
Derzeit nur mit dem Smarthome Skill, aber geht! 0.4.4.

Meine wesentlichsten Stolperfallen:
- Wiki-Anleitung zu AWS Lambda ist veraltet. README.md aus /alexa-fhem ist dagegen sehr lesenswert
  Das soll aber kein Vorwurf sein - das Nachziehen bei Amazons ständigen Änderungen ist eine Herausforderung!
- welchen User, welche Startvariante? Habe mich für fhem und init.d entschieden, trotz Jessie. alexa-fhem wird dann per global
- Authentification Error: Web von FHEM ist mit User/password gesichert, die passenden Zeilen "auth": {"user": "...", "pass": "..."} und "ssl":false erst im Forum gefunden.
- brauche ich nat-pmp? Nein, mit einer Fritzbox und händisch eingerichteter Portweiterleitung nur hinderlich
- Alexa findet keine Geräte: Die zu steuernden Geräte müssen in dem Raum sein, der in der config.json als "filter": "room=xxxxx" angegeben ist.
  Völlig logisch eigentlich und gut - so wird das Kommunikationsaufkommen zu alexa-fhem drastisch reduziert als wenn alles gelesen werden müsste.

Tatsächlich: genericDeviceType ist entbehrlich, ein Aktor schaltet auch so.
Jetzt muss ich noch herausbekommen, wie ich die Rolladensteuerung umdrehe. Bei mir ist (traditionell Rademacher, HM angepasst) 0 oben und 100 unten. Wie ich das umdrehe, erschließt sich mir noch nicht.

DAUMEN HOCH für die tolle Arbeit. Mal schauen, wie der WAF ist.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

justme1968

zum  drehen der rolläden lies dir mal das hier durch: https://forum.fhem.de/index.php/topic,67398.msg740328.html#msg740328

es ist besser sich an 100 offen und 0 geschlossen zu gewöhnen und rademacher per invert oder userreading und cmdalias zu drehen.

genericDeviceType ist 'nur' für die häufigsten geräte die komplett automatisch erkannt werden entbehrlich.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Pfriemler

Zitat von: justme1968 am 03 Januar 2018, 15:59:18
zum  drehen der rolläden lies dir mal das hier ... es ist besser sich an 100 offen und 0 geschlossen zu gewöhnen und rademacher per invert oder userreading und cmdalias zu drehen.

Ansichtssache. Meine Terrassenmarkise ist bei 100 ausgefahren und bei 0 eingefahren. Der Rolladen schließt eine Öffnung, 0% ist offen, 100% ist geschlossen.
Bei der Markise habe ich (Homematic-typisch) attr ... param levelInverse gesetzt. Dass die Homematic-Fernbedienungen es (noch) umgekehrt anzeigen, ist ja logisch.

Ich würde mich ja auch umgewöhnen, aber ich finde für Rademacher DUOFERN keine einfache Invertiermöglichkeit.
Was mich aber wundert: Die Umsetzung von alexa-fhem auf Homematic-Dimmer funktioniert 1:1 - 90% ist fast hell.
Sage ich aber "setze rollo auf 90 Prozent", dann wird das (Rademacher-)Rollo von FHEM auf 10% gefahren, und so weiter.
Irgendwo findet da eben jetzt eine Drehung statt, die ich gar nicht will. Könnte ja mal versuchen, den Rolladen wie einen Dimmer zu behandeln...
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

justme1968

radermacher wird automatisch gedreht.

ansonsten lies dir bitte noch mal den verlinkten post durch.

nein. leider keine ansichtssache. das problem ist das entweder das gesprochene auf/zu oder die gesprochenen prozente nicht funktionieren wenn der rolladen nicht nach dem alexa/homebkit schema mit 0 zu und 100 offen arbeitet. es gibt keinen weg das zu umgehen. da am skill immer nur zahlen ankommen und nicht mehr unterscheidbar ist ob es ein gesprochenes auf/zu oder eine gesprochene zahl ist.

90% ist auch beim rollo fast hell d.h. fast auf.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Pfriemler

#132
Zitat von: justme1968 am 03 Januar 2018, 16:28:01
... keinen weg das zu umgehen. da am skill immer nur zahlen ankommen und nicht mehr unterscheidbar ist ob es ein gesprochenes auf/zu oder eine gesprochene zahl ist.
Wenn das so ist ... auf und zu ist mir im Moment egal, der Smarthome Skill unterstützt offenbar eh nur "setze ... auf x %". Alle anderen Versuche wie "öffne, schließe, mach(e) auf/zu" weist Alexa mit dem Spruch "<name des gerätes>  unterstützt das nicht" zurück.
homebridgeMapping invert=1 macht keinen Unterschied. Oder funktioniert das beim Smarthome-Skill nicht?
Ich hätt's gern einheitlich in allen Bedienoberflächen, letztlich wäre mir sogar egal wierum, aber ich bekomme es nicht wegen zuviel Zwischenintelligenz. Bei Rademacher gibt es ein levelInverse (Homematic) oder positionInverse:1,0 (Somfy) nicht.  >:(
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

justme1968

auf und zu wirst du vermutlich sehr bald verwenden wollen. ich denke das ist normalerweise das meist genutzte.

invert=1 ist das was automatisch gesetzt wird. du kannst mit clear das komplette homebridgeMapping löschen und selber eines ohne invert anlegen.

das gezielte zurück setzten nur von invert geht aus irgendeinem grund gerade nicht. das muss ich mir noch anschauen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Pfriemler

Zitat von: justme1968 am 03 Januar 2018, 19:19:25
auf und zu wirst du vermutlich sehr bald verwenden wollen. ich denke das ist normalerweise das meist genutzte.
Würde ich sehr gern schon jetzt, aber wie gesagt: Es tut nicht. Vielleicht muss ich noch bitte sagen?  ;D

Zitatinvert=1 ist das was automatisch gesetzt wird. du kannst mit clear das komplette homebridgeMapping löschen und selber eines ohne invert anlegen.
ah... dann kann es ja nicht mit invert=1 anders werden. Selbst anlegen teste ich mal.

Zitatdas gezielte zurück setzten nur von invert geht aus irgendeinem grund gerade nicht. das muss ich mir noch anschauen.
Dann werde ich mich mal in Geduld üben. Danke bis hierhin!
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."