Homebridge startet... UI wird nicht angezeigt

  • Hallo!
    ich bin ein Neuling und kenne mich nicht besonders gut aus... nachdem ich nun aber mehrere Stunde nach einer Lösung gesucht habe bin ich etwas verzweifelt. Vielleicht kann mir hier jemand weiterhelfen.


    Ich habe auf meinem PI in Homebridge 2 Plugins deinstalliert und anschließend ein update durchgeführt. Seitdem fährt zwar die Bridge hoch (QR-Code wird angezeigt usw.) aber ich kann die Oberfläche im Browser nicht mehr aufrufen...


    Das kommt in meiner Log... ich weiß nicht, wie ich die beiden Programme bei denen jeweils das package.json fehlt, lösche.

    Ich habe mir eine Übersicht anzeigen lassen... komme aber auch nicht so recht weiter.


    Bin für Tipps dankbar. :)


    DANKE!

  • sudo npm uninstall -g homebridge-eq3ble --unsafe-perm


    sudo npm uninstall -g homebridge-platform-eq3btsmart --unsafe-perm


    sudo systemctl restart homebridge


    sudo journalctl -fau homebridge

  • Danke schon einmal für deine Hilfe... ich habe die Homebridge installiert und dann die entsprechenden Befehle von dir ausgeführt... Er entfernt auch immer irgendwie ein Packet, mehr aber auch nicht...

    dann habe ich das gleiche Spiel wie oben wieder... :( also leider keine Verbesserung.


    Hast du noch einen Tipp?

  • Reden wir mal über das Log.


    Das bisschen, was man hier sieht, besteht aus zwei Teilen:


    Apr 05 01:32:08 raspberrypi homebridge[1281]: [05/04/2020, 01:32:08] Got SIGTERM, shutting down Homebridge...

    Apr 05 01:32:08 raspberrypi systemd[1]: Stopping Node.js HomeKit Server...

    Apr 05 01:32:13 raspberrypi systemd[1]: homebridge.service: Main process exited, code=exited, status=143/n/a

    Apr 05 01:32:13 raspberrypi systemd[1]: homebridge.service: Failed with result 'exit-code'.

    Apr 05 01:32:13 raspberrypi systemd[1]: Stopped Node.js HomeKit Server.


    Fünf Zeilen. Eine Meldung kommt von homebridge, die anderen vier von systemd. Letzteres ist ein Programm des Betriebssystems, das Prozesse startet, stoppt und überwacht und das verwendet wird, wenn deine Homebridge gestartet oder gestoppt wird.

    1. [homebridge]: Habe den Befehl zum Herunterfahren erhalten (SIGTERM, SIGnal TERMination), fahre Homebridge herunter
    2. [systemd]: Stoppe den Node.js HomeKit Server (auch bekannt als "Homebridge")
    3. [systemd]: Hauptprozess angehalten mit dem Exit-Code 143
    4. [systemd]: Das ist fehlgeschlagen, ich habe Exit-Code 0 erwartet (diese Zeile ist eine glatte Lüge, in Wirklichkeit ist gar nix fehlgeschlagen)
    5. [systemd]: HomeKit-Server ist angehalten

    Diese fünf Zeilen sind das untere Ende eines langen Logs und alles was sie zeigen ist, dass die Homebridge gestoppt wurde. Sie werden immer dann angezeigt, wenn du die Homebridge stoppst oder wenn sie von etwas anderem gestoppt wird. Nette Zeilen, aber warum sie nun gestoppt wurde, steht davor.


    Apr 05 01:32:13 raspberrypi systemd[1]: Started Node.js HomeKit Server.

    Apr 05 01:32:15 raspberrypi homebridge[1558]: [05/04/2020, 01:32:14] Loaded config.json with 2 accessories and 1 platforms.

    Apr 05 01:32:15 raspberrypi homebridge[1558]: [05/04/2020, 01:32:15] ---

    Apr 05 01:32:15 raspberrypi homebridge[1558]: [05/04/2020, 01:32:15] Plugin /usr/local/lib/node_modules/homebridge-eq3ble does not contain a package.json.

    Apr 05 01:32:15 raspberrypi homebridge[1558]: [05/04/2020, 01:32:15] Plugin /usr/local/lib/node_modules/homebridge-platform-eq3btsmart does not contain a package.json.

    Apr 05 01:32:15 raspberrypi homebridge[1558]: [05/04/2020, 01:32:15] Loaded plugin: homebridge-config-ui-x

    Apr 05 01:32:15 raspberrypi homebridge[1558]: [05/04/2020, 01:32:15] Registering platform 'homebridge-config-ui-x.config'

    Apr 05 01:32:15 raspberrypi homebridge[1558]: [05/04/2020, 01:32:15] ---


    Weitere acht Zeilen:

    1. [systemd]: Homebridge gestartet
    2. [homebridge]: Lade config.json
    3. [homebridge]: Ich schreibe mal --- dahin, um das Log übersichtlicher zu machen
    4. [homebridge]: He, bei eq3ble fehlt mir die Datei package.json.
    5. [homebridge]: He, bei eq3btsmart fehlt mir die Datei auch
    6. [homebridge]: Lade das Plugin homebridge-config-ui-x
    7. [homebridge]: Registriere das Plugin homebridge-config-ui-x
    8. [homebridge]: Ich schreibe mal --- dahin, um das Log übersichtlicher zu machen


    Diese acht Zeilen sind das obere Ende eines langen Logs und alles was sie zeigen ist, dass die Homebridge dabei ist, zu starten. Ob sie es schafft, bleibt im Dunkeln.


    Würden wir das auf ein Märchen der Gebrüder Grimm übertragen, dann würde es so lauten:

    ...anach gingen sie zurück in ihr Haus am Waldrand. Und wenn sie nicht gestorben, dann leben sie noch heute. Es war einmal ein kleines Mädchen, das lebt in einem Haus am Waldra....


    Leider werden wir so nicht erfahren, was dem kleinen Mädchen zwischenzeitlich zustieß. Ich möchte nicht wissen, wie laut mein Geplärre gewesen wäre, hätte meine Mutter mir damals so die Märchen vorgelesen.


    Das folgende gilt ja nicht nur für dich, sondern für alle, die mit dem Log herummachen:

    Das Log besteht nicht aus einer unzusammenhängenden Anzahl von Buchstaben und Zahlen, sondern aus Inhalt. Es hilft nicht, den Blick verzweifelt abzuwenden, sondern man muss es lesen. Und nicht nur das: unglücklicherweise muss man es auch noch verstehen.


    Es ist mir völlig klar, dass das alles für Anfänger etwas überwältigend ist. Und ich sitz hier auch beim besten Willen nicht herum und denke mir: was für Deppen. Nö, ich denke an die Zeiten, wo ich erstmalig damit konfrontiert wurde, und vor allem ich denke an gestern Abend, wo mir mein Beruf gegen 23:00 Uhr ein Log bescherte, das völlig ohne Aussagekraft war. Das Homebridge-Log ist aber meist sehr aussagekräftig, wenn man es richtig liest:


    Starte das Lesen des Logs immer an dieser Stelle:

    raspberrypi systemd[1]: Started Node.js HomeKit Server.


    Und beende das Lesen an dieser Stelle:

    raspberrypi systemd[1]: Stopped Node.js HomeKit Server.


    Und alles dazwischen ist das Log, das von Interesse ist. Nicht nur für dich, sondern auch für uns, wenn du es postest.


    Zu deinem eigentlichen Problem komme ich in einem weiteren Post.

  • Morgen!

    Auch danke für deine ausführliche Antwort. :) Habe ja schon einige Beiträge von Dir sschuste und @vgnsxe gelesen und nie das Gefühl gehabt, dass hier jemand von "oben herab" auf die "Neulinge" schaut. Von daher, hat mir deine Erklärung zur Grundsätzlichkeit schon einmal weitergeholfen... Ich dachte nur: "ach, mit dem ganzen anderen Kram... wo das Problem ja nicht (für mich) beschrieben ist, willst Du mal die anderen nicht mit belästigen" :D falsch gedacht...


    Also. Ich gebe meine Bestes!


    Hier habe ich nun das Log und hoffe, dass ich alles richtig gemacht habe...



    PS: Ich arbeite an einem Mac und mit dem Terminal fummel ich mir immer einen ab. Gibt es eine Alternative, die zu empfehlen ist? Oder einfach besser ins Terminal einarbeiten? :D


    Danke!

  • Ich habe auf meinem PI in Homebridge 2 Plugins deinstalliert und anschließend ein update durchgeführt.

    Das bedeutet genau was? Was genau hast du getan?


    Die Plugins, die du verwenden willst, brauchen eine Bluetooth-Verbindung. Es tut mir leid, dir mitteilen zu müssen, dass das leider nicht so einfach ist. Momentan fällt Bluetooth nämlich flach.


    Woran liegt das? Nun, irgendwer hat früher mal eine Bluetooth-Unterstützung für den Raspi programmiert. Das, was er programmiert hat, nennt sich hci-bluetooth-socket.


    Andere Programmierer haben das ziemlich geil gefunden, und wie das in der Programmiererei so üblich ist, haben die sich gefragt: warum soll ich das alles selber programmieren, wenn es doch schon da ist? Also haben sie den hci-bluetooth-socket genommen und in ihre eigenen Programme eingebaut. Das haben auch die Plugin-Programmierer getan.


    Niemand musste sich mehr mit einer hässlichen Programmierung der Bluetooth-Hardware beschäftigen. Einer konnte es und die anderen haben davon profitiert. So macht man das nun mal in der OpenSource-Szene. Danach hat sich niemand mehr um den Kram gekümmert. Leider auch nicht der, der ihn mal programmiert hat.


    Ich zitiere mal aus Jochen Malmsheimers "Wurstbrot":

    Jahrtausende war das gut. Aus den Algen wurden Dinosaurier, und sie zerfielen zu Staub. Und aus dem Staub erhoben sich mächtige Reiche, und sie wurden verweht. Der hci-bluetooth-socket aber blieb! Er ist eine Kulturkonstante! Bis zu diesem furchtbaren Tag...


    ... als Node 10 herauskam. Und danach Node 12. Der hci-bluetooth-socket funktioniert nicht mehr. Er kann nicht mehr verwendet werden, solange man eine Node-Version >8 verwendet. Aus diesem Grund schlägt bereits die Installation von homebridge-eq3ble fehl und deshalb fehlt auch eine package.json und deshalb schmiert dann auch die Homebridge ab.


    Leider hat bislang niemand eine Alternative entwickelt oder wenn, dann wird sie durch das Plugin homebridge-eq3ble nicht verwendet.


    Ohne es ausprobiert zu haben, bin ich mir sicher, dass homebridge-eq3ble unter Node 8 funktioniert. Node 8 könnte man installieren, und möglicherweise kann man auch Homebridge installieren, aber bestimmt gibt es andere Plugins, die mindestens Node 10 voraussetzen. Du wirst nicht darum herum kommen, einen zweiten Raspi zu verwenden oder zwei getrennte Homebridges via Docker laufen zu lassen - letzteres könnte ein Gefummel werden, bei dem ich nicht helfen kann.


    Das betrifft übrigens nicht nur homebridge-eq3ble, sondern alle Plugins, die den hci-bluetooth-socket verwenden. Du bist also nicht allein.

  • Versuchs mal mit dem Programm "Termius" ...

    und wenn du es noch einfacher haben willst, dann verwende das Plugin "homebridge-config-ui-x" und zwar als standalone

    Damit kannst du Plugins installieren/deinstallieren, die config.json bearbeiten und auch das log betrachten - auch wenn HB nicht aktiv läuft

  • PS: Ich arbeite an einem Mac und mit dem Terminal fummel ich mir immer einen ab. Gibt es eine Alternative, die zu empfehlen ist? Oder einfach besser ins Terminal einarbeiten?

    Es gibt auch andere Terminal-Programme. Ich verwende beispielsweise iTerm, weil es mir erlaubt, Tastaturkürzel für den Login auf meinen Raspis einzurichten. So drücke ich crtl-cmd-h, um mich auf meinem Homebridge-Raspi einzuloggen.


    Was dann auf der Shell passiert, ist natürlich das gleiche. Die Befehle sind die gleichen, die Tipperei ist die gleiche. Aber man kann sich etwas Tipperei ersparen, indem man die die TAB-Taste [ ->| ] links auf der Tastatur verwendet. Ein sudo nano /var/homebridge/config.json kann man auch eingeben als


    sudo nan[TAB]/v[TAB]h[TAB]c[TAB] (dort, wo [TAB] steht, drückst du dann die TAB-Taste. Wenn's nicht hilft, einen Buchstaben dazu geben. Zweimal TAB tippen zeigt an, was getippt werden könnte)


    Den Rest gibt dann die Shell automatisch ein. Das geht nur mit Dateinamen.


    Man kann auch Aliases anlegen. Damit kann man einen komplizierten Befehl, den man häufig braucht, zu einem einfachen Befehl machen.


    Beispielsweise so:

    alias bbb="sudo journalctl -fau homebridge"


    Danach führt die Eingabe von bbb immer den Befehl sudo journalctl -fau homebridge aus. Das geht auch mit komplizierteren Befehlen:

    alias bbb="sudo systemctl restart homebridge; sudo journalctl -fau homebridge"


    Viele Linux-Admins verwenden nicht den Befehl ls -la, um sich Dateien in einem, Verzeichnis anzeigen zu lassen, sondern haben sich den Alias ll gebaut.


    Da die Aliases alle wieder verschwinden, wenn man sich wieder ausloggt, muss man sie in in eine Datei schreiben, die beim nächsten Login wieder eingelesen wird.


    nano .bash_aliases

    Eine wahrscheinlich leere Datei wird geöffnet. Dort gibst du deine Aliases untereinander ein, beispielsweise

    alias ll="ls -la"

    alias bbb="sudo journalctl -fau homebridge"

    alias rh="sudo systemctl restart homebridge"


    Abspeichern, erneut einloggen, fertig. Bevor du Aliases definierst, solltest du checken, ob der neue Befehl nicht schon vorhanden ist. Also einmal eingeben und testen:


    pi@homePi:~ $ ll

    -bash: ll: command not found


    Gibt's nicht, also kannst du ihn verwenden.

  • Die Alternativen probiere ich mal aus... ich wollte mir nur etwas "getippe" ersparen... genau dieses ssh gedöns, um auf den Pi zuzugreifen... Also Merci für den Tipp!


    Also: Ich habe die beiden Plugins eq3ble und eq3btsmart deinstallieren, weil sie nicht richtig funktionierten, die Temperatur einfach veränderten usw. War also nicht so geil.


    Ich habe sie dann in der Oberfläche des Config-UI der Homebridge deinstalliert. anschließend habe ich ein Update mit sudo apt-get update und dann sudo apt-get upgrade durchgeführt... Seitdem funktioniert die Homebridge zwar weiterhin, ich kann aber in die Weboberfläche über die IP nicht mehr zugreifen und ich habe immer die "Karteileichen" drin... es wäre ja zu schön, wenn die Oberfläche einfach wieder da ist :D


    Ich habe die Homebridge nach der sehr guten und ausführlichen Anleitung hier im forum durchgeführt. Wie gesagt, die anderen Geräte lassen sich weiterhin über die Apple Devices einschalten, nur die Oberfläche ist "verschwunden"... ich hoffe, das war jetzt einigermaßen verständlich^^

  • Juhu! Ein Teilerfolg. Jetzt habe ich die "homebridge-config-ui-x" nach deiner Anleitung sschuste als standalone installiert. Das läuft schon einmal wieder... dennoch sind weiterhin die beiden Einträge der nicht zu löschenden Plugins im Log sichtbar... komisch. Noch eine Idee, wie ich die weg bekomme?

  • Lösch doch mal den Ordner "accessories" im Homebridge-Ordner.

    Der ist wahrscheinlich unter /var/homebridge zu finden...

    vorher HB stop und danach HB start..

  • Versuch mal das:


    rm -rf /usr/local/lib/node_modules/homebridge-platform-eq3btsmart

    rm -rf /usr/local/lib/node_modules/homebridge-eq3ble


    Dann Homebridge neu starten.

  • Moin, Moin.

    Flip = ja klar :)

    @all = leider hat das nichts gebracht... es steht dort weiterhin beim booten der Bridge


    /usr/local/lib/node_modules/homebridge-eq3ble does not contain a package.json.

    /usr/local/lib/node_modules/homebridge-platform-eq3btsmart does not contain a package.json.


    Ansonsten macht die Homebridge aber keine Probleme... würde es sonst jetzt einfach so laufen lassen oder meint ihr, es könnte irgendwann dann ggf. zu Problemen kommen?

  • Mach mal:


    cd /usr/local/lib/node_modules/


    ls


    erscheint jetzt unter anderem: homebridge-eq3ble und homebridge-platform-eq3btsmart


    falls ja dann nochmal:


    sudo rm -rf homebridge-platform-eq3btsmart

    sudo rm -rf homebridge-eq3ble


    falls nein dann:


    sudo rm -rf /var/homebridge/accessories/cachedAccessories


    und dann nochmal:


    sudo systemctl stop homebridge

    sudo systemctl restart homebridge -r

    sudo journalctl -fau homebridge

    Einmal editiert, zuletzt von vgnsxe ()