[Erledigt] Homebridge Rechteproblem Autostart (das keines war)

Begonnen von Calle78, 21 März 2020, 21:36:28

Vorheriges Thema - Nächstes Thema

Calle78

Hey Leute, nachdem die letzten 5 Installationen alles geklappt hat, hab ich diesmal einen Knoten im Kopf. Starte ich Homebridge manuell läuft es prima, per Autostart bekomme ich aber keine Antwort. Gestartet ists:

ps -ef | grep -i homebridge
pi         987   755  0 21:33 pts/0    00:00:00 grep --color=auto -i homebridge


Ich weiß es ist ne Kleinigkeit aber ich finds nicht mehr. Danke euch!

ciao Carlo
6,RPi4,Buster,HMLAN,HMIP,HUE,ZigBee,piVCCU,C868,C433,JEELINK,ESA2000,IRT1500,HMSECSC2,HMCCTC,HMSECSD,HM132030,HMSCI3FM,HMPB2WM55-2,FHT80,FBAHA,WithingsWS50,Jalousien,Siri,HMS100WD,Fritzbox,Harmony,Twilight,Weather,PushBullet,FHT-9998,HM-CC-TC,Trackr,RolloPort

Todo:ZWave(MieleOfen),LEDWIFI

MadMax-FHEM

Wenn das bei grep die ganze Ausgabe ist, dann ist es NICHT gestartet!

Das ist die Ausgabe des grep Befehls selbst... ;)

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)

Calle78

lol großartig, dann frag ich mich aber warum er mir das ausgibt:
sudo /etc/init.d/homebridge start
Homebridge is already running
sudo /etc/init.d/homebridge status
Homebridge is running PID 7022

6,RPi4,Buster,HMLAN,HMIP,HUE,ZigBee,piVCCU,C868,C433,JEELINK,ESA2000,IRT1500,HMSECSC2,HMCCTC,HMSECSD,HM132030,HMSCI3FM,HMPB2WM55-2,FHT80,FBAHA,WithingsWS50,Jalousien,Siri,HMS100WD,Fritzbox,Harmony,Twilight,Weather,PushBullet,FHT-9998,HM-CC-TC,Trackr,RolloPort

Todo:ZWave(MieleOfen),LEDWIFI

MadMax-FHEM

Wie kommst du dann auf "Rechteproblem"?

Was meinst du mit "ich bekomme keine Antwort"?

Steht etwas im homebridge-Log?

Wo das liegt sollte im Startscript stehen...

Wie startest du manuell?

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)

Calle78

>Wie kommst du dann auf "Rechteproblem"?
Das war nur eine Vermutung

>Was meinst du mit "ich bekomme keine Antwort"?
Die Geräte melden "keine Antwort" wenn ich nicht (auch?) manuell starte.

>Steht etwas im homebridge-Log? Wo das liegt sollte im Startscript stehen...
ich finds leider nicht

>Wie startest du manuell?
sudo homebridge
6,RPi4,Buster,HMLAN,HMIP,HUE,ZigBee,piVCCU,C868,C433,JEELINK,ESA2000,IRT1500,HMSECSC2,HMCCTC,HMSECSD,HM132030,HMSCI3FM,HMPB2WM55-2,FHT80,FBAHA,WithingsWS50,Jalousien,Siri,HMS100WD,Fritzbox,Harmony,Twilight,Weather,PushBullet,FHT-9998,HM-CC-TC,Trackr,RolloPort

Todo:ZWave(MieleOfen),LEDWIFI

MadMax-FHEM

Brauchst du unbedingt sudo!?

Oder geht es ohne auch?

Stoppst du homebridge vorher?

Wie sieht dein Startscript aus?

Poste es doch mal.
Dort steht auch drin wo das Logfile landet (für den autom. Start)...
Es müsste (zumindest laut deiner "Autostart-Fehlermeldung") unter: /etc/init.d/ zu finden sein...

Vermutlich:

/etc/init.d/homebridge

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)

Calle78

>Brauchst du unbedingt sudo!?
ohne erwartet er die config unter /home/pi/.homebridge/config.json - hab sie angelegt dann startet er manuell auch (die Geräte reagieren aber nicht - müsste ich vermutlich neu anlegen) aber im Autostart ist es auch nicht dabei.

>Stoppst du homebridge vorher?
es ist ja nicht an (wenn ich es nicht manuell teste)
Wenn ich mit sudo /etc/init.d/homebridge start starte reagieren die Geräte auch nicht

>Wie sieht dein Startscript aus?
Einfach das aus dem Wiki
#!/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 - pi -c "homebridge > /dev/null 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
6,RPi4,Buster,HMLAN,HMIP,HUE,ZigBee,piVCCU,C868,C433,JEELINK,ESA2000,IRT1500,HMSECSC2,HMCCTC,HMSECSD,HM132030,HMSCI3FM,HMPB2WM55-2,FHT80,FBAHA,WithingsWS50,Jalousien,Siri,HMS100WD,Fritzbox,Harmony,Twilight,Weather,PushBullet,FHT-9998,HM-CC-TC,Trackr,RolloPort

Todo:ZWave(MieleOfen),LEDWIFI

MadMax-FHEM

#7
Also dein Startscript (sofern der Dienst darüber aktiviert ist) versucht mit dem User pi zu starten:

Zitat
   su - pi -c "homebridge > /dev/null 2>&1 &"

Sofern das nicht geht, wird auch das autom. Starten nicht klappen...

Leider wird nichts gelogged:

Zitat
> /dev/null 2>&1 &

Du könntest hier ein Logfile angeben:

also statt

> /dev/null 2>&1 &


sowas

> /home/pi/homebridge.log &


Dann würden wir sehen was kommt/schief läuft...

Alternative:

du bekommst homebridge als User pi zum Laufen, dann sollte das Startscript auch tun...

Was passiert bei:


sudo service homebridge start


bzw.


sudo service homebridge status


(nur um zu sehen, ob der Service homebridge "existiert" / verm.: ja)

Ich habe/nutze homebridge nicht (ist aber ähnlich zu alexa-fhem)...
...daher verstehe ich (immer noch) nicht was:

Geräte reagieren nicht bedeutet (sorry)...

Wo/wie hast du homebridge "installiert"?!

Welches System hast du?

Weil ab Stretch umgestellt wurde von init.d auf systemd (bzgl. Autostart)...
Habe aber noch kein Startscript für systemd bzgl. homebridge "gesehen/gefunden"...

Noch wird init.d unterstützt...
...wenn nicht mehr, dann musst du umsteigen (das nur schon mal als Anmerkung für die Zukunft ;)  )

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)

Calle78

Hi MadMax, erst nochmal ein riesiges Dankeschön!!!

ich bin etwas weiter gekommen und fasse nochmal zusammen:
- Starte ich "sudo homebridge" manuell, geht es
- Starte ich mein init.d Script wird inzwischen sogar per Autostart gestartet aber Homebridge bekommt nichts - meine Rechteproblem-Vermutung / falscher User oder ein falscher Pfad?!
sudo /etc/init.d/homebridge status
Homebridge is running PID 1953
pi        2945     1  3 12:22 ?        00:00:03 homebridge

Wenn das aber eh deprecated wird sollte ich auf systemd umsteigen.

Also log ist aktiviert und zeigt das gleiche was ich sehe wenn ich manuell starte - scheinbar alles gut.

sudo service homebridge start gibt keine eigene Rückmeldung (rödelt nur ein paar Sekunden)
Gestartet ists damit auch nicht

sudo service homebridge status sagt:
● homebridge.service - Node.js HomeKit Server
   Loaded: loaded (/etc/systemd/system/homebridge.service; enabled; vendor prese
   Active: activating (auto-restart) (Result: exit-code) since Sun 2020-03-22 12
  Process: 27621 ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS (code=exit
Main PID: 27621 (code=exited, status=1/FAILURE)



>Geräte reagieren nicht bedeutet (sorry)...
Wenn Homebridge funktioniert kann ich die Geräte schalten (wenn ich manuell starte), wenn nicht meldet er "keine Antwort"

>Welches System hast du?
das neuste Buster

ciao Carlo
6,RPi4,Buster,HMLAN,HMIP,HUE,ZigBee,piVCCU,C868,C433,JEELINK,ESA2000,IRT1500,HMSECSC2,HMCCTC,HMSECSD,HM132030,HMSCI3FM,HMPB2WM55-2,FHT80,FBAHA,WithingsWS50,Jalousien,Siri,HMS100WD,Fritzbox,Harmony,Twilight,Weather,PushBullet,FHT-9998,HM-CC-TC,Trackr,RolloPort

Todo:ZWave(MieleOfen),LEDWIFI

MadMax-FHEM

Hmmm,

also nur zur Sicherheit:

bist du schon auf systemd umgestiegen!?

Weil dein Service Status "sagt" das:

Zitat
   Loaded: loaded (/etc/systemd/system/homebridge.service; enabled; vendor prese

Bislang hast du aber immer von /etc/init.d/homebridge "gesprochen"...

Hast du beides!?

Also eine homebridge Datei unter /etc/init.d/ hast du ja (zumindest hast du das ja gepostet ;)  )...
...hast du auch eine unter:

/etc/systemd/system  ?

die kann/könnte auch homebridge.service heißen...

BEIDES gleichzeitig ist nat. nicht gut! ;)

Wenn unter /etc/systemd/system eine homebridge liegt dann poste doch auch mal die...

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)

Calle78

🙈ja, da es ja nicht lief hab ich mich direkt mal an systemd gemacht:

Unit]
Description=Node.js HomeKit Server
After=syslog.target network-online.target

[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target


startet aber leider nicht automatisch.
6,RPi4,Buster,HMLAN,HMIP,HUE,ZigBee,piVCCU,C868,C433,JEELINK,ESA2000,IRT1500,HMSECSC2,HMCCTC,HMSECSD,HM132030,HMSCI3FM,HMPB2WM55-2,FHT80,FBAHA,WithingsWS50,Jalousien,Siri,HMS100WD,Fritzbox,Harmony,Twilight,Weather,PushBullet,FHT-9998,HM-CC-TC,Trackr,RolloPort

Todo:ZWave(MieleOfen),LEDWIFI

MadMax-FHEM

#11
Naja beides geichzeitig kann KEINESFALLS funktionieren ;)

Woher hast du das systemd-Startskript "gefunden"!?

Zitat
ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS

Woher soll(te) das Script wissen was $HOMEBRIDGE_OPTS beeinhaltet!?
Oder ist das eine "global gesetzte" Variable!?

was liefert:

echo $HOMEBRIDGE_OPTS


Wie geschrieben ich selbst habe kein homebridge...

Wenn du das systemd Startscript nicht von einer "zuverlässigen" Quelle und tatsächlich für homebridge her hast, dann würde ich das wieder rausnehmen...
...und erst mal init.d zum Laufen bekommen (ja obwohl [schon] depricated)...

Weil dazu gibt es deutlich mehr Infos.
Wenn das mal geht, dann kann man sich mal bzgl. Umstieg auf systemd kümmern...

Was liefert denn:


which homebridge


Gibt es tatsächlich einen User homebridge!?

Laut dem init.d-Script soll(te) es ja mit dem User pi gestartet werden...
...oder root (das sollte bei systemd "Standard" sein), damit läuft es ja bei manuellem Start...

Aber wenn per init.d im Log dasselbe steht wie bei manuellem Start, dann sollte es doch eigentlich auch gehen!?


Und nur das Start-Script ablegen reicht nicht.
Es muss ausführbar sein (denke ich), also bei ls -la muss auch das x angezeigt werden...

Und du musst den Service bzw. das Start-Script auch "anmelden":

sudo systemctl enable homebridge

(oder so ähnlich)

UND:

bei init.d nutzt du "sudo service ..."
(oder direkt das Script unter /etc/init.d/ )

bei systemd ist es "sudo systemctl ..."

Da vielleicht mal nachlesen...

Wie geschrieben ich würde das systemd mal wieder "zurückbauen"...
...und doch noch mal bzgl. init.d weitermachen...

Evtl. doch mal die Logausgaben posten, auch wenn sie genauso sind wie bei manuellem Start...
...vielleicht sieht man was...

Ansonsten bin ich auch ratlos...

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)

Calle78

Die Installation mach ich immer so (diesmal wie du merkst erfolglos): https://technikkram.net/2018/11/neue-anleitung-siri-sprachsteuerung-fuer-homematic-plug-and-play-ohne-konfiguration
Die Variable wurde in /etc/default/homebridge definiert:
HOMEBRIDGE_OPTS=-I -U /var/homebridge
aber du hast Recht
echo $HOMEBRIDGE_OPTS
gibt nichts zurück.

which homebridge liefert:
/usr/local/bin/homebridge

Ich bin inzwischen soweit, dass systemd verlässlich startet. Autostart - checked :)
homebri+   632     1 16 21:09 ?        00:00:03 homebridge

Bleibt leider das Problem, dass so gestartet Homebridge nicht funktioniert  ::)
nochmal manuell starten quittiert er auch korrekt mit Error: listen EADDRINUSE: address already in use :::51826
Er ist also korrekt (sogar per Autostart) (Homebridge is running on port 51826.) gestartet aber im Gegensatz zum manuellen Starten klappt die Kommunikation nicht.

Vielleicht mach ich mal einen separaten Post zu diesem verbleibenden Problem auf.

1000 Dank, dass du mich schon einmal auf systemd gebracht hast ;)

ciao Carlo
6,RPi4,Buster,HMLAN,HMIP,HUE,ZigBee,piVCCU,C868,C433,JEELINK,ESA2000,IRT1500,HMSECSC2,HMCCTC,HMSECSD,HM132030,HMSCI3FM,HMPB2WM55-2,FHT80,FBAHA,WithingsWS50,Jalousien,Siri,HMS100WD,Fritzbox,Harmony,Twilight,Weather,PushBullet,FHT-9998,HM-CC-TC,Trackr,RolloPort

Todo:ZWave(MieleOfen),LEDWIFI

MadMax-FHEM

#13
Wenn du systemd hast, dann auf jeden Fall init.d deaktivieren!

Du kannst das was in der Variablen $HOMEBRIDGE_OPTS definiert ist auch direkt an den Aufruf im systemd-Startscript dranhängen...

Ein "Log" bekommst du bei systemd mittels journalctl (mal danach suchen)...

Die beiden config.json die du hast sind "identisch"!?
Stimmen die "Filter", die "sagen" ja homebridge welche Geräte "gefunden"/gesteuert werden sollen...

EDIT: bei alexa-fhem gibt es im systemd Script noch WorkingDir (oder so). Evtl. kann man da mal spicken...

EDIT2: ansonsten bin ich leider wirklich ratlos...

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)

Calle78

Ja ich habe die Variable durch den echten Pfad ersetzt und es so mit systemd auch hinbekommen. Der Rest hat ja nichts mehr mit Autostart zu tun, daher hab ichs mal hier versucht:
https://forum.fhem.de/index.php/topic,109415.msg1034060.html#msg1034060

Du hast schon mehr als genug geholfen, vielen Dank!

ciao Carlo
6,RPi4,Buster,HMLAN,HMIP,HUE,ZigBee,piVCCU,C868,C433,JEELINK,ESA2000,IRT1500,HMSECSC2,HMCCTC,HMSECSD,HM132030,HMSCI3FM,HMPB2WM55-2,FHT80,FBAHA,WithingsWS50,Jalousien,Siri,HMS100WD,Fritzbox,Harmony,Twilight,Weather,PushBullet,FHT-9998,HM-CC-TC,Trackr,RolloPort

Todo:ZWave(MieleOfen),LEDWIFI