Homekit Automation (homepod) mit SSH Script will einfach nicht

  • Hallo,


    ich weiss nicht ob meine Frage hier richtig ist aber es erscheint mir vernünftig :)


    Ich habe das Problem, dass ich eine Homekit Automation erstellt habe die beim "testen" funktioniert aber im Live Betrieb nicht.


    Die Automation ist simpel:



    Wenn die Kühlschrank Tür geöffnet wird dann soll das SSH Skript getriggert werden.

    Dazu habe ich die Aktion in einen Kurzbefehl umgewandelt:



    Wenn ich hier auf "Play" drücke funktioniert es auch. Die SSH Befehle werden erfolgreich auf dem Host abgesetzt und in diesem Fall beginnt eine Lichtershow.


    Tja problem ist nur, dass wenn ich alles geschlossen habe und der Kühlschranktür Sensor auf "Offen" geht passiert genau garnichts.. Ich habe den Eindruck, dass der homepod sich nicht verbindet. Zumindest auf dem Host (raspberry pi) im log seh ich nur die tests vom iphone.


    Muss ich hier noch was beachten ? Könne mir vorstellen, dass das was mit der Known_hosts zu tun

  • Ich würde vermuten, dass die Cloud Synchronisation noch etwas Zeit benötigt. Einfach mal warten, und dann zu einem späteren Zeitpunkt noch mal versuchen, bevor du dich jetzt verrückt Nachricht.

  • Die SSH Funktion ist seit Ewigkeiten verbuggt. Warte auch schon ewig das es mal gefixt wird aber bisher leider nichts passiert.

  • Danke für die Info. Dachte ich mir schon fast. Habe es jetzt mit dem Homebridge Plugin homebridge-cmdswitch2

    realisiert und funktioniert auch.


    Das Plugin scheint mir aber schon recht veraltet zu sein und viele Dinge funktionieren nicht wie erwartet. Auch hier musste ich wieder workarounds einbauen wie z.b ein off comand welches einfach nur "ls" macht weil sonst eine exception geworfen wird.. immer diese bastelei :)

    • Hilfreich

    elminister


    Schau dir mal alternativ das plugin cmdtrigger an. Finde ich persönlich die beste Lösung, um nur Kommandos abzusetzen:


    https://github.com/hallos/homebridge-cmdtrigger

  • Auch hier musste ich wieder workarounds einbauen wie z.b ein off comand welches einfach nur "ls" macht weil sonst eine exception geworfen wird.. immer diese bastelei

    Ich verwende in solchen Fällen ein Kommando wie true oder false.

  • Hallo,


    ich versuche einen Siri-Kurzbefehl zum Neustarten der Homebridge zu erstellen.

    Scriptaktionen habe ich dazu in den Einstellungen aktiviert.


    Nun stehe ich vor folgender Fehlermeldung, beim ausführen des Shortcuts:


    "Skript über SSH ausführen" konnte keine Verbindung zum SSH-Server herstellen.


    Das Script selbst sieht wie folgt aus:


    Skript über SSH ausführen

    sudo systemctl restart homebridge


    Host: (IP des Raspi4) -- Anmerkung: die selbe wie ich sie bei der Remotedesktopverbindung nutze

    Port: 22

    Benutzer:in: pi

    Authentifizierung: Passwort

    Passwort: (Passwort von pi) -- Anmerkung: geprüft mit Remote-Desktopverbindung, dort geht es

    Eingabe: Variable auswählen -- Anmerkung: steckt hier der Fehler?


    Da ich noch recht neu in der Materie bin stehe ich vor einem Fragezeichen, welches hoffentlich von jemanden zielführend beantwortet werden kann.


    Ich danke schonmal im voraus.


    Gruß

  • Papoochee haben deinen Beitrag hierhin verschoben.


    Skript per SSH ausführen funktioniert seit geraumer Zeit nicht mehr zuverlässig, siehe oberen Beiträge.

  • Skript per SSH ausführen funktioniert seit geraumer Zeit nicht mehr zuverlässig, siehe oberen Beiträge.

    Hey Patrick! Danke fürs verschieben und den Hinweis.


    Habe mit CMDTrigger selbiges (Neustarten der Homebridge) versucht, allerdings...


    Code
    {
        "accessory": "CmdTrigger",
        "name": "Homebridge Neustart",
        "command": "sudo systemctl restart homebridge",
        "delay": "5000"
    }


    im Homekit ausgelöst ergibt im Protokoll...


    [21.2.2022, 09:07:42] [Homebridge Neustart] Setting 'Homebridge Neustart' true

    [21.2.2022, 09:07:42] [Homebridge Neustart] Command executed: 'sudo systemctl restart homebridge'

    [21.2.2022, 09:07:47] [Homebridge Neustart] Setting 'Homebridge Neustart' false


    ...resettet aber den Prozess nicht, wie es mit selbem Befehl über das Terminal funktioniert.

  • ...resettet aber den Prozess nicht, wie es mit selbem Befehl über das Terminal funktioniert.

    Das kommt möglicherweise darauf an, welcher User den Befehl ausführt. Um das zu testen solltest den Befehl unter dem gleichen User ausführen, unter dem auch die Homebridge läuft.

  • Um das zu testen solltest den Befehl unter dem gleichen User ausführen, unter dem auch die Homebridge läuft.

    Danke für den Denkanstoß.

    In der HB Statusanzeige Benutzer = homebridge und /etc/systemd/system/homebridge.service

    Code
    User=homebridge

    Nach meinem (Un)-Verständnis müsste es ja dann mit

    Code
    sudo -u homebridge systemctl restart homebridge

    gehen. Tut es aber nicht.


    Ach ja und noch was... nano /etc/sudoers.d/homebridge zeigt mir eine fröhlich leere Datei an?:/


    Any suggestions?

  • Vielleicht versuchst du es mal mit einem:

    sudo su - homebridge und dann

    sudo systemctl restart homebridge^

    Ach ja und noch was... nano /etc/sudoers.d/homebridge zeigt mir eine fröhlich leere Datei an?

    Any suggestions?

    Das könnte tatsächlich das Problem erzeugen. Hilft vielleicht ein

    sudo nano /etc/sudoers.d/homebridge?


    Im Zweifel schreib da mal rein:

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


    auch wenn ich bezweifle, dass das hilft.

  • Im Zweifel schreib da mal rein:

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


    auch wenn ich bezweifle, dass das hilft.

    Die Zweifel sind berechtigt...


    Zum einen...,

    ...weil /usr/local/bin/npm und usr/local/bin/node nicht existieren


    zum zweiten...,

    ...weil die which-Befehle usr/bin/npm und usr/bin/node liefern


    zum dritten...,

    weil ich es also angepasst und eingefügt habe aber dennoch nicht passiert.


    - an dieser Stelle müsste ergo der Zonk-Sound abgespielt werden -


    Ich ziehe mich also im meine Höhle zurück und warte auf die SSH-Befehle, um mal wieder zum Thema zurückzukommen.


    Papoochee haben deinen Beitrag hierhin verschoben.


    Skript per SSH ausführen funktioniert seit geraumer Zeit nicht mehr zuverlässig, siehe oberen Beiträge.

    Durch die oben beschriebene Problematik mit cmdTrigger tendiere ich fast dazu ein "nicht mehr zuverlässig" dem "funktioniert gar nicht" vorzuziehen. Ich hoffe der Thread bleibt noch am Leben und jemand findet einen Weg "Script per SSH" sinnvoll nutzen zu können.

    Einmal editiert, zuletzt von Papoochee () aus folgendem Grund: Ein Beitrag von Papoochee mit diesem Beitrag zusammengefügt.

  • Kann es sein, dass hier unterschiedliche Themen behandelt werden?

    Am Anfang ging es hier um Home Kurzbefehle. @Papoochee redet aber von Siri Kurzbefehlen.

    Siri SSH-Kurzbefehle sollten eigentlich funktionieren. Warum sie es nicht tun liegt wahrscheinlich an dem gleichen Grund, warum die SSH Befehle aus CMD Trigger nicht funktionieren.

    Bei mir hat zuumindest ein nächtliches "sudo reboot" funktioniert.

  • schurke2000


    Das Ziel ist ja, mit einem SSH-Befehl die Homebridge zu steuern (bei mir rebooten). Hierin liegt denke ich die Schnittstelle, warum mein Anliegen umgezogen wurde.


    Für mich als Anfänger war der "Fisch" via cmdTrigger sogar zumindest "schon mal an der Angel" während die Siri-Variante mir nur "Hier darfst du nicht angeln!" antwortete.


    Bei mir hat zuumindest ein nächtliches "sudo reboot" funktioniert.

    Damit rebootest du ja den kompletten Pi via Siri. Das wäre jetzt von mir so nicht gewollt.

  • Nach meinem (Un)-Verständnis müsste es ja dann mit
    Code
    sudo -u homebridge systemctl restart homebridge

    gehen. Tut es aber nicht.

    Du solltest mal versuchen, ob der User homebridge die Homebridge wirklich neu starten kann:


    sudo su - homebridge (macht dich zum User homebridge)

    sudo systemctl homebridge restart

    exit


    Wenn das geht, dann verpasse dem User homebridge ein Passwort:

    sudo passwd homebridge


    und passe deinen Kurzbefehl so an, dass sich nicht der Benutzer pi, sondern der Benutzer homebridge per ssh einloggt.

  • Vielen Dank. Ziel nun doch erreicht und dank sschuste 's Erklärung bin ich um einiges schlauer...


    Code
    sudo systemctl restart homebridge

    ...ausgelöst via CmdTrigger: