Beiträge von sschuste

    Ok, um das ganz schnell zu lösen, änderst du dein Setup dahingehend, dass du deine Homebridge nicht mehr unter dem User homebridge laufen lässt, sondern unter dem User pi. Dazu tust du folgendes als User pi:


    sudo systemctl stop homebridge

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


    Hier änderst du die Zeile User=homebridge in User=pi. Abspeichern. Auf der Shell geht's weiter:


    sudo systemctl daemon-reload

    sudo chown -R pi:pi /var/homebridge

    sudo systemctl restart homebridge; sudo journalctl -fau homebridge


    Jetzt sollte der Prozess homebridge unter dem User pi laufen und der darf dein Kommando ja ausführen. Ich will mal checken, wie das auch der homebridge-User machen kann und dann unsere Anleitung verbessern.


    Stefan


    PS: Offenbar geht's auch, wenn man den User homebridge der Gruppe video hinzufügt, siehe hier: https://raspberrypi.stackexcha…v-vchiq-permission-errors


    sudo usermod -a -G video homebridge

    Wozu braucht man das Homebridge-hue plugin eigentlich ?

    Die meisten benutzen es, um ZigBee-kompatible Lampen, die per HUE-App gesteuert werden können, auch per Home-App steuern zu können. Ich benutze beispielsweise das hier, um eine herkömmliche Deckenleuchte dimmen zu können. Das Ding ist nicht von Philips, und es auch nicht Friend of Hue stuff, aber es kann ZigBee und wird von der HUE-App gefunden.


    Leider reicht Philips derartige Geräte nicht an HomeKit weiter, und dieses Problem löst dann homebridge-hue.

    Ich habe jetzt die homebridge von mein raspberry und die Philips Hue bridge in die home app. Die nächste Herausforderung is jetzt um die Hue lampen zu manipulieren mit Hilfe von MQTT Sachen die in die software homebridge ankommen..

    Viel Erfolg. Mit MQTT kenne ich mich leider gar nicht aus. Interessant fand ich node-RED mit MQTT. Auf YouTube findet man dazu einiges.


    Stefan

    Ich kann meine Lampen steuern "über die original Hue-App. Ich möchte meine original Hue Lampen aber auch über die homeapp steuern, das ich da an/aus Schalter drin habe. Erstmal um die Lampen mit Siri und auf finger druck zu schalten, später aber erweitern mit andere Automatisierungen über Homebridge.

    Das kannst du doch direkt machen, ohne eine Homebridge einzusetzen.


    Der Parameter "linkbutton":false, lässt auf jedenfalls schonmal das Ausrufezeichen verschwinden, jetzt aber steht auf die Philips Hue Kachel: Nicht geeignet. Scheint mir das das nicht gut is... Nicht geeignet heisst doch mehr oder weniger das das nicht funktioniert ?

    Diese Kachel wird für nichts benötigt. Ich weiß nicht mal, wozu sie gut ist. Sie kann dir erst einmal egal sein.



    Stefan

    Haben anscheinend auch andere, ich konnte bislang keine Lösung dafür finden: "Error: make nodesodium exited with code null" etc.

    Beispielsweise ich ?(. Ich arbeite dran...


    Nach einiger Zeit habe ich dann versucht ohne plugin die Geräte über die Kommando-Zeile zu steuern: Siehe da: echo standby 0 | cec-client -s -d 1 macht den TV aus, standby 4 den AppleTV. echo on 0 bzw. 4 fährt alles wieder hoch und pow liefert zuverlässig ihren ON/OFF Status. Mehr brauche ich ja erstmal gar nicht. Das muss doch auch in HomeKit Schaltern gehen?!...

    Geht das auch, wenn du das nicht einfach so als User pi eintipperst, sondern als User homebridge? Mach ma:


    sudo su - homebridge

    echo standby 0 | cec-client -s -d 1


    Funktioniert das immer noch?


    Zum Verlassen der Shell des Users homebridge gibst du exit ein und arbeitest wieder als der User pi.


    Es ist gut, wenn man nicht nur das Kommando kennt, sondern den ganzen Pfad dorthin und beides zum Konfigurieren des cmdswitch2 verwendet. Den Pfad ermittelst du mit


    which cec-client


    wobei so was wie /usr/bin oder /usr/local/bin herauskommt. Der Aufruf wäre dementsprechend dann sowas wie /usr/bin/cec-client -s -d 1.


    Stefan

    Hmmm. Was genau möchtest du machen? Was erwartest du in der Home-App?


    Deine config.json sieht genauso aus wie meine. Ich habe viele Philips HUE-Leuchten, aber sie sollen nicht über das Plugin angezeigt werden. Ich habe eine einzige ZigBee-Lampe und genau die will ich anzeigen lassen. Ich habe sie mit der HUE-App zur Philips HUE-Bridge hinzugefügt. Das Plugin homebridge-hue findet sie und zeigt sie an. Nur diese eine. Sie heißt "Pendel".


    Mein Log zeigt an:

    Code
    1. Mar 20 08:38:48 homePi homebridge[12846]: [3/20/2019, 8:38:48 AM] Loaded plugin: homebridge-hue
    2. Mar 20 08:38:48 homePi homebridge[12846]: [3/20/2019, 8:38:48 AM] Registering platform 'homebridge-hue.Hue'
    3. Mar 20 08:38:52 homePi homebridge[12846]: [3/20/2019, 8:38:52 AM] [Hue] Initializing Hue platform...
    4. Mar 20 08:38:52 homePi homebridge[12846]: [3/20/2019, 8:38:52 AM] [Hue] homebridge-hue v0.11.19, node v10.15.3, homebridge v0.4.46
    5. Mar 20 08:38:58 homePi homebridge[12846]: [3/20/2019, 8:38:58 AM] [Hue] Philips hue: Philips BSB002 bridge v1901181309, api v1.29.0
    6. Mar 20 08:38:58 homePi homebridge[12846]: [3/20/2019, 8:38:58 AM] [Hue] Philips hue: 2 accessories
    7. Mar 20 08:38:58 homePi homebridge[12846]: [3/20/2019, 8:38:58 AM] [Hue] masked debug info dumped to /var/homebridge/homebridge-hue.json.gz
    8. Mar 20 08:38:58 homePi homebridge[12846]: [3/20/2019, 8:38:58 AM] [Hue] Initializing platform accessory 'Philips hue'...
    9. Mar 20 08:38:58 homePi homebridge[12846]: [3/20/2019, 8:38:58 AM] [Hue] Philips hue: 3 services
    10. Mar 20 08:38:58 homePi homebridge[12846]: [3/20/2019, 8:38:58 AM] [Hue] Initializing platform accessory 'Pendel'...


    Ich sehe jetzt zwei ZiegelKacheln: Pendel (die ZigBee-Lampe) und Philips Hue ohne Ausrufezeichen.


    Stefan

    Ich weiß das root-Passwort meiner Raspis nicht. Aber natürlich kannst du so vorgehen.


    Übrigens kannst du dir die Schlüsselpaar-Erstellung sparen und gleich mit ssh-copy-id weitermachen.


    Wenn du dich wieder einloggen willst, wirst du mit hoher Wahrscheinlichkeit eine Fehlermeldung erhalten. Immerhin steht da nun ein "neuer" Raspi, aber dein ssh-Programm auf dem Mac erwartet da einen, den es bereits kennt. Es hält dann den neuen Raspi für eine Man-in-the-Middle-Attacke und verweigert dir den Zugang. Ich nehme an, dass das bei dir passieren wird. Sowas wie WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!


    Nehmen wir mal an, dein Raspi hat die IP-Adresse 192.168.178.17. Dann kannst du die Sperre aufheben, indem du auf dem Mac eingibst:


    ssh-keygen -R 192.168.178.17


    Stefan

    Oops. Neuaufsetzen wäre bestimmt die schnellste Lösung. Natürlich könnte man eine Tastatur anschließen und einen Monitor und sich als root einloggen, wenn man das root-Passwort wüsste. Oder man startet den Raspi im Single-User-Modus und kann dann die Datei wahrscheinlich ohne Passwort bearbeiten. Wie letzteres geht, weiß ich nicht und müsste es erst selbst Googlen, daher wäre meine Vorgehensweise "alles von vorn". Dauert ja nicht so lange.


    Machst du das von einem Mac aus?


    Stefan

    Das Löschen der Datei fällt also raus. Wenn ich das richtig verstanden habe, handelt es sich doch um die Konfigurationsdatei des Homebridge-Benutzers, richtig? Wie kann ich diese denn wieder instandsetzen?

    So ist es. Der Inhalt dieser Datei legt fest, welche Befehle der User homebridge mit root-Rechten ausführen darf. Die Anleitung sieht vier Befehle vor:

    /usr/local/bin/npm (damit homebridge-config-ui-x Plugins installieren kann)

    /bin/systemctl restart homebridge (damit homebridge-config-ui-x die Homebridge restarten kann)

    /bin/journalctl (damit homebridge-config-ui-x das Log anzeigen kann)

    /usr/local/bin/node (damit homebridge-config-ui-x einen Security-Check der Plugins durchführen kann)


    Das sind alles Kommandos, die aufgerufen werden können, und nicht etwa Dateien oder Verzeichnis, die geschrieben werden sollen. In sudoers-Dateien stehen immer nur Kommandos, alles andere funktioniert da nicht.


    Deine /etc/sudoers.d/homebridge enthält demnach also:

    Code
    1. homebridge ALL=(root) SETENV:NOPASSWD: /usr/local/bin/npm, /bin/systemctl restart homebridge, /bin/journalctl, /usr/local/bin/node


    Wer auch noch den Raspi per homebridge-config-ui-x rebooten will, muss diese Datei erweitern auf:

    Code
    1. homebridge ALL=(root) SETENV:NOPASSWD: /usr/local/bin/npm, /bin/systemctl restart homebridge, /bin/journalctl, /usr/local/bin/node, /sbin/shutdown


    Egal, wie das Forum das hier abbildet: das ist immer eine einzige Zeile.


    Eine kaputte sudoers-Datei kann den Login auf den Rechner unmöglich machen und man hat sich dann quasi ausgeschlossen. Also Vorsicht beim Bearbeiten! Damit es nicht schief geht, sollte man den sudoers-Editor visudo nutzen, der checkt nämlich vor dem Speichern, ob das so in Ordnung geht:

    sudo visudo -f /etc/sudoers.d/homebridge


    Dann alles anpassen und abspeichern. Alles klar? ;)


    Stefan

    Das kannst du machen, auch wenn ich nichts davon halte. Aber es ändert nichts an der Tatsache, das der Pfad zum cache_directory anders gesetzt sein muss. Denke immer an die Zehn Gebote:


    1. Du sollst nicht irgendwo auf die Platte schreiben.
    2. Du sollst nicht irgendwo auf die Platte schreiben.
    3. Du sollst nicht irgendwo auf die Platte schreiben.
    4. Du sollst nicht irgendwo auf die Platte schreiben.
    5. Du sollst nicht irgendwo auf die Platte schreiben.
    6. Du sollst nicht irgendwo auf die Platte schreiben.
    7. Du sollst nicht irgendwo auf die Platte schreiben.
    8. Du sollst nicht irgendwo auf die Platte schreiben.
    9. Du sollst nicht irgendwo auf die Platte schreiben.
    10. Du sollst nicht irgendwo auf die Platte schreiben.

    Zumindest die ersten drei davon sollte man auswendig lernen.


    Stefan

    Ja, das Herumfummeln an den sudoers-Dateien kann bös enden. Wenn du es tust dann benutze statt nano den sudoers-Editor visudo und log dich über ein weiteres Fenster auf den Raspi ein, um zu sehen, dass das wirklich noch geht und alles gut aussieht. Man kann sich da leicht ausschließen.


    Stefan

    Mar 17 18:52:13 raspberrypi homebridge[3608]: [3/17/2019, 6:52:13 PM] [MiLight] Initializing platform accessory 'Null'...
    Mar 17 18:52:13 raspberrypi homebridge[3608]: [3/17/2019, 6:52:13 PM] [MiLight] Initializing platform accessory 'Null'...
    Mar 17 18:52:13 raspberrypi homebridge[3608]: /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:266
    Mar 17 18:52:13 raspberrypi homebridge[3608]: throw new Error("Cannot add a bridged Accessory with the same UUID as another bridged Accessory: " + existing.UUID);

    "lights": {"fullColor": ["Kitchen ","Bedroom","Null","Null"]},

    "Null","Null"? Sind wir hier beim Fußball? Es kann nur eine Null geben, da liegt dein Problem. Wenn du also deine Räume unbedingt durchnummerieren will, dann versuch's mal mit "Null","Eins" oder "Dreihundertsiebenundzwanzig", "Zwölf".


    Disclaimer: ich setze kein Milight ein und habe auch keine derartige Konfiguration getestet noch sonst irgendeinen Plan davon.


    Stefan

    ich hoffe jemand kann mir Anfänger/Halbprofi dabei helfen

    Die config.json sieht völlig ok aus. Offenbar scheppert's bei dem homebridge-raspberry-temperature. Und zwar schon beim Laden und Registrieren des Plugins.

    [3/16/2019, 1:00:14 PM] Loaded plugin: homebridge-raspberrypi-temperature
    [3/16/2019, 1:00:14 PM] Registering accessory 'homebridge-raspberrypi-temperature.RaspberryPiTemperature'
    [3/16/2019, 1:00:14 PM] ---
    Stopping Node.js HomeKit Server...
    Stopped Node.js HomeKit Server.

    Das solltest du testhalber mal aus config.json herausnehmen und es auch deinstallieren.


    sudo npm uninstall -g homebridge-raspberry-temperature


    Dann die Homebridge neu starten und sehen, was im Log passiert. Wenn es jetzt besser läuft, installierst du das Plugin neu und passt die config.json wieder an.


    Stefan

    Da es wenig Sinn macht, dass ich innerhalb des cmd-trigger Befehl jedes Mal die C++ Datei kompiliere muss jetzt wahrscheinlich noch dafür sorgen, dass die "steuerung"-Datei einmalig bei jedem Hochfahren/Neustart des Raspberrys kompiliert wird, damit sie einsatzfähig ist.

    Wieso? Ein einziges Mal kompilieren sollte doch für den Rest des Raspi-Lebens reichen.


    "on_cmd": "cd /usr/local/bin433Utils/RPi_utils && sudo ./steuerung 1",
    "off_cmd": "cd /usr/local/bin433Utils/RPi_utils && sudo ./steuerung 0"

    Ja, das sollte so gehen.


    Stefan