Von Kodi aus Script auf anderer Linux-Maschine ausführen lassen

  • @bunter fisch:
    Den Advanced Launcher hab ich früher auch immer genutzt um meine Scripte auszuführen.
    Aber da es öfters Probleme gab, weil er mit den neuen Kodi Versionen nicht kompatibel war, hab ich eine andere (unabhängige) Lösung gefunden.

    Im Home screen hab ich einen Button der auf ein custom window führt. Hier kann man dann praktisch unendlich viele Python Scripte via "System.Exec" starten.

    Da ich vom "skinning" keine Ahnung hab, hat das natürlich eine Weile gedauert um den code in den betreffenden Dateien zu ändern. Ohne dieses geniale Forum hätte ich es nie geschafft.

    Ich lehne mich mal aus dem Fenster und behaupte das die Manipulation (Skin Anpassung) im Videomenü Fenster möglich sein müsste.

    Testumgebung - OS: Ubuntu 20.04 LTS | Kodi 19.1 | skin: Rapier 12.2.26 + Transparency! (views Slide und Fanart) | für Datenbank-/ Skin Tests
    Live Umgebung - OS: Ubuntu 16.04.3 LTS | Kodi 17.6 | skin: Transparency! 10.3.0 | TV

  • In meinem custom window befinden sich die Buttons.

    Du müsstest in der <Videomenü>.xml (vermute window und buttons sind in einer Datei) nach einem Stop, Pause oder Wiedergabe button suchen.
    Der sollte dann den Befehl <onclick>Stop, Pause oder Wiedergabe vom Video</onclick> haben (ist nur eine Vermutung).
    Denn kannst du ja mal austauschen und testen ob dein script funktioniert.

    Mein Befehl sieht z.B. so aus (unter Windows):
    <onclick>XBMC.System.Exec("C:\Scripte\Start_NAS-01.py")</onclick>

    Im Python script (z.B. 'Start_NAS-01.py') kannst du dann deine Wünsche eintragen.

    Testumgebung - OS: Ubuntu 20.04 LTS | Kodi 19.1 | skin: Rapier 12.2.26 + Transparency! (views Slide und Fanart) | für Datenbank-/ Skin Tests
    Live Umgebung - OS: Ubuntu 16.04.3 LTS | Kodi 17.6 | skin: Transparency! 10.3.0 | TV

  • Wie hast du die Befehle in die *.py eingetragen? In einer bestimmten Python-Syntax?

    Heißt es wirklich "XBMC.System.Exec", laut dem Skinning-Guide von Kodi sollte es nur "System.Exec" sein.

    Direkt auf das Shell-Script zu verlinken geht scheinbar nicht, auf dem Laptop stürzt Kodi ab wenn es im Fenstermodus läuft oder wechselt in den Fenstermodus wenn es Fullscreen läuft. Auf der lE-Maschine tut sich nichts. Ich habe hier testweise mal ein Skript mit

    Code
    touch datei


    getestet um zu sehen ob die Datei auch erstellt wurde.

  • Python Beispiel script (mount_NAS-01.py) um ein NAS einzuhängen:

    Von Python Programmierung hab ich NULL Ahnung, ist alles nur zusammengegoogelt. Wenn jemand Fehler oder Verbesserungen sieht, bitte melden.

    "XBMC.System.Exec" sollte richtig sein.

    Die Fenster-Einstellung in Kodi sollte egal sein. Wichtig ist das du ein Python script startest. Wenn man z.B. eine *.bat nimmt, passiert in etwa das was du beschrieben hast.

    Testumgebung - OS: Ubuntu 20.04 LTS | Kodi 19.1 | skin: Rapier 12.2.26 + Transparency! (views Slide und Fanart) | für Datenbank-/ Skin Tests
    Live Umgebung - OS: Ubuntu 16.04.3 LTS | Kodi 17.6 | skin: Transparency! 10.3.0 | TV

  • "NAS-01" wäre demnach dein ausführbares Script?

    Ja.

    In die Zeile "subprocess.call" kannst du deine Anweisung schreiben.
    subprocess.call(['<Deine Anweisung>'], shell=True)

    Testumgebung - OS: Ubuntu 20.04 LTS | Kodi 19.1 | skin: Rapier 12.2.26 + Transparency! (views Slide und Fanart) | für Datenbank-/ Skin Tests
    Live Umgebung - OS: Ubuntu 16.04.3 LTS | Kodi 17.6 | skin: Transparency! 10.3.0 | TV

  • @bunter fisch:
    Ist mir gerade aufgefallen ... mein <onclick> Befehl war falsch. :whistling:
    Er sieht so aus:

    Code
    ...
    <onclick>RunScript("C:\Scripte\Start_NAS-01.py")</onclick>
    ...

    Testumgebung - OS: Ubuntu 20.04 LTS | Kodi 19.1 | skin: Rapier 12.2.26 + Transparency! (views Slide und Fanart) | für Datenbank-/ Skin Tests
    Live Umgebung - OS: Ubuntu 16.04.3 LTS | Kodi 17.6 | skin: Transparency! 10.3.0 | TV

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!