homebridge von init.d auf systemd umstellen

  • Hallo det,


    vielen Dank für die schnelle Rückmeldung.

    So habe ich mir das auch gedacht. Meine /etc/systemd/system/homebridge.service sieht so aus:


    [Unit]

    Description=Node.js HomeKit Server

    After=syslog.target network-online.target

    User=homebridge


    Damit hatte es nicht geklappt, daraufhin habe ich es ohne die letze Zeile probiert. Auch Fehlanzeige.


    Die komplette Fehlermeldung über systemctl status ist:

    ? homebridge.service - Node.js HomeKit Server

    Loaded: error (Reason: Invalid argument)

    Active: inactive (dead)


    Jan 08 22:11:39 raspberrypi systemd[1]: [/etc/systemd/system/homebridge.service:

    Jan 08 22:11:39 raspberrypi systemd[1]: homebridge.service: Service lacks both E

    Jan 08 22:16:15 raspberrypi systemd[1]: [/etc/systemd/system/homebridge.service:

    Jan 08 22:16:15 raspberrypi systemd[1]: homebridge.service: Service lacks both E

    Jan 09 00:01:31 raspberrypi systemd[1]: [/etc/systemd/system/homebridge.service:

    Jan 09 00:01:31 raspberrypi systemd[1]: homebridge.service: Service lacks both E

    Jan 09 00:07:05 raspberrypi systemd[1]: [/etc/systemd/system/homebridge.service:

    Jan 09 00:07:05 raspberrypi systemd[1]: homebridge.service: Service lacks both E

    Jan 09 00:07:15 raspberrypi systemd[1]: [/etc/systemd/system/homebridge.service:

    Jan 09 00:07:16 raspberrypi systemd[1]: homebridge.service: Service lacks both E

    lines 1-14/14 (END)

  • Nochmal für Doofe:

    Was gehört da mehr rein. Ich habe die Datei, wie in der Anleitung beschrieben erstellt!?


    Die Datei /etc/default/homebridge ebenso. Da drin steht:

    # Defaults / Configuration options for homebridge

    # The following settings tells homebridge where to find the config.json file an$

    HOMEBRIDGE_OPTS=-U /var/homebridge

    # If you uncomment the following line, homebridge will log more

    # You can display this via systemd's journalctl: journalctl -f -u homebridge

    # DEBUG=*

  • Die Datei /etc/default/homebridge

    die stimmt so.

    die homebridge.service

    danach eingeben

    Code
    sudo systemctl daemon-reload
    sudo systemctl enable homebridge

    mit dem Eintrag,

    Code
    User=root

    läuft der Dienst als root

  • Wie doof muss man sein :) Ich habe in dem Fenster mit dem Code nicht auf "Alles anzeigen" geklickt und daher nur die ersten drei Zeilen kopiert und mich gewundert.


    Mit dem vollständigen Code läuft die Homebridge nun wieder. Ich hoffe, dass der automatische Neustart jetzt auch klappt und das System damit insgesamt stabiler wird....


    Vielen Dank für die schnelle Hilfe!!

  • Jetzt läuft die Homebridge stabil, so dass ich mich sogleich an den nächsten Schritt gewagt habe und das philipshue-plugin installieren wollte:

    Plugin installiert mit "npm install -g homebridge-philipshue" , /var/homebridge/config.json ergänzt, homebridge restart -> Fehlanzeige.

    Über sudo journalctl -f -au homebridge konnte ich beobachten, dass beim/nach dem Laden des Harmony Plugins der restart begann -> Endlosschleife, also der automatische Reboot funktioniert :)

    Ein manueller Start der Homebridge über den Befehl "homebridge" hat jedoch funktioniert.

    Liege ich richtig, dass dabei die "alte" config.json aus /home/pi/ verwendet wird? Nachdem ich nämlich durch erneutes "sudo cp -r /home/pi/.homebridge/* /var/homebridge/" die Daten "repariert" habe, funktioniert auch der Start der Homebridge über "sudo systemctl start homebridge" wieder, natürlich ohne das hue-plugin :(


    Muss ich beim Installieren von Plugins mit dem implementierten Auto-Reboot Besonderheiten beachten, also z.B. die Plugins in ein anderes Verzeichnis installieren?

  • vpelz


    Die config muss jetzt wie hier beschrieben abgespeichert werden:


    WICHTIG!!

    "sudo nano /var/homebridge/config.json"

    ist ab jetzt ist die aktuelle Konfigurations Datei, da müssen alle Eintragungen für die Plugins gemacht werden.



    Es kann natürlich die bisherige verwendet werden, muss halt vermutlich erstmalig nochmals erstellt werden.

  • ...das ist nicht das Problem! Ich hatte genau diese config mit sudo nano /var/homebridge/config.json ergänzt!

    Dadurch trat das Problem ja erst auf und erst durch das Zurückspielen der "alten config" konnte ich es beheben.


    Es liegt natürlich die Vermutung nahe, dass ich evt. einen Syntaxfehler beim Ergänzen der config gemacht habe, das habe ich zuerst auch gedacht, kann das inzwischen aber eigentlich ausschließen. Ich stelle daher die Frage, ob es noch andere Besonderheiten im Zusammenhang mit dem Autoreboot gibt!?

  • vpelz


    Dann hatte ich dich missverstanden.....


    Komme jetzt auch auuf keinen weiteren ansatz...... gecheckt über nen json validator hast du ja......???

  • ...nein, den json validator kenne ich nicht, ich bin Neuling beim Thema raspi, linux und homebridge ;)


    Ich schließe aus deiner Antwort aber erstmal, dass es eigentlich keine weiteren Besonderheiten im Zusammenhang mit dem Autoreboot bei der Installation von Plugins geben sollte und ich mich weiter an die Fehlersuche im Bereich der config.json machen muss....


    Ich werde heute Abend dann auch mal gegenchecken und die "alte" config.json im home/pi Verzeichnis editieren und schauen, ob es dann über den direkten Start mit "homebridge" funktioniert. Dabei wird ja offenbar (s. meine erste Erfahrung oben) nach wie vor diese "alte" config-Datei verwendet.


    Den Zusammenhang "Vorher-Nachher" beim Implementieren des Auto-Reboot durchschaue ich grundsätzlich noch nicht. Es werden dabei ja offenbar die ganzen Dateien nach /var/homebridge kopiert. Gibt es jetzt zwei Parallelversionen? Zumindest gibt es ja zwei config.json-Dateien...??


    Mir fehlt leider einfach das Hintergrundwissen ;( und ich wurstele da herum.


    Schaun mer mal.....

  • ...vielen Dank det, das werde ich ausprobieren!


    Könntest du mir auch ein wenig die Hintergründe zu den kopierten Verzeichnissen und den beiden config.json-Dateien erläutern oder mir eine gute Infoquelle benennen. Oder würde das zu weit führen?

  • ok: die config.json habe ich getestet, sie ist ok. Homebridge startet aber weder mit der alten (ergänzten) config.json per Direktaufruf noch mit der neuen über den Dienstaufruf. Offenbar wurde das Plugin nicht (richtig) installiert. Ich habe die Installation daher nochmal durchgeführt und erhalte nach "npm install -g homebridge-philipshue" die Fehlermeldung:

    npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules


    Offenbar fehlen hier Schreibrechte. Was kann ich tun?

  • ok. mit sudo npm install -g homebridge-philipshue konnte ich das Plugin installieren.

    Es funktioniert allerdings immer noch nicht. Meldungen beim Start:


    [2018-1-13 23:34:40] Loading 2 platforms...

    [2018-1-13 23:34:40] [Harmony Hub] Initializing HarmonyHub platform...

    [2018-1-13 23:34:41] [Philips Hue] Initializing PhilipsHue platform...

    [2018-1-13 23:34:41] [Philips Hue] PhilipsHue Platform Plugin Version 0.0.3

    [2018-1-13 23:34:41] [Philips Hue] Fetching Philips Hue lights...

    [2018-1-13 23:34:41] Loading 0 accessories...

    [2018-1-13 23:34:44] [Harmony Hub] Fetching Logitech Harmony activities...

    [2018-1-13 23:34:46] [Harmony Hub] Found activities:

    PowerOff

    Heimkino

    MAC

    Kinoende

    PC

    Apple TV

    BluRay

    Fernsehen


    Ich werde auch nicht zum Drücken des Bridge-Buttons aufgefordert, um einen Benutzernamen zu erhalten, so wie es in der Beschreibung auf github steht.

    Die ganze Homebridge (auch die Harmony-Aktionen) funktioniert nach dem Hochfahren nicht.

    Wenn ich das hue-Plugin in der config.json wieder herausnehme, funktioniert sie wieder.

    3 Mal editiert, zuletzt von vpelz ()

  • ...ok. das Problem gehört jetzt wohl nicht mehr in diesen Thread. Ich erstelle einen neuen im Bereich Geräte und Plugins....


    Danke schon mal bis hierher für die Unterstützung

  • Nastra

    Hi, die Umstellung schein geklappt zu haben. Die Homebridge läuft auf jeden Fall.


    Ich wollte mit "sudo systemctl sttus homebridge" den aktuellen status ansehen, bekomme aber die Meldung

    "pi@mein-pi:~ $ sudo systemctl sttus homebridge Unknown operation sttus".


    Die config.json liegt auf jeden Fall in "/var/homebridge/config.json" und es läuft offensichtlich alles.


    Wie kann ich überprüfen, ob die Umstellung von init-d auf systemd geklappt hat, bzw. richtig funktioniert?


  • Du solltest wenn auch status richtig schreiben. :)


    sudo systemctl status homebridge


    Notfalls hilft es auch ungemein einmal selbst in die Befehlssammlung, die Nastra erstellt hat unter "Anleitungen und Tools", reinzuschauen.

    Einmal editiert, zuletzt von Hunter ()

  • Da habe ich nichts mehr beizufügen :thumbup: