Einladung zum Beta-Test: "FHEMlazy" zur einfacheren Alexa-Integration

Begonnen von gvzdus, 23 Dezember 2018, 15:30:36

Vorheriges Thema - Nächstes Thema

PNinBB

Zuallererst ein Dankeschön an die Macher. Ich hatte vor einem Jahr mit "Home und Custom Skills" etwas entwickelt, auch mit gewissem Erfolg, habe es aber dann wegen anderer "Baustellen" erst einmal beendet.
Nun fand ich "FHEM Connector" und habe es eingerichtet, allerdings mit einigen Schwierigkeiten, die auf ein paar Abweichungen von den Standardeinstellungen zurück zu führen sind (anderes Verzeichnis, andere Portnummer von aussen).
Am Ende habe ich alles zum Laufen bekommen und Alexa führte alle Befehle mit Schaltern und Dimmern aus.

Seit gestern nachmittag gibt es ein paar Abweichungen bzw. fehlerhafte Abläufe.

1. In der Alexa-App auf dem Desktop werden unter "Smart Home" keine Geräte mehr angezeigt (siehe Bild). Damit kann ich die Geräteliste nicht löschen und neu einlesen. Unter Gruppen kann ich welche einrichten und bekomme auch die verfügbaren Geräte zur Auswahl angezeigt. Eine Nachfrage bei Amazons Service brachte nichts brauch- bzw. verwertbares.

2. Alexa lässt sich starten und stoppen und auch die Rückverbindung steht; siehe "list Device".

Internals:
   .FhemMetaInternals 1
   FD         24
   FUUID      xxxxxxxxxxxxxxxxxxxx...
   FVERSION   39_alexa.pm:0.190980/2019-04-02
   LAST_START 2019-04-04 16:42:21
   LAST_STOP  2019-04-04 16:26:03
   NAME       Alexa
   NOTIFYDEV  global,global:npmjs.*alexa-fhem.*
   NR         313
   NTFY_ORDER 50-Alexa
   PARTIAL   
   PID        23307
   STARTS     5
   STATE      running /usr/bin/alexa-fhem
   TYPE       alexa
   active     0
   alexa-fhem version 0.5.26
   currentlogfile ./log/alexa-2019-04-04.log
   logfile    ./log/alexa-%Y-%m-%d.log
   .attraggr:
   .attrminint:
   CoProcess:
     cmdFn      alexa_getCMD
     name       alexaFHEM
     state      running /usr/bin/alexa-fhem
   READINGS:
     2019-03-30 10:19:03   .eventToken     {"access_token":"Atza|IwEBIMdo9vzsk4MCQba7aadQD-y3B416wS41HugjidjxRyIscwCeorFsANbY5CHXq_skgKvsC5BEuRnvgngqMj_XZ0lsxJt-bc7V7xBeKh3LvSsXeNtGKgAw91uEYMZfoMmFinFvvfGx4WVgrte6ZrMcKeJoPgZz-lEE1rSzNK5iSfSf4wAvFlvUyOZ5JYBFmnqLzlM9klaaCtIhoyRu5mddUwhSPm6UA4qGPCw0mQ5rG1LSw3-QOrWrNLo2bqKSHolpeaurF3skgVMtrTfRbgikLzor2FA6r16vNEtZKsYuBG0doabmWgH6zLdTr9KZp9trwpG3nB56gLg8fv_t0k8QRWTX","refresh_token":"Atzr|IwEBINlL9f6EYqqIuvEKdJVVWCMTEjQxBk1ZfrQl9YnUVFhDZSirG2QoFOS4Yg4MqxXllLpqUE7MNF9DALAm5LtDFgHoGweIkqpoBf-ki0UTu5UKCqPDS9tgp6r2gaOLpAaW3TPzj-yavdKfWWp-mcJRB_RlNcxCQkBLyjbLeSyFVJi3fCj-sovVCyQfmjKiqh_buw4eNR-aFUknDlXtUlHuVkzzvwSLTJtIm9zQo8JXlTnqsh7hOwSr4u3BsSD8yduQfLauw8pL5DsPBqS4BZ5XqaVC71KjW-MfsmAl6vp0w1R84zRaXLUa5Dxb1cnmNmX40_8T3tZUNCTO8LbU5HB1derF","token_type":"bearer","expires_in":3600}
     2019-04-04 16:42:21   alexaFHEM       running /usr/bin/alexa-fhem
     2019-04-04 16:42:34   alexaFHEM.ProxyConnection running; SSH connected
     2019-04-04 16:42:33   alexaFHEM.bearerToken crypt:xxxxxxxxxxxxxxxxxxxx...
     2019-04-04 16:42:34   alexaFHEM.skillRegKey crypt:xxxxxxxxxxxxxxxxxxxx...
   helper:
Attributes:
   DbLogExclude .*
   alexaFHEM-auth crypt:xxxxxxxxxxxxxxxxxxxx...
   alexaFHEM-config ./log/alexa-fhem.cfg
   alexaFHEM-log ./log/alexa-%Y-%m-%d.log
   alexaMapping #Characteristic=<name>=<value>,...
On=verb=schalte,valueOn=an;ein,valueOff=aus,valueToggle=um
. . . .
   fhemIntents #IntentName=<sample utterance>
gutenMorgen=guten morgen
guteNacht=gute nacht
   room       Alexa
   stateFormat alexaFHEM


3. Beim Starten erscheint im Logfile eine Meldung, die es vorher nicht gab: "failed to refresh token: ...".

. . . .
[2019-4-4 16:42:34] SSH setup completed with new bearer token
[2019-4-4 16:42:34] failed to refresh token: invalid_grant: 'The request has an invalid grant parameter : refresh_token'
[2019-4-4 16:42:34] Reading alexaFHEM.ProxyConnection set to running;; SSH connected
[2019-4-4 16:42:34] [FHEM]   executing: http://192.168.2.244:8083/fhem?cmd=%7B%24defs%7BAlexa%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bsetreading%20Alexa%20alexaFHEM.ProxyConnection%20$
[2019-4-4 16:42:34] *** SSH: proxy connection established
. . . .


4. Ein "reload" führt auch zu zusätzlichen Meldungen, die ich nicht erklären und folglich beheben kann.
Zuerst werden die Geräte gelöscht:

[2019-4-4 16:46:44] reloading http://192.168.2.244:8083/fhem
[2019-4-4 16:46:44] removing AZ_DB_FV from http://192.168.2.244:8083/fhem
[2019-4-4 16:46:44] removing AZ_GZ_FV from http://192.168.2.244:8083/fhem
[2019-4-4 16:46:44] removing AZ_GZ_SF from http://192.168.2.244:8083/fhem
[2019-4-4 16:46:44] removing AZ_HZ_T1 from http://192.168.2.244:8083/fhem
. . . .


5. Dann werden die (45) Geräte neu eingelesen. Es ist zwar nachfolgend von "46 results" die Rede, aber ich habe die Folgemeldungen mehrmals gezählt: es sind "nur" 45; liegt eventuell dort der "Hase begraben" ?

[2019-4-4 16:46:44] [FHEM] Fetching FHEM devices...
[2019-4-4 16:46:44] [FHEM] fetching: http://192.168.2.244:8083/fhem?cmd=jsonlist2%20alexaName=..*&fwcsrf=1&XHR=1
*** FHEM: connected
[2019-4-4 16:46:45] [FHEM] got: 46 results
[2019-4-4 16:46:45] [FHEM] AZ_DB_FV is thermometer
[2019-4-4 16:46:45] [FHEM] AZ_DB_FV has
[2019-4-4 16:46:45] [FHEM]   CurrentTemperature [temperature]
[2019-4-4 16:46:45] [FHEM] AZ_GZ_FV is contact
[2019-4-4 16:46:45] [FHEM] AZ_GZ_FV has
[2019-4-4 16:46:45] [FHEM] AZ_GZ_SF is security
[2019-4-4 16:46:45] [FHEM] AZ_GZ_SF has
[2019-4-4 16:46:45] [FHEM]   BatteryLevel [battery]
[2019-4-4 16:46:45] [FHEM]   StatusLowBattery [battery]
[2019-4-4 16:46:45] [FHEM] AZ_HZ_T1 is thermostat
[2019-4-4 16:46:45] [FHEM] AZ_HZ_T1 has
[2019-4-4 16:46:45] [FHEM]   StatusLowBattery [battery]
[2019-4-4 16:46:45] [FHEM]   TargetTemperature [temperature]
[2019-4-4 16:46:45] [FHEM]   CurrentHeatingCoolingState [undefined]
[2019-4-4 16:46:45] [FHEM] AZ_SK_D1 is outlet
[2019-4-4 16:46:45] [FHEM] AZ_SK_D1 has
[2019-4-4 16:46:45] [FHEM]   On [state;on,off]
. . . .


6. Wenn ich die "jsonlist" explizit auslese, erhalte ich folgendes:
6.1. JSON:

Arg "alexaName=..*"
Results [...]
totalResultsReturned 43

6.2. Rohdaten: lange Liste mit den aktuellen und eben korrigierten bzw. neuen Alexanamen !
6.3. Kopfzeilen:

Cache-Control: no-cache, no-store, must-revalidate
Content-Encoding: gzip
Content-Length: 17443
Content-Type: application/json; charset=utf-8
X-FHEM-csrfToken: 1

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: de,en-US;q=0.7,en;q=0.3
Authorization: Basic TnVySWNoRkhFTTpmSGUhQnlSdUc=
Connection: keep-alive
Host: 192.168.2.244:8083
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0


7. Nach dem Einlesen des 45. Gerätes kommen folgende Einträge:
. . . .
[2019-4-4 16:46:46] [FHEM] WZ_TI_TT is thermometer
[2019-4-4 16:46:46] [FHEM] WZ_TI_TT has
[2019-4-4 16:46:46] [FHEM]   CurrentTemperature [temperature]
[2019-4-4 16:46:46] refreshing token
[2019-4-4 16:46:46] refreshing token
[2019-4-4 16:46:46] refreshing token
[2019-4-4 16:46:46] refreshing token
[2019-4-4 16:46:46] refreshing token
. . . . .


8. Und danach noch einmal 45 Einträge der Form:

. . . .
[2019-4-4 16:46:46] refreshing token
[2019-4-4 16:46:46] refreshing token
[2019-4-4 16:46:47] failed to refresh token: invalid_grant: 'The request has an invalid grant parameter : refresh_token'
[2019-4-4 16:46:47] failed to refresh token: invalid_grant: 'The request has an invalid grant parameter : refresh_token'
. . . .



Beim Vereinsserver bin ich korrekt angemeldet:

root@PNinBBServer4 04.04.2019;16:32:00 / 56>sudo -u fhem ssh -p 58824 fhem-va.fhem.de status
Registered.
Registered on 2019-03-30T07:34:55Z as XXXXXXXX.


Mir ist nicht bewusst, dass ich etwas anderes geändert habe als AlexaNamen und dann die Änderungen per "set Alexa reload" nutzbar machen wollte. Das hat mehrmals funktioniert, aber eben nach diesem mysteriösen Zeitpunkt sind diese geänderten Namen nicht ansprechbar.
Kann mir jemand einen Tipp geben !
danke im Voraus.
Peter
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

justme1968

Zitatanderes Verzeichnis, andere Portnummer von aussen
wenn du den FHEM connector mit mit ssh proxy verwendest gibt es keinen port von aussen. welches verzeichnis meinst du? das sollte komplett automatisch gehen.

ist der skill noch verknüpft?

1. was steht im log wenn du die gerätesuche startest? (alexa, suche meine geräte)
  die dekstop app sollte man allgemein vermeiden. viele features sind gegenüber der
  handy app nicht nachgezogen. editieren der gruppen in der desktop app entfernen
  z.b. die echos aus den gruppen.

2. das schaut so weit gut aus. ist der skill auch noch mit deinem account verknüpft?
    falls hier irgendetwas seltsam ist: skill deaktivieren und neu verknüpfen.

3. das ist das event token um updates an amazon zu senden. der fehler verhindert z.b.
    das hinzufügen von geräten ohne alexa neu zu starten. das token wird ein mal beim
    skill verknüpfen gesetzt. wenn hier etwas nicht stimmt passt etwas nicht.

4. bei einem reload werden das/die geräte erst mal aus der internen liste gelöscht und
    dann neu hinzugefügt.

5. die zahl bei 'got: ... results' wird direkt aus dem totalResultsReturned aus dem
    zurückgelieferten json geholt. wenn das nicht mit dem manuellen ergebnis
    übereinstimmt passt irgendetwas nicht. das sollte aber nicht kritisch sein und
    das funktionieren verhindern.


ich habe gerade keine wirkliche idee was bei dir schief geht. vorschlag: fang mal mit einem einzigen gerät an (filter anpassen). das macht die logs kürzer und alles übersichtlicher.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

PNinBB

@justme1968: Herzlichen Dank für die schnelle Antwort.
Bezüglich "anderes Verzeichnis": aus verschiedenen Gründen läuft bei mir FHEM nicht unter /opt/..., sondern in einem speziell geschützten (das war seinerzeit mehr ein Experiment). Aber man kann ja mit den Attributen eine Menge einstellen; BTW: einige Attribute sind in der Command ref (noch) nicht dokumentiert. Aber vieles ist ja letztendlich logisch und selbsterklärend.

Ich bin ein Stück weiter:
1. Ich habe den Skill deaktiviert und neu verbunden und siehe da: es lief wieder.
2. Ich bin vom Alexa-Webportal" auf dem Desktop (FireFox) auf die Smartphone-App umgestiegen und da sieht man eigentlich alles viel besser und auch die "neuesten" Namen sind sichtbar. Bei der Einstellung der Thermostaten "klemmt noch die Säge", sicherlich bei einigen Mappings, aber das ist sicher lösbar.
2. Führe ich "set Alexa reload" aus, so erscheinen nach wie vor die unter 7. und 8. erwähnten Einträge, die erst nach dem "nicht erklärbaren Ereignis" auftreten.
3. Das letzte "set Alexa reload" vor dem "nicht erklärbaren Ereignis" zeigte im Logfile die folgenden Einträge:
3.1. Das Entfernen:

[2019-4-3 16:48:39] reloading http://192.168.2.244:8083/fhem
[2019-4-3 16:48:39] removing AZ_DB_FV from http://192.168.2.244:8083/fhem
[2019-4-3 16:48:39] removing AZ_GZ_SF from http://192.168.2.244:8083/fhem
[2019-4-3 16:48:39] removing AZ_HZ_T1 from http://192.168.2.244:8083/fhem
[2019-4-3 16:48:39] removing AZ_SK_D1 from http://192.168.2.244:8083/fhem
. . . .

3.2. Das Wiedereinlesen:

[2019-4-3 16:48:39] [FHEM] Fetching FHEM devices...
[2019-4-3 16:48:39] [FHEM] fetching: http://192.168.2.244:8083/fhem?cmd=jsonlist2%20alexaName=..*&fwcsrf=1&XHR=1
*** FHEM: connected
[2019-4-3 16:48:40] [FHEM] got: 43 results
[2019-4-3 16:48:40] [FHEM] AZ_DB_FV is thermometer
[2019-4-3 16:48:40] [FHEM] AZ_DB_FV has
[2019-4-3 16:48:40] [FHEM]   CurrentTemperature [temperature]
[2019-4-3 16:48:40] [FHEM] AZ_GZ_FV: no service type detected
[2019-4-3 16:48:40] [FHEM] no device created for AZ_GZ_FV (ZWave)
[2019-4-3 16:48:40] [FHEM] AZ_GZ_SF is security
[2019-4-3 16:48:40] [FHEM] AZ_GZ_SF has
[2019-4-3 16:48:40] [FHEM]   BatteryLevel [battery]
[2019-4-3 16:48:40] [FHEM]   StatusLowBattery [battery]
[2019-4-3 16:48:40] [FHEM] AZ_HZ_T1 is thermostat
[2019-4-3 16:48:40] [FHEM] AZ_HZ_T1 has
[2019-4-3 16:48:40] [FHEM]   StatusLowBattery [battery]
[2019-4-3 16:48:40] [FHEM]   TargetTemperature [temperature]
[2019-4-3 16:48:40] [FHEM]   CurrentHeatingCoolingState [undefined]
. . . .

3.3. Nach dem Einlesen:

. . . .
[2019-4-3 16:48:41] [FHEM] WZ_TI_TT is thermometer
[2019-4-3 16:48:41] [FHEM] WZ_TI_TT has
[2019-4-3 16:48:41] [FHEM]   CurrentTemperature [temperature]
[2019-4-3 16:48:41] {"event":{"header":{"namespace":"Alexa.Discovery","name":"AddOrUpdateReport","payloadVersion":"3","messageId":"14ac61b9-bfc9-4a6a-9912-ef42d2a4dca6"},"payload":{"endpoints":[{"endpointId":"ZWave_ed70b42b-40","manufacturerName":"FHEMZWave","modelName":"FHEMFIBARO System FGBS001 Universal Binary Sensor","version":"<unknown>","friendlyName":"fenster","description":"n: AZ_DB_FV, r: arbeitszimmer","actions":[],"capabilities":[{"type":"AlexaInterface","interface":"Alexa.TemperatureSensor","version":"3","properties":{"supported":[{"name":"temperature"}],"proactivelyReported":false,"retrievable":true}}],"displayCategories":["TEMPERATURE_SENSOR"],"cookie":{"device":"AZ_DB_FV","fuuid":"5c5af34a-f33f-fe8d-850c-6925c9f22d7e1aaf"}}],"scope":{"type":"BearerToken","token":"access-token-from-Amazon"}}}}
[2019-4-3 16:48:41] posting skill event
[2019-4-3 16:48:41] {"event":{"header":{"namespace":"Alexa.Discovery","name":"AddOrUpdateReport","payloadVersion":"3","messageId":"726dc9f0-31c5-4e92-96ae-1cb7679a5239"},"payload":{"endpoints":[{"endpointId":"ZWave_ed70b42b-14","manufacturerName":"FHEMZWave","modelName":"FHEMFIBARO System FGK101 Door Opening Sensor","version":"<unknown>","friendlyName":"safezustand","description":"n: AZ_GZ_SF, r: arbeitszimmer","actions":[],"capabilities":[],"displayCategories":[],"cookie":{"device":"AZ_GZ_SF","fuuid":"5c5af34a-f33f-fe8d-1f5c-febd4aabc5c67c5c"}}],"scope":{"type":"BearerToken","token":"access-token-from-Amazon"}}}}
[2019-4-3 16:48:41] posting skill event

. . . .

[2019-4-3 16:48:41] {"event":{"header":{"namespace":"Alexa.Discovery","name":"AddOrUpdateReport","payloadVersion":"3","messageId":"1a6f6eeb-43b0-4d0b-b02c-d9afcf7df51b"},"payload":{"endpoints":[{"endpointId":"ZWave_ed70b42b-9732","manufacturerName":"FHEMZWave","modelName":"FHEM<unknown>","version":"<unknown>","friendlyName":"aussentemperature","description":"n: WZ_TA_TT, r: wohnzimmer","actions":[],"capabilities":[{"type":"AlexaInterface","interface":"Alexa.TemperatureSensor","version":"3","properties":{"supported":[{"name":"temperature"}],"proactivelyReported":false,"retrievable":true}}],"displayCategories":["TEMPERATURE_SENSOR"],"cookie":{"device":"WZ_TA_TT","fuuid":"5c5af353-f33f-fe8d-ad37-011a0167e49d87c6"}}],"scope":{"type":"BearerToken","token":"access-token-from-Amazon"}}}}
[2019-4-3 16:48:41] posting skill event
[2019-4-3 16:48:41] {"event":{"header":{"namespace":"Alexa.Discovery","name":"AddOrUpdateReport","payloadVersion":"3","messageId":"2784c609-af7d-466c-8bed-f6bb68647b63"},"payload":{"endpoints":[{"endpointId":"ZWave_ed70b42b-5122","manufacturerName":"FHEMZWave","modelName":"FHEM<unknown>","version":"<unknown>","friendlyName":"seitenfensterinnentemperatur","description":"n: WZ_TI_FS, r: wohnzimmer","actions":[],"capabilities":[{"type":"AlexaInterface","interface":"Alexa.TemperatureSensor","version":"3","properties":{"supported":[{"name":"temperature"}],"proactivelyReported":false,"retrievable":true}}],"displayCategories":["TEMPERATURE_SENSOR"],"cookie":{"device":"WZ_TI_FS","fuuid":"5c5af34a-f33f-fe8d-a443-ac69472583f954e1"}}],"scope":{"type":"BearerToken","token":"access-token-from-Amazon"}}}}
[2019-4-3 16:48:41] posting skill event
[2019-4-3 16:48:41] {"event":{"header":{"namespace":"Alexa.Discovery","name":"AddOrUpdateReport","payloadVersion":"3","messageId":"a7e73e39-2511-4612-b581-72a810dc9998"},"payload":{"endpoints":[{"endpointId":"ZWave_ed70b42b-9731","manufacturerName":"FHEMZWave","modelName":"FHEM<unknown>","version":"<unknown>","friendlyName":"terrassentürinnentemperatur","description":"n: WZ_TI_TT, r: wohnzimmer","actions":[],"capabilities":[{"type":"AlexaInterface","interface":"Alexa.TemperatureSensor","version":"3","properties":{"supported":[{"name":"temperature"}],"proactivelyReported":false,"retrievable":true}}],"displayCategories":["TEMPERATURE_SENSOR"],"cookie":{"device":"WZ_TI_TT","fuuid":"5c5af353-f33f-fe8d-74de-f53da42022cefc90"}}],"scope":{"type":"BearerToken","token":"access-token-from-Amazon"}}}}
[2019-4-3 16:48:41] posting skill event
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 400: {"header":{"namespace":"System","name":"Exception","messageId":"aff65b0d-f3f8-4a24-a063-602236045f82"},"payload":{"code":"INVALID_REQUEST_EXCEPTION","description":"Parsing error: Failed to parse discovery payload Can not construct instance of com.amazon.iota.driver.v3.discovery.DiscoveredEndpoint$DiscoveredEndpointBuilder, problem: capability must contain at least one supported capability\n at [Source: N/A; line: -1, column: -1] (through reference chain: com.amazon.iota.driver.v3.discovery.DiscoverAddOrUpdateReport[\"endpoints\"]->java.lang.Object[][0])"}}
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 400: {"header":{"namespace":"System","name":"Exception","messageId":"7369c39f-6366-46ce-b877-badd8a9f9e04"},"payload":{"code":"INVALID_REQUEST_EXCEPTION","description":"Parsing error: Failed to parse discovery payload Can not construct instance of com.amazon.iota.driver.v3.discovery.DiscoveredEndpoint$DiscoveredEndpointBuilder, problem: capability must contain at least one supported capability\n at [Source: N/A; line: -1, column: -1] (through reference chain: com.amazon.iota.driver.v3.discovery.DiscoverAddOrUpdateReport[\"endpoints\"]->java.lang.Object[][0])"}}
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 400: {"header":{"namespace":"System","name":"Exception","messageId":"9ab2413f-8f4b-4c73-b8b9-881587d91e01"},"payload":{"code":"INVALID_REQUEST_EXCEPTION","description":"Parsing error: Failed to parse discovery payload Can not construct instance of com.amazon.iota.driver.v3.discovery.DiscoveredEndpoint$DiscoveredEndpointBuilder, problem: capability must contain at least one supported capability\n at [Source: N/A; line: -1, column: -1] (through reference chain: com.amazon.iota.driver.v3.discovery.DiscoverAddOrUpdateReport[\"endpoints\"]->java.lang.Object[][0])"}}
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 400: {"header":{"namespace":"System","name":"Exception","messageId":"acb419d6-d63c-4bf0-a7d0-a652121001c9"},"payload":{"code":"INVALID_REQUEST_EXCEPTION","description":"Parsing error: Failed to parse discovery payload Can not construct instance of com.amazon.iota.driver.v3.discovery.DiscoveredEndpoint$DiscoveredEndpointBuilder, problem: capability must contain at least one supported capability\n at [Source: N/A; line: -1, column: -1] (through reference chain: com.amazon.iota.driver.v3.discovery.DiscoverAddOrUpdateReport[\"endpoints\"]->java.lang.Object[][0])"}}
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 400: {"header":{"namespace":"System","name":"Exception","messageId":"f721ba7c-4d8b-4540-bb7b-81a2c1f1895a"},"payload":{"code":"INVALID_REQUEST_EXCEPTION","description":"Parsing error: Failed to parse discovery payload Can not construct instance of com.amazon.iota.driver.v3.discovery.DiscoveredEndpoint$DiscoveredEndpointBuilder, problem: capability must contain at least one supported capability\n at [Source: N/A; line: -1, column: -1] (through reference chain: com.amazon.iota.driver.v3.discovery.DiscoverAddOrUpdateReport[\"endpoints\"]->java.lang.Object[][0])"}}
[2019-4-3 16:48:42] posted skill event: 202:
[2019-4-3 16:48:42] posted skill event: 429: {"header":{"namespace":"System","name":"Exception","messageId":"d54c3a7c-97ff-43e5-8b28-3f95dfbffcb0"},"payload":{"code":"THROTTLING_EXCEPTION","description":"Request is throttled."}}
[2019-4-3 16:48:42] posted skill event: 429: {"header":{"namespace":"System","name":"Exception","messageId":"f3b03b07-5ea2-4951-807a-f26504b27838"},"payload":{"code":"THROTTLING_EXCEPTION","description":"Request is throttled."}}
[2019-4-3 16:48:42] posted skill event: 202:
  2019-04-03 16:48:57 caching: GA_TI_TO-temperature: 17.68 C
[2019-4-3 16:48:57] [FHEM]     caching: CurrentTemperature: 17.68 (as number; from '17.68 C')
. . . .


Momentan kann ich zwar weiter arbeiten, aber ob da alles ordentlich läuft kann ich nicht beurteilen.
Nochmals besten Dank.
Peter

Nachtrag und -frage: Wird eigentlich Port 3000 noch benötigt, denn den habe ich wohl um diese Zeit in der FritzBox und am FHEM-Server wieder gesperrt ?
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

PNinBB

Es ist nach wie vor nicht möglich, neu mit "AlexaName" eingerichtete Geräte über "set Alexa reload" oder "set Alexa restart" verfügbar zu machen. Ich habe nunmehr bei allen Geräten "AlexaName" entfernt, den "FHEM Connector" getrennt und neu verbunden und Alexa neu gestartet.
Im Alexa-Log erscheint:

[2019-4-6 17:32:24] reloading http://192.168.2.244:8083/fhem
[2019-4-6 17:32:24] removing KL_TI_TK from http://192.168.2.244:8083/fhem
[2019-4-6 17:32:24] [FHEM] Fetching FHEM devices...
[2019-4-6 17:32:24] [FHEM] fetching: http://192.168.2.244:8083/fhem?cmd=jsonlist2%20alexaName=..*&fwcsrf=1&XHR=1
*** FHEM: connected
[2019-4-6 17:32:25] [FHEM] got: 0 results

Dann habe ich ein Gerät eingerichtet und "set Alexa reload" ausgeführt. Im Log sieht man:

[2019-4-6 17:34:59] reloading http://192.168.2.244:8083/fhem
[2019-4-6 17:34:59] removing KL_TI_TK from http://192.168.2.244:8083/fhem
[2019-4-6 17:34:59] [FHEM] Fetching FHEM devices...
[2019-4-6 17:34:59] [FHEM] fetching: http://192.168.2.244:8083/fhem?cmd=jsonlist2%20alexaName=..*&fwcsrf=1&XHR=1
*** FHEM: connected
[2019-4-6 17:34:59] [FHEM] got: 1 results
[2019-4-6 17:34:59] [FHEM] AZ_SK_D1 is outlet
[2019-4-6 17:34:59] [FHEM] AZ_SK_D1 has
[2019-4-6 17:34:59] [FHEM]   On [state;on,off]
  2019-04-06 17:34:59 caching: AZ_SK_D1-state: off
[2019-4-6 17:34:59] refreshing token
[2019-4-6 17:34:59] failed to refresh token: invalid_grant: 'The request has an invalid grant parameter : refresh_token'

Was mache ich im Zusammmenhang mit diesem Ablauf falsch ??
Über das "refresh_token" kann ich nichts finden.
Kurioserweise reagiert die AlexaBox noch immer auf die "alten" Gerätenamen und führt Schaltbefehle aus. Ich finde aber keinen Zugang - sowohl über das Alexa-WepPortal als auch über die Alexa-App auf dem Smartphon - Geräte zu löschen.
Für jeden Tipp bin ich dankbar.
Peter
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

juemuc

Hallo,

wie kann ich erkennen, ob eine neue Version verfügbar ist? Ich habbe aktuelle die Version 0.5.26

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Esjay

Du könntest einfach ein Update machen und schauen ob was kommt, oder das npmjs Modul definieren, oder ins Wiki schauen,bin der Meinung das es dort erklärt ist..Das npmjs Modul ist meiner Meinung nach am einfachsten!

Grüße

rlehnert

#636
Hallo Zusammen,

habe die Installation nach der Anleitung (https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa) durchgeführt.
Aber leider bekomme ich den FHEM Connector nicht unter dem User "fhem" ans Rennen.

Ich bekomme diese Fehlermeldung hier:
[7.4.2019, 23:31:07] using config from ./alexa-fhem.cfg
*** CONFIG: parsed completely
[7.4.2019, 23:31:07] os.homedir()=/root
[7.4.2019, 23:31:07] os.homedir() set to /root, but this is not writable
[7.4.2019, 23:31:07] process.env.HOME=/root
[7.4.2019, 23:31:07] process.env.HOME set to /root, but this is not writable
[7.4.2019, 23:31:07] process.env.HOMEPATH=undefined
[7.4.2019, 23:31:07] process.env.USERPROFILE=undefined
[7.4.2019, 23:31:07] process.env.PWD=undefined
[7.4.2019, 23:31:07] No suitable, writable users home directory found
Startup rejected. Reason: TypeError: Path must be a string. Received undefined


Starte ich FHEM als "root", wird der Connector fehlerfrei gestartet.
Im Thread zu FHEM-Alexa hatte ich den Hinweis gefunden, dass man "npm install" nicht als sudo starten soll. Hatte dann mal entgegen der o.g. Anleitung das sudo vor "npm install -g alexa-fhem" weggelassen, dann kann ich aber wegen Berechtigungsproblemen nicht installieren.
Hat einer eine Idee, was ich da falsch mache?

Auf dem RaspBerry habe ich die aktuelle Raspbian Stretch Lite-Version installiert.
FHEM und "FHEM Connector für Amazon Alexa" sind auch die aktuellen Versionen.

Viele Grüße
Rolf

justme1968

wenn das wirklich der user fhem ist sollte da nicht /root als home verzeichnis auftauchen.

wenn du nicht als root angemeldet bist muss die globale installation mit sudo erfolgen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

hankyzoolander

Hallo,
läuft das Modul auch unter debian Linux?
Habe einen HP-Thinclient pc auf dem Fhem läuft da dieser enorm mehr Performence bietet als ein Raspberry Pi.
Würde das Alexa Modul gerne nutzen.
Hat jemand ne Idee?
betateilchen  <--- my personal hero

drhirn

Tut es. Läuft bei mir in einer Proxmox-VM unter Debian Stretch.

justme1968

@PNinBB: den token fehler gibt es wenn am anfang mit der skill verknüpfung etwas schief gegangen ist. das betrifft aber nur das senden von asynchronen nachrichten aus alexa-fhem an amazon. d.h. das nachträgliche hinzufügen von geräten ohne neustart. das steuern geht trotzdem. bitte schau mal während der skill verknüpfung ins log. da sollte auch etwas bezüglich des token stehen.

port 3000 wird für den ssh proxy nicht mehr benötigt und sollte aus der config entfernt werden wenn nur der ssh proxy und der fhem connector skill verwendet wird.

@hankyzoolander: das alexa modul läuft überall wo fhem läuft. alexa-fhem läuft überall wo node >8.x läuft. der ssh proxy läuft überall wo es ein ssh executable gibt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rlehnert

Hi justme1968,

danke für die Antwort.
FHEM und der FHEM Connector laufen unter dem User fhem:

pi@PC-RaspBerry-3:~ $ ps -ef | grep fhem
fhem       526     1  0 09:51 ?        00:00:02 /usr/bin/perl fhem.pl fhem.cfg
fhem       903   526 99 09:57 ?        00:00:02 node /usr/local/bin/alexa-fhem -c ./alexa-fhem.cfg                                               -a xx:xx
pi         910   719  0 09:57 pts/0    00:00:00 grep --color=auto fhem


Und das home-Verzeichnis für fhem ist /opt/fhem:

pi@PC-RaspBerry-3:/opt/fhem $ sudo su fhem
fhem@PC-RaspBerry-3:~$ echo ~
/opt/fhem
fhem@PC-RaspBerry-3:~$


Trotzdem wird mir im Log dies hier angezeigt:

[9.4.2019, 09:52:39] using config from ./alexa-fhem.cfg
*** CONFIG: parsed completely
[9.4.2019, 09:52:39] os.homedir()=/root
[9.4.2019, 09:52:39] os.homedir() set to /root, but this is not writable
[9.4.2019, 09:52:39] process.env.HOME=/root
[9.4.2019, 09:52:39] process.env.HOME set to /root, but this is not writable
[9.4.2019, 09:52:39] process.env.HOMEPATH=undefined
[9.4.2019, 09:52:39] process.env.USERPROFILE=undefined
[9.4.2019, 09:52:39] process.env.PWD=undefined
[9.4.2019, 09:52:39] No suitable, writable users home directory found
Startup rejected. Reason: TypeError: Path must be a string. Received undefined


Viele Grüße
Rolf

justme1968

das ist sehr seltsam.

setz mal im alexa modul das alexaFHEM-home attribut
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rlehnert

Habs gefunden,

in der "/etc/systemd/system/fhem.service" stand als USER "root" drin.

Verstehe zwar nicht, wieso der Prozess dann trotzdem als "fhem" ausgeführt wurde.
Habe aber jetzt "fhem" eingetragen und nun läuft es.

Vielen Dank und Gruß
Rolf

hankyzoolander

ok, läuft jetzt wunderbar.
Lag an der alten Version von nodeJS.

Super Arbeit, bin echt begeistert. Daumen Hoch
betateilchen  <--- my personal hero