Hallo FHEM-Gemeinde,
kurz vorweg. Ich habe Fhem auf einem rPI2 seit über 2 Jahren im 24h Betrieb und bin mit der Stabilität sehr zufrieden. Nun möchte ich mein FHEM erweitern und scheitere gerade an der inbetriebnahme der Homebrigde. Ich habe alles nach Anleitung installiert.
root@raspberrypi:~# sudo /etc/init.d/homebridge start
Homebridge starting
Homebridge is not running
Inhalt von File: /etc/init.d/homebridge
GNU nano 2.2.6 File: /etc/init.d/homebridge
#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# 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 homebridge
# 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 homebridge`
case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
echo "Homebridge is already running"
else
su - root -c "homebridge > /dev/null 2>&1 &"
su - root -c "homebridge >> /var/log/homebridge.log 2>> /var/log/homebridge.err &"
echo "Homebridge starting"
$0 status
fi
;;
stop)
if ! ps -p $PID > /dev/null 2>&1; then
echo "Homebridge is not running"
else
kill $PID
echo "Homebridge closed"
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 "Homebridge is running PID $PID"
else
echo "Homebridge is not running"
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0
nano ~/.homebridge/config.json:
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "123-45-678"
},
"platforms": [
{
"platform": "FHEM",
"name": "FHEM",
"server": "127.0.0.1",
"port": "8083",
# "auth": {"user": "FhemUser", "pass": "XXX"},
"filter": "room=Homekit"
}
],
"accessories": []
}
Kann mir jemand einen Tipp geben, was ich falsch mache?
Danke euch.
Grüße
Startet die homebridge bei manuellem Aufruf auf der Konsole oder gibt es da schon Fehlermeldungen?
Wo hast du das Startscript her?
Was mich z.B. schon mal stutzig macht:
Zitat
su - root -c "homebridge > /dev/null 2>&1 &"
su - root -c "homebridge >> /var/log/homebridge.log 2>> /var/log/homebridge.err &"
Welches System hast du überhaupt?
Wenn Debian 9 / Raspbian Stretch wäre eine Umstellung auf systemd empfehlenswert...
...dazu muss aber (wie von pcbastler bereits angemerkt) homebridge erst mal generell laufen.
Also z.B. durch Eingabe von "homebridge" auf der Console (ich glaube bei homebridge geht das [noch] so)...
Gruß, Joachim
Wenn ich die Homebridge manuell starte, passiert einfach nichts:
root@raspberrypi:~# homebridge
root@raspberrypi:~#
Mein System:
root@raspberrypi:~# cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"
NAME="Raspbian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
root@raspberrypi:~#
Den Eintrag:
su - root -c "homebridge >> /var/log/homebridge.log 2>> /var/log/homebridge.err &"
habe ich hinzugefügt, damit ein Log geschrieben wird, dieses ist aber leider leer.
Noch mal die Frage: wo hast du das Script her?
Durch das Hinzufügen OHNE den anderen Befehl zu löschen/auskommentieren startest du homebridge 2x...
...das geht keinesfalls gut.
Lösche (bzw. kommentiere aus) mal deinen zusätzlichen Eintrag und ändere den vorhandenen mal in:
su - root -c "homebridge &"
bzw.
su - root -c "homebridge > /home/pi/homebridge.log 2>&1 &"
Bei Jessie ist initd noch ok...
...beim Umstieg auf Stretch sollte dann systemd genutzt werden.
(kann aber auch bei Jessie schon genutzt werden)
Wie hast du homebridge installiert?
Also nach welcher Anleitung?
Gruß, Joachim
Das Script habe ich aus dem Wiki: https://wiki.fhem.de/wiki/Homebridge_einrichten
Geändert:
root@raspberrypi:~# sudo nano /etc/init.d/homebridge start
GNU nano 2.2.6 File: /etc/init.d/homebridge
#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# 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 homebridge
# 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 homebridge`
case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
echo "Homebridge is already running"
else
# su - root -c "homebridge > /dev/null 2>&1 &"
# su - root -c "homebridge >> /var/log/homebridge.log 2>> /var/log/homebridge.err &"
su - root -c "homebridge > /home/pi/homebridge.log 2>&1 &"
echo "Homebridge starting"
$0 status
fi
;;
stop)
if ! ps -p $PID > /dev/null 2>&1; then
echo "Homebridge is not running"
else
kill $PID
echo "Homebridge closed"
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 "Homebridge is running PID $PID"
else
echo "Homebridge is not running"
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0
keine Veränderung:
root@raspberrypi:~# sudo /etc/init.d/homebridge start
Homebridge starting
Homebridge is not running
root@raspberrypi:~# homebridge
root@raspberrypi:~#
Steht etwas im Log?
/home/pi/homebridge.log
Gruß, Joachim
Hast du das hier mal gemacht:
Zitat von: Wiki
Geprüft werden kann die Nodes Version mit:
node -v zeigt mir: v0.10.28, nodejs -v: v5.11.1
Komisch ist, dass bei Eingabe von hombridge auf der Console so gar nichts kommt...
Wo liegt denn die config.json ?
Da du unter "root" startest müsste es: /root/.homebride/config.json sein...
Habe gerade auch noch mal im Wiki geschaut, dort steht im Script:
Zitat
su - pi -c "homebridge > /dev/null 2>&1 &"
Hast du noch mehr "anders" gemacht?
Gruß, Joachim
Zitat von: MadMax-FHEM am 06 Mai 2019, 20:46:37
Steht etwas im Log?
/home/pi/homebridge.log
Gruß, Joachim
nein das log ist leer
Zitat von: MadMax-FHEM am 06 Mai 2019, 20:51:50
Hast du das hier mal gemacht:
Komisch ist, dass bei Eingabe von hombridge auf der Console so gar nichts kommt...
Wo liegt denn die config.json ?
Da du unter "root" startest müsste es: /root/.homebride/config.json sein...
Habe gerade auch noch mal im Wiki geschaut, dort steht im Script:
Hast du noch mehr "anders" gemacht?
Gruß, Joachim
root@raspberrypi:~# node -v
root@raspberrypi:~#
ich habe es von pi auf root geändert, da unter "pi" das selbe verhalten wie unter "root" gegeben war
Zitat von: tecni am 06 Mai 2019, 21:10:52
root@raspberrypi:~# node -v
root@raspberrypi:~#
ich habe es von pi auf root geändert, da unter "pi" das selbe verhalten wie unter "root" gegeben war
Aha, irgendwas stimmt wohl mit der node/nodejs Installation nicht...
Was "sagt":
which node
Mal als root und pi versuchen.
EDIT: welche Variante der node/nodejs Installation hast du durchgeführt? Ich kann mich erinnern, dass ich "damals" unter Jessie (allerdings alexa-fhem, ist aber vergleichbar) auch "umständlich" installieren musste. Weiß aber leider nicht mehr genau welche "Variante" ich genommen habe, siehe:
Zitat von: Wiki
Nun muss NodeJS installiert werden. Leider ist die Version im Debian Repository deutlich zu alt, daher wird mit den folgenden Befehlen das Node Repository hinzugefügt und NodeJS (in der LTS Version) entsprechend installiert:
EDIT2: was ich noch (im Wiki) gefunden habe, bzgl. PI 2 und nodejs: https://forum.fhem.de/index.php/topic,32652.msg419325.html#msg419325
Gruß, Joachim
das sieht schon mal besser aus
aber
root@raspberrypi:~# node -v && npm -v
v4.2.1
/usr/local/lib/node_modules/npm/bin/npm-cli.js:84
let notifier = require('update-notifier')({pkg})
^^^
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:414:25)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Function.Module.runMain (module.js:467:10)
at startup (node.js:134:18)
at node.js:961:3
root@raspberrypi:~# homebridge
/usr/local/lib/node_modules/npm/bin/npm-cli.js:84
let notifier = require('update-notifier')({pkg})
^^^
SyntaxError: Block-scoped declarations (let, const, function, class) not yet sup ported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:414:25)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Function.Module.runMain (module.js:467:10)
at startup (node.js:134:18)
at node.js:961:3
[Mon May 06 2019 22:27:20 GMT+0200 (CEST)] There was a problem reading your conf ig.json file.
[Mon May 06 2019 22:27:20 GMT+0200 (CEST)] Please try pasting your config.json f ile here to validate it: http://jsonlint.com
[Mon May 06 2019 22:27:20 GMT+0200 (CEST)]
/usr/local/lib/node_modules/homebridge/lib/server.js:218
throw err;
^
SyntaxError: Unexpected token #
at Object.parse (native)
at Server.str.replace.Server._loadConfig (/usr/local/lib/node_modules/homebr idge/lib/server.js:212:19)
at new Server (/usr/local/lib/node_modules/homebridge/lib/server.js:56:38)
at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:32:16)
at Object.<anonymous> (/usr/local/lib/node_modules/homebridge/bin/homebridge :17:22)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Function.Module.runMain (module.js:467:10)
Keiner mehr eine Idee? :(
Wie hast du jetzt (versucht) nodejs zu installieren?
Hast du beachtet, dass du einen PI 2 und Jessie hast!?
Was kommt denn, wenn du "einzeln" node -v bzw. npm -v bzw. nodejs -v eingibst?
Wenn die Ausgabe von node -v stammt, dann ist die Version wohl zu "alt"/"klein"...
Bin aber bgl. nodejs jetzt kein Fachmann und auch nicht bzgl. homebridge.
Kenne nur alexa-fhem recht gut, ist aber ähnlich (und vom gleichen Author)...
Es gibt mittlerweile ein Modul zur "Überwacung/Überprüfung" von node-Installationen: https://forum.fhem.de/index.php/topic,96525.msg895824.html#msg895824
Eventuell das mal testen.
EDIT: vielleicht auch den Thread mal nach "Sprachsteuerung" verschieben, da liest justme1968 mit, von dem stammt das... Vielleicht weiß/sieht er was...
Gruß, Joachim
node -v:
root@raspberrypi:~# node -v
v4.2.1
npm -v:
root@raspberrypi:~# npm -v
/usr/local/lib/node_modules/npm/bin/npm-cli.js:84
let notifier = require('update-notifier')({pkg})
^^^
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:414:25)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Function.Module.runMain (module.js:467:10)
at startup (node.js:134:18)
at node.js:961:3
nodejs -v:
root@raspberrypi:~# nodejs -v
v0.10.29
scheint irgendwas mit dem npm zu sein?