Beiträge von sschuste

    Bekomme diesen Fehler. In Home wird zwar die Kamera hinzugefügt allerdings steht da „Keine Antwort. Diese Kamera antwortet nicht.“

    Der Raspi kann kein Video. Kann er erst, wenn man ihm die passende Software gibt. Diese Software heißt ffmpeg. Ohne ffmpeg funktionieren auch irgendwelche homebridge-*-ffmpeg-*-Plugins nicht.


    Das ist so ähnlich, als würdest du ein homebridge-word zum Laufen bringen wolltest ohne Word installiert zu haben. Disclaimer: es gibt kein homebridge-word. Es sollte nur als schlechtes Beispiel dienen.


    Also musst du ffmpeg auf dem Raspi installieren:

    sudo apt-get install ffmpeg


    Stefan

    es klappt nun alles! Zwei Wochen Bastelarbeit sind nun vorbei. Homebridge läuft mit dem Interface und der Avea Bluetooth Lampe.

    Sehr, sehr geil. Das wird ja immer besser hier. Ich werde die Bluetooth-Problematik in meiner Anleitung erwähnen. Meiner Meinung nach sollte die LTS-Version von node in der neuesten Version ebenfalls funktionieren. Das wäre dann node 8.12.0. Ich kann's nicht ausprobieren.


    Vielleicht sollte man node gleich mit dem Node-Versionsmanager n installieren. Seufz. Ich bleibe dabei: dieses Node-Zeugs ist Daten-Vandalismus in seiner reinsten Form.


    Stefan

    Ja, zur Schlussfolgerung, das die Homebridge-App Schrott ist, ist hier schon so mancher gekommen - willkommen im Club!


    Dein Vorhaben geht nur über Umwege oder direkt auf der Shell. Mit FileZilla kannst du Dateien nur ins Homeverzeichnis kopieren (/home/pi). Nahezu alle anderen Stellen des Systems sind tabu und nur für root beschreibbar. Also übertrage die Datei erstmal in das Home von pi und dann kopierst du sie auf der Shell mit


    sudo cp HomeMaticHomeKitAlarmSystemService.js /usr/local/lib/node_modules/homebridge-homematic/ChannelServices/


    an ihr Ziel. Du kannst dir die Tipperei vereinfachen, indem du die filename completion verwendest. Du tippst dann sudo cp Home[TAB-Taste] /usr/loc[TAB-Taste]/lib/home[TAB-Taste]-home[TAB-Taste]/Chan[TAB-Taste].


    Stefan

    Installation auf einem Raspberry Pi 1b hat super geklappt, bis auf die Kleinigkeit, dass ich Node für ARM V6 (statt V7) installieren musste. Eventuell ist das einen Hinweis wert.

    Bestimmt. Ich verfüge leider nicht über einen Raspi 1 und konnte es daher nicht ausprobieren. Gedacht hatte ich mir das schon. ich werde es in die nächste Version der Anleitung aufnehmen.


    Danke sehr.


    Stefan

    Code
    Oct 17 16:09:16 raspberrypi systemd[1525]: homebridge.service: Failed at step EXEC spawning /usr/local/bin/homebridge: No such file or directory

    Der systemd versucht ein Programm zu starten, dass es nicht gibt. Wie lautet die Ausgabe von which homebridge?


    2. Aufruf von homebridge -I -U /var/homebridge[

    Code
    homebridge -I -U /var/homebridge
    /home/pi/.nvm/versions/node/v4.3.2/lib/node_modules/homebridge/node_modules/hap-nodejs/node_modules/node-persist/node_modules/mkdirp/index.js:90
                        throw err0;
                        ^
    
    Error: EACCES: permission denied, mkdir '/var/homebridge/persist'
        at Error (native)
        at Object.fs.mkdirSync (fs.js:794:18)
        at Function.sync (/home/pi/.nvm/versions/node/v4.3.2/lib/node_modules/homebridge/node_modules/hap-nodejs/node_modules/node-persist/node_modules/mkdirp/index.js:71:13)

    Das wurde wahrscheinlich als User pi gestartet, nicht wahr? Der hat kein Recht, einen Ordner namens persist in /var/homebridge anzulegen, weil diese Ecke des Raspis das Eigentum des Users homebridge ist. Versuche folgendes:


    sudo su - homebridge (wechsle in den Account von User homebridge)

    homebridge -I -U /var/homebridge


    (Verlassen des homebridge-Accounts mit exit)


    Aber es ist eindeutig: irgendwie fehlt die Homebridge (siehe erste Fehlermeldung).


    Stefan

    Naja, von zukünftigen neuen Plugins zu prahlen, ist mit den Voraussetzungen

    • keinen Plan von JavaScript
    • Entwicklungswerkzeuge: keine
    • Tugend der Geduld nur schwach ausgeprägt

    vielleicht ein bisschen voreilig. Mein Plan ist es mir ein Plugin zu bauen, das mir anzeigt, ob die verdammte S-Bahn in Frankfurt am Main pünktlich ist. Dazu habe ich mir einen API-Key beim RMV besorgt und kann so schon mal auf die Rohdaten zugreifen. Das Plugin soll dann einfach nur einen Schalter einschalten, wenn die Bahn ausfällt oder verspätet ist, so dass ich das in eine Automation einbauen kann. Beispielsweise könnte ich Alexa dazu bringen, Schmähgedichte über die S-Bahn vorzutragen.


    Ganz ehrlich: das ist eine harte Nuss für mich und kann jederzeit in vorzeitiges Projektende münden.


    Stefan

    • sudo apt-get upgrade bringt alle installierten Programme auf den neuesten Stand. Das bezieht sich nur auf die Programme, die mit einem Paketmanager wie apt, aptitude oder dpkg installiert wurden. Unser manuell heruntergeladenes und irgendwohin kopiertes node gehört nicht dazu. Die node-Version, die man mit einem Paketmanager installieren kann, ist leider älter als die ersten Schuhe deines Urgroßvaters.
    • sudo apt-get dist-upgrade bringt das Betriebssystem auf den neuesten Stand.


    Stefan

    det sagt's ja schon. Also, wo isse denn, die Homebridge?


    Ergibt

    which homebridge


    eine brauchbare Aussage wie

    Code
    pi@raspberrypi:~ $ which homebridge
    /usr/local/bin/homebridge

    oder wie

    Code
    pi@raspberrypi:~ $ which homebridge
    /usr/bin/homebridge

    oder noch was anderes? Jeden falls muss das, was da raus kommt, eingetragen werden in /etc/systemd/system/homebridge.service hinter ExecStart= und vor $HOMEBRIDGE_OPTS. Falls da was Brauchbares herauskommt.


    Bitte mal testen.

    Stefan

    Vielleicht. Ich glaube es nicht. Es liegt wahrscheinlich an /etc/systemd/system/homebridge.service. Darin steht nämlich:


    Code
    ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS


    Ist der Pfad zu homebridge noch richtig? Welche Ausgabe liefert which homebridge?


    Bitte beachten: die config.json liegt nicht in einem Verzeichnis namens /etc/default/homebridge. Das ist auch kein Verzeichnis, sondern eine Datei. In dieser Datei steht, wo homebridge die config.json suchen soll. Das sollte drinstehen (ein cat /etc/default/homebridge sollte unter anderem zeigen):


    Code
    HOMEBRIDGE_OPTS=-I -U /var/homebridge


    Wie rufst du denn homebridge auf, wenn es mit systemctl nicht geht? Was passiert bei Aufruf von

    homebridge -I -U /var/homebridge?


    Stefan

    Du machst nichts falsch. Du willst es so :D


    Wenn du dich mit PuTTY mit dem Raspi verbindest und dich einloggst, dann wird eine sogenannte Shell gestartet. Die Shell führt Kommandos aus, die du eingibst. Auch wenn es so aussieht, dass du die Homebridge startest, indem du das Kommando homebridge eingibst, ist es die Shell, die das Kommando ausführt und es ist auch die Shell, die die Homebridge startest. Du dagegen bist nur einer, der tippen kann, mit hoher Befriedigung die Entertaste drückt und danach zusieht, wie die Dinge ihren Laufen nehmen.


    Der Prozess homebridge ist ein Tochterprozess der Shell und er läuft so lange, wie diese Shell läuft. Beendest du die Shell, dann killst du den Prozess homebridge. Schließt du das PuTTY-Fenster, dann beendest du die Shell.


    Das gleiche gilt für die VMware-Konsole (falls man die überhaupt schließen kann). Es gilt auch für jedes andere Terminalprogramm und für jedes andere Betriebssystem. So ist der Lauf der Dinge und so sollen sie sein.


    Du kennst eine andere Shell: Windows. Alle Windows-Programme brauchen Windows. Killst du Windows, werden alle Programme, die Windows gestartet hat, indem du es mit Doppelklick dazu angeleitet hast, beendet.


    Da es den Administratoren in großen Rechenzentren zu doof ist, für jeden Prozess ein eigenes Fenster offen zu halten und morgens die offenen Fenster zu zählen, ob noch alle da sind, starten sie Prozesse im Hintergrund. Und da es ihnen gleichzeitig zu mühsam ist, nach dem Reboot einer Maschine ein Fenster zu öffnen und dort nohup homebridge & einzugeben, verwenden sie ein sogenanntes Startskript, um einen Prozess zu starten und das vor allem automatisch bei Systemstart. Heutzutage wird das mit einem Dienstprogramm namens systemd gemacht.


    Ich kann nur empfehlen, das ebenfalls so zu machen. Auf die Schnelle:


    Öffne die Datei /etc/systemd/system/homebridge.service mit dem Editor nano.


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


    Da die Datei aller Wahrscheinlichkeit noch nicht existiert, ist der Editor leer. Dort schreibst du jetzt rein:


    Dann speicherst du die Datei, indem du strg-x und dann y und dann die Entertaste drückst.


    Damit ist dein Startskript erstellt. Dann bringst du es dem System bei:


    sudo systemctl daemon-reload 

    sudo systemctl enable homebridge


    Dann startest du deine Homebridge mit

    sudo systemctl start homebridge


    Und siehst dir das Logfile an mit

    sudo journalctl -fau homebridge (Abbruch mit strg-c)


    Alle Angaben hier ohne Gewähr, da mein Setup ein völlig anderes ist. Ich habs jetzt hier mal so runtergeschrieben in der Hoffnung, dass das gleich bei dir funktioniert. Wie immer würd's mich wundern :D Falls es funktioniert, wird die Homebridge auch gleich automatisch beim Booten deiner VM mitgestartet.


    Wenn's nicht klappt, bitte hier beschweren und Fehlermeldungen dazu posten.


    Gruß,

    Stefan

    Wahrscheinlich war die Rede vom persist-Verzeichnis. Bei dir ist das /var/homebridge/persist.


    Achtung: Löschen von irgendeinem Zeugs kann einem den ganzen Tag versauen. Daher immer an ein Backup denken. Und daher erstmal die folgenden Gedanken lesen und dann handeln. Bitte beachte, dass du nur dann etwas löschen solltest, wenn die Homebridge nicht läuft, also muss sie vorher angehalten werden:


    sudo systemctl stop homebridge


    Löschen würdest du das Verzeichnis /var/homebridge/persist normalerweise mit dem Befehl

    sudo rm -rf /var/homebridge/persist


    Dann ist es weg. Weg wäre es aber auch, wenn du es nicht löscht, sondern einfach umbenennst. Das ist die sichere Methode, denn dann existiert es und sein Inhalt immer noch, halt unter einem anderen Namen (und das ist dann dein Backup).


    Das Verzeichnis /var/homebridge/persist umbenennen in /var/homebridge/persist.bak

    sudo mv /var/homebridge/persist /var/homebridge/persist.bak


    Beim Start von Homebridge wird das fehlende Verzeichnis und etwaiger Inhalt erneut angelegt. Läuft alles wie gewünscht, dann bist du an dieser Stelle fertig. Wenn nicht, solltest du den Urzustand wieder herstellen:


    sudo systemctl stop homebridge

    sudo rm -rf /var/homebridge/persist

    sudo mv /var/homebridge/persist.bak  /var/homebridge/persist


    Das Ganze würde ich erstmal versuchen ohne das neue Plugin.


    Stefan

    Ok habe es probiert, allerdings kam dann wieder die Meldung, dass die root rechte fehlten. Ich werde es jetzt mit root lasse, auch wenn du mir erklärt hast warum man das nicht söllte, aber für meine Anwendung mit LED an aus und bisschen Farbe ändern(nix mit Cam außerhlab des Netzwerkes etc. ) ist mir das Risiko nicht zu hoch und wenn doch dann muss ich wohl damit leben.

    Genau. Lass es unter root laufen, unser Homebridge-Gebastel soll ja keinem Selbstzweck dienen. Pragmatismus geht jetzt mal vor :thumbup:. Danke für den Test mit pi.


    Stefan