Alexa findet keine Geräte

Begonnen von PascalM, 09 Juni 2017, 08:51:31

Vorheriges Thema - Nächstes Thema

PascalM

Liebe Community   :)

ich habe alles nach dieser Anleitung https://wiki.fhem.de/wiki/Alexa-Fhem eingerichtet.
Folgendes Szenario:

Ich habe ein KNX Gateway. An diesem Gateway hängt ein KNX Schaltaktor. Das Gateway ist im FHEM eingerichtet und der Aktor lässt sich über FHEM auch schalten.
Alexa ist ebenfalls eingerichtet.
Ich will nun mit Alexa den Aktor schalten. Leider findet Alexa kein Smarthome Gerät.
Der Port 3000 ist nach außen freigegeben. Allerdings kommt immer die Meldung, dass das Zertifikat ungültig ist. Ist das normal? Ich habe dieses wie beschrieben mit ./createKey.sh erstellt.
http://imgur.com/K8rmpCn


Der Inhalt des fhem.cfg files:

attr global userattr alexaName alexaRoom cmdIcon devStateIcon devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon sortby webCmd widgetOverride
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global motd SecurityCheck:\
\
WEB,WEBphone,WEBtablet has no associated allowed device with basicAuth.\
telnetPort has no associated allowed device with password/globalpassword.\
\
Restart FHEM for a new check if the problem is fixed,\
or set the global attribute motd to none to supress this message.\

attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3

define telnetPort telnet 7072 global

define WEB FHEMWEB 8083 global
attr WEB room Unsorted

define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen

define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog

define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log

define eventTypes eventTypes ./log/eventTypes.txt

# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create
define FileLog_KNX_0001000 FileLog ./log/KNX_0001000-%Y.log KNX_0001000
attr FileLog_KNX_0001000 logtype text
attr FileLog_KNX_0001000 room KNX
define KNX TUL eibd:localhost 1.1.255
define test KNX 0/1/0:dpt1
attr test IODev KNX
attr test genericDeviceType switch
attr test room KNX
define KNX_0001005 KNX 0/1/5:MODEL_NOT_DEFINED
attr KNX_0001005 IODev KNX
attr KNX_0001005 room KNX
define MyAlexa alexa
attr MyAlexa alexaMapping #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,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
attr MyAlexa alexaTypes #Type=<alias>[,<alias2>[,...]]\
light=licht,lampen\
blind=rolladen,rolläden,jalousie,jalousien,rollo,rollos
attr MyAlexa fhemIntents #IntentName=<sample utterance>\
gutenMorgen=guten morgen\
guteNacht=gute nacht
attr MyAlexa room KNX
define FileLog_KNX_0001005 FileLog ./log/KNX_0001005-%Y.log KNX_0001005
attr FileLog_KNX_0001005 logtype text
attr FileLog_KNX_0001005 room KNX


Was mache ich falsch?
Ich habe echt sehr viel rumprobiert aber nichts hat geholfen. Falls ihr noch irgendwelche Infos benötigt einfach sagen bzw. schreiben.
Kann mir von euch bitte jemand weiterhelfen?

Vielen Dank im Voraus

amenomade

Zitatdefine test KNX 0/1/0:dpt1
attr test IODev KNX
attr test genericDeviceType switch
attr test room KNX
define KNX_0001005 KNX 0/1/5:MODEL_NOT_DEFINED
attr KNX_0001005 IODev KNX
attr KNX_0001005 room KNX

Was hast Du als Filter in config.json?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

PascalM

In der config.json steht als filter KNX.

PascalM

Wenn ich über den Lambda Service den Code teste kommt der Request auch beim alexa fhem auf der console an {"header":{"name":"UnsupportedOperationError"......
Kann es sein, dass es an der Konfiguration im FHEM liegt? Sind dort vielleicht die Geräte falsch angelegt?
Könnte man das einfach mal mit einem Dummy Gerät testen? Wird das auch von der Alexa als Gerät erkennt und wenn ja wie würde dann die fhem.cfg aussehen bzw. wie genau müsste ich das anlegen?

amenomade

ZitatSind dort vielleicht die Geräte falsch angelegt?

Grundsätzlich ja. Aber ich kenne KNX nicht.
Verschiedene Vermutungen:
- er erkennt das Device "test" nicht als switch. Wie schaltest Du "test"? set test on ?
- er meckert auf dem 2. KNX device. Um das zu vermeiden, schieb den in einen anderen Raum als dem von json Filter.


Mit einem Dummy, allein im Raum vom json Filter, kann man testen. Dann definierst Du am besten ein attr <dummyname> setList on off
und AlexaRoom und AlexaName und genericDeviceType

Zur Analyse wäre die LogDatei vom alexa Dienst hilfreich.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

PascalM

 - Also schalten tue ich es mit set test on.
- Das habe ich nun mal rausgemacht war nur das Rückmeldeelement auf dem Bus.

Ich habe nun einen Dummy angelegt und den diesen mit Alexa in einen Raum gemacht. Leider hab ich das Problem immer noch.

Welche LogDatei meinst du genau? Die vom lambda Service oder die von alexa fhem?

Hier nochmal die neue fhem.cgf:
attr global userattr alexaName alexaRoom cmdIcon devStateIcon devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon sortby webCmd widgetOverride
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global motd SecurityCheck:\
\
WEB,WEBphone,WEBtablet has no associated allowed device with basicAuth.\
telnetPort has no associated allowed device with password/globalpassword.\
\
Restart FHEM for a new check if the problem is fixed,\
or set the global attribute motd to none to supress this message.\

attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3

define telnetPort telnet 7072 global

define WEB FHEMWEB 8083 global
attr WEB room Unsorted

define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen

define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog

define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log

define eventTypes eventTypes ./log/eventTypes.txt

# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create
define FileLog_KNX_0001000 FileLog ./log/KNX_0001000-%Y.log KNX_0001000
attr FileLog_KNX_0001000 logtype text
attr FileLog_KNX_0001000 room KNX
define KNX TUL eibd:localhost 1.1.255
define test KNX 0/1/0:dpt1
attr test IODev KNX
attr test genericDeviceType switch
attr test room Unsorted
define FileLog_KNX_0001005 FileLog ./log/KNX_0001005-%Y.log KNX_0001005
attr FileLog_KNX_0001005 logtype text
attr FileLog_KNX_0001005 room KNX
define testalexa alexa
attr testalexa alexaMapping #Characteristic=<name>=<value>,...\
On=verb=schalte,valueOn=an;;ein,valueOff=aus,valueToggle=um
attr testalexa alexaName testAlexa
attr testalexa alexaRoom Test
attr testalexa alexaTypes #Type=<alias>[,<alias2>[,...]]\
light=licht,lampen
attr testalexa fhemIntents #IntentName=<sample utterance>
attr testalexa room Test
define testSw dummy
attr testSw genericDeviceType switch
attr testSw room Test
attr testSw setList on off


MadMax-FHEM

Hallo,

statt immer die fhem.cfg zu posten besser nur ein list des/der betroffenen Geräte:

list <DEVICENAME>

Und ja: Ausgabe von alexa-fhem...

Entweder wenn es bereits als Dienst läuft, dann den relevanten Teil (also beispielsweise von einem Start bis zum Ende der Suche) aus der Logdatei (wo die liegt sollte irgendwo im Dienststart definiert sein) oder wenn (noch) von der Console gestartet (./bin/alexa) dann eben genau was da kommt bis Ende einer Suche über die App...
Und wichtig: die Geräte müssen nicht im selben "Raum" wie das Alexa-Modul liegen sondern der in der config.json eingetragene Filter muss passen!


           "filter": "room=AlexaRoom"


bedeutet, dass Geräte die gefunden werden sollen folgendes Attribut benötigen:


attr GeräteName room AlexaRoom


Ein Beispiel für einen Dummy gibt es hier:

https://wiki.fhem.de/wiki/Alexa-Fhem#Einfacher_Schalter

Und wie vorgeschlagen erst mal schauen ob ein Dummy geht und dann ein Gerät nach dem anderen dazunehmen...
...und nicht vergessen alexa-fhem neu zu starten, wenn du ein neues Gerät zur Verwendung mit Alexa vorbereitet hast (also z.B. in den passenen Raum [wenn das dein Filter ist] verschoben hast)...

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)

PascalM

Ok danke, merk ich mir.

Also der Filter ist jetzt auf room="Test" gesetzt. Das heißt aber jetzt auch, dass sowohl der Dummy Schalter als auch Alexa in einem Raum angelegt sind. Man könnte aber auch den Filter auf xy=Test setzen, dann würde Alexa alle Geräte erkennen, bei denen xy = Test ist, richtig?

Also mit dem Dummy geht es nicht.

Hier mal das Logfile bzw Consolenausgabe von alexa fhem:

[2017-06-09 13:23:42] using /home/mp/.alexa/config.json
[2017-06-09 13:23:42] ---
[2017-06-09 13:23:42] this is alexa-fhem 0.3.4
[2017-06-09 13:23:42] Fetching FHEM devices...
[2017-06-09 13:23:42] [FHEM] starting longpoll: http://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1497007422425
[2017-06-09 13:23:42] Server listening on: https://:::3000
[2017-06-09 13:23:42] [FHEM] Checking devices and attributes...
[2017-06-09 13:23:42] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&fwcsrf=fhem_40448455089005.5&XHR=1
[2017-06-09 13:23:42] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE=alexa&fwcsrf=fhem_40448455089005.5&XHR=1
[2017-06-09 13:23:42] [FHEM] Fetching FHEM devices...
[2017-06-09 13:23:42] [FHEM] fetching: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20room=Test&fwcsrf=fhem_40448455089005.5&XHR=1
[2017-06-09 13:23:42] [FHEM] got: 2 results
[2017-06-09 13:23:42] [FHEM] testSw is switch
[2017-06-09 13:23:42] [FHEM] testSw has
[2017-06-09 13:23:42] [FHEM]   On [state;on,off]
[2017-06-09 13:23:42] [FHEM] { reading: 'state',
  valueOff: '/off|A0|000000/',
  cmdOn: 'on',
  cmdOff: 'off',
  device: 'testSw',
  informId: 'testSw-state',
  characteristic_type: 'On',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'FHEM' } }
  2017-06-09 13:23:42 caching: testSw-state: on
[2017-06-09 13:23:42] [FHEM] testalexa: no service type detected
[2017-06-09 13:23:42] [FHEM] no device created for testalexa (alexa)
[2017-06-09 13:23:42] [FHEM] alexa device is testalexa
[2017-06-09 13:23:42] [FHEM] testalexa is switch
[2017-06-09 13:23:42] [FHEM] testalexa has
[2017-06-09 13:23:42] [FHEM] homebridgeMapping: #Characteristic=<name>=<value>,...
On=verb=schalte,valueOn=an;ein,valueOff=aus,valueToggle=um
[2017-06-09 13:23:42] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7B$defs%7Btestalexa%7D-%3E%7B%22active%22%7D%20=%201%7D&fwcsrf=fhem_40448455089005.5&XHR=1
[2017-06-09 13:23:42] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7B$defs%7Btestalexa%7D-%3E%7B%22alexa-fhem%20version%22%7D%20=%20%220.3.4%22%7D&fwcsrf=fhem_40448455089005.5&XHR=1
[2017-06-09 13:23:42] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7B$defs%7Btestalexa%7D-%3E%7B%22active%22%7D%20=%200%7D&fwcsrf=fhem_40448455089005.5&XHR=1
[2017-06-09 13:23:42] perfectOfVerb:
[2017-06-09 13:23:42] { stelle: 'gestellt',
  schalte: 'geschaltet',
  'färbe': 'gefärbt',
  mach: 'gemacht' }
[2017-06-09 13:23:42] verbsOfIntent:
[2017-06-09 13:23:42] [ OnIntent: [ 'schalte' ] ]
[2017-06-09 13:23:42] characteristicsOfIntent:
[2017-06-09 13:23:42] { OnIntent: [ 'On' ] }
[2017-06-09 13:23:42] prefixOfIntent:
[2017-06-09 13:23:42] { OnIntent: undefined }
[2017-06-09 13:23:42] suffixOfIntent:
[2017-06-09 13:23:42] { OnIntent: undefined }
[2017-06-09 13:23:42] alexaTypes:
[2017-06-09 13:23:42] { light: [ 'licht', 'lampen' ] }
[2017-06-09 13:23:42] fhemIntents:
[2017-06-09 13:23:42] {}






MadMax-FHEM

#8
Ich verstehe zwar nicht was du mir mit der Filter-Erläuterung sagen willst...
...aber prinzipiell: ja.

Es ist halt ein Filter, der nach dem dort definierten Kriterium arbeitet...

Was das jetzt mit dem Alexa-Modul und dem/den Geräten die du steuern willst zu tun hat...

Die Ausgabe sieht doch (auf den ersten schnellen Blick) gut aus.
Dummy wird von alexa-fhem gefunden.

EDIT: testSW ist doch jetzt der Dummy? Besser auch mal ein list des Gerätes mit dazu, dann ist es klarer...

Ist das die Ausgabe inklusive der Gerätesuche per App?

Wenn ja: dann kommt die Suche nicht bei alexa-fhem an! -> Trigger etc. prüfen.

Wenn nicht, dann bitte eine Ausgabe inkl. der Suche...

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)

PascalM

Ja das war die Ausgabe MIT Gerätesuche per App....
das beunruhigt mich aber jetzt....

Ich überprüfe nun nochmal Trigger usw.


MadMax-FHEM

Ist nicht beunruhigend...

Andere scheitern schon weit vor dem was bei dir schon geht.

Was passiert, wenn du in AWS-Lambda auf den "Test-Knopf" drückst?

Kommt dann dort ok?

Wenn nicht:

ist DynDNS (oder was immer du nutzt um eine von außen erreichbare IP zu haben) richtig eingestellt und auch richtig in der Lambda-Funktion eingetragen?
Port 3000 von außen über diese "Adresse" erreichbar?
Portweiterleitung zu alexa-fhem funktioniert?

Ansonsten bleibt nur der Trigger oder falsche Einträge in der config.json:

für den Smart Home Skill: oauthclient-ID
für den Custom Skill: app-ID


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)

PascalM

:)

Ja dort kommt ok bzw. succeeded und auf der alexa fhem console kommt auch was.

http://imgur.com/KgcYYFP

Das einzige wenn ich zum Beispiel über das Smartphone versuche auf den link zuzugreifen, dann kommt, dass das Zertifikat ungültig ist aber es geht dann über http trotzdem.

Grüße

Pascal

MadMax-FHEM

Dann wird es wohl der Trigger sein...

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)

amenomade

Zitat von: WikiZunächst sollte man sich unter http://aws.amazon.com das Logfile seiner erstellten Funktion anschauen. Ist überhaupt ein Logfile vorhanden? Falls nicht, liegt es vermutlich am Trigger. Den solltet ihr überprüfen. Scheinbar kommt es hin und wieder vor, dass dieser nicht gesetzt ist. Dazu einfach auf Triggers klicken und mit Add trigger erneut einen anlegen. Hier muss, wie in der Anleitung unter AWS Lambda Funktion anlegen Punkt 7, die Application Id stehen und der Haken bei Enable trigger gesetzt sein. Dann alexa-fhem neu starten. Wenn ihr Änderugen gemacht habt und den alexa-fhem Dienst noch nicht neu gestartet habt, wäre jetzt der richtige Zeitpunkt.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

PascalM

Guten Morgen,

also ich habe nun für den Smart Home Skill den trigger nochmal komplett entfernt und wieder neu hinzugefügt.
http://imgur.com/Mw4J3tC

Es geht leider immer noch nicht.

Wo finde ich die Logfiles? Hier?
http://imgur.com/Op6cbD5