FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Calle78 am 21 März 2020, 21:36:28

Titel: [Erledigt] Homebridge Rechteproblem Autostart (das keines war)
Beitrag von: Calle78 am 21 März 2020, 21:36:28
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
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: MadMax-FHEM am 21 März 2020, 21:40:09
Wenn das bei grep die ganze Ausgabe ist, dann ist es NICHT gestartet!

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

Gruß, Joachim
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: Calle78 am 21 März 2020, 22:03:26
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

Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: MadMax-FHEM am 21 März 2020, 22:16:31
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
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: Calle78 am 21 März 2020, 23:39:36
>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
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: MadMax-FHEM am 21 März 2020, 23:51:15
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
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: Calle78 am 22 März 2020, 00:30:01
>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
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: MadMax-FHEM am 22 März 2020, 00:46:00
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
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: Calle78 am 22 März 2020, 12:29:28
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
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: MadMax-FHEM am 22 März 2020, 12:40:23
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
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: Calle78 am 22 März 2020, 18:21:19
🙈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.
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: MadMax-FHEM am 22 März 2020, 20:25:51
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
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: Calle78 am 22 März 2020, 21:30:16
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
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: MadMax-FHEM am 22 März 2020, 21:37:58
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
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: Calle78 am 22 März 2020, 22:01:11
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
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: MadMax-FHEM am 22 März 2020, 22:10:43
Ok, gerne!

Dann setze doch mal ein [erledigt] vor den ersten Post... :)

Ich würde in dem anderen Thread auch noch hierher verlinken, evtl. sind ja hier relevante/brauchbare Infos bereits vorhanden... ;)

Bzgl. config.json hast du mal geprüft!?
Auch mal mittels journalctl nachgeschaut, welche beim systemd-Autostart genommen wird...

Gruß und viel Erfolg, Joachim
Titel: [erledigt] Antw:Homebridge Rechteproblem Autostart
Beitrag von: Calle78 am 23 März 2020, 21:28:59
Ich traue es mich fast gar nicht zu sagen. Nachdem ich (dank deiner Hilfe) erfolgreich von init.d auf systemd umgestellt habe und hier eine scheinbar aktive Homebridge war, habe ich nach allen verzweifelten Versuchen in Linux weiter zu kommen einfach mal die Homebridge gelöscht und wieder neu erstellt. Es sah zwar aus als hätte das nichts genützt, parallel hat sich aber mein 433CUL auch noch verabschiedet (Was nichts mit dem Problem zu tun hat). Long story short: es geht!

Meine Erklärung: Ich habe beim Einrichten Homebridge manuell gestartet und eingerichtet. Diese Einrichtung war aber für die Ausführung mit dem Autostartscript nicht für Apple erreichbar. Er hatte zwar den gleichen Homekit-Code aber vielleicht eine andere MacAdresse bekommen? Jedenfalls findet er die Geräte nun.

Das waren eine Menge Variablen - sorry für alle die ich mit meinen Theorien auf die falsche Fährte gelockt habe.

ciao Carlo
Titel: Antw:Homebridge Rechteproblem Autostart
Beitrag von: MadMax-FHEM am 23 März 2020, 21:34:19
Kein Ding!

Dann viel Spaß noch, Joachim

P.S.: anderen Thread halt auch mit [erledigt] oder [gelöst] "kennzeichnen"...
Titel: Antw:[Erledigt] Homebridge Rechteproblem Autostart (das keines war)
Beitrag von: Calle78 am 23 März 2020, 21:35:20
schon passiert ;)