[gelöst] Probleme bei Installation etc. mit alexa-fhem Smart Home Skill

Begonnen von Kusselin, 04 April 2018, 20:06:44

Vorheriges Thema - Nächstes Thema

Kusselin

Hallo Joachim....

also soweit alles gemacht..

wenn ich nun wieder sudo /etc/init.d/alexa start eintippe dann kommt das wieder:
pi@raspberrypi:~ $ sudo /etc/init.d/alexa start

SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

-su: Zeile 0: cd: /opt/fhem/alexa-fhem: Datei oder Verzeichnis nicht gefunden
Alexa starting
Alexa is not running
script done
script done


und im Ordner alexa-fhem wurde jetzt ein log datei erstellt, das ist der Inhalt:
-su: ./bin/alexa: Datei oder Verzeichnis nicht gefunden


geändertes startscript:
#!/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/fhem/alexa-fhem"
export LOGPATH="/home/pi/alexa-fhem/log"
case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
        echo "Alexa is already running"
        perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Alexa is already running"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa.Status on"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa off"
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"
        perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Alexa is not running"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa.Status off"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa off"
else
        kill $PID
        echo "Alexa closed"
        perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Alexa closed"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa.Status off"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa off"
fi
;;
restart)
if ! ps -p $PID > /dev/null 2>&1; then
        $0 start
else
        $0 stop
        $0 start
fi
;;
status)
if ps -p $PID > /dev/null 2>&1; then
        echo "Alexa is running PID $PID"
        perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Alexa running as PID $PID"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa.Status on"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa off"
else
        echo "Alexa is not running"
        perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Alexa is not running"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa.Status off"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa off"
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
echo "script done"
exit 0


Gruss

MadMax-FHEM

Der Logeintrag ist klar, da ja der 'cd' (change directory) Befehl zuvor nicht geklappt hat.

Jetzt noch mal (bevor ich zurück springe).

Wohin hast du alexa-fhem installiert?

War doch (wie bei mir, wenn ich mich recht entsinne): /home/pi/alexa-fhem ?

Dann natürlich noch den ALEXAPATH anpassen, eben auf: /home/pi/alexa-fhem

Dann sollte es 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)

Kusselin

Zitat von: MadMax-FHEM am 04 April 2018, 20:15:55
Der Logeintrag ist klar, da ja der 'cd' (change directory) Befehl zuvor nicht geklappt hat.

Jetzt noch mal (bevor ich zurück springe).

Wohin hast du alexa-fhem installiert?

Wie ich schon geschrieben habe, habe ich mich erst an das Video von haus-automatisierung gehalten und da habe ich folgendes ausgeführt:
wget http://files.haus-automatisierung.com/alexa-fhem-0.3.4.tgz
tar -xzf alexa-fhem-0.3.4.tgz
mv package alexa-fhem
cd alexa-fhem


Wenn ich mich per Filezilla einwähle mit user:pi und meinem pass dann ist alex-fhem unter /home/pi zu finden !!


MadMax-FHEM

Klar, wenn du den 'wget' im Home-Verzeichnis von User 'pi' als User 'pi' ausgeführt hast, dann landet das nat. genau dort:

/home/pi/alexa-fhem

Hast du mal den Pfad im Startscript angepasst und gestartet:

sudo /etc/init.d/alexa start

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)

Kusselin

aha, jetzt habe noch den ALEXAPATH geändert und siehe da..wenn ich jetzt "sudo /etc/init.d/alexa start" eingebe, dann kommt folgendes...das muss man erstmal wissen......

pi@raspberrypi:~ $ sudo /etc/init.d/alexa start

SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

Alexa starting
Alexa is running PID 1966
script done
script done

MadMax-FHEM

Tja, drum heisst es ja "ALEXAPATH" ;)

So nun läuft es doch schon mal...
...in der Logdatei sollte jetzt die gewohnte Ausgabe stehen (also so ähnlich wie beim Start per ./bin/alexa von der Console aus)...

Jetzt dann noch systemd wieder "deaktivieren", damit da nichts durcheinander kommt und den initd als service einrichten, damit das dann auch beim Booten automatisch startet.

Sofern du es so laufen lassen 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)

Kusselin

Zitat von: MadMax-FHEM am 04 April 2018, 20:24:57
Klar, wenn du den 'wget' im Home-Verzeichnis von User 'pi' als User 'pi' ausgeführt hast, dann landet das nat. genau dort:

/home/pi/alexa-fhem

Hast du mal den Pfad im Startscript angepasst und gestartet:

sudo /etc/init.d/alexa start

Gruß, Joachim

du bist klasse :D so langsam wird mir immer mehr klar..ich dachte immer noch mit dem Befehl wget http://files.haus-automatisierung.com/alexa-fhem-0.4.4.tgz woher weiss linux das es das /home/pi verzeichnis ist??? klar...vorher cd gemacht dann bin ich im home Verzeichnis...deshalb muss man dann da auch aufpassen wenn man diesen Befehl ausführt wo man gerade steht...o.k. aber das ist jetzt nicht das Thema....

Ahaaa jetzt läuft auch in Fhem die Statuslampe auf Gelb und leuchtet :D

Kusselin

Zitat von: MadMax-FHEM am 04 April 2018, 20:28:54
Tja, drum heisst es ja "ALEXAPATH" ;)

So nun läuft es doch schon mal...
...in der Logdatei sollte jetzt die gewohnte Ausgabe stehen (also so ähnlich wie beim Start per ./bin/alexa von der Console aus)...

Jetzt dann noch systemd wieder "deaktivieren", damit da nichts durcheinander kommt und den initd als service einrichten, damit das dann auch beim Booten automatisch startet.

Sofern du es so laufen lassen willst...

Gruß, Joachim

Könnten wir das noch zusammen machen mit dem deaktivieren und den initd service.....
ich möchte es gerne so haben das ich nicht ständig wenn ich ev. mal neustarte immer alexa manuell starten muss..

hat doch jetzt echt nicht lange gedauert.. ;)

Danke Dir trotzdem

MadMax-FHEM

Zitat von: Kusselin am 04 April 2018, 20:29:06
du bist klasse :D so langsam wird mir immer mehr klar.

Danke! Bitte gerne...

Zitat von: Kusselin am 04 April 2018, 20:29:06
Ahaaa jetzt läuft auch in Fhem die Statuslampe auf Gelb und leuchtet :D

Jep, weil das im Script durch die Befehle gemacht wird, daher passt auch nur initd zu dem DOIF/Dummies:


        perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Alexa is already running"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa.Status on"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa off"


Jetzt dann noch:

sudo update-rc.d alexa defaults

Dadurch wird das initd-Script als "Dienst" eingerichtet und somit beim Systemstart automatisch gestartet...

Dann sollten wir noch systemd wieder "weg machen", nicht dass da dann beim Booten was durcheinander kommt...

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)

MadMax-FHEM

So, jetzt aber genau überlegen!
Bevor wir systemd Zeugs "deaktivieren"!!

Heißt die von dir angelegte alexa-Startdatei unter systemd tatsächlich so:

/etc/systemd/system

Hast du etwas wie:

sudo systemctl enable system

ausgeführt?
(Sofern die Datei tatsächlich so heißt / ansonsten nat. mit dem jeweiligen tatsächlichen Namen)

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)

Kusselin

halt Joachim...bevor ich jetzt was falsches mache.......es funzt ja alles soweit jetzt...habe noch bissl probleme mit namen da alexa net alles kennt aber das bekomme ich hin....

sollte man dann wirklich jetzt das systemd entfernen??


ich habe eine Datei namens  alexa.service   in diesem Pfad angelegt /etc/systemd/system

mit dem Inhalt:
[Unit]
Description=Node.js Alexa Server
After=syslog.target network-online.target

[Service]
Type=simple
User=alexa
WorkingDirectory=/opt/fhem/alexa-fhem
ExecStart=/opt/fhem/alexa-fhem/bin/alexa -U /home/pi/.alexa
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target


den status habe ich abgefragt wie im wiki beschrieben....sudo systemctl status alexa

ob ich jetzt sudo systemctl enable system eingegeben habe..weiss ich nimmer...sorry

Kusselin

den befehl sudo update-rc.d alexa defaults habe ich eben als benutzer pi nochmal ausgeführt!!

MadMax-FHEM

#12
Weil wir gerade dabei sind:

wenn du 'sudo' benutzt, dann führst du es nicht als User 'pi' aus (oder nur "indirekt"), sondern als 'root': superuser do (oder so ähnlich ;)  )...

EDIT2: das (sudo) hilft auch mal, wenn du mit dem "normalen" User 'pi' nicht mehr "weiter kommst". Aber halt aufpassen: was immer du tust du tust es dann als 'root'! Daher: sudo nicht "überstrapazieren" und genau schauen, ob es tatsächlich nötig ist...

Also ich würde sicherheitshalber die systemd Sachen "zurückbauen"...
...aber es ist dein System.

Solange es keine Probleme gibt (und du dich nicht traust/sicher bist) kannst du es nat. auch lassen...

Hier mal was zu tun ist, wenn du dich doch entscheidest:

sudo systemctl disable alexa

Danach die Datei löschen:

sudo rm /etc/systemd/system/alexa.service
(sollte kein Problem sein, die hast du ja selbst angelegt)

Wenn die Datei auf dem System bleibt (und ausführbar ist) und du evtl. doch 'sudo systemctl enable alexa' ausgeführt hast, dann wird die Datei bei jedem Boot ausgeführt.
Wenn sie nichts macht oder "nur" Fehler liefert, dann naja...
...das wird wohl so sein, da ja der Start von alexa-fhem per systemd nicht geklappt hat...

Dann sollte das System wieder sauber sein.

Sicherheitshalber danach noch mal:

sudo update-rc.d alexa defaults

Damit auch sichergestellt ist, dass der Dienst 'alexa' wieder "installiert/angelegt" ist...
...halt mittels initd...

So, dann viel Spaß noch!

EDIT: achja, wenn das dann läuft den Thread noch auf gelöst setzen. Umbenennen in beispielsweise "[gelöst] Probleme bei Installation etc. mit alexa-fhem Smart Home Skill"

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)

Kusselin

#13
du schreibst " wenn du sudo benutzt dann führst du es nicht per user pi aus".....was meinst du was führe ich nicht als pi aus??????

hab jetzt mal den befehl abgesetzt unter user pi:

pi@raspberrypi:~ $ sudo systemctl disable alexa
Synchronizing state of alexa.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable alexa


das kommt raus...ist das o.K.??

hab mich nochmal über filezilla mit root rechten angemeldet und in den Ordner /etc/systemd/system/ und die datei ist weg!!! nachdem ich das ausgeführt habe: sudo rm /etc/systemd/system/alexa.service

Kusselin

wenn ich jetzt einen reboot des systems durchführe also zb sudo reboot dann müsste alexa automatisch an sein und wenn ich fhem starte müsste die Glühbirne gelb leuchten...richtig???

Gruss