[alexa-fhem | Generell] Alles zu Installation und damit verbundenen Problemen

Begonnen von prodigy7, 09 November 2016, 19:42:01

Vorheriges Thema - Nächstes Thema

baerbel

.. zu allererst sorry, dass ich aus dir einen "Heumann" gemacht hat habe -

in AWS sieht mein Testevent folgendermassen aus:

{
  "key3": "value3",
  "key2": "value2",
  "key1": "value1"
}



Neben Test auf Actions ... wie gesagt, bin da leider nicht fit -

Nochmal zurück zu eigentlichen Problem: Dein Tigger ist korrekt gesetzt? Verwendest du beide Skills? smartphone & custom?

Grüße - Bernd

sbiermann

Ich habe mal ein Docker Image erstellt mit dem man den ersten Teil der Installation dem installieren des Node JS Service sehr vereinfachen kann. Die Vorteile von dem Docker Image sind:

  • Installation und Versionsprobleme mit Node.js entfallen, da das Image bzw. Container alles mit liefert.
  • Für Debugging muss nicht extra neu gestartet werden, die Logs können während dem laufenden Betrieb ausgelesen werden.
  • Ein Update ist ziemlich einfach, nur neuer Container pullen und starten und schon hat man die aktuellste Version.

Voraussetzung zur Nutzung des Docker Images ist eine Raspberry Pi 3 oder 2 oder vergleichbare ARM CPU Geschichte mit installierten Docker. Mit Raspbian Jessie geht das mit einen Befehl siehe : https://www.raspberrypi.org/blog/docker-comes-to-raspberry-pi/. Das Image basiert auf dem Debian Jessie und nicht Alpine, daher ist es etwas größer und ein Pull dauert länger bei langsamer Internetanbindung. Es ist auch möglich das Image ab Docker Version 1.13 auf einer Maschine mit x68 Architektur laufen zu lassen, aber davon würde ich abraten da ich nicht weiß welche Nebeneffekt das hat. Bei Bedarf kann ich da einfach ein passendes Image für x86 erzeugen.

Da ich das Ganze auf einen Raspberry Pi 3 nutze ist hier die Anleitung auch entsprechend dafür auslegt. Lässt sich sicherlich auch beliebig anpassen auf andere Systeme. Die in der Anleitung genannten Pfade auf dem Pi können natürlich geändert werden, die Pfade im Image hingegeben nicht.

1. Erzeugen des Verzeichnis /home/pi/alexa-docker-config
2. Anlegen einer config.json in dem Verzeichnis mit folgenden Inhalt:{
"alexa": {
     "name": "Alexa TEST",
     "keyFile": "./key.pem",
     "certFile": "./cert.pem",
     "nat-pmp": "",
     "nat-upnp": false,
     "applicationId": "amzn1.ask.skill.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
     "oauthClientID": "amzn1.application-oa2-client.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},

"connections": [
     {
         "name": "FHEM",
         "server": "10.0.1.21",
         "port": "8083",
         "filter": "room=alexa"
     }
]
}

3. Werte im config.json entsprechend seiner Konfiguration anpassen
4. Im Verzeichnis /home/pi/alexa-docker-config den Befehl
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 und openssl rsa -in key.pem -out newkey.pem && mv newkey.pem key.pem ausführen. Damit ist dann das notwendige Zertifikat installiert.
5. Jetzt kann das Docker Image mit dem Befehl docker run -d --name alexa -p 3000:3000 -v /home/pi/alexa-docker-config/:/config sbiermann/rpi-alexa-fhem:0.1.9 gestartet werden.

Die Logs die geschrieben werden kann man mit docker logs alexa anschauen. Stoppen kann man den Container mit docker stop alexa und wieder starten mit docker start alexa

Breaked

Zitat von: baerbel am 23 Januar 2017, 21:35:56
.. aus

su - "pi" -c "cd $ALEXAPATH;./bin/alexa > $LOGPATH/alexa-`date +%Y-%m`.log  2>&1 &"

sollte

su - "pi" -c "cd $ALEXAPATH;./bin/alexa > 2>&1 &"

werden -

den alexapath auf das Verzeichnis anpassen, von welchem du es händisch starten kannst - vermutlich hattest du mal im Homeverzeichnis angefangen und dann an einem anderen Ort installiert -

Grüße - Bernd


Done, allerdings startet das Script so auch nicht durch. Weder manueller Aufruf "sudo /etc/init.d/alexa start" noch via FHEM.
Konsolenausgabe lautet derzeit wiefolgt:
pi@raspberrypi:~ $ sudo /etc/init.d/alexa start
Alexa starting
Alexa is not running
script done
script done
pi@raspberrypi:~ $

Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

Mr. P

Hej Breaked,

postest du einmal den Output, wenn du:
sh -x /etc/init.d/alexa start
ausführst?
Greetz,
   Mr. P

Breaked

Klar, sieht so aus

pi@raspberrypi:~ $ sh -x /etc/init.d/alexa start
+ export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/usr/local/bin
+ export NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript:/usr/local/lib/node_modules
+ pidof alexa
+ PID=
+ export ALEXAPATH=/opt/fhem/alexa-fhem
+ export LOGPATH=/opt/fhem/log
+ ps -p
+ date +%Y-%m
+ su - pi -c cd /opt/fhem/alexa-fhem;./bin/alexa > /opt/fhem/log/alexa-2017-01.log 2>&1 &
Password:
+ echo Alexa starting
Alexa starting
+ sleep 2
+ /etc/init.d/alexa status
Alexa is not running
script done
+ echo script done
script done
+ exit 0
pi@raspberrypi:~ $
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

Mr. P

Sieht so aus, als würde er beim Ausführen das Passwort für den pi-User verlangen.
Password:

Das Startscript sollte doch auch als root gestartet werden und dann alexa-fhem als pi-User ausführen.
Versuch das einmal.

Also:
sudo su -
/etc/init.d/alexa start
Greetz,
   Mr. P

Breaked

Das funktioniert auch nicht so wirklich...

pi@raspberrypi:~ $ sudo su -
root@raspberrypi:~# /etc/init.d/alexa start
Alexa starting
Alexa is not running
script done
script done
root@raspberrypi:~#
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

Mr. P

Das kann jetzt aber auch gut einen anderen Grund haben.

Als root bitte nochmal:
sh -x /etc/init.d/alexa start
Greetz,
   Mr. P

Breaked

root@raspberrypi:~# sh -x /etc/init.d/alexa start
+ export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin
+ export NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript:/usr/local/lib/node_modules
+ pidof alexa
+ PID=
+ export ALEXAPATH=/opt/fhem/alexa-fhem
+ export LOGPATH=/opt/fhem/log
+ ps -p
+ date +%Y-%m
+ su - pi -c cd /opt/fhem/alexa-fhem;./bin/alexa > /opt/fhem/log/alexa-2017-01.log 2>&1 &
+ echo Alexa starting
Alexa starting
+ sleep 2
+ /etc/init.d/alexa status
Alexa is not running
script done
+ echo script done
script done
+ exit 0
root@raspberrypi:~#
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

Mr. P

Mach mal ein:
rm -rf /opt/fhem/log/alexa-2017-01.log
und dann nochmal:
sh -x /etc/init.d/alexa start

Sollte das auch nicht klappen, dann mach mal als root:
su - pi -c cd /opt/fhem/alexa-fhem;./bin/alexa
und poste bitte den Output.
Greetz,
   Mr. P

Breaked

Gleiches Spiel.


root@raspberrypi:~# rm -rf /opt/fhem/log/alexa-2017-01.log
root@raspberrypi:~# sh -x /etc/init.d/alexa start
+ export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin
+ export NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript:/usr/local/lib/node_modules
+ pidof alexa
+ PID=
+ export ALEXAPATH=/opt/fhem/alexa-fhem
+ export LOGPATH=/opt/fhem/log
+ ps -p
+ date +%Y-%m
+ su - pi -c cd /opt/fhem/alexa-fhem;./bin/alexa > /opt/fhem/log/alexa-2017-01.log 2>&1 &
+ echo Alexa starting
Alexa starting
+ sleep 2
+ /etc/init.d/alexa status
Alexa is not running
script done
+ echo script done
script done
+ exit 0
root@raspberrypi:~#
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

MadMax-FHEM

Mal eine andere Frage:

wie genau startest du denn alexa-fhem wenn es läuft??

Also unter welchem User und mit welchem Aufruf in welchem Pfad...

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)

Breaked

Ich starte es unter dem User pi mittels: "./bin/alexa" unter dem Pfad "/home/pi/alexa-fhem".
So, wie auch im Wiki beschrieben unter "Alexa-Fhem installieren, Punkt 7".
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

MadMax-FHEM

#808
Zitat von: Breaked am 24 Januar 2017, 17:16:37
Ich starte es unter dem User pi mittels: "./bin/alexa" unter dem Pfad "/home/pi/alexa-fhem".
So, wie auch im Wiki beschrieben unter "Alexa-Fhem installieren, Punkt 7".

ABER: in dem Startscript wird versucht alexa-fhem in /opt/fhem/alexa-fhem zu starten!!

Habe ich weiter oben bereits angemerkt...

EDIT: Pfade anpassen! Also /opt/fhem/alexa-fhem gegen /home/pi/alexa-fhem tauschen. Gleiches mit dem Log-Pfad...

Was passiert, wenn du alexa-fhem in /opt/fhem/alexa-fhem starten willst???

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)

DeeSPe

Warum richten fast alle den Service als (deprecated) init.d ein?
Wenn man den vernünftig per systemd einrichtet gibt es diese ganzen (lästigen) Fragen nicht, denn dann läuft der Dienst unter einem eigenen Benutzer (alexa), das Startskript ist wesentlich übersichtlicher und man kann auch direkt mit journalctl in die laufende Konsole hineinschauen...

Just my 2 cents...

Gruß
Dan

P.S. Ich bin nach fast 2 Wochen mit Alexa (Echo Dot) so überhaupt nicht von diesem System überzeugt! Einen wirklichen Mehrwert (zusätzlich oder auch alternativ zu Siri) kann ich für mich nicht erkennen.
Morgen werde ich den Dot wieder Retour schicken.
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe