Beiträge von sschuste

    Nix passiert, denn er ist ja bereits aus. Natürlich könnte ich 3 Automationen mehr erstellen, die dann auch jedes Mal den virtuellen Schalter triggern.. will ich aber nicht. Ich hatte eigentlich gedacht, dass ich den virtuellen Schalter auch dann ausschalten kann, wenn er bereits aus ist.

    Du kannst den virtuellen Schalter ja auch ausschalten, wenn er schon aus ist. Das hilft dir bloß nix, weil deine Automationen nicht auf den aktuellen Status reagieren, sondern nur auf eine Veränderung des Status. Also passiert nix mehr: wenn man einen ausen Schalter noch mal aus macht, dann ändert sich ja kein Status.


    Ich verwende daher homebridge-delay-switch als virtuellen Schalter Der ist so konfiguriert, dass er den virtuellen Schalter nach einer Sekunde wieder ausschaltet, wenn ich ihn eingeschaltet habe. Er wird damit sozusagen einem Reset unterzogen.

    Muss ich jetzt irgendetwas beachten, seitdem "homebridge" ein Passwort erhalten hat? Irgendwelche Änderungen in der json.config oder anderen Konfigurationsdateien von Homebridge?

    Nein.

    sudo su

    Besser ist sudo su -. Damit werden dann die Umgebungsvariablen von root geladen. Dein Befehl macht dich zwar zu root, aber es werden die Umgebungsvariablen von pi genutzt. Könnte unschöne Effekte haben.

    Vielen Dank für Deine Hilfe, ich habe es auch verglichen um zu verstehen wo der Fehler liegt. Möchte mich da ja etwas mehr mit beschäftigen und das „System“ verstehen.

    Das "System" heißt in diesem Falle JSON. Die Wikipedia schreibt dazu: "Die JavaScript Object Notation (JSON [ˈdʒeɪsən]) ist ein kompaktes Datenformat in einer einfach lesbaren Textform und dient dem Zweck des Datenaustausches zwischen Anwendungen." Die Beurteilung von "einfach lesbar" möchte ich aber lieber jedem einzelnen überlassen...


    JSON eignet sich wunderbar für den Datenaustausch, weil es sich für Programmierer so einfach verarbeiten lässt. Daher nehmen die das auch gerne für Konfigurationsdateien (hier: config.json). Es ist eigentlich dazu gemacht, dass Programme untereinander leicht Daten tauschen können. Ein Beispiel wäre hier ein Server, der Wetterdaten im JSON-Format liefert (das ist das eine Programm) und ein homebridge-Plugin diese verarbeitet und daraus irgendwas extrahiert, beispielsweise eine Temperatur (das ist das andere Programm). Und weil man das als Programmierer sehr leicht auseinanderpflücken kann, nehmen sie es auch gern für andere Sachen.


    Für die Programme spielt es keine Rolle, ob JSON in einer einzigen Zeile steht oder wohlformatiert daherkommt. Für Menschen ist nur die letzte Form halbwegs brauchbar. Wenn man damit arbeitet und es selber schreiben muss (wie in config.json), dann hilft nur die totale Disziplin: Klammern, die aufgehen, müssen auch wieder zugehen, und den ganzen Scherbel einzurücken, hilft beim Verstehen ungemein. Ich mach das - auch beruflich - schon eine ganze Weile, aber es kommt immer wieder vor, dass ich da sitze und "WTF" vor mich hinmurmelnd eine JSON-Datei formatiere und den Fehler nicht finde.


    Die Fehlertoleranz bei JSON liegt bei Null. Entweder man macht es richtig oder man macht es gar nicht. Ist so, und jeder quält sich damit herum.

    Nach deinen befehl geht es jetzt

    sudo usermod -G systemd-journal homebridge

    An was lag es ?

    Daran, dass du es nicht eingegeben hast :P


    Eventuell stand das in der alten Anleitung nicht drin, da (soweit ich mich entsinne) das Log über systemd lief.

    Stand nicht drin und läuft erst seit der neuen Anleitung unter systemd. Es ist klar ein Rechteproblem, dass sich nicht durch sudo lösen lässt, oder zumindest nur für eine Weile. Daher muss der homebridge-User Mitglied der Gruppe system-journal sein.


    Hab noch das dazu gefunden:

    Homebridge Installationsanleitungen

    Stefan

    Ich würde es tatsächlich im Plugin-Code ändern. Dazu bearbeitet man die Datei /usr/lib/node_modules/homebridge-raspberrypi-remote/index.js.


    sudo nano /usr/local/lib/node_modules/homebridge-raspberrypi-remote/index.js


    In der Datei sucht man nach der Zeile exec('/usr/lib/node_modules/homebridge-raspberrypi-remote/current_temperature.sh', function (error, stdout, stderr) {. Sie kommt nur einmal darin vor, ziemlich am Ende des Scripts. Hier baut man nun den Pfad so um, dass er stimmt. Das sieht dann so aus:


    exec('/usr/local/lib/node_modules/homebridge-raspberrypi-remote/current_temperature.sh', function (error, stdout, stderr) {


    Nachteil dieser Vorgehensweise ist, dass beim nächsten Update des Plugins dieser Vorgang wiederholt werden muss.


    Der Vorschlag von Gerrit ist auch eine Lösung, allerdings würde ich es verlinken und nicht verschieben oder kopieren. Und zwar so:


    sudo mkdir /usr/lib/node_modules/

    cd /usr/lib/node_modules/

    sudo ln -s /usr/local/lib/node_modules/homebridge-raspberrypi-remote .

    cd


    Das ist stabiler und führt dazu, dass auch ein Update des Plugins nichts zerhämmert. Allerdings würde ich befürchten, dass homebridge das Plugin nun zweimal findet. Ich habe nichts von alldem, was ich hier beschrieben habe, ausprobiert und deshalb weiß ich es nicht genau.

    und es wird bei beidem die gleiche Version (0.4.0a10) angezeigt. Aber nicht nur der Befehlssatz zwischen den Nutzern "pi" und "homebridge" beim Aufruf von atvremote ist unterschiedlich, sondern auch der pairing process. Ich verstehe es nicht.

    Ich werde mich nächstes Jahr mal drum kümmern. Ich brauch das nämlich auch. Augenblicklich kann ich gar nichts dazu sagen.

    Anbei meine config.json: (hab sie fast auf Anhieb gefunden...)

    Es geht immer schneller :)


    Wie wichtig sind eigentlich die Abstände (Tabulatoren) der einzelnen Zeilen zum Zeilenbeginn?

    Dienen nur der besseren Lesbarkeit.


    Deine config.json ist ok. Ich kann den Fehler nicht erklären. Vielleicht liegt es an der Node-Version? Und die Deinstallation und Reinstallation des Plugins hilf manchmal auch:


    sudo npm uninstall -g --unsafe-perm homebridge-config-ui-x

    sudo npm install -g --unsafe-perm homebridge-config-ui-x

    Funktioniert das Plugin nur über wlan? Habe es mit meinem iPhone zum laufen bekommen, aber keine Erkennung mit meinen Computer (per Kabel am Router) realisiert.

    LAN oder WLAN sollte keine Rolle spielen. Kannst du den Computer vom Raspi aus anpingen?