[gelöst]Error: ENOENT: no such file or directory, open './key.pem'

Begonnen von tklein, 03 September 2017, 12:28:43

Vorheriges Thema - Nächstes Thema

tklein

Hallo,

seit einem Raspineustart zickt meine Alexa mit der oben genannten Fehlermeldung. Da ich trotz dem Lesen der entsprechenden Forumseinträge nicht weitergekommen bitte, wäre es klasse, wenn mir jemand helfen könnte:
Vor dem Neustart hat alles funktioniert. Das Zertifikat habe ich neu generiert.

Consolenausgabe beim Start von ./alexa:

pi@pi:/opt/alexa-fhem3/bin $ ./alexa
[2017-09-03 12:05:46] using /home/pi/.alexa/config.json
[2017-09-03 12:05:46] ---
[2017-09-03 12:05:46] this alexa-fhem 0.3.1
fs.js:640
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: ENOENT: no such file or directory, open './key.pem'
    at Error (native)
    at Object.fs.openSync (fs.js:640:18)
    at Object.fs.readFileSync (fs.js:508:33)
    at Server.startServer (/opt/alexa-fhem3/lib/server.js:117:15)
    at Server.run (/opt/alexa-fhem3/lib/server.js:238:8)
    at module.exports (/opt/alexa-fhem3/lib/cli.js:30:10)
    at Object.<anonymous> (/opt/alexa-fhem3/bin/alexa:17:22)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)


Keys:

pi@pi:/opt/alexa-fhem3 $ ls -la | grep pem
-rwxrwxrwx  1 pi   pi   1302 Sep  3 11:19 cert.pem
-rw-r--r--  1 pi   pi   1679 Sep  3 11:19 key.pem




Config.json unter /home/pi/.alexa:

{
    "alexa": {
        "name": "Alexa FHEM",
        "keyFile": "./key.pem",
        "certFile": "./cert.pem",
        "nat-pmp": "",
        "nat-upnp": false,
        "applicationId": "amzn1.ask.skill.xxx",
        "oauthClientID": "amzn1.application-oa2-.yyy"
    },

    "connections": [
        {
            "name": "FHEM",
            "server": "192.168.0.49",
            "port": "8083",
            "ssl":true,
        "auth": {
        "user": "dummy_bn",
        "pass": "dummy_pw"
        },
                "filter": "room=alexa"
        }
    ]
}


pi@pi:/etc/init.d $ sudo nano alexa:


#!/bin/sh
### BEGIN INIT INFO
# Provides: alexa
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time for alexa
# Description: Enable service provided by daemon.
### END INIT INFO
export PATH=$PATH:/usr/local/bin
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules
PID=`pidof alexa`
export ALEXAPATH="/opt/alexa-fhem3"
export LOGPATH="/opt/alexa-fhem3/log"

case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
    echo "Alexa is already running"
else
    su - "pi" -c "cd $ALEXAPATH;./bin/alexa > $LOGPATH/alexa-`date +%Y-%m`.log 2>&1 &"
    echo "Alexa starting"
    sleep 2
    $0 status
fi
;;
stop)
if ! ps -p $PID > /dev/null 2>&1; then
    echo "Alexa is not running"
else
    kill $PID
    echo "Alexa closed"
fi
;;


...



Alexa.log:

[2017-09-03 10:16:05] [FHEM] homebridgeMapping: 1
/opt/alexa-fhem3/lib/fhem.js:858
      if( match === undefined || match.length < 4 || !match[3] ) {
                                      ^

TypeError: Cannot read property 'length' of null
    at FHEMDevice.fromHomebridgeMapping (/opt/alexa-fhem3/lib/fhem.js:858:39)
    at new FHEMDevice (/opt/alexa-fhem3/lib/fhem.js:2114:8)
    at FHEM.<anonymous> (/opt/alexa-fhem3/lib/fhem.js:756:39)
    at Array.map (native)
    at FHEM.<anonymous> (/opt/alexa-fhem3/lib/fhem.js:753:31)
    at Request.self.callback (/opt/alexa-fhem3/node_modules/request/request.js:186:22)
    at emitTwo (events.js:106:13)
    at Request.emit (events.js:191:7)
    at Request.<anonymous> (/opt/alexa-fhem3/node_modules/request/request.js:1081:10)
    at emitOne (events.js:96:13)



Freue mich auf Tips/Lösungsansätze
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

Sarhidyon

Code von oben nach unten:

1.
Hört sich für mich so an, als würde er den Datei nicht finden. Sicher das die dort liegt, wo du sie in der config angegeben hast? Sonst gibt in der Config mal den kompletten Pfad zur PEM an.

2.
Sieht bei mir anders aus als bei dir.

pi@Pi3-FHEM:~ $ ls -la alexa-fhem | grep pem
-rw-r--r--  1 pi pi 1379 Sep  2 21:45 cert.pem
-rw-------  1 pi pi 1675 Sep  2 21:45 key.pem


3.

Da scheint mir die Hälfte bei deiner Datei zu fehlen. zum einen hast du HTTPS aktiviert und die Passwortabfrage? Dann musst du diese auch in der Config eintragen und ssl auf true setzen.

{
    "alexa": {
        "port": 3000,
        "name": "Alexa FHEM",
        "keyFile": "./key.pem",
        "certFile": "./cert.pem",
        "nat-pmp": "",
        "nat-upnp": false,
        "applicationId": "amzn1.ask.skill.xxxx",
        "oauthClientID": "amzn1.application-oa2-client.xxxxx"
    },
   
    "connections": [
        {
            "name": "FHEM",
            "server": "127.0.0.1",
            "port": "8083",
            "webname": "fhem",
    "ssl": true,
    "auth": {"user": "DEINlogin", "pass": "DEINpasswort"},
            "filter": "room=alexa"
        }
    ]
}


4.

Welche Versionen verwendest du denn?? Bei mir gehts und ich habe die folgenden:


-Raspberry Pi3 B
- Raspbian Stretch
- FHEM 5.8
- node v.4.3.2
- alexa-fhem-0.3.5.tgz
- Staatische IP V4 vorhanden
- 3000 Port ist auch von außen erreichbar



tklein

Hi,

Zitat1.
Hört sich für mich so an, als würde er den Datei nicht finden. Sicher das die dort liegt, wo du sie in der config angegeben hast? Sonst gibt in der Config mal den kompletten Pfad zur PEM an.
--> was meinst du mit PEM?

ZitatDa scheint mir die Hälfte bei deiner Datei zu fehlen. zum einen hast du HTTPS aktiviert und die Passwortabfrage? Dann musst du diese auch in der Config eintragen und ssl auf true setzen.
--> beim runterscrollen in meinem Post sieht du die Daten.

Das System lief bei mir ca. 6 Monate mit der bestehenden Konfiguration. Nur nach dem Neustart vom Raspi klappt das nicht mehr, daher gehe ich nicht davon aus, dass die bestehende Konfig falsch ist.

Grüße
Thomas
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

Sarhidyon

Error: ENOENT: no such file or directory, open './key.pem'

Hört sich für mich so an, als würde er deine key files (key und cert.pem) nicht mehr finden. Oder er hat sie zerschossen. Mach mal nen Backup der dateien und erstell neue files. Würde ich zumindest mal versuchen.

Oh sorry, hab in dem Feld nicht runter gescrollt.  ;D

Hmm würde darauf tippen das er beim neu starten irgendwas geupdatet hat und jetzt damit nicht mehr klar kommt.

Ich würde da du eh ne ältere Alexa-Fhem Version benutzt. den Ordner umbenennen und die aktuelle Version mal neu installieren und deine cert.pem und key.pem da rein kopieren und nochmal testen.

tklein

die habe ich bereit neu erstellt.

ZitatVor dem Neustart hat alles funktioniert. Das Zertifikat habe ich neu generiert.

Die Anpassung der Config.json mit


{
    "alexa": {
        "name": "Alexa FHEM",
        "keyFile": " ../../../opt/alexa-fhem3/key.pem",
        "certFile": " ../../../opt/alexa-fhem3/cert.pem",
        "nat-pmp": "",
        "nat-upnp": false,


hat leider nichts gebracht.
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

tklein

wo muss die key.pm denn liegen, wenn in der config.json unter home/pi/.alexa  "./key.pem" als Pfad steht? Im Homeverzeichnis vom User Pi? Derzeit ist die Datei unter /opt/fhem-alexa3 zu finden
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

tklein

bei alexa 0.3.4 ist es das gleiche:


pi@pi:~/alexa-fhem/bin $ ./alexa

[2017-09-03 16:20:29] using /home/pi/.alexa/config.json
[2017-09-03 16:20:30] ---
[2017-09-03 16:20:30] this is alexa-fhem 0.3.4
fs.js:640
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: ENOENT: no such file or directory, open ' ./key.pem'
    at Error (native)
    at Object.fs.openSync (fs.js:640:18)
    at Object.fs.readFileSync (fs.js:508:33)
    at Server.startServer (/home/pi/alexa-fhem/lib/server.js:119:15)
    at Server.run (/home/pi/alexa-fhem/lib/server.js:240:8)
    at module.exports (/home/pi/alexa-fhem/lib/cli.js:30:10)
    at Object.<anonymous> (/home/pi/alexa-fhem/bin/alexa:17:22)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)

pi@pi:~/alexa-fhem/bin $ cd ..
pi@pi:~/alexa-fhem $ ls -la

insgesamt 56
drwxr-xr-x  5 pi pi 4096 Sep  3 16:20 .
drwxr-xr-x 40 pi pi 4096 Sep  3 16:17 ..
drwxr-xr-x  2 pi pi 4096 Sep  3 16:17 bin
-rw-r--r--  1 pi pi 1371 Sep  3 16:19 cert.pem
-rw-r--r--  1 pi pi  573 Feb 19  2017 config-sample.json
-rwxr-xr-x  1 pi pi  150 Nov  5  2016 createKey.sh
-rw-r--r--  1 pi pi 1679 Sep  3 16:20 key.pem
-rw-r--r--  1 pi pi 1183 Dez 23  2016 lambda.js
drwxr-xr-x  2 pi pi 4096 Sep  3 16:17 lib
drwxr-xr-x 70 pi pi 4096 Sep  3 16:17 node_modules
-rw-r--r--  1 pi pi   33 Nov  5  2016 .npmignore
-rw-r--r--  1 pi pi  373 Apr 26 08:39 package.json
-rw-r--r--  1 pi pi 2830 Nov  8  2016 README.md
-rw-r--r--  1 pi pi 1597 Mär 13 08:38 TODO


habe die ./create.Key.sh aufgerufen und die Keys generiert. Die liegen direkt im home/alexa-fhem vom User Pi.
Gibt es evtl. Probleme, wenn die createKey.sh zu oft aufgerufen wird?

Grüße
Thomas
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

Sarhidyon

Zitat von: tklein am 03 September 2017, 15:28:07
wo muss die key.pm denn liegen, wenn in der config.json unter home/pi/.alexa  "./key.pem" als Pfad steht? Im Homeverzeichnis vom User Pi? Derzeit ist die Datei unter /opt/fhem-alexa3 zu finden

Also die Config liegt bei mir auch in .alexa und die pem Dateien liegen im alexa-fhem ordner.. Also genauso wie bei dir. Sehr komisch...

Sarhidyon

Zitat von: tklein am 03 September 2017, 16:28:25
bei alexa 0.3.4 ist es das gleiche:


pi@pi:~/alexa-fhem/bin $ ./alexa

[2017-09-03 16:20:29] using /home/pi/.alexa/config.json
[2017-09-03 16:20:30] ---
[2017-09-03 16:20:30] this is alexa-fhem 0.3.4
fs.js:640
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: ENOENT: no such file or directory, open ' ./key.pem'
    at Error (native)
    at Object.fs.openSync (fs.js:640:18)
    at Object.fs.readFileSync (fs.js:508:33)
    at Server.startServer (/home/pi/alexa-fhem/lib/server.js:119:15)
    at Server.run (/home/pi/alexa-fhem/lib/server.js:240:8)
    at module.exports (/home/pi/alexa-fhem/lib/cli.js:30:10)
    at Object.<anonymous> (/home/pi/alexa-fhem/bin/alexa:17:22)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)

pi@pi:~/alexa-fhem/bin $ cd ..
pi@pi:~/alexa-fhem $ ls -la

insgesamt 56
drwxr-xr-x  5 pi pi 4096 Sep  3 16:20 .
drwxr-xr-x 40 pi pi 4096 Sep  3 16:17 ..
drwxr-xr-x  2 pi pi 4096 Sep  3 16:17 bin
-rw-r--r--  1 pi pi 1371 Sep  3 16:19 cert.pem
-rw-r--r--  1 pi pi  573 Feb 19  2017 config-sample.json
-rwxr-xr-x  1 pi pi  150 Nov  5  2016 createKey.sh
-rw-r--r--  1 pi pi 1679 Sep  3 16:20 key.pem
-rw-r--r--  1 pi pi 1183 Dez 23  2016 lambda.js
drwxr-xr-x  2 pi pi 4096 Sep  3 16:17 lib
drwxr-xr-x 70 pi pi 4096 Sep  3 16:17 node_modules
-rw-r--r--  1 pi pi   33 Nov  5  2016 .npmignore
-rw-r--r--  1 pi pi  373 Apr 26 08:39 package.json
-rw-r--r--  1 pi pi 2830 Nov  8  2016 README.md
-rw-r--r--  1 pi pi 1597 Mär 13 08:38 TODO


habe die ./create.Key.sh aufgerufen und die Keys generiert. Die liegen direkt im home/alexa-fhem vom User Pi.
Gibt es evtl. Probleme, wenn die createKey.sh zu oft aufgerufen wird?

Grüße
Thomas

Eigentlich nicht, hat der Typ in dem Tutorial Video auch 2-3 mal gemacht, das gab eigentlich keine Probleme. Was halt komisch ist, das es 6 Monate lief und jetzt auf einmal nicht mehr, wenn sich sonst nichts geändert hat. Schwer da ne Fehlerquelle zu finden. hmmm

amenomade

Du sollst nicht ins bin Verzeichnis wechseln, und dort ./alexa starten, sondern, wie im Wiki gesagt, aus dem /opt/fhem/alexa-fhem Verzeichnis direkt  ./bin/alexa starten.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

tklein

danke für den Hinweis! Bin jetzt weiter.

Allerdings bricht er jetzt hier ab:

[2017-09-03 21:44:12] [FHEM] homebridgeMapping: 1
/opt/alexa-fhem3/lib/fhem.js:858
      if( match === undefined || match.length < 4 || !match[3] ) {
                                      ^

TypeError: Cannot read property 'length' of null
    at FHEMDevice.fromHomebridgeMapping (/opt/alexa-fhem3/lib/fhem.js:858:39)
    at new FHEMDevice (/opt/alexa-fhem3/lib/fhem.js:2114:8)
    at FHEM.<anonymous> (/opt/alexa-fhem3/lib/fhem.js:756:39)
    at Array.map (native)
    at FHEM.<anonymous> (/opt/alexa-fhem3/lib/fhem.js:753:31)
    at Request.self.callback (/opt/alexa-fhem3/node_modules/request/request.js:1                                             86:22)
    at emitTwo (events.js:106:13)
    at Request.emit (events.js:191:7)
    at Request.<anonymous> (/opt/alexa-fhem3/node_modules/request/request.js:108                                             1:10)
    at emitOne (events.js:96:13)


da habe ich jetzt leider auch keine Ahnung/Idee?
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

amenomade

Irgendwelches HomeBridgeMapping auf einem Device gefällt ihr nicht.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

tklein

ja, habe es gefunden. Jetzt läuft auch die neue Version von Alexa. :-)

Danke für die Hinweise/Mühe.
Thomas
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2