Hauptmenü

Homebridge läuft nicht

Begonnen von tecni, 05 Mai 2019, 18:42:17

Vorheriges Thema - Nächstes Thema

tecni

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


pcbastler

Startet die homebridge bei manuellem Aufruf auf der Konsole oder gibt es da schon Fehlermeldungen?


MadMax-FHEM

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
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)

tecni




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.

MadMax-FHEM

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
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)

tecni

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:~#



MadMax-FHEM

Steht etwas im Log?

/home/pi/homebridge.log

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

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
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)

tecni

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

tecni

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

MadMax-FHEM

#10
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
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)

tecni

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)


tecni


MadMax-FHEM

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
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)

tecni

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?