Python-Skript mit autoexec.py ausführen

  • Hallo,

    für eine Lüftersteuerung würde ich gerne ein Python-Skript über die autoexec.py ausführen, um auf das Modul "RPi.GPIO" zugreifen zu können.
    Das Python-Skript habe ich schon, nur mit der autoexec.py kenne ich mich noch nicht aus.
    Wo wird diese gespeichert und was muss ich rein schreiben, damit mein Python-Skript ausgeführt wird?

    Danke Max

  • https://kodi.wiki/view/Autoexec.py

    da sollte alles stehen was du wissen musst

    Ich habe folgendes Testskript erstellt:

    Python: test.py
    import time
    d=open("[definition='1','0']log[/definition].txt", "a")
    zeit=time.strftime("%d.%m.%Y, %H:%M:%S")
    d.write(zeit+"Programm erfolgreich gestartet\n")
    d.close()


    Wenn ich es mittels "python test.py" ausführe, funktioniert es (Es steht etwas in der "[definition='1','0']log[/definition].txt").

    Dann habe ich die autoexec.py in "/.kodi/userdata" angelegt und folgenden Inhalt zugefügt:

    Python: autoexec.py
    import xbmc
    xbmc.executebuiltin('RunScript("/.kodi/userdata/test.py")')


    Nur funktioniert es nicht (Kein Eintrag in "[definition='1','0']log[/definition].txt").
    Was habe ich falsch gemacht?

  • Das wird wohl auch noch benötigt werden.

    https://kodi.wiki/view/List_of_b…em_built-in.27s

    System.Exec(/pfad/zum/script)

    Ob das aber so funktioniert weiß ich nicht. Da du damit ein Script welches sich auf Kodi Module bezieht auf OS-Ebene ausführst. Ich könnte mir vorstellen, dass du da die gleichen Problem bekommst, die du schon hattest. Sicher bin ich mir aber nicht. Da könnte ggf. @BJ1 mehr zu sagen

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • @max0302

    Das funktioniert sehr wohl. Das stimmt. Das was aber der Themenstarter versucht ist was anderes. Der Themenstarter versucht ein Modul zu importieren, was es auf OS Ebene nicht gibt. Sondern nur, wenn das Script innerhalb von Kodi ausgeführt wird. Von Kodi aus also ein Script auf OS Ebene auszuführen wird in dem Fall mit Sicherheit scheitern. Da könnte man sich überlegen, das komplette Script in die Autoexec.py zu kopieren und es dort ausführen zu lassen.

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • Das wird wohl auch noch benötigt werden.

    https://kodi.wiki/view/List_of_b…em_built-in.27s

    System.Exec(/pfad/zum/script)

    Ob das aber so funktioniert weiß ich nicht. Da du damit ein Script welches sich auf Kodi Module bezieht auf OS-Ebene ausführst. Ich könnte mir vorstellen, dass du da die gleichen Problem bekommst, die du schon hattest. Sicher bin ich mir aber nicht. Da könnte ggf. @BJ1 mehr zu sagen

    Jap, leider das gleiche Problem :/

  • ok, gerade gemerkt, dass ich oben unsinn geschrieben habe ;)

    Hier also nochmal langsam.

    "RunScript" ist shcon mal richtig, aber es muss der volle Pfad angegeben werden. ".kodi" liegt immer in einem Home-Verzeichnis und nie unter root (/). Du navigierst also per Konsole zu dem Script und gibst dann pwd ein. Dann wird dir der Pfad angezeigt. Sollte es LibreELEC sein, dann könnte das so aussehen:

    xbmc.executebuiltin('RunScript("/storage/.kodi/userdata/test.py")')

    Das wird mit dem "test.py" auch klappen, da es keine Kodi internen Module importiert. Versuchst du aber Module zu importieren, die nur auf Kodi-Ebene existieren, dann wird das so wohl nicht klappen, da du

    um auf das Modul "RPi.GPIO" zugreifen zu können.

    das machen möchtest. Du solltest dir vielleicht überlegen, den Inhalt deines Scripts in die autoexec.py zu kopieren. Denn dann kannst du gewährleisten, dass das Script auch von Kodi entsprechend erkannt wird.

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • Also wenn ich mein Skript in die autoexec.py kopiere, funktioniert es! :thumbup:
    Nur ich würde gerne eine Lüftersteuerung erstellen, die kontinuierlich die CPU-Temperatur überwacht und den Lüfter reguliert - Also in einer Schleife. Ist das auch möglich direkt aus der autoexec.py heraus, oder bekomme ich dann Probleme beim booten?

  • Ist das auch möglich direkt aus der autoexec.py heraus, oder bekomme ich dann Probleme beim booten?

    Denke das geht, man kann aber auch ein Kodi Service Addon schreiben (hört sich komplizierter an, als es ist).

    Hier mal der Wiki Eintrag dazu


    edit: ich würde sogar eher empfehlen, ein Service Addon zu erstellen.

    Einmal editiert, zuletzt von SLiX (13. August 2019 um 13:56)

  • Ja, das würde ich auch empfehlen. Ein Addon ist da besser zu handeln als die autoexec.py und vielleicht hat dann so auch noch wer anders was davon, wenn du den Code zur Verfügung stellst ;)

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • Denke das geht, man kann aber auch ein Kodi Service Addon schreiben (hört sich komplizierter an, als es ist).
    Hier mal der Wiki Eintrag dazu


    edit: ich würde sogar eher empfehlen, ein Service Addon zu erstellen.


    Moin,
    habe mich jetzt etwas mit dem Erstellen eines Addons beschäftigt, bin aber nicht sehr weit gekommen.
    Habe eine addon.xml mit folgendem Inhalt erstellt:

    Nun stellen sich mir einige Fragen: Ist der Code so erstmal richtig? Wo wird dieser nun abgespeichert? Das Skript "test.py", welches aufgerufen werden soll, sollte sicherlich im gleichen Verzeichnis sein, oder?

    Wäre nett, wenn mir jemand damit helfen könnte :/

    MfG Max

  • Ich schalte beim hochfahren und runterfahren mit einem Service den TV ein und aus. Das kannst du nach deinen wünschen ändern.

    /storage/.config/system.d/tv.service


    /storage/.config/system.d/tvoff.service

    /storage/.kodi/powerontv


    /storage/.kodi/powerofftv

    Code
    systemctl enable tv.service
    systemctl enable tvoff.service

    aktiviert wird das Ganze dann so.

Jetzt mitmachen!

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