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

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

Vorheriges Thema - Nächstes Thema

sbiermann

Zitat von: marty29ak am 12 Februar 2017, 06:15:46
Kann man das Paket evtl. auch für Docker auf einer Synology NAS anpassen?
Ich habe eine DS716+II, dort ist die Docker Version 1.11.2  das neuste was Synology bereit stellt.
Ja, sollte gehen. Was ist da für eine CPU Architektur drin? X86?
Mein Synology NAS unterstützt kein Docker somit kann ich zwar ein Image bauen aber nicht testen.

marty29ak

Danke für die schnelle Antwort.  :)
Mein NAS hat einen Intel Celeron N3160 64-bit Prozessor und 8GB RAM

Ich nutze zwar für Fhem auch einen RPI aber der ist jetzt schon manchmal etwas langsam, so das ich nicht noch zusätzlich Docker darauf nutzen möchte.
Gruß Martin

sbiermann

Ich habe mal ein x86 Image erstellt, sollte eigentlich auch im NAS funktionieren. Die Anleitung ist gleich geblieben nur /home/pi sollte man durch das Verzeichnis seines Users ersetzen.

docker run -d --name alexa -p 3000:3000 -v /home/<user>/alexa-docker-config/:/config sbiermann/x86-alexa-fhem:0.2.0

MadMax-FHEM

Zitat von: TWART016 am 11 Februar 2017, 21:46:57
Ich bin gerade dabei ein Custom Skill anzulegen.

2 Geräte konnte ich bisher über das Smart Home Skill steuern. Jetzt habe ich die rooms gelöscht und alexaName und alexaRoom vergeben, sowie den Server neu gestartet.

Nun versucht ich auf alexa.amazon.de die Geräte zu suchen, jedoch wird keines gefunden.

Kennt einer das Problem?

Beim Custom Skill gibt es keine Geräte unter Smart Home.
Das ist nur für den Smart Home Skill.

Sollte aber im Wiki oder so stehen...

Du kannst aber die Geräte mit beidem betreiben.
Mache ich so...

D.h. ich kann das Licht etc. einschalten: Alexa schalte das Licht ein
Oder: Alexa sag MEINSKILLNAME schalte das Licht ein

Wobei ich den Custom Skill aktuell hauptsächlich für die Statusabfrage nutze: Alexa frag MEINSKILLNAME nach dem Status im Wohnzimmer

Du musst nur nach dem alles konfiguriert ist die CustomSlotTypes und Intents/Utterances etc. in AWS eintragen...

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)

marty29ak

Zitat von: sbiermann am 12 Februar 2017, 10:05:25
Ich habe mal ein x86 Image erstellt, sollte eigentlich auch im NAS funktionieren. Die Anleitung ist gleich geblieben nur /home/pi sollte man durch das Verzeichnis seines Users ersetzen.

docker run -d --name alexa -p 3000:3000 -v /home/<user>/alexa-docker-config/:/config sbiermann/x86-alexa-fhem:0.2.0

Danke dir!!! Werde es Morgen früh testen und dir Bescheid geben.
Gruß Martin

Stefan M.

Hallo zusammen
könnte bitte jemand eine wget-tauglichen Link zur Version 2.0.0 posten.

mit diesem Link im Wiki geht es leide nicht

Aktuelle Version: [alexa-fhem.0.2.0.tgz]

und dieser ist noch nicht aktualisiert

wget http://files.haus-automatisierung.com/alexa-fhem-0.1.9.tgz (0.2.0)

Oder habe ich was überlesen ?

LG
Stefan

FHEM auf 3 x RaspberryPi, 1 x Fritzbox,1 x Win. FS20 über CUL, HomeMatic über HMLan, 6 x  HM_CC_RT_DN,2 x HM_LC_BL1_FM,3 x HM_SEC_KEY,2 x HM_RC_Key4_2,7 x HM_SEC_SC,1 x HM_SEC_WDS,1 x HM_Sen_RD_O, 1x HM_Sen_Wa_Od,2 x HM_RC_Key4_2, 5 x HM-ES-PMSw1-Pl,1 x HM_LC_SW4_WM,1 x HM_SCI_3_FM

franky08

Sooo, da ich gestern mit der Installation von alexa fertig geworden bin und auch alles funktioniert, Geräte wurden angelegt und auch gefunden und lassen sich mit alexa auch schalten, wollte ich heute noch das startscript anpassen und nach etc/init.d/alexa schieben.
Der Host ist ein Zotac nano mit Debian Wheezy:
Linux Zotac2 3.16.0-0.bpo.4-amd64 #1 SMP Debian 3.16.39-1~bpo70+1 (2017-01-12) x86_64

Im startscript habe ich den user pi durch den user frank1 ersetzt, unter frank1 habe ich alexa installiert. Hier die ersten Zeilen vom 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="/opt/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 - "frank1" -c "cd $ALEXAPATH;./bin/alexa > $LOGPATH/alexa-`date +%Y-%m`.log 2>&1 &"
        echo "Alexa starting"
        sleep 2
$0 status
fi


doch leider bekomme ich auf der Console beim Ausführen von:
sudo /etc/init.d/alexa start|stop|restart|status

den Fehler:
-bash: stop: Kommando nicht gefunden.
-bash: restart: Kommando nicht gefunden.
-bash: status: Kommando nicht gefunden.
[sudo] password for frank1:


Was könnte mein Fehler sein?

VG
Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

MadMax-FHEM

Zitat von: franky08 am 12 Februar 2017, 16:07:37
Sooo, da ich gestern mit der Installation von alexa fertig geworden bin und auch alles funktioniert, Geräte wurden angelegt und auch gefunden und lassen sich mit alexa auch schalten, wollte ich heute noch das startscript anpassen und nach etc/init.d/alexa schieben.
Der Host ist ein Zotac nano mit Debian Wheezy:
Linux Zotac2 3.16.0-0.bpo.4-amd64 #1 SMP Debian 3.16.39-1~bpo70+1 (2017-01-12) x86_64

Im startscript habe ich den user pi durch den user frank1 ersetzt, unter frank1 habe ich alexa installiert. Hier die ersten Zeilen vom 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="/opt/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 - "frank1" -c "cd $ALEXAPATH;./bin/alexa > $LOGPATH/alexa-`date +%Y-%m`.log 2>&1 &"
        echo "Alexa starting"
        sleep 2
$0 status
fi


doch leider bekomme ich auf der Console beim Ausführen von:
sudo /etc/init.d/alexa start|stop|restart|status

den Fehler:
-bash: stop: Kommando nicht gefunden.
-bash: restart: Kommando nicht gefunden.
-bash: status: Kommando nicht gefunden.
[sudo] password for frank1:


Was könnte mein Fehler sein?

VG
Frank

Also wenn du wirklich genau das:

sudo /etc/init.d/alexa start|stop|restart|status

kann es nicht funktionieren!

WEIL: entweder mit "Parameter" start ODER stop ODER restart ODER status

und nicht alle Parameter auf einmal!

das '|' heißt: ODER

Dann wirst du vermutlich noch für frank1 bzgl. sudoers was tun müssen, denn eine Passworteingabe bei sudo ist für ein automatisch startendes Script nicht zuträglich...

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)

franky08

#938
frank1 steht schon seit 2 Jahren in der  sudoers  ;)
Und die Befehle hatte ich natürlich einzeln getestet nur im Post untereinander geschrieben.

P.S. ich könnte mir auch vorstellen unter /etc/init.d/fhem das fhem Startscript anzupassen und alexa dort mit starten zu lassen

mit
cd /opt/fhem/alexa-fhem
./bin/alexa

würde das wahrscheinlich auch funktionieren
VG
Frank

VG
Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

MadMax-FHEM

Warum wird dann ein Passwort verlangt??

Bei mir kommt genau die von dir gepostete Ausgabe, wenn ich alle 3 gleichzeitig eingebe...

Daher für die Zukunft: genau posten was du eingegeben hast und was für Ausgaben/Fehler gekommen sind, sonst wird es mit Hilfe nichts...
...also Interpretationen beim Posten sind nicht hilfreich.

Wie hast du das Script bearbeitet?

War zwischendrin mal Windows im Spiel?

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)

franky08

Kein Windows, habe ich nur auf Arbeit, arbeite auf einem Mac und dort mit Editra oder Textwrangler also Linux konform.
Ja, war dämlich von mir das untereinander zu posten, mit dem angepassten Startscript kommt alexa nicht hoch, habe es jetzt erst mal auf der Console gestartet. Wenn ich das angepasste Script unter /etc/init.d wieder liegen habe und den Host neu starte und dann auf die Console gehe, weil alexa über das Script nicht gestartet wurde und alexa auf der Console starten möchte, kommt folgendes:
frank1@Zotac2:~$ cd /opt/fhem/alexa-fhem
frank1@Zotac2:/opt/fhem/alexa-fhem$ ./bin/alexa
[2017-02-12 16:13:29] using /home/frank1/.alexa/config.json
[2017-02-12 16:13:29] ---
[2017-02-12 16:13:29] this alexa-fhem 0.1.9
[2017-02-12 16:13:29] Fetching FHEM devices...
[2017-02-12 16:13:29] [FHEM] Checking devices and attributes...
[2017-02-12 16:13:29] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&XHR=1
[2017-02-12 16:13:29] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE=alexa&XHR=1
[2017-02-12 16:13:29] [FHEM] starting longpoll: http://127.0.0.1:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1486912409422
[2017-02-12 16:13:29] [FHEM] Fetching FHEM devices...
[2017-02-12 16:13:29] [FHEM] fetching: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20room=Alexa&XHR=1
events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE :::3000
    at Object.exports._errnoException (util.js:907:11)
    at exports._exceptionWithHostPort (util.js:930:20)
    at Server._listen2 (net.js:1250:14)
    at listen (net.js:1286:10)
    at Server.listen (net.js:1382:5)
    at Server.startServer (/opt/fhem/alexa-fhem/lib/server.js:121:15)
    at Server.run (/opt/fhem/alexa-fhem/lib/server.js:236:8)
    at module.exports (/opt/fhem/alexa-fhem/lib/cli.js:30:10)
    at Object.<anonymous> (/opt/fhem/alexa-fhem/bin/alexa:17:22)
    at Module._compile (module.js:409:26)
frank1@Zotac2:/opt/fhem/alexa-fhem$ sudo shutdown -h now
[sudo] password for frank1:


Habe das Startscript dann wieder rausgenommen, Host neu gestartet und dann lässt sich alexa auch auf der Console wieder starten.
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

MadMax-FHEM

Zitat von: franky08 am 12 Februar 2017, 17:20:07
Kein Windows, habe ich nur auf Arbeit, arbeite auf einem Mac und dort mit Editra oder Textwrangler also Linux konform.
Ja, war dämlich von mir das untereinander zu posten, mit dem angepassten Startscript kommt alexa nicht hoch, habe es jetzt erst mal auf der Console gestartet. Wenn ich das angepasste Script unter /etc/init.d wieder liegen habe und den Host neu starte und dann auf die Console gehe, weil alexa über das Script nicht gestartet wurde und alexa auf der Console starten möchte, kommt folgendes:
frank1@Zotac2:~$ cd /opt/fhem/alexa-fhem
frank1@Zotac2:/opt/fhem/alexa-fhem$ ./bin/alexa
[2017-02-12 16:13:29] using /home/frank1/.alexa/config.json
[2017-02-12 16:13:29] ---
[2017-02-12 16:13:29] this alexa-fhem 0.1.9
[2017-02-12 16:13:29] Fetching FHEM devices...
[2017-02-12 16:13:29] [FHEM] Checking devices and attributes...
[2017-02-12 16:13:29] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&XHR=1
[2017-02-12 16:13:29] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE=alexa&XHR=1
[2017-02-12 16:13:29] [FHEM] starting longpoll: http://127.0.0.1:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1486912409422
[2017-02-12 16:13:29] [FHEM] Fetching FHEM devices...
[2017-02-12 16:13:29] [FHEM] fetching: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20room=Alexa&XHR=1
events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE :::3000
    at Object.exports._errnoException (util.js:907:11)
    at exports._exceptionWithHostPort (util.js:930:20)
    at Server._listen2 (net.js:1250:14)
    at listen (net.js:1286:10)
    at Server.listen (net.js:1382:5)
    at Server.startServer (/opt/fhem/alexa-fhem/lib/server.js:121:15)
    at Server.run (/opt/fhem/alexa-fhem/lib/server.js:236:8)
    at module.exports (/opt/fhem/alexa-fhem/lib/cli.js:30:10)
    at Object.<anonymous> (/opt/fhem/alexa-fhem/bin/alexa:17:22)
    at Module._compile (module.js:409:26)
frank1@Zotac2:/opt/fhem/alexa-fhem$ sudo shutdown -h now
[sudo] password for frank1:


Habe das Startscript dann wieder rausgenommen, Host neu gestartet und dann lässt sich alexa auch auf der Console wieder starten.

Also nur um's richtig zu kriegen (oder korrigieren zu lassen):

wenn du das Startscript drin hast und dann per Console startest kommt genannter Fehler!?

Der Fehler bedeutet, dass der Port 3000 bereits genutzt wird.

Sieht also so aus, als wenn alexa-fhem dann (doch) per Startscript gestartet wird...


Wenn du das Startscript wieder raus nimmst, dann kannst du wieder per Console (./bin/alexa)!?

Spricht ebenfalls dafür, dass das Startscript zu funktionieren scheint:

mit Startscript: Port belegt (alexa-fhem läuft wohl)

ohne Startscript: Port ist frei (alexa-fhem läuft wohl nicht)


Was sagt denn ein ls -la /etc/init.d/alexa

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)

franky08

Hallo Joachim, ja das System verhält sich so wie du es beschrieben hat, kann das leider erst morgen weiter testen da es auf meinem Produktivsystem läuft und ich jetzt am Abend nicht dauern den Host runterfahren kann (Lichtsteuerung und Heizung).
Zitatwenn du das Startscript drin hast und dann per Console startest kommt genannter Fehler!?

ja, dann kommt der gepostete Fehler

ZitatWenn du das Startscript wieder raus nimmst, dann kannst du wieder per Console (./bin/alexa)!?

Ja, dann lässt sich alexa auf der Console starten

ZitatWas sagt denn ein ls -la /etc/init.d/alexa

Kann ich iMo nicht ausführen, da das script auskommentiert ist und z.Zt. nicht läuft

Was mir aufgefallen ist, wenn ich alexa auf der Console starte und, wie gestern Abend, das Terminal  beende oder den Mac zuklappe dann scheint alexa zu stoppen, jedenfalls lief alexa heute morgen dann nicht mehr und musste mit ./bin/alexa neu gestartet werden, ist mir nur aufgefallen da auf der Amazon Alexa Seite alle Geräte offline waren.

VG
Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

MadMax-FHEM

Zitat von: franky08 am 12 Februar 2017, 19:09:52
Hallo Joachim, ja das System verhält sich so wie du es beschrieben hat, kann das leider erst morgen weiter testen da es auf meinem Produktivsystem läuft und ich jetzt am Abend nicht dauern den Host runterfahren kann (Lichtsteuerung und Heizung).
ja, dann kommt der gepostete Fehler

Ja, dann lässt sich alexa auf der Console starten

Kann ich iMo nicht ausführen, da das script auskommentiert ist und z.Zt. nicht läuft

Was mir aufgefallen ist, wenn ich alexa auf der Console starte und, wie gestern Abend, das Terminal  beende oder den Mac zuklappe dann scheint alexa zu stoppen, jedenfalls lief alexa heute morgen dann nicht mehr und musste mit ./bin/alexa neu gestartet werden, ist mir nur aufgefallen da auf der Amazon Alexa Seite alle Geräte offline waren.

VG
Frank

Logisch, wenn du alexa-fehm von der Console startest und die Console schließt dann ist alexa-fhem (oder jedes andere Programm/Script) wieder beendet...

Wenn du es anders willst: nohup ./bin/alexa &

https://de.wikipedia.org/wiki/Nohup

Allerdings siehst du dann keine Ausgaben auf der Console mehr...

Was meinst du mit Startscript "auskommentiert"??

Es reicht gleich am Anfang ein exit 0 einzubauen, dann kannst du das Script auch lassen:


#!/bin/sh

exit 0

### BEGIN INIT INFO



Was sagt dir, dass alexa-fhem durch das Startscript nicht gestartet wird/wurde??

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)

franky08

Kann dir in ca.10 min mehr dazu sagen, ich warte nur das der Brenner von der Heizung ausgeht, dann könnte ich den Host mal neu starten.
Ich habe alexa in #alexa umbenannt damit es nicht aufgerufen wird, so tief stecke ich in Linux nicht drin
ZitatWas sagt dir, dass alexa-fhem durch das Startscript nicht gestartet wird/wurde??

weil alle Geräte offline waren und in dem DOIF start/stop/restart alexa auf not running stand
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...