Homebridge Autostart funktioniert nicht

  • Hallo Zusammen!


    Ich bin seit einer ganzen Weile dabei, meinen Raspberry 3 Model B ( folgendes Set: Raspberry Pi Set ) zu einer Homebridge Zentrale einzurichten.

    Zuerst habe ich Pilight installiert und eingerichtet ( Anleitung: https://raspberry.tips/hausaut…n-zur-hausautomatisierung ).

    Das funktioniert auch soweit. Anschließend habe ich die Homebridge anhand folgender Anleitung installiert: https://smartapfel.de/homebridge/homebridge-installieren/.


    Ich habe generell, wie Ihr sicher merkt, nicht so die große Ahnung vom Programmieren, ich arbeite hautpsächlich nach Copy/Paste. Manche Befehle ergeben sich meiner Logik nach, andere eher weniger :D.


    Falls noch Infos fehlen versuche ich sie so schnell wie möglich nachzureichen!


    Verwendete Software:

    Code
    1. cat /etc/os-release
    2. PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
    3. NAME="Raspbian GNU/Linux"
    4. VERSION_ID="9"
    5. VERSION="9 (stretch)"
    6. ID=raspbian
    7. ID_LIKE=debian
    8. HOME_URL="http://www.raspbian.org/"
    9. SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
    10. BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

    Linux Kernel:


    Code
    1. uname -r
    2. 4.14.98-v7+

    Wenn ich die Homebridge manuell über "sudo homebridge" starte funktioniert auch alles, folgende Meldung bekomme ich:


    Die Homebridge habe ich in meiner Apple home App hinzugefügt und ich kann die 3 Funktsteckdosen darüber schalten.


    Da die Homebridge ja auch beim Booten starten soll habe ich es auch wie in der Anleitung beschrieben mit dem Systemd Startscript probiert, daran scheitert es jedoch leider.


    Ich habe schon Stunden in google damit verbracht und versucht andere Lösungsvorschläge zu probieren, es half jedoch alles nichts, deswegen wende ich mich an euch.


    Folgende Fehlermeldung erscheint:

    Die Meldung wiederholt sich alle 10 Sekunden, wie auch laut Script geplant, wenigstens funktioniert also etwas :D .


    Da ich ja den Nutzer homebridge erstellt habe, habe ich auch überlegt ob ich den Nutzer erst wechseln muss ( su homebridge ) und dann den Service starten, hat jedoch auch nichts geholfen.


    Der Inhalt von /etc/default/homebridge


    Code
    1. # Defaults / Configuration options for homebridge
    2. # The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
    3. HOMEBRIDGE_OPTS=-U /var/homebridge
    4. # If you uncomment the following line, homebridge will log more
    5. # You can display this via systemd's journalctl: journalctl -f -u homebridge
    6. # DEBUG=*


    Der Inhalt von /etc/systemd/system/homebridge.service



    Der Pfad unter ExecStart ist auch korrekt, ist ja laut diversen Seiten oft ein Fehler, siehe:

    Code
    1. sudo which homebridge
    2. /usr/local/bin/homebridge


    Meine config.json, welche normalerweise unter /root/.homebridge/ liegt, habe ich in das erstellte Verzeichnis /var/homebridge kopiert




    Ich hoffe ihr könnt ihr helfen, so dass ich meine Homebridge zum laufen bekomme!

    Schon im Voraus vielen Dank und bei fehlenden Infos einfach Fragen.



    Liebe Grüße Dario

  • Hallo und Willkommen im Forum,

    mal eine vorbildliche Fehlerbeschreibung :)


    Wenn ich die Homebridge manuell über "sudo homebridge" starte funktioniert auch alles, folgende Meldung bekomme ich:

    Funktioniert es auch mit sudo -u homebridge homebridge


    Wenn nein, dann ist wohl etwas bei dem Teil der Anleitungen schief gelaufen, wo die Rechte vergeben worden sind.

  • Hallo Hofei,


    danke für die schnelle Antwort.


    Code
    1. pi@raspberrypi:/ $ sudo -u homebridge homebridge
    2. sudo: homebridge: Befehl nicht gefunden


    Hat nicht funktioniert, aber hat es was mit den Rechten zu tun wenn der Befehl gar nicht gefunden wird oder hättest du einen anderen Fehler erwartet?


    Da ist mir aber noch folgendes aufgefallen:
    Wenn ich in den Ordner navigiere kommt die Meldung dass ich keine Berechtigung habe, soweit alles i.O.

    Dann wollte ich in den Ordner mithilfe des sudo Befehles, da kam dann die gleiche Fehlermeldung Befehl nicht gefunden.

    Code
    1. cd /usr/local/bin
    2. bash: cd: /usr/local/bin: Keine Berechtigung
    3. pi@raspberrypi:/ $ sudo cd /usr/local/bin
    4. sudo: cd: Befehl nicht gefunden


    Daraufhin habe ich mich als superuser angemeldet um in den Ordner zu navigieren und die Rechte anzuschaue, hab aber dann erst noch mal den von dir vorgeschlagenen Befehl probiert, mit folgender Meldung:

    Code
    1. sudo su
    2. root@raspberrypi:/# sudo -u homebridge homebridge
    3. sudo: unable to execute /usr/local/bin/homebridge: Permission denied


    Kannst du mir sagen wieso die Befehle sudo cd /usr/local/bin und sudo -u homebridge homebridge nicht funktionieren bzw. "nicht gefunden" werden?


    Hier auf jeden Fall noch die Rechte (ich hoffe es ist richtig so, falls nicht bitte um Mitteilung was benötigt wird.



    Liebe Grüße

    Dario

  • Hallo rpi444,


    hier wie gewünscht:


    Dir auch vielen Dank für die Hilfe :)

    Schönen Sonntag noch!


    Gruß Dario

  • Schau mal nach welche Rechte das binary:

    Code
    1. ../lib/node_modules/homebridge/bin/homebridge

    hat. Evtl. mit "chmod 755" ändern.

    Muss die Datei :

    Code
    1. config.json

    evtl. auch ausführbar (chmod 755) sein?


    EDIT:


    Evtl. auch testen, ob der Pfad (d. h. dessen Berechtigungen) dem user homebridge, den Zugang zum binary "homebridge" auch ermöglicht.

  • Aaaaalso so richtig schlau bin ich nicht geworden.

    Code
    1. pi@raspberrypi:/ $ ls -la /usr/local/lib/node_modules/homebridge/bin/homebridge
    2. -rwxr-xr-x 1 homebridge homebridge 342 Okt 26 1985 /usr/local/lib/node_modules/homebridge/bin/homebridge
    3. pi@raspberrypi:/ $ sudo chmod 755 /usr/local/lib/node_modules/homebridge/bin/homebridge
    4. pi@raspberrypi:/ $ ls -la /usr/local/lib/node_modules/homebridge/bin/homebridge
    5. -rwxr-xr-x 1 homebridge homebridge 342 Okt 26 1985 /usr/local/lib/node_modules/homebridge/bin/homebridge

    Stimmen die Rechte so? Ich denke mal ja, da sich nichts verändert hat und der Pfad dem homebridge Nutzer gehört, so wie es sein soll?


    Ob die config.json ausführbar sein soll kann ich dir leider nicht beantworten. Die "normale" config.json, welche von homebridge genutzt wird ist es zumindest nicht, von dem her denke ich, dass die kopierte Version auch nicht ausführbar sein muss.


    Code
    1. sudo ls -la /root/.homebridge/
    2. insgesamt 28
    3. drwxr-xr-x 4 root root 4096 Apr 14 11:14 .
    4. drwx------ 9 root root 4096 Apr 6 11:08 ..
    5. drwxr-xr-x 2 root root 4096 Apr 1 20:05 accessories
    6. -rw-r--r-- 1 root root 359 Apr 1 20:25 auth.json
    7. -rw-r--r-- 1 root root 1315 Apr 7 13:28 config.json
    8. -rw-r--r-- 1 root root 662 Apr 1 20:32 config.json.1554144096934
    9. drwxr-xr-x 2 root root 4096 Apr 7 13:28 persist
  • Code
    1. sudo ls -la /root/.homebridge/

    Was mir jetzt erst auffällt, was hat homebridge überhaupt unter /root zu suchen? Ich hatte das auch einmal eingerichtet und kann mich nicht an derartiges erinnern...

  • Aaaaalso so richtig schlau bin ich nicht geworden.

    Stimmen die Rechte so? Ich denke mal ja, da sich nichts verändert hat und der Pfad dem homebridge Nutzer gehört, so wie es sein soll?

    OK, was Du noch probieren könntest, ist dem user homebridge das home-Verzeichnis "/var/homebridge" (statt "/home/homebridge") zuzuordnen und den user homebridge in allen Gruppen in denen der user pi Mitglied ist, auch Mitglied zu machen.

  • Was mir jetzt erst auffällt, was hat homebridge überhaupt unter /root zu suchen? Ich hatte das auch einmal eingerichtet und kann mich nicht an derartiges erinnern...

    Bei der Installation bzw. beim ersten Test kam eine Fehlermeldung dass die config unter dem entsprechenden Pfad /root nicht aufzufinden ist, also hab ich die config dort erstellt.

    Habe aber auch schon ein paar mal gelesen dass dies bei anderen auch so ist, bei anderen wiederum unter /usr/homebridge wenn ich mich richtig erinnere.

    Stört aber ja nicht oder ?

  • OK, was Du noch probieren könntest, ist dem user homebridge das home-Verzeichnis "/var/homebridge" (statt "/home/homebridge") zuzuordnen und den user homebridge in allen Gruppen in denen der user pi Mitglied ist, auch Mitglied zu machen.

    Beides erledigt, funktioniert immer noch nicht, mit der selben Fehlermeldung :(

  • Also das gute ist: es funktioniert jetzt alles.

    Das schlechte ist: ich hab keine Ahnung warum :/.


    Ich habe bzgl. Homebridge nichts mehr unternommen, habe nebenbei noch das Programm Shairport entdeckt (zum streamen von Musik an Raspi) und hab das Programm installiert (Shairport-Tutorial).


    Das wollte ich nur nebenbei machen und schauen ob es funktioniert, hab ich dann auch gemacht und als es funktionierte wollte ich mich der Homebridge widmen, habe sie im "normalen" Modus per "sudo Homebridge" gestartet und es kam eine Fehlermeldung, welche ich leider nur noch aus dem Kopf reproduzieren kann, aber etwas Richtung EADRR already in use by:

    und dann 5-6 verschiedene Einträge.


    Daraufhin hab ich gedacht komisch, hört sich so an als ob die Homebridge schon läuft (in der iPhone App hat die Ansteuerung jedoch nicht funktioniert).

    Anschließend hab ich den Raspi neu gebootet und mittels sudo journalctl -fau homebridge gesehen dass die Homebridge läuft.


    Also die Homebridge neu in der Home App hinzugefügt und seitdem läuft sie.


    Ich danke euch für eure Hilfe, welcher Punkt mir genau geholfen hat kann ich jetzt leider nicht sagen.



    Falls man die Lösung irgendwie eingrenzen kann könnt ihr mir ja helfen wie :).


    Liebe Grüße

    Dario

  • Was mir jetzt erst auffällt, was hat homebridge überhaupt unter /root zu suchen? Ich hatte das auch einmal eingerichtet und kann mich nicht an derartiges erinnern...

    Wenn ich mich nicht täusche, wird Homebridge über npm in das Home Verzeichnis des Users unter dem es installiert wird gepackt.