Homebridge Installationsanleitungen

  • Ansonsten würde der Prozeß zum Ausgeben des Logs mehrfach gestartet und man sieht alles mehrfach.

  • ich verstehe nicht das du die Methode Custom gewählt hast Zeile 20+21

    Das kam so: da unsere Anleitung eine Homebridge installiert, die unter dem User homebrigde mit stark eingeschränkten Rechten läuft, kam es zu einem kleinen Unfall. Die ursprüngliche Konfiguration sah vor, dass die Log-Methode systemd sein sollte, und das schien auch prima zu funktionieren. Aber in Wirklichkeit funktionierte es nicht so recht.


    Jedes Mal, wenn homebridge-config-ui-x das Log anzeigt, ruft das Plugin auf dem Raspi den Befehl sudo journalctl -o cat -n 500 -f -u homebridge auf. Kann man auch im Terminal eingeben, das Ergebnis ist die Live-Anzeige des Logs. Dort bricht man die Ausgabe mit ctrl-c wieder ab.


    Bei einem Switch zwischen dem Logs-Tab des Web-UI zu einem anderen (beispielsweise zur Pluginliste) wird der Loganzeigeprozess wieder gestoppt. Da homebridge-config-ui-x dafür aber kein ctrl-c eingeben kann, beendet das Plugin den Prozess sudo journalctl mit einem kill. Aber der User homebridge darf keinen Prozess killen, der mit sudo aufgerufen wurde, selbst wenn er ihn selber aufgerufen hat. Das führt dazu, dass der kill-Prozess fehlschlägt. Leider wird das nur in Logs vermerkt, die man nie liest (/var/log/auth.log).


    Weil der kill-Prozess fehlschlägt, führt das dazu, dass der Befehl sudo journalctl nicht beendet wird. Er läuft einfach weiter. Und immer, wenn man in homebridge-config-ui-x einen Blick auf das Log werfen will, wird ein neuer Prozess gestartet, und noch einer, und noch einer, bis irgendwann journalctl die Fehlermeldung ausspuckt, dass zu viele Logs geöffnet sind. Bei mir war das beim 128. Mal soweit.


    Mit ps aux sieht man dann die vielen sudo journalctl-Prozesse laufen. Sie werden alle erst beendet, wenn man homebridge-config-ui-x stoppt. Das passiert ja häufig, wenn man beispielsweise die Homebridge nach dem Update eines Plugins neustartet. Daher ist mir das ein Jahr lang nicht aufgefallen.


    Abhilfe hat geschaffen, dass der Loganzeigeprozess ohne sudo aufgerufen wird, also nur mit journalctl -o cat -n 500 -f -u homebridge. Damit das geht, muss sich der User homebridge in der Usergruppe systemd-journal befinden. Und in der Konfiguration von homebridge-config-ui-x muss dann die Logmethode von systemd auf custom umgestellt werden.


    Läuft die Homebridge unter dem User pi, passiert das alles nicht, denn der User pi darf halt alles.


    Stefan

  • Leider tauch jetzt auf einmal folgendes Problem auf:



    Habe die Homebridge mit gleicher config auf einem anderen Rasp ohne Probleme laufen, komme leider nicht mehr weiter :(

  • Da müsste ich etwas mehr von der Fehlermeldung sehen, nämlich das, was davor stand.


    Stefan

  • Das kam so: .......


    Stefan

    Wow, FETTES Dankeschön - für die Erklärung, ich müsste mal wieder in deine SUPER und einzigartige UP_TO_DATE_Anleitung schauen.... und es bei mir auch noch einbauen / umbauen ;)


    wo ich hier schon mal Online bin, hatte wer schon Sync Probleme mit Mojave HK ? - glaube das ich schon mal gefragt hatte....

  • Ich habe jetzt die Homebridge mal auf einem neuen Pi4B nach Anleitung installiert.

    Die Bridge läuft wohl auch lt. config-ui-x.

    Am Ende de Logs habe ich aber eine Fehlermeldung. Kann mir wer helfen diese zu interpretieren?


    Code
    homebridge : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/kill -9 5549
    pam_unix(sudo:session): session opened for user root by (uid=0)
    pam_unix(sudo:session): session closed for user root
    homebridge : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/kill -9 5562
    pam_unix(sudo:session): session opened for user root by (uid=0)
    pam_unix(sudo:session): session closed for user root
    homebridge : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/kill -9 5575
    pam_unix(sudo:session): session opened for user root by (uid=0)
    pam_unix(sudo:session): session closed for user root


  • Das sind keine Fehlermeldungen. Der User root killt Prozesse. Welches log ist das?

  • Das Log welches ich über das config-ui-x Plugin mit

    journalctl -o cat -n 500 -f -u homebridge -u homebridge-config-ui-x

    aufrufe.


  • 2, 3 mal neugestartet und jetzt läuft es.

    Würde mich interessieren was das war.


  • Das könnte auftreten, wenn du in homebridge-config-ui-x das Log anschaust und dann im Menü etwas anderes dort anklickst wie zum Beispiel Plugins oder Config.

  • hi,


    nach dem config-ui update auf 4.50 habe ich folgendes Problem:


    In der Weboberfläche unter Protokoll steht anstelle des Protokolls:


    Irgendwie bin ich gerade zu blöd und bekomme es nicht gebacken.



    Na Super jetzt auch noch das zweite Problem aufgetaucht :(


    Code
     Error: EACCES: permission denied, open '/var/homebridge/persist/AccessoryInfo.0E2DB3DF18BC.json'
  • Wird wahrscheinlich daran liegen:


    1. >>> /etc/sudoers.d/homebridge: Syntax-Fehler near line 1 <<<
    2. sudo: Syntax-Fehler in /etc/sudoers.d/homebridge bei der Zeile 1


    Wenn die sudoers Datei fehlerhaft ist, wirst du auch keine Zugriffsrechte haben!

  • kannst du sudo su - nutzen?


    falls da, dann als naechstes nano /etc/sudoers.d/homebridge


    Und dort drinnen sollte es dann eig so aussehen:


    Code
    homebridge ALL=(root) SETENV:NOPASSWD: /usr/local/bin/npm, /bin/systemctl restart homebridge, /bin/journalctl, /usr/local/bin/node

    Oder alternativ so:


    Code
    homebridge ALL=(ALL) SETENV:NOPASSWD: ALL

    Empfehlenswerter aber die erste Variante

  • Sobald ich sudo su- eingebe erhalte ich folgendes:


    Code
    >>> /etc/sudoers.d/homebridge: Syntax-Fehler near line 1 <<<
    sudo: Syntax-Fehler in /etc/sudoers.d/homebridge bei der Zeile 1
    sudo: Keine gültige sudoers-Quelle gefunden, Programmende
    sudo: Regelwerks-Plugin konnte nicht initialisiert werden
  • Tja. Dumm gelaufen. Jetzt helfen nur noch ein Monitor und eine Tastatur am Raspi, um dich dort direkt als root anzumelden - falls du das root-Passwort hast. Auch noch gehen könnte das Booten im Single User Mode.


    Es reicht aus, die Datei /etc/sudoers.d/homebridge zu löschen.

    rm /etc/sudoers.d/homebridge


    Um derartige Probleme zu vermeiden: sudoers-Dateien nur mit visudo bearbeiten!

    visudo -f /etc/sudoers.d/homebridge

    2 Mal editiert, zuletzt von sschuste ()

  • Auch ich habe nun mal versucht, das ganze auf einem Raspi mit OSMC zum laufen zu bringen. Leider noch etwas erfolglos bisher, trotz der guten Anleitung. Aber leider klappten auch nicht alle Schritte bzw. es wurden mal die eine oder andere Info ausgespuckt. Zum Glück immer nur Kleinigkeiten...


    Der erste markante ist mir aufgefallen beim "Homebridge User anlegen". Gebe ich den Befehl:

    Code
    sudo useradd -m -c "Homebridge Service" -s /bin/bash -G audio,bluetooth,dialout,gpio,systemd-journal,video homebridge

    So ergab das folgende Meldung:

    useradd: Gruppe »bluetooth« existiert nicht.

    useradd: Gruppe »gpio« existiert nicht.


    Nehme ich beide Gruppen raus aus dem obigen Befehl, gibt es keine Fehlermeldung mehr. Sind diese zwei Gruppen sehr wichtig? Wenn ja, wie kann ich sie anlegen?


    Das zweite "Problem" gab es dann mit dem Hinweis im gelben Kasten auf der zweiten Seite, wo es um die Systemrechte beim installieren von Plugins geht.

    Der Befehl:

    Code
    homebridge ALL=(ALL) SETENV:NOPASSWD: ALL endet im Terminal mit einem: "-bash: Syntaxfehler beim unerwarteten Wort `('

    Jemand eine Idee? Die Klammer hat ja sicher ihre Berechtigung oder?


    Dann habe ich noch folgende Fehlermeldungen protokolliert:

    Code
    osmc@OSMC:/home/homebridge$ systemctl status homebridge
    ? homebridge.service - Node.js HomeKit Server
       Loaded: loaded (/etc/systemd/system/homebridge.service; enabled)
       Active: activating (auto-restart) (Result: exit-code) since So 2019-08-18 15:47:22 CEST; 8s ago
      Process: 4382 ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS (code=exited, status=1/FAILURE)
     Main PID: 4382 (code=exited, status=1/FAILURE)
    osmc@OSMC:/home/homebridge$ 

    und über den Befehl "sudo journalctl -fau homebridge" bekam ich diese Fehlerinfo:


    Das System läuft aktuell also nicht so ganz richtig... Kann mir da jemand helfen?

  • So ergab das folgende Meldung:

    useradd: Gruppe »bluetooth« existiert nicht.

    useradd: Gruppe »gpio« existiert nicht.


    Nehme ich beide Gruppen raus aus dem obigen Befehl, gibt es keine Fehlermeldung mehr. Sind diese zwei Gruppen sehr wichtig?

    Am Ende vergibst du mit dem obigen Befehl nur die Rechte fuer den user homebridge womit er arbeiten kann. Brauchst du weder das eine noch das andere fuer homebridge als solches, kannst du es auch weglassen. Welche Geraete/Plugins moechtest du denn mit homebrige nutzen?



    homebridge ALL=(ALL) SETENV:NOPASSWD: ALL endet im Terminal mit einem: "-bash: Syntaxfehler beim unerwarteten Wort `('

    Bei diesem Befehl geht es nur darum, worauf hat homebridge Zugriff. Hier solltest du eher dabei bleiben:


    sudo nano /etc/sudoers.d/homebridge


    homebridge ALL=(root) SETENV:NOPASSWD: /usr/local/bin/npm, /bin/systemctl restart homebridge, /bin/journalctl, /usr/local/bin/node


    Deine Zeile ist eher eine Alternative fuer die, die ein weniger geschuetztes System bevorzugen und mehr Rechte haben wollen. Zudem wird dieser Befehl in der Datei /etc/sudoers.d/homebridge eingetragen und nicht einfach ins Terminal kopiert :)


    Aug 18 15:36:42 OSMC homebridge[2848]: Error: EACCES: permission denied, mkdir '/var/homebridge/persist'

    Homebridge hat keine Zugriffsrechte fuer diesen Ordner. Hast du dem ordner /var/homebridge auch alle noetigen Rechte gegeben? Siehe sudo chown -R homebridge:homebridge /var/homebridge


    Soweit ich das erkennen kann, sind die Rechte nicht richtig gesetzt und deshalb laeuft das Ganze nicht so wirklich.

  • So ergab das folgende Meldung:

    useradd: Gruppe »bluetooth« existiert nicht.

    useradd: Gruppe »gpio« existiert nicht.


    Nehme ich beide Gruppen raus aus dem obigen Befehl, gibt es keine Fehlermeldung mehr. Sind diese zwei Gruppen sehr wichtig? Wenn ja, wie kann ich sie anlegen?

    Lass sie raus. Sie haben auf Raspberian eine Bedeutung, unter OSMC offenbar nicht. Alternativ könntest du die Gruppen auch anlegen, aber das wird keine weiteren Auswirkungen haben, weder positive noch negative: groupadd bluetooth gpio. Unter Raspberian sind der Gruppe verschiedene Ausführungsrechte von bestimmten Programmen zugeordnet. User, die beispielsweise nicht in der Gruppe bluetooth sind, können dann nicht auf Bluetooth-Programme und -Funktionen zugreifen. Das wird unter OSMC wohl anders gehandhabt und daher spielen wahrscheinlich alle Gruppen keine Rolle.


    Ich nehme an, dass bei dir auch ein einfaches sudo useradd -m -c "Homebridge Service" -s /bin/bash homebridge ausreicht. Aber ich kenne OSMC nicht und kannte es auch nicht bis vor wenigen Minuten.


    Deine Zeile ist eher eine Alternative fuer die, die ein weniger geschuetztes System bevorzugen und mehr Rechte haben wollen. Zudem wird dieser Befehl in der Datei /etc/sudoers.d/homebridge eingetragen und nicht einfach ins Terminal kopiert

    Das wird gelegentlich falsch gemacht, was vor allem bedeutet: die Anleitung muss an dieser Stelle einfach deutlicher werden.


    Aug 18 15:36:42 OSMC homebridge[2848]: Error: EACCES: permission denied, mkdir '/var/homebridge/persist'

    Wie schon @vgnsxe schreibt: hier fehlen wohl die richtigen Rechte für /var/homebridge.


    Stefan