Nukiio Plugin lässt sich nicht installieren (Config)

  • Hallo zusammen,


    ich bin neu hier in diesem Forum und auch Neuling was das Thema Raspberry und Homebridge anbelangt. Meine ersten Gehversuche habe ich am Wochenende damit gestartet, das Nuki Schloss der ersten Generation in Homebridge einzubinden. Die Einrichtung des Raspberry lief dank der tollen Anleitung noch gut. Es scheitert jedoch am Nukiio-Plugin. Obwohl die Config als korrekt deklariert wird, scheitert das Starten der Homebridge. Wenn ich den Teil des Plugins lösche, startet wieder alles sauber. Ich habe euch unten Screenshots der Config und des Fehlerprotokolls beigefügt. Vielleicht kann mir ja jemand helfen und sagen, wo es klemmt (API ist auf der Nuki Bridge installiert. Es läuft Version v1.11.4).


    Danke und viele Grüße


    Konstantin

  • Ich vermute mal du hast nach der Aneitung von sschuste installiert.


    Der Fehler wird dir ja direkt angezeigt, dass du kein Zugriff auf den node Ordner hast.


    Versuche mal das im Terminal:


    Code
    sudo nano /etc/sudoers.d/homebridge

    Und dann in der Datei das hinzufuegen:


    Code
    ./.node-persist/storage

    Kannst auch ohne /storage versuchen wenn du moechtest.

  • Hi, danke Dir für die schnelle Antwort. Ja, genau. Auf diese Anleitung hatte ich mich gestützt und in der Konfigurationsdatei den Befehl "homebridge ALL=(ALL) SETENV:NOPASSWD: ALL" hinterlegt.


    Habe Deine Infos oben befolgt und erhalte jetzt leider folgendes (siehe Screenshot). Kann ich die Datei löschen und neu anlegen?

  • Setze das cache_directory in deiner config.json auf /var/homebridge/node-persist/storage. Da darf der User homebridge schreiben. Mache alle anderen Änderungen rückgängig.


    Stefan

  • Setze das cache_directory in deiner config.json auf /var/homebridge/node-persist/storage. Da darf der User homebridge schreiben. Mache alle anderen Änderungen rückgängig.


    Stefan

    Danke Dir. Gibt es einen Befehl, wie ich die Änderung rückgängig machen kann? In die Konfigurationsdatei komme ich aktuell nicht rein.

  • Mein Vorgehen wäre jetzt wie folgt: (1) Ich lösche über den Befehl "rm /etc/sudoers.d/homebridge" die Konfigurationsdatei und (2) lege sie dann mit dem Inhalt "homebridge ALL=(ALL) SETENV:NOPASSWD: ALL" neu an. Danach (3) setze ich dann das cache_directory in der config auf /var/homebridge/node-persist/storage.


    Ist das ein machbares Vorgehen?

  • Das kannst du machen, auch wenn ich nichts davon halte. Aber es ändert nichts an der Tatsache, das der Pfad zum cache_directory anders gesetzt sein muss. Denke immer an die Zehn Gebote:


    1. Du sollst nicht irgendwo auf die Platte schreiben.
    2. Du sollst nicht irgendwo auf die Platte schreiben.
    3. Du sollst nicht irgendwo auf die Platte schreiben.
    4. Du sollst nicht irgendwo auf die Platte schreiben.
    5. Du sollst nicht irgendwo auf die Platte schreiben.
    6. Du sollst nicht irgendwo auf die Platte schreiben.
    7. Du sollst nicht irgendwo auf die Platte schreiben.
    8. Du sollst nicht irgendwo auf die Platte schreiben.
    9. Du sollst nicht irgendwo auf die Platte schreiben.
    10. Du sollst nicht irgendwo auf die Platte schreiben.

    Zumindest die ersten drei davon sollte man auswendig lernen.


    Stefan

  • Das kannst du machen, auch wenn ich nichts davon halte. Aber es ändert nichts an der Tatsache, das der Pfad zum cache_directory anders gesetzt sein muss. Denke immer an die Zehn Gebote:


    1. Du sollst nicht irgendwo auf die Platte schreiben.
    2. Du sollst nicht irgendwo auf die Platte schreiben.
    3. Du sollst nicht irgendwo auf die Platte schreiben.
    4. Du sollst nicht irgendwo auf die Platte schreiben.
    5. Du sollst nicht irgendwo auf die Platte schreiben.
    6. Du sollst nicht irgendwo auf die Platte schreiben.
    7. Du sollst nicht irgendwo auf die Platte schreiben.
    8. Du sollst nicht irgendwo auf die Platte schreiben.
    9. Du sollst nicht irgendwo auf die Platte schreiben.
    10. Du sollst nicht irgendwo auf die Platte schreiben.

    Zumindest die ersten drei davon sollte man auswendig lernen.


    Stefan

    Danke Dir abermals. ;) Leider bekomme ich den Hinweis auf den Syntaxfehler bei quasi jedem Befehl, den ich eingebe. Das Löschen der Datei fällt also raus. Wenn ich das richtig verstanden habe, handelt es sich doch um die Konfigurationsdatei des Homebridge-Benutzers, richtig? Wie kann ich diese denn wieder instandsetzen?

  • Das Löschen der Datei fällt also raus. Wenn ich das richtig verstanden habe, handelt es sich doch um die Konfigurationsdatei des Homebridge-Benutzers, richtig? Wie kann ich diese denn wieder instandsetzen?

    So ist es. Der Inhalt dieser Datei legt fest, welche Befehle der User homebridge mit root-Rechten ausführen darf. Die Anleitung sieht vier Befehle vor:

    /usr/local/bin/npm (damit homebridge-config-ui-x Plugins installieren kann)

    /bin/systemctl restart homebridge (damit homebridge-config-ui-x die Homebridge restarten kann)

    /bin/journalctl (damit homebridge-config-ui-x das Log anzeigen kann)

    /usr/local/bin/node (damit homebridge-config-ui-x einen Security-Check der Plugins durchführen kann)


    Das sind alles Kommandos, die aufgerufen werden können, und nicht etwa Dateien oder Verzeichnis, die geschrieben werden sollen. In sudoers-Dateien stehen immer nur Kommandos, alles andere funktioniert da nicht.


    Deine /etc/sudoers.d/homebridge enthält demnach also:

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


    Wer auch noch den Raspi per homebridge-config-ui-x rebooten will, muss diese Datei erweitern auf:

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


    Egal, wie das Forum das hier abbildet: das ist immer eine einzige Zeile.


    Eine kaputte sudoers-Datei kann den Login auf den Rechner unmöglich machen und man hat sich dann quasi ausgeschlossen. Also Vorsicht beim Bearbeiten! Damit es nicht schief geht, sollte man den sudoers-Editor visudo nutzen, der checkt nämlich vor dem Speichern, ob das so in Ordnung geht:

    sudo visudo -f /etc/sudoers.d/homebridge


    Dann alles anpassen und abspeichern. Alles klar? ;)


    Stefan

  • Echt klasse. Wirklich tausend Dank für Deine Geduld und Deine Hilfe. ;)


    Da ich ja folgenden Fehler bekomme, gehe ich davon aus, dass die Datei so kaputt ist, dass mir nur ein Neuaufsetzen des Raspi übrigbleibt, da ich "ausgeschlossen habe", richtig?


    sudo visudo -f /etc/sudoers.d/homebridge

    >>> /etc/sudoers.d/homebridge: syntax error near line 1 <<<

    sudo: parse error in /etc/sudoers.d/homebridge near line 1

    sudo: no valid sudoers sources found, quitting

    sudo: unable to initialize policy plugin


    Gruß


    Konstantin

  • Du musst nichts neu aufsetzen. Du hast dich irgendwo in /etc/sudoers.d/homebridge vertippt. Das muss korrigiert werden, und das ist alles. Noch kannst du dich ja einloggen, gelle?


    Kopier mal den Inhalt deiner /etc/sudoers.d/homebridge raus und poste ihn hier. Wär doch gelacht.


    Stefan

  • Ah, ich verstehe. Da du noch eingeloggt bist, lösche die /etc/sudoers.d/homebridge und versuch's dann nochmal:


    sudo rm /etc/sudoers.d/homebridge

    sudo visudo -f /etc/sudoers.d/homebridge


    Stefan

  • Oops. Neuaufsetzen wäre bestimmt die schnellste Lösung. Natürlich könnte man eine Tastatur anschließen und einen Monitor und sich als root einloggen, wenn man das root-Passwort wüsste. Oder man startet den Raspi im Single-User-Modus und kann dann die Datei wahrscheinlich ohne Passwort bearbeiten. Wie letzteres geht, weiß ich nicht und müsste es erst selbst Googlen, daher wäre meine Vorgehensweise "alles von vorn". Dauert ja nicht so lange.


    Machst du das von einem Mac aus?


    Stefan

  • Ja, das glaube ich tatsächlich auch, dass das Neuaufsetzen schnell gehen sollte. Muss gleich mal auf Google schauen, wie das geht. Beim nächsten Mal schaue ich, dass ich direkt von Anfang an, das Root-Passwort vergebe und dann auch weiß (für den Fall der Fälle).

    Ganz genau. Über einen Mac via ssh. Hat ja soweit auch gut funktionier (bis eben). xD


    Danke Dir nochmal für Deine Hilfe. Echt klasse! ;)

  • Ich weiß das root-Passwort meiner Raspis nicht. Aber natürlich kannst du so vorgehen.


    Übrigens kannst du dir die Schlüsselpaar-Erstellung sparen und gleich mit ssh-copy-id weitermachen.


    Wenn du dich wieder einloggen willst, wirst du mit hoher Wahrscheinlichkeit eine Fehlermeldung erhalten. Immerhin steht da nun ein "neuer" Raspi, aber dein ssh-Programm auf dem Mac erwartet da einen, den es bereits kennt. Es hält dann den neuen Raspi für eine Man-in-the-Middle-Attacke und verweigert dir den Zugang. Ich nehme an, dass das bei dir passieren wird. Sowas wie WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!


    Nehmen wir mal an, dein Raspi hat die IP-Adresse 192.168.178.17. Dann kannst du die Sperre aufheben, indem du auf dem Mac eingibst:


    ssh-keygen -R 192.168.178.17


    Stefan

  • So, ich habe den Raspi kurzerhand einfach noch einmal neu aufgesetzt und Deinen Tipp mit dem Pfad zum cache_directory berücksichtigt. Und siehe da: Das Nuki taucht jetzt in HomeKit auf. Vielen Dank noch einmal für Deine Hilfe. Ich hoffe, dass ich irgendwann auch mal genau so nützliche Tipps hier geben kann.

    Viele Grüße

    Konstantin

  • :thumbup: