homebridge-ssh | Python .py über osascript ausführen am iMac?

  • Servus.. ich hab ja mal so gar keine wirkliche Ahnung was ich hier tue, bei mir läuft das gerade ein bisschen nach trial and error Methode.


    Daher die Frage hier..


    Ich nutze das Plugin homebridge-ssh schon eine ganze Weile, um über HomeKit z.B. den Bildschirmschoner am iMac zu starten und zu beenden, oder Programme zu starten.

    So zum Beispiel auch AppleScripts die ich als Programm auf dem Mac gespeichert habe, und dann so starten kann.



    Jetzt suche ich allerdings nach einer Möglichkeit das was in dem Script steht, direkt über die command line im Hintergrund aufrufen zu lassen. Also nicht dass die App mit dem Script gestartet wird, sondern das Script selbst. Das ist wiederum eigentlich nur eine Zeile um ein Python script zu starten.


    do shell script "/usr/local/bin/python3 /Users/Daniel/Anki-Vector/anki_vector_sdk_examples_0.5.1/tutorials/16_Off_Charger.py"


    Kann mir jemand sagen wie ich /usr/local/bin/python3 /Users/Daniel/Anki-Vector/anki_vector_sdk_examples_0.5.1/tutorials/16_Off_Charger.py direkt oben in die config mit "osascript" bekomme?


    Was schonmal nicht klappte war unteranderem

    ? "on": "osascript -e 'tell application \"python3 /Users/Daniel/Anki-Vector/anki_vector_sdk_examples_0.5.1/tutorials/16_Off_Charger.py\" to run'",


    Inzwischen bin ich mit meiner trial and error Methode und Google Suche am Ende und verzweifelt. ?(

    Danke vorab.:thumbup:

    Hilfreich?

  • ixh weis nicht ob es hilft,

    evtl. mit "homebridge-cmdtrigger"

    Code
    {
                "accessory": "CmdTrigger",
                "name": "MMirror2 HDMI off",
                "command": "sudo ssh mac_user@MAC_IP /Users/mac_user/wakemac.sh"
            },

    in dem

    Code
    wakemac.sh

    script ist dein Befehl drin


    der mac_user muss sich automatisch per ssh Schlüssel am MAC anmelden können.

    siehe : https://blog.botfrei.de/2013/03/ssh-auto-login/


    Ich hoffe das ist verständlich

    :)

  • Puh.. Danke. Verständlich halbwegs, ja. Aber doch ein bisschen viel, gerade die Erstellung des ssh Schlüssel. 8| Geht das überhaupt noch unter Mojave?

    Aber ich lese mir das mal bei Zeit und vor allem Muße durch.

    Vielleicht gibts ja doch noch was über das ssh Plugin und die command line. 8)

    Hilfreich?

  • Kann mir jemand sagen wie ich /usr/local/bin/python3 /Users/Daniel/Anki-Vector/anki_vector_sdk_examples_0.5.1/tutorials/16_Off_Charger.py direkt oben in die config mit "osascript" bekomme?

    Ruf's doch direkt auf:

    Code
    "on": "/usr/local/bin/python3 /Users/Daniel/Anki-Vector/anki_vector_sdk_examples_0.5.1/tutorials/16_Off_Charger.py"


    Stefan

  • Ruf's doch direkt auf:

    LOL. So einfach kann's sein. ^^ Funktioniert. Danke.

    Jetzt kann die HomeKit Gute Nacht Szene den kleinen endlich auch ins Bett schicken. ;)


    Allerdings gibt es noch einen config syntax Fehler in der json bei folgender Pfadangabe.


    "off": "/usr/local/bin/python3 /Users/Daniel/Library/Mobile\ Documents/com\~apple\~CloudDocs/VectorScripts/cherge.py",


    Liegt bestimmt an den Leerzeichen in "Mobile Documents" und/oder and den ~ . Allerdings sieht das so aus, wenn ich den Ordner einfach mal in den Terminal schiebe um mir den Pfad anzeigen zu lassen. Wie bekomme ich das der json config noch beigebracht?



    Hilfreich?

  • Der Pfad sieht richtig aus. Du kannst dir mit der TAB-Taste behelfen, also die da links mit dem ->| . Auf die Shell gehen und dort eingeben (nicht kopieren):


    ls /Us[TAB]Da[TAB]Lib[TAB]Mob[TAB]com[TAB]Clo[TAB].... und so weiter und sofort. Das [TAB] soll den Druck auf die TAB-Taste symbolisieren, immer dort wo es steht, drückst du auf diese Taste. Das löst eine Komplettierung des Pfades aus, das heißt, du musst das nicht tippen, sondern es geht wie von Zauberhand von allein. Da, wo es nicht weitergehen will, weil vielleicht zwei ähnliche Dateinamen stehen, drückst die TAB-Taste zweimal. Das zeigt die dann an, welche Alternativen es gibt und ob du vielleicht noch einen weiteren Buchstaben tippen musst, bevor du mit TAB weiterkommst. Wenn da ein Leerzeichen kommen sollte, musst du es als "\ " schreiben, also "Backslash Leerzeichen".


    Am Ende steht da ein kompletter Pfadname, den du dann kopieren kannst.


    Du könntest ihn in config.json auch in Hochkommas setzen, wobei du dann alle \ entfernen musst. Also so was wie:

    "off": "'/usr/local/bin/python3 /Users/Daniel/Library/Mobile Documents/com~apple~CloudDocs/VectorScripts/cherge.py'",


    Dieses Hochkomma ist da links neben dem Ä über der Raute.


    Stefan