MyAlexa: alexa-fhem not installed. install with 'sudo npm install -g alexa-fhem'

Begonnen von 87insane, 28 Januar 2019, 11:39:10

Vorheriges Thema - Nächstes Thema

87insane

Hi -
Habe es nun wieder am rennen aber mit der alten Version.

/opt/fhem/alexa-fhem - So wie es vorher auch war.
Habe einfach den alten Ordner (wie im Wiki beschrieben) umbenannt in alt_alexa-fhem und die certs rüber kopiert.

Wieso gehört sie nicht mehr nach opt/fhem?

-------------------------------------------------------------------------------------------------------------------------------------

Hab es aber mal so gemacht wie du es vermutlich empfohlen hast:
/opt/fhem/alexa-fhem - Weg gesichert und gelöscht
Danach:
pi@Raspi:~ $ sudo npm install -g alexa-fhem
(node:724) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
/usr/local/bin/alexa-fhem -> /usr/local/lib/node_modules/alexa-fhem/bin/alexa
alexa-fhem@0.5.15 /usr/local/lib/node_modules/alexa-fhem
├── readline-sync@1.4.9
├── commander@2.8.1 (graceful-readlink@1.0.1)
├── ws@6.1.3 (async-limiter@1.0.0)
├── chalk@1.1.3 (escape-string-regexp@1.0.5, supports-color@2.0.0, ansi-styles@2.2.1, strip-ansi@3.0.1, has-ansi@2.0.0)
└── request@2.88.0 (forever-agent@0.6.1, oauth-sign@0.9.0, aws-sign2@0.7.0, tunnel-agent@0.6.0, caseless@0.12.0, is-typedarray@1.0.0, safe-buffer@5.1.2, aws4@1.8.0, isstream@0.1.2, json-stringify-safe@5.0.1, extend@3.0.2, performance-now@2.1.0, qs@6.5.2, uuid@3.3.2, combined-stream@1.0.7, mime-types@2.1.21, tough-cookie@2.4.3, form-data@2.3.3, http-signature@1.2.0, har-validator@5.1.3)


Hiernach habe ich die Zertifikat-Dateien nach "/usr/local/lib/node_modules/alexa-fhem/.alexa" kopiert.
Und nun einen sudo reboot


Ergebnis aus dem FHEM LOG:
2019.02.03 13:41:43 2: MyAlexa: starting alexa-fhem: /usr/local/bin/alexa-fhem -c ./alexa-fhem.cfg -s
2019.02.03 13:41:43 3: MyAlexa: starting
2019.02.03 13:41:43 3: MyAlexa: using logfile: ./log/alexa-2019-02-03.log
2019.02.03 13:43:29 3: MyAlexa: read: end of file reached while sysread
2019.02.03 13:43:29 3: MyAlexa: stopped


Sieht in meinen Augen nicht okay aus. Nur kann ich über Alexa keine Geräte mehr steuern. Die Alexa App sagt immer das die Geräte nicht reagieren. Muss hier noch etwas anders gemacht werden?
Gucke aber gerade wegen dem 401 Fehler nach meiner config.json

Checking devices and attributes...
[03/02/2019, 13:59:34] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22%2C%22userattr%22%2C%22%22)%7D&XHR=1
[03/02/2019, 13:59:34] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE%3Dalexa&XHR=1
[03/02/2019, 13:59:34] [FHEM] waiting for events ...
[03/02/2019, 13:59:34] [FHEM] Fetching FHEM devices...
[03/02/2019, 13:59:34] [FHEM] fetching: https://127.0.0.1:8083/fhem?cmd=jsonlist2%20alexaName=..*&XHR=1
[03/02/2019, 13:59:34] [FHEM] longpoll ended, reconnect in: 3200msec
[03/02/2019, 13:59:34] [FHEM] There was a problem connecting to FHEM (https://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22%2C%22userattr%22%2C%22%22)%7D&XHR=1).
[03/02/2019, 13:59:34] [FHEM]   401: Authorization Required
[03/02/2019, 13:59:34] [FHEM] There was a problem connecting to FHEM (https://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE%3Dalexa&XHR=1).
[03/02/2019, 13:59:34] [FHEM]   401: Authorization Required
[03/02/2019, 13:59:34] [FHEM] There was a problem connecting to FHEM
[03/02/2019, 13:59:34] [FHEM]   401: Authorization Required
*** FHEM: connection failed: 401: Authorization Required


Meine json:
{
    "alexa": {
        "port": 3000,
        "name": "Alexa",
        "keyFile": "/usr/local/lib/node_modules/alexa-fhem/.alexa/key.pem",
        "certFile": "/usr/local/lib/node_modules/alexa-fhem/.alexa/cert.pem",
        "nat-pmp": "",
        "nat-upnp": false,
        "applicationId": "applicationId",
        "oauthClientID": "oauthClientID"
    },
   
    "connections": [
        {
            "name": "FHEM",
            "server": "127.0.0.1",
            "port": "8083",
            "webname": "fhem",
    "auth": {"user": "pi", "pass": "ganztollespw"},
            "ssl": true,
    "filter": "room=Alexa"
        }
    ]
}


Leider weiß ich nun nicht an welcher Stelle er noch Auth Probleme hat :\

justme1968

wenn du in einem verzeichnis in dem es von irgendwoher ein altes alexa-fhem gibt npm install sagst wird nicht die neueste version geholt und installiert sondern die version die in dem verzeichnis liegt.

d.h. schau im log welche version überhaupt gestartet wird.


willst du FHEM Connector verwenden oder deine eigenen skills?

für erster brauchst du weder key und cert noch port 3000.

schau im log ob überhaupt das config file genommen wird das du vermutest.

am besten nimmst du das automatisch generierte config file und setzt alexaFHEM-auth.

wenn du die ganze zeit neu und alt sowie automatisch und von hand editiert mischst ist ads helfen schwer...
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

87insane

Hi,

Version: this is alexa-fhem 0.5.15
Die ist also korrekt.

Brauche keine eigenen Skills. Habe nur Rollos, Lichter usw gesteuert bisher.

Dieses config File wird wohl verwendet lt. log:
using config from ./alexa-fhem.cfg

Anbei mal der ganze Schnippsel, der im LOG steht:

[03/02/2019, 13:41:47] using config from ./alexa-fhem.cfg
*** CONFIG: parsed completely
[03/02/2019, 13:41:47] os.homedir()=/opt/fhem
[03/02/2019, 13:41:47] this is alexa-fhem 0.5.15
[03/02/2019, 13:41:47] connecting to FHEM ...


ist os.homedir hier wirklich korrekt? So wie ich das nun verstehe liegt es ja in: /usr/local/lib/node_modules/alexa-fhem/

justme1968

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

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

87insane

Bis er dann am ende ganz den Dienst stoppt.....

[03/02/2019, 16:00:44] using config from ./alexa-fhem.cfg
*** CONFIG: parsed completely
[03/02/2019, 16:00:44] os.homedir()=/opt/fhem
[03/02/2019, 16:00:44] this is alexa-fhem 0.5.15
[03/02/2019, 16:00:44] connecting to FHEM ...
[03/02/2019, 16:00:44] [FHEM] trying longpoll to listen for fhem events
[03/02/2019, 16:00:44] [FHEM] starting longpoll: https://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON×tamp=1549206044787
[03/02/2019, 16:00:54] [FHEM] got csrfToken:
[03/02/2019, 16:00:54] [FHEM] Checking devices and attributes...
[03/02/2019, 16:00:54] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22%2C%22userattr%22%2C%22%22)%7D&XHR=1
[03/02/2019, 16:00:54] [FHEM]   executing: https://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE%3Dalexa&XHR=1
[03/02/2019, 16:00:54] [FHEM] waiting for events ...
[03/02/2019, 16:00:54] [FHEM] Fetching FHEM devices...
[03/02/2019, 16:00:54] [FHEM] fetching: https://127.0.0.1:8083/fhem?cmd=jsonlist2%20alexaName=..*&XHR=1
[03/02/2019, 16:00:54] [FHEM] longpoll ended, reconnect in: 200msec
[03/02/2019, 16:00:54] [FHEM] There was a problem connecting to FHEM (https://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22%2C%22userattr%22%2C%22%22)%7D&XHR=1).
[03/02/2019, 16:00:54] [FHEM]   401: Authorization Required
[03/02/2019, 16:00:54] [FHEM] trying longpoll to listen for fhem events
[03/02/2019, 16:00:54] [FHEM] starting longpoll: https://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON×tamp=1549206054665
[03/02/2019, 16:00:54] [FHEM] There was a problem connecting to FHEM (https://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE%3Dalexa&XHR=1).
[03/02/2019, 16:00:54] [FHEM]   401: Authorization Required
[03/02/2019, 16:00:54] [FHEM] There was a problem connecting to FHEM
[03/02/2019, 16:00:54] [FHEM]   401: Authorization Required
*** FHEM: connection failed: 401: Authorization Required

justme1968

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

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

87insane

Sooooo....

durch den Hinweis mit dem cfg File habe ich nun den Fehler finden dürfen.
In der alexa-fhem.cfg im Ordner opt/fhem war noch alter Kram drin. Warum man ein json + cfg hat usw ist mir unklar. Ich muss das alles nochmal genau nachlesen. Aktuell läuft es auch ohne alexaFHEM-auth, da es ja in der cfg u. der json steht.

Danke Dir!

reibuehl

Sorry, wenn ich mich an diesen älteren Thread dranhänge, aber ich habe genau das gleiche Problem und komme nicht weiter: Ich habe über längere Zeit Alexa-FHEM 0.4.4 mit Smart Home Skill und AWS Lambda verwendet. Alles lief, bis ich nach langer Zeit mal wieder ein update all in FHEM gemacht habe. Seither sind die Devices für Alexa nicht mehr erreichbar.
Ich habe wie in der Status Meldung angegeben und auch hier empfohlen das alte, über systemd gestartete alexa-fhem gestoppt und disabled und dann mit "sudo npm install -g alexa-fhem" das neue installiert. In FHEM wird mir jetzt "alexa-fhem version = 0.5.55" und "STATE = running /usr/bin/alexa-fhem" angezeigt, aber die Devices sind immer noch nicht erreichbar.
Im Logfile sehe ich unter anderem:
[2020-6-26 07:41:56] Server listening on: http://127.0.0.1:46299 for proxy connections
[2020-6-26 07:41:56] *** SSH: checking proxy configuration
[2020-6-26 07:41:56] sshautoconf: home=/root, spath=/root/.alexa, cpath=/opt/fhem/alexa-fhem.cfg, sshpath=/root/.ssh
[2020-6-26 07:41:56] Passed config: {"sshproxy":{"ssh":"/usr/bin/ssh","description":"FHEM Connector","options":["-i","/root/.ssh/id_rsa","-p",58824,"fhem-va.fhem.de"],"bind-ip":"127.0.0.1","port":46299},"connections":[{"port":"8083","webname":"fhem","filter":"alexaName=..*","server":"127.0.0.1","uid":0,"name":"FHEM"}]}
[2020-6-26 07:41:56] sshautoconf: SSH key seems to exist
[2020-6-26 07:41:56] sshautoconf: Our SSH key is known at the reverse proxy, good!

Heisst das, dass jetzt nicht mehr die direkte Verbindung zu AWS mit Portweiterleitung (Port 3000 in meinem Router) verwendet wird? Ich würde das eigentlich gerne so weiter betreiben und nicht über den öffentlichen Service von fhem.de gehen... geht das mit der Version nicht mehr?

Gruß,
Reiner
Reiner.

justme1968

natürlich geht das.

du musst dein altes config file dahin kopieren wo die neue version es erwartet.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

reibuehl

Zitat von: justme1968 am 26 Juni 2020, 10:17:00
du musst dein altes config file dahin kopieren wo die neue version es erwartet.

Ist das nicht der im Attribut alexaFHEM-config angegebene Pfad? Da habe ich /opt/fhem/alexa-fhem.cfg stehen und das ist mein altes config file.

Das sieht so aus:
{
   "sshproxy" : {
      "ssh" : "/usr/bin/ssh",
      "description" : "FHEM Connector"
   },
   "connections" : [
      {
         "port" : "8083",
         "webname" : "fhem",
         "filter" : "alexaName=..*",
         "server" : "127.0.0.1",
         "uid" : 0,
         "name" : "FHEM"
      }
   ]
}


Ist das falsch?
Reiner.

MadMax-FHEM

Das ist das config-File von alexa-fhem Connector und bestimmt NICHT (zumidest nicht vom Inhalt) dein altes config.json mit Portfreigabe etc.!

EDIT: hast du wie im Wiki erläutert auch ALLES alte (gesichert -> diese config.json brauchst du!) GELÖSCHT!! Bevor du neu auf alexa-fhem Connectror umgestiegen bist! Nur damit weitere Probleme ausgeschlossen werden... Hat jetzt nichts mit dem aktuellen "Problem" zu tun...

EDIT: ja es ist dein System... Trotzdem die Frage: WARUM willst du weiterhin einen OFFENEN Port und bei Amazon "deine" ;) node.js hosten (lassen)!!?? Also wenn du Custom Skill nutzt -> ja ok, dann musst du... Wenn nicht: Äh, welchen Grund gibt es da noch!?

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)

reibuehl

Hallo Joachim,

ich hab mal in meinen Backups nachgeschaut und das alexa-fhem.cfg sieht die letzten drei Monate genau so aus. Der FHEM Update, seit dem es nicht mehr läuft, war am 17.6.2020. Der Update davor war am 5.5.2020 und danach lief es noch.

Ein config.json gibt es auch noch - in /opt/fhem//alexa-fhem/.alexa:
{
    "alexa": {
        "port": 3003,
        "name": "Alexa TEST",
        "keyFile": "/opt/fhem/alexa-fhem/key.pem",
        "certFile": "/opt/fhem/alexa-fhem/cert.pem",
        "nat-pmp": "",
        "nat-upnp": false,
        "applicationId": "amzn1.ask.skill.######################",
        "oauthClientID": "amzn1.application-oa2-client.##################",
        "permissions": {"<skill-id>": { "client_id": "#####", "client_secret": "######"}}
    },

    "connections": [
        {
            "name": "FHEM",
            "server": "127.0.0.1",
            "port": "8083",
            "webname": "fhem",
            "filter": "room=Alexa"
        }
    ]
}


Muss ich das Attribut alexaFHEM-config darauf zeigen lassen?

Zu Deiner Frage "WARUM willst du weiterhin einen OFFENEN Port und bei Amazon?": Weil ich verstanden habe, wie das funktioniert und wie es abgesichert ist. Bei der Konstruktion mit fhem.de ist mir das nicht klar. Da verstehe ich weder wie das finanziell funktioniert noch ob ich mir da irgendwelche Risiken einhandle und wenn ja, welche. Falls es dazu eine gute Übersicht gibt, schau ich mir das gerne mal an. Aus dem/den entsprechenden, rießigen Thread(s) hier im Forum zu dem Thema bin ich bisher nicht schlau geworden. 

Gruß,
Reiner
Reiner.

MadMax-FHEM

Ja, das könnte das richtige Konfig-File sein... ;)

Ob du nun per Attribut dahin verweist (passende Rechte vorausgesetzt) oder den Inhalt in das per Edit-Files erreichbare "neue" alexa-fhem.cfg kopierst ist (wie man früher so schön sagte): Jacke wie Hose ;)

Das alexa-fhem.cfg kannst du jedereit über das Alexa-Modul neu "generieren" lassen...

Ich hoffe nur, dass NICHT zu viel/weiteres "alte Zeugs" vorhanden ist!
Macht (oft) Probleme wenn man "umsteigt"!!
(wirst du merken oder auch nicht ;)  )


Was die Absicherung betrifft, also wie es funktioniert etc., steht das doch sehr ausführlich im Wiki!

Bzgl. Finanzen: aktuell (noch) kostenfrei durch den Verein (Spenden "darf" man ;) )...

Vorteil von der Verwendung des Connectors: schnellere Reaktion...

Und: wie sicher ist ein offener Port wo auf Software weitergeleitet wird, die du auch nicht kennst (gut du kannst in den Code kucken) ;)

Aber: dein System...

EDIT: und wenn du nat. Custom Skill nutzt, dann musst du wohl den "alten" Weg eh "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)

justme1968

es gibt einen eigenen thread in dem beschrieben ist wie der connector funktioniert.

ich meine das beides gleich sicher ist. der connector reagiert schneller und ist einfacher einzurichten. die eigene installation ist (im guten wie im schlechten) unabhängig.

wenn man schon alles selber gemacht hat kann man auch weiter betreiben.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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