Beiträge von sschuste

    Hätte ich jetzt einen Phaser würde ich den Raspi in Luft auflösen...

    Was das Problem möglicherweise endgültig lösen könnte.

    /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/node_modules/node-persist/src/local-storage.js:480

    Hier geht was schief, und zwar in Zeile 480. Ich bin nicht wirklich fit in JavaScript, aber für mich sieht es so aus, als würde die Funktion mkdirp.sync(path.dirname(file)) fehlschlagen. Weiterhin glaube ich (Achtung: von wissen ist hier nicht die Rede), dass das passiert, wenn das persist-Verzeichnis für die Homebridge angelegt werden soll.


    Dieses Verzeichnis heißt /var/homebridge/persist. Existiert das bei dir schon, sind die Rechte richtig gesetzt?

    Code
    pi@raspberrypi:~ $ ls -ld /var/homebridge/persist/
    drwxr-xr-x 2 homebridge homebridge 4096 May  8  2018 /var/homebridge/persist/

    Falls es existiert, hilft dann ein

    sudo chown -R homebridge:homebridge /var/homebridge

    ?


    Falls es nicht existiert, hilft dann ein

    sudo mkdir /var/homebridge/persist

    sudo chown -R homebridge:homebridge /var/homebridge

    ?


    Bastelstunde. Grauenhaft.


    Stefan

    Faszinierend. Ich habe den Inhalt von homebridge.service, den du da oben gepostet hast, genommen, bei mir reinkopiert und die Homebridge startet. Ich kann mir nur vorstellen, dass du in deiner homebridge.service hässliche und unsichtbare Zeichen hast, oder ein Encoding verwendest, mit dem der Raspi nicht zurechtkommt.


    Was passiert, wenn du genau das selbe tust? Also hier aus dem Webbrowser rauskopieren und in /etc/systemd/system/homebridge.service einsetzt? Natürlich muss du vorher den alten Inhalt löschen.


    Stefan

    Vielleicht solltest du einfach homebridge neu installieren. Obwohl ich mir relativ sicher bin, dass dabei nichts Schlimmes passieren kann, solltest du unbedingt vorher deine config.json irgendwohin kopieren.


    Und dann:

    sudo npm install -g --unsafe-perm homebridge


    Vielleicht hilft's.


    Stefan

    Kann ich nicht. Ich habe keine Erfahrung mit GPIO, und möglicherweise ist unsere Anleitung inkompatibel damit. Daher Zusatztipps:


    Die Anleitung startet die Homebridge unter dem User homebridge, der bestimmt nicht die erforderlichen Rechte für dir GPIO-Steuerung hat. Um die Homebridge mit ausreichenden Rechten zu starten, ändere bitte in /etc/systemd/system/homebridge.service die Zeile User=homebridge in User=pi oder in User=root.


    sudo nano /etc/systemd/system/homebridge.service


    Und nach der Änderung:

    sudo systemctl daemon-reload

    sudo systemctl restart homebridge; sudo journalctl -fau homebridge


    Ich glaube nicht, dass das dein jetziges Problem lösen wird, aber du solltest das trotzdem im Hinterkopf behalten. Liegt wiringpi vielleicht an einer Stelle, die Homebridge nicht findet? Nach welcher Anleitung hast du wiringpi installiert?


    Stefan

    Hi Wilfhelm2,


    node ist kein Server. Wenn man node installiert, wird daher auch kein Server installiert. Mit node kann man JavaScript-basierte Programme außerhalb eines Browsers laufen lassen.


    JavaScript benötigt eine Engine, die den JavaScript-Code ausführt. Die handelsüblichen Browser bieten diese Engines an. Außerhalb eines Browsers, beispielsweise auf deinem Raspi, wird ebenfalls so eine Engine benötigt, und node ist diese Engine für JavaScript. Wenn du es also installierst, hast du noch keine Serversoftware, sondern nur eine Plattform, mit derer Hilfe du einen Server programmieren könntest.


    Node dient also als Plattform, und du hast mindestens einen darauf basierenden Server auf deinem Raspi laufen. Sicherlich läuft homebridge, das wäre schon mal so ein Server. Dann läuft vielleicht homebridge-config-ui-x, das ist auch eine Serversoftware. Und nun willst du noch irgendeinen Server installieren, der auf Port 3000 lauscht. Ein Server ist nämlich die Software, die auf einen Port lauscht und darüber Daten austauschen kann. Die Plugins für Homebridge sind keine Server, sondern nur Servererweiterungen (sie erweitern ja die Fähigkeiten der Serversoftware homebridge).


    Deine Serversoftware, die du installieren willst und deren Namen du uns hier verschweigst, hat mit der anderen Serversoftware namens homebridge nichts zu tun. Wenn also die eine Serversoftware abschmiert, hat das noch lange keinen Einfluss auf die andere. Aber beide verwenden die darunterlegende Plattform node. Wenn die einmal installiert ist, und das ist sie ja bei dir, dann reicht die für alle darauf basierenden Anwendungen.


    Dagegen ist npm nur eine Softwareverwaltung, mit deren Hilfe man node-basierte Software installieren, updaten und deinstallieren kann. Mehr macht npm nicht.


    Stefan

    Ps.: In der Installationsanleitung ist einer kleiner Bug. Zwischen schritt 2 und 3 fehlt einmal ctrl+c da man sich sonst am ende des logs befindet. Dort kann man ui-x nicht installieren. und tausend dank für die ansonsten perfekte Anleitung die selbst für mich verständlich ist. Kudos.

    Oh, merci, das werde ich mir doch mal anschauen.


    Stefan

    Danke für die schnelle Antwort. Machst du den dies auch über das Terminal, oder gibt es noch andere Möglichkeiten eine SSH Verbindung mit dem MAC auf das Raspi herzustellen?

    Das Terminalprogramm dient dazu, Unix-Befehle auf dem Mac einzugeben. Rufst du es auf, dann geht ein Fenster auf, in dem du diese Befehle absetzen kannst. Aber das kennst du ja schon.


    Nach dem Aufruf landest du in deinem Homeverzeichnis auf deinem Mac, was du mit dem Befehl ls -l leicht nachprüfen kannst. Du kannst Dateien verschieben, kopieren, löschen, anlegen, alles was das Herz begehrt, aber als Mac-User nimmt man dann doch lieber die Maus, nicht wahr?


    Einer dieser tollen Befehle heißt ssh, und der wird verwendet, um eine Verbindung zu einem anderen Unix- oder Linux-Computer aufzunehmen. Auch das kennst du. Man landet dann dort im Homeverzeichnis des Users, als der man sich angemeldet hat. Ob es nun ein extra Programm gibt, das nur ssh-Verbindungen öffnet, ist mir nicht bekannt. Ich kann's mir kaum vorstellen. Ich öffne seit Jahrzehnten ein Terminal-Programm und setze dort meine Befehle ab.


    Es gibt aber andere Terminalprogramme für den Mac. Es muss nicht das Terminalprogramm sein, das mit dem Mac mitgeliefert wird und das du benutzt. Die riechen genauso, schmecken genauso, machen im Grunde exakt das gleiche. Ihr Funktionsumfang um das Eingabefenster herum ist halt anders. Ich benutze iTerm, weil ich mir da ein Profil für den Raspi anlegen konnte, und dieses Profil kann ich mit einer Tastenkombi aufrufen. Wenn ich cmd-ctrl-h drücke, öffnet sich direkt das Raspi-Fenster (natürlich nach dem iTerm-Start). Vielleicht schwebt dir so etwas vor.


    Stefan


    Stefan

    hier nochmal wenn mit sudo installiert


    pi@raspberrypi:~ $ sudo npm install onoff

    Es muss heißen:


    sudo npm install -g --unsafe-perm onoff


    Ich schätze, das unsere Anleitung nicht unbedingt mit GPIO funktionieren wird. Der User homebridge, unter dem die Homebridge läuft, hat bestimmt keine ausreichenden Rechte. Falls es beim Neustart der Homebridge zu Fehlermeldungen kommt, dann ändere bitte die Startkonfiguration:


    sudo nano /etc/systemd/system/homebridge.service


    Ändere dort die Zeile User=homebridge in User=pi, und wenn es dann immer noch scheppern sollte in User=root. Nach jeder Änderung machst du ein


    sudo systemctl daemon-reload

    sudo systemctl restart homebridge


    Diese Änderungen haben nichts mit dem Installieren von Plugins zu tun, sondern nur mit dem Verhalten der Homebridge nach dem Start.


    Stefan

    Als root einloggen. Aber da kennt ja auch niemand dass Passwort. Du müsstest den Raspi also im single user mode starten, wie hier beschrieben.


    Dann

    /usr/bin/passwd pi

    und neues Passwort setzen.


    Disclaimer: ich habe nichts davon je selber getan.


    Stefan

    Um sich mit irgendeinem Service zu verbinden (ssh, http, whatever), muss dieser Service laufen. Er startet und belegt dann einen Port, auf dem er lauscht.


    Wenn ein connection refused kommt, dann läuft auf der IP-Adresse und auf dem Port, an den du connecten willst, kein Service. Das ist die Standardmeldung für diesen Fall.


    Wenn das so ist, dann läuft der sshd (dein SSH-Server) nicht. Oder du connectest zum falschen Port (default: 22) oder zur falschen IP-Adresse. Das sind die Möglichkeiten.


    Wenn du tatsächlich alles richtig machst, dann bleibt nur der sshd, der nicht läuft. Du kannst ihn starten mit

    sudo /etc/init.d/ssh start

    aber dazu musst du auf dem Raspi angemeldet sein. Das geht dann nur noch über Tastatur und Monitor. Vielleicht hilft aber auch ein simpler Reboot des Raspi.


    Stefan