Power-Menü pimpen

  • Hallo zusammen,

    ich möchte beim Verlassen von Kodi (Exit, Power Off System, Custom Shut Down Timer, Reboot etc.) eine Batch-Datei aufrufen (gerne auch bei jedem der einzelnen Powermenüpunkte). Leider habe ich dazu im Forum nix gefunden. Idee von mir war es, das Thema vielleicht über die advancedsetting.xml laufen zu lassen. Aber ich bin auch da nicht fündig geworden.

    Wie kann ich das Powermenü skinunabhängig entsprechend aufbohren? Momentan benutze ich das Aeon-Nox SiLVIO. Innerhalb dieses Skins habe ich leider keine Editiermöglichkeit gefunden.

    Könnt ihr mit helfen? [bc]

    Kodi 20.1

    HTPC: Win 11 64bit | 1x NUC 12 Pro | 2x NUC 7 | 1x PC
    TV: Samsung 55" Neo QLED 4K QN95B
    Audio für Kodi: Marantz 1711 mit KEF T-Serie mit 5.1.2-Setup
    Audio für reines HiFi: Rega Elicit-R| KEF R500
    NAS: Synology RS1221+ (5x 16 TB)

  • DialogButtonMenu.xml, in der Datei werden den Buttons u.a. die Aktionen zugeordnet.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Wenn du nur ne einheitliche Aktion ausführen lassen willst, die auch immer ausgeführt werden soll, dann bietet Kodi doch die Möglichkeit per Python, so wäre man Skin unabhängig.

    Ich erinnere mich dunkel das @DaVu oder @PvD soetwas für einen User mal vor ca. 3 Jahren gebastelt hat.

    NAS: Gehäuse: Jonsbo G3, Mainboard: MSI B460M PRO, CPU: Intel Pentium G6400, OS: OMV 6

    Client: NVIDIA Shield Pro 2019

  • Man kann die autoexec.py auch so programmieren, dass nicht nur bei Systemstart sondern auch beim Beenden eine Aktion ausgelöst wird.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Danke für die schnellen Antworten. [bt]

    Mir gehen tausend Dinge durch den Kopf. Was will ich eigentlich? Ich will, dass meine Kodis (Wohnzimmer, Schlafzimmer, Arbeitszimmer) immer auf dem gleichen Stand sind. Es geht nur darum, neu eingepflegte Serien überall sofort zu haben, den Gesehenstatus abzugleichen und begonnene Filme/Serien in einem anderem Zimmer weiterzuschauen. Mehr nicht. Ich will keine MySQL-Datenbank installieren und den ganzen Kram erledigen. Um die genannten Abstimmungen zu erledigen, reicht es, den Inhalt des Ordners "Database" zu kopieren. Ein Synchronisierungstool erledigt das ganz von alleine. Es gleicht die Datenbankdateien im Ordner "Database" zwischen dem jeweiligen PC und den auf dem Netzwerk liegenden Kopien ab. Je nachdem, welche db-Datei neuer, überschreibt diese die ältere Datei (das funktioniert in beiden Richtungen). Klappt beim Start des jeweiligen PC wunderbar. Aber beim Beenden leider nicht. Da habe ich ja einen Film geguckt und der Status ist entsprechend neu gesetzt. Auch der Aufgabenplaner von Windows kann da leider nicht helfen. Daher kam mir die Idee, dass beim Beenden von Kodi eine Batchdatei das Synchro-Tool starten könnte. Ich fahre die PCs meistens mittels Yatse runter. So wäre das Einbinden in das Beendenmenü eigentlich perfekt. Ich weiß nur nicht, wo ich ansetzen muss.

    Zweiter Weg ist die [definition='2','1']advancedsettings[/definition].xml. Hier habe ich versucht, dass Kodi direkt auf den "Database"-Ordner auf dem Netz zugreift. Dann wären es sofort und direkt immer alles aktuell. Aber das geht irgendwie nicht. Ich weiß nicht, ob die Netzperformance ausreicht, aber ich hätte das gerne wenigstens getestet.

    Kodi 20.1

    HTPC: Win 11 64bit | 1x NUC 12 Pro | 2x NUC 7 | 1x PC
    TV: Samsung 55" Neo QLED 4K QN95B
    Audio für Kodi: Marantz 1711 mit KEF T-Serie mit 5.1.2-Setup
    Audio für reines HiFi: Rega Elicit-R| KEF R500
    NAS: Synology RS1221+ (5x 16 TB)

  • Zweiter Weg ist die [definition='2','1']advancedsettings[/definition].xml. Hier habe ich versucht, dass Kodi direkt auf den "Database"-Ordner auf dem Netz zugreift. Dann wären es sofort und direkt immer alles aktuell. Aber das geht irgendwie nicht. Ich weiß nicht, ob die Netzperformance ausreicht, aber ich hätte das gerne wenigstens getestet.

    Bin mir nicht ganz sicher. Aber ich meine, das wird auch nicht supported. Pathsubstitution ist nicht für die Database gedacht. Aber hier könnte @DaVu mehr zu sagen.

  • Mehrere gleichzeitige Datenbankzugriffe von mehreren Clienten - das geht nur schief. Machen könnte man das bei Windows Clienten schon mit mklink.. aber näää, lieber ein gutes Backend wie Emby Media Server.

    --------------
    Guides nicht mehr verfügbar wegen Youtube unvermögen guten von schlechten Kodi Videos zu unterscheiden.

  • Ich würde tatsächlich einer zentralen Datenbankverwaltung den Vorteil geben, entweder über eine MySQL Datenbank oder über den Ember Media Server.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Man kann die autoexec.py auch so programmieren, dass nicht nur bei Systemstart sondern auch beim Beenden eine Aktion ausgelöst wird.

    Wie das denn? Die autoexec.py wird doch nur nach Kodi-Start getriggert. Wie kann ich die so schreiben, dass bei Kodi-Ende was getriggert wird? Da machst du mich aber neugierig ;)

    Bin mir nicht ganz sicher. Aber ich meine, das wird auch nicht supported. Pathsubstitution ist nicht für die Database gedacht. Aber hier könnte @DaVu mehr zu sagen.

    Korrekt. Pathsubstitution ist bei Datenbanken nicht supported.

    Auf die Wünsche gehe ich später ein. Das muss ich mir erstmal in Ruhe durch lesen ;)

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

  • @DaVu indem die autoexec.py als Service programmiert wird und bei onAbortRequested getriggert wird. Letzteres wird ausgelöst, wenn das System runtergefahren wird.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Der Zugriff der diversen Front Ends findet nie gleichzeitig statt, da wir nur zu zweit im Haushalt sind. Und die sportliche Herausforderung ist, die Aufgabe mit Bordmitteln zu schaffen. Jedes mal, wenn ich ein System neu aufsetze oder neu anschaffe, die MySQL-Datenbank entsprechend anbinden? Ich weiß nicht. Und Python kann ich leider nun gar nicht schreiben. [ak]

    Kodi 20.1

    HTPC: Win 11 64bit | 1x NUC 12 Pro | 2x NUC 7 | 1x PC
    TV: Samsung 55" Neo QLED 4K QN95B
    Audio für Kodi: Marantz 1711 mit KEF T-Serie mit 5.1.2-Setup
    Audio für reines HiFi: Rega Elicit-R| KEF R500
    NAS: Synology RS1221+ (5x 16 TB)

  • @RubberHead das ist egal, wie viele gleichzeitig zugreifen. Es ist deswegen immer noch nicht supported.

    Es gibt da so nen Spruch: "Du kannst das schon so machen, aber dann isses halt Kacke"

    Wenn das dein Anspruch an deine Computersysteme ist, dann go for it.

    Eine MySQL über eine [definition='2','1']advancedsettings[/definition] anzubinden ist ein Kinderspiel. Und bei Python kann dir @PvD helfen. Und so wie ich ihn einschätze macht er das bestimmt gern, wenn man höflich fragt und er es zeitlich unter kriegen kann.

    @PvD ich glaube das habe ich nicht ganz verstanden. Werde mir aber nochmal das Python Modul anschauen, genauer lesen und dann ggf nochmal mit ner konkreten Frage um die Ecke kommen. So viel habe ich verstanden....

    Autoexec ist ja mittlerweile als Addon zu integrieren. Dieses Addon ist dann ein Service, der permanent auf die Aktionen/Reaktionen des Systems horcht und wenn "onAbortRequested" getriggert wird, dann führe spezifischen Code aus?

    So in etwa?

    Wie verhält sich das dann mit den Timings? Wenn "onAbortRequested" getriggert wird, wird sich Kodi irgendwann beenden. Wie verhält es sich dann wenn ich Kodi built-ins triggern möchte? Wartet Kodi mit dem Beenden bis der Service beendet ist und der spezifische Code ausgeführt wurde?

    Ich kann mich erinnern, saß bei LibreELEC die Shutdown.sh z. B. nicht mehr alle Netzwerkaufgaben abwickeln konnte, da der Netzwerkdienst vorher beendet war. Kann sowas auch bei so einer autoexec.py passieren?

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

  • Ich will, dass meine Kodis (Wohnzimmer, Schlafzimmer, Arbeitszimmer) immer auf dem gleichen Stand sind. Es geht nur darum, neu eingepflegte Serien überall sofort zu haben, den Gesehenstatus abzugleichen und begonnene Filme/Serien in einem anderem Zimmer weiterzuschauen. Mehr nicht. Ich will keine MySQL-Datenbank installieren und den ganzen Kram erledigen. Um die genannten Abstimmungen zu erledigen, reicht es, den Inhalt des Ordners "Database" zu kopieren. Ein Synchronisierungstool erledigt das ganz von alleine. Es gleicht die Datenbankdateien im Ordner "Database" zwischen dem jeweiligen PC und den auf dem Netzwerk liegenden Kopien ab. Je nachdem, welche db-Datei neuer, überschreibt diese die ältere Datei (das funktioniert in beiden Richtungen). Klappt beim Start des jeweiligen PC wunderbar. Aber beim Beenden leider nicht. Da habe ich ja einen Film geguckt und der Status ist entsprechend neu gesetzt. Auch der Aufgabenplaner von Windows kann da leider nicht helfen. Daher kam mir die Idee, dass beim Beenden von Kodi eine Batchdatei das Synchro-Tool starten könnte. Ich fahre die PCs meistens mittels Yatse runter. So wäre das Einbinden in das Beendenmenü eigentlich perfekt.

    Das klingt nach einem ganz dreckigem Hack :D

    Warum der Aufgabenplaner bei Windows (ich glaube das wäre das entsprechende Equivalent zu einem Cronjob unter Windows, oder?) nicht schafft, erklärt sich mir nicht.

    Wo ich aber auf jeden Fall die Schwierigkeit sehe....

    Du hast 2 Clienst. Du sagst,

    Der Zugriff der diversen Front Ends findet nie gleichzeitig statt, da wir nur zu zweit im Haushalt sind

    und das kannst du leider nur schwer gewährleisten. Um sicher zu gehen und das ganz "fail safe" zu gestalten, muss Client "A" checken ob Client "B" auch gerade eingeschaltet ist und was genau er gerade tut. Ansonsten läufst du Gefahr, dass sich die Clients überschneiden und gleichzeitig Versuchen "Dinge" zu machen, die sie nur machen sollten, wenn nur einer von beiden eingeschaltet ist. Daher ist der Weg über eine MySQL der einzig sinnvolle.

    Du darfst auch nicht vergessen, dass da auch noch ein kleiner Rattenschwanz hinten dran hängt. Die Thumbnails nämlich, die in der Textures.db lokal auf den Clients ihre ID bekommen. Diese kann sich je Client und je ID zum Film und dem dazu gespeicherten Ordner im Thumbnails-Ordner auch mal unterscheiden. Gerade bei größeren Datenbanken mit mehreren Quellen kommt es dann darauf an, welche Quelle als erstes eingelesen wird.

    Das zuverlässig ohne eine MySQL hinzubekommen, so dass es in Monaten noch sauber läuft, könnte schwierig werden. Ich würde davon absehen und lieber so nen Mini-Dienst, wie eine MySQL installieren, die man sogar easy in einem Docker laufen lassen kann.

    Just my 2 cents

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

  • Ihr macht mir angst. Wenn ich eine Anleitung im Netz über die Anbindung per MySQL gesehen habe, hatte ich doch einen Eindruck erhalten, dass es doch nicht sooo einfach einfach ist. Habt ihr einen Link zu einer Anleitung parat, der ohne viel schnick schnack zeigt, wie es geht?

    Kodi 20.1

    HTPC: Win 11 64bit | 1x NUC 12 Pro | 2x NUC 7 | 1x PC
    TV: Samsung 55" Neo QLED 4K QN95B
    Audio für Kodi: Marantz 1711 mit KEF T-Serie mit 5.1.2-Setup
    Audio für reines HiFi: Rega Elicit-R| KEF R500
    NAS: Synology RS1221+ (5x 16 TB)

  • https://kodi.wiki/view/MySQL

    Meine Kodis laufen seit Jahren mit einer mariaDB auf einem NAS über mehrere Generationen hinweg. Wenn die DB einmal (und einmalig) eingerichtet ist, braucht man nur noch pro Client einen Eintrag in die [definition=11,0][definition='2','0']as.xml[/definition][/definition], der für alle Clients identisch ist.

    Insgesamt ist es keine Raketenwissenschaft.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Zitat


    Wie verhält sich das dann mit den Timings? Wenn "onAbortRequested" getriggert wird, wird sich Kodi irgendwann beenden. Wie verhält es sich dann wenn ich Kodi built-ins triggern möchte? Wartet Kodi mit dem Beenden bis der Service beendet ist und der spezifische Code ausgeführt wurde?

    Interessante Frage. Beim Herunterfahren gibt Kodi ja den Addons genau 5 Sekunden, um auf den Request zu reagieren, ansonsten werden sie gekillt. Sieht man ja öfters im Log ;)

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Müsste man mal vielleicht einfach mal schreiben und testen, was da dann genau passiert. Würde mich auch mal interessieren. Vielleicht bastel ich mal was, wenn ich etwas mehr Zeit habe. Komme da bestimmt nochmal auf dich bzgl Python-Support zurück, wenns bei mir hängt :D

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

  • Erstmal Danke für eure Beiträge. :D Bin ja mal gespannt, wie es endet. Bin programmiertechnisch nicht sehr beleckt. Deswegen tu ich mich ja schwer mit so manchen Dingen.

    Kodi 20.1

    HTPC: Win 11 64bit | 1x NUC 12 Pro | 2x NUC 7 | 1x PC
    TV: Samsung 55" Neo QLED 4K QN95B
    Audio für Kodi: Marantz 1711 mit KEF T-Serie mit 5.1.2-Setup
    Audio für reines HiFi: Rega Elicit-R| KEF R500
    NAS: Synology RS1221+ (5x 16 TB)

Jetzt mitmachen!

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