Beiträge von sschuste

    Wenn ich eingebe
    sudo nano /var/homebridge/config.json
    Dann kommt nicht gefunden

    Glaube ich nicht. Da kommt im Leben nicht "nicht gefunden". Da kommt eine Fehlermeldung, die einen bestimmten Wortlaut hat, und die würde uns schon weiterhelfen.


    Der Befehl sudo nano /var/homebridge/config.json besteht aus drei Bestandteilen:


    • /var/homebridge/config.json ist die Datei, die bearbeitet werden soll
    • nano ist ein Kommando, dass den Editor nano aufruft, und der soll die nachfolgende Datei bearbeiten (hier: /var/homebridge/config.json)
    • sudo ist ein Kommando, dass den nachfolgenden Befehl mit erweiterten Rechten aufrufen soll, in diesem Fall nano.


    Völliger Unsinn sind:

    • sudo nano : /usr/bin/homebridge/config.json. Erstens hat der Doppelpunkt da nix zu suchen und zweitens ist /usr/bin/homebridge ein Programm und kein Verzeichnis, unterhalb dessen sich eine Datei namens config.json befinden könnte.
    • Sudo wird immer klein geschrieben.


    Wenn etwas nicht gefunden werden kann, dann kann das nur sudo oder nano sein.


    Also: wie genau heißt nun die Fehlermeldung? Bitte kopieren und hier einführen.


    Stefan

    Soso, du weißt also nicht, was du genau gemacht hast, lol. Dafür sieht die Vorgehensweise aber außerordentlich geplant und wirkungsvoll aus. Ich hätte übrigens das gleiche versucht.


    :thumbup:


    Stefan

    Hmmm. Vielleicht ein Rechteproblem? Darf der User homebridge diese Datei öffnen? Teste das mal mit:


    sudo su - homebridge  (werde User homebridge)

    file /usr/local/lib/libgcc_s.so.1


    Da sollte dann so etwas stehen wie:

    Code
    /usr/local/lib/libgcc_s.so.1: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=8b0338a0a22be04b97945740b0614f38cff533ca, stripped

    Und dann:

    exit (Zurück zum User pi)


    Um ehrlich zu sein: ich glaube selber nicht an die Rechtetheorie. Ich glaube auch nicht, dass die Lite-Version von Rasbian einen Unterschied machen würde. Vielleicht ist Rasbian auch nicht das richtige Betriebssystem für den BPI.


    Was du noch testen könntest:

    Ändert sich etwas, wenn du die Homebridge nicht als User homebridge startest, sondern als User pi oder User root? Das kannst du testen mit:


    Login als User pi

    sudo chown -R pi:pi /var/homebridge

    homebridge -I -U /var/homebridge


    Abbruch mit crtl-c.


    Oder als root:

    sudo -i

    homebridge -I -U /var/homebridge


    Alles wieder zurücksetzen auf die jetzigen Einstellungen:

    sudo chown -R homebridge:homebridge /var/homebridge


    Wie du siehst: ich hab keinen Plan.


    Stefan

    Code
    Nov 24 15:20:19 raspberrypi homebridge[4611]: [11/24/2018, 3:20:19 PM] Plugin /usr/local/lib/node_modules/homebridge-hue requires Node version of ^10.13.0 which does not satisfy the current Node version of v11.2.0. You may need to upgrade your installation of Node.

    Da steht, das das Plugin lieber die node-Version 10.13.0 hätte. Das ist die aktuelle LTS-Version (Long Time Support) von node. Ich würde nicht viel drauf geben, solange alles funktioniert.


    Um noch die Frage zu beantworten, wie man node-Versionen up- oder downgradet: ich mach das mit dem Programm n. Installiert wird es mit:


    sudo npm cache clean -f

    sudo npm install -g n


    Danach kann man sich mit n --help anzeigen lassen, was n so drauf hat.


    mit sudo n latest wird die neueste Version installiert und aktiviert

    mit sudo n lts wird die LTS-Version installiert und aktiviert

    mit sudo n 8.1.2.3 wird node-Version 8.1.2.3 installiert und aktiviert


    Ich rate davon ab, damit zu viel herumzuspielen und würde es nur einsetzen, wenn es wirklich notwendig ist.


    Stefan

    Hiho, ich bin erstaunt über diese Fehlermeldung :/. Ich habe meine beiden Raspis ebenfalls über diese Anleitung installiert und eine Datei namens /usr/local/lib/libgcc_s.so.1 gibt es bei mir gar nicht. Meiner Meinung sollte sie dort auch nicht existieren.


    Das [Config] in der Fehlermeldung sagt aus, das homebridge-config-ui-x diese Datei nicht finden kann. Daher frage ich mich nun:


    • Welches Raspberry PI-Modell setzt du ein?
    • Musstest du an irgendeiner Stelle von der Anleitung abweichen?


    Mich würde außerdem noch die Ausgabe von

    sudo find / -name libgcc_s.so.1

    interessieren. Darüber hinaus bin ich erstmal etwas ratlos :(


    Stefan

    Die Eingaben haben gar nichts bewirkt. Sie haben nur einen Status angezeigt.


    nc -zv localhost 8080 versucht sich auf Port 8080 zu connecten und scheitert. So wie du es beschrieben hast, als du es mit dem Browser versucht hast.


    ps aux | grep homebridge zeigt genau das gleiche. Der Befehl zeigt die Prozessliste an, wobei er alle Ausgaben, in denen der Begriff homebridge nicht vorkommt, wegfiltert. Zu sehen sein müsste zusätzlich homebridge-config-ui-x.


    sudo netstat -tulpen sagt das auch. Dieser Befehl zeigt alle offenen Port an. Port 8080 fehlt.


    Eindeutig. Der Kram läuft nicht. Aber dann kommt das homebridge-Log. Und das sagt um 12:48:46 klar, das homebridge-config-ui-x geladen wird:

    Code
    Nov 21 12:48:46 raspberrypi homebridge[21983]: [11/21/2018, 12:48:46 PM] Loaded config.json with 0 accessories and 1 platforms.
    Nov 21 12:48:46 raspberrypi homebridge[21983]: [11/21/2018, 12:48:46 PM] ---
    Nov 21 12:48:46 raspberrypi homebridge[21983]: [11/21/2018, 12:48:46 PM] Loaded plugin: homebridge-config-ui-x

    Und es kommt noch besser - drei Sekunden später sagt das Log, das homebridge-config-ui-x läuft:

    Code
    Nov 21 12:48:49 raspberrypi homebridge[21983]: [11/21/2018, 12:48:49 PM] [Config] Console v3.9.0 is listening on port 8080.

    Die obigen drei Befehle müssten nun eine andere Ausgabe ergeben. Ich kann dir nicht sagen, warum das nicht ging und jetzt doch. Ich war's nicht!


    Könnte es sein, dass vielleicht homebridge-config-ui-x nach einer Weile aufhört zu funktionieren? Hoffentlich nicht, denn darauf hätte ich auch keine Antwort. Offenbar musste man nur mal dagegentreten.


    Stefan

    Also so etwas ähnliches wie dieser Plattenspieler mit eingebauten Kassettenrecorder, USB2- und USB3-Anschlüssen, Display, Tonbandgerät, Videorecorder, DVD- und Blueray-Player. Batteriebetrieben.


    Mir ist eine solche Steckdose nicht bekannt. Warum sucht jemand so etwas? Irgendwie typisch für Väter ;)


    Stefan

    In der Anleitung https://smartapfel.de/homebridge/plugins-installieren/ "Homebridge installieren: Schritt 3 – Plugins installieren" steht ja folgendes: "Wenn das Log gut aussieht, dann gib in der Adresszeile deines Webbrowsers http://192.168.1.21:8080 ein, wobei du statt 192.168.1.21 die IP-Adresse deines Raspberry Pi verwendest. Und voilà:"...

    Hmmm. Das sind eindeutig meine Worte. Könntest du mir die Ausgabe von


    ps aux | grep homebridge (Achtung: der gerade Strich zwischen dem x und dem g ist ein gerader Strich. Auf einem Mac gibt's den mit Alt-7, bei Windows ist der glaube ich unten rechts beim Größerkleinerzeichen)


    Und:

    sudo netstat -tulpen (ja, da steht tatsächlich tulpen)


    Und:

    sudo systemctl restart homebridge; sudo journalctl -fau homebridge


    Copy und paste right in dieses Forum. Wär doch gelacht :D


    Gruß

    Wie unterscheidet der Raspi ob ich mich an der Pi hole console anmelden will, oder z.B. bei dem Login für die Homebridge...

    Gute Frage :thumbup:. Stellen die wenigsten.


    Die Unterscheidung wird über die Ports vorgenommen. Software, die als Service läuft, also aus einer Plastikbox einen Server macht, öffnet einen Port und lauscht auf die Dinge, die da kommen mögen. Alle Programme, die einen Port öffnen, sind Serverprogramme.


    Beispiele:

    Würdest du einen Webserver auf einem Computer betreiben und die Webserver-Software starten, dann öffnet diese Software Port 80. Dein Webbrowser nimmt Kontakt zum Webserver auf und versucht den auch auf Port 80 zu erreichen. Das ist erstmal so fest eingestellt. Man kann das ändern, indem man in der Webserver-Konfiguration einen anderen Port angibt, beispielsweise 99. Dann schlägt der Verbindungsaufbau vom Webbrowser fehl, denn der erwartet auf Port 80 eine Antwort, oder aber man gibt als Adresse http://192.168.1.21:99 ein.


    Wenn du Email versendest, dann versucht das dein Mailprogramm auf Port 25. Früher jedenfalls. Heutzutage verschlüsseln wir gerne und dafür bietet der Mailserver einen weiteren Port an, und zwar 587. Ein Server kann also durchaus mehrere Ports öffnen.


    Wenn du eine Homebridge betreibst, dann ist der Port der, der in config.json eingestellt ist. Bei den meisten wird das 51826 sein. Willst du zwei Homebridges starten, dann müssen beide unterschiedliche Ports benutzen. Ein Port kann also nicht von zwei Serverprogrammen gleichzeitig genutzt werden.


    Aber wieso sind das ausgerechnet diese Ports? Wieso ist 80 der Standard für Webserver und 25 der für Mailserver? Naja, das hat man einfach so festgelegt. Es gibt da keine Standardisierungsstelle, sondern das macht jeder Programmierer, wie er mag. Dabei sollte er aber nicht die Ports sehr bekannter Services wie Web und Mail oder anderer benutzen (well known services), sondern sich was anderes ausdenken. Ports liegen in der Range zwischen 1 und 65535, da wird sich schon was finden lassen. In der Datei /etc/services sind die well known services aufgelistet.


    less /etc/services (blättern mit Leertaste, Abbruch mit ctrl-c)


    Sowas wie 192.168.1.21 nennt man IP-Adresse, sowas wie 99 nennt man Port und sowas wie 192.168.1.21:99 nennt man Socket.


    Läuft ein Server auf einem bestimmten Port, dann nennt man diesen Port offen. Ein Port kann entweder offen sein oder nicht vorhanden, denn wenn der Server nicht gestartet ist, dann wird der Port halt nicht geöffnet. Ob ein bestimmter Port geöffnet ist oder anders ausgedrückt: ob auf einem bestimmten Port ein Server lauscht, kann man mit dem Programm nc testen:


    nc -zv localhost 8080


    Code
    pi@raspberrypi:~ $ nc -zv localhost 8080
    Connection to localhost 8080 port [tcp/omniorb] succeeded!
    pi@raspberrypi:~ $
    pi@raspberrypi:~ $ nc -zv localhost 12345 
    nc: connect to localhost port 12345 (tcp) failed: Connection refused
    nc: connect to localhost port 12345 (tcp) failed: Connection refused
    pi@raspberrypi:~ $


    Ein connection refused bedeutet immer, dass auf dem Socket kein Server läuft und dieser erst gestartet werden muss. Ein address in use bedeutet immer, dass auf dem Socket schon ein Server läuft und kein zweiter Server diesen Port nutzen kann. Homebridge schreibt in einem solchen Fall EADDRINUSE ins Log (naja, eigentlich ist es node, das den Fehler ausspuckt).


    So weit das. Jetzt bleibt nur noch zu fragen: was meinst du mit deiner Aussage "ich gebe im Browser die IP des Raspis an, gefolgt von Doppelpunkt und Port"? Welchen Port gibst du denn an?


    Stefan

    In der deiner Signatur steht das die HarmonyHub Plugin nicht richtig funktioniert. Ist das noch aktuell ?

    Nee, das steht da nicht. Ich habe nie ein Harmony-plugin verwendet, weil ich schon Schwierigkeiten mit dem Harmony Hub selbst hatte. Ich habe hier einen Projektor mit Rolling Code, und obwohl der sich auch in der Harmony-Datenbank befindet, funktioniert die Ansteuerung so gut wie gar nicht. Ich will nicht ungerecht sein und behaupten, der Hub sei der totale %!$:cursing:§??!. Immerhin klappt es ja alle 35 Versuche auf Anhieb.


    Über die Harmony-App halte ich mich dezent zurück, deren Programmierer man alle, und zwar jeden einzelnen mehrfach... ach, lassen wir das.


    Ich bin also nicht mal soweit gekommen, mich überhaupt mit einer Homebridge-Integration zu beschäftigen. Den Harmony-Hub hab ich aber aufgehoben, damit ich etwas habe, das ich kaputt machen kann, wenn ich wütend bin.


    Stefan

    Merci :P


    Immer, wenn du mit homebridge-config-ui-x im Config-Editor deine config.json speicherst, wird in /var/homebridge die vergehende Version mit einem Timestamp versehen und gammelt dann dort herum. Bei mir ergibt ein ls -l /var/homebridge eine lange Liste von älteren Konfigurationen. Hier ein Auszug:


    Die komische Zahl hinter dem Dateinamen ist die Anzahl der Millisekunden, die seit dem 1. Januar 1970 vergangen ist (ja, Linux- und Unix-Computer zählen so was :D).


    Außerdem kannst du im Config-Editor auch ein Backup machen. Auf meinem Mac wird das automatisch heruntergeladen und landet dann bei mir im Download-Ordner als config.json.


    Stefan