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
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
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
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.
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.
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
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
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...
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
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.
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?
Irgendwelches HomeBridgeMapping auf einem Device gefällt ihr nicht.
ja, habe es gefunden. Jetzt läuft auch die neue Version von Alexa. :-)
Danke für die Hinweise/Mühe.
Thomas