Vielen, vielen dank, jetzt habe ich wieder einiges dazu gelernt - dynamische Menüaufbau mit ListItems habe ich bisher nicht zusammengebracht bzw. angeschaut. Werde ich mir genau ansehen.
Inzwischen konnte ich auch mein Problem weiter eingrenzen - es scheint tatsächlich eine Beschränkung der IOS Remote zu sein, auch viele andere Items die ich nicht manuell, sondern über Kontextmenü in den Favoriten ablege, werden nicht bzw. nicht richtig ausgeführt. Demnach habe ich das Problem nicht in Kodi oder Python.
Heute habe ich ein Workaround gefunden, der so ziemlich alles, was ich je verbrochen habe, übersteigt - wirklich dreckig
Im Endeffekt hier ist der Hund begraben:
ZitatVerlinken würde ich das ganze dann so: Ins Addon gehen auf Menüpunkt -> Contextmenü -> Zu Favoriten hinzufügen.
Leider spielt hier dann der IOS Remote (trotz "Official Kodi") nicht mit. Folgendes habe bisher genau beobachten können:
- IOS Remote verweigert RunAddon oder System.Exec oder ExecuteBuiltIn und kann lediglich RunScript ausführen
- Die Implementation von RunScript führt allerdings nur installierte und richtig registrierte script Addons aus, ein Verweis auf eine beliebige py File oder mit Pfadangaben wird verweigert, es scheint nur RunScript("addonid") können und nichts mehr.
- Letztens, mitgeschickte Argumente werden nicht weitergereicht, also kommen bei Kodi und dadurch auch in Python gar nicht an.
Mein Dirty Workaround:
- Eigene Miniaddon ohne Argumente kann beliebige py File ausführen
- Diese py File fungiert dann als eigene entry point und kann dann mein Haupt-Addon mit dem gewünschten Argumente aufrufen
Also ich habe jetzt vier oder fünf "Einzeiler"-Addons gebastelt, wie script.remote.audio, script.remote.beamer, etc. Diese rufen jeweils einen anderen py File auf im Root Verzeichnis meiner Addon zB script.home/toggle.audio.py oder toggle.beamer.py Und toggle.audio.py ruft dann mein Addon direkt mit dem benötigten Argumenten.
favourites.xml
<favourite name="Stereoanlage" thumb="DefaultAudio.png">RunScript(script.remote.audio)</favourite>
script.remote.audio
import xbmc
if (__name__ == '__main__'):
xbmc.executebuiltin('RunScript("special://home/addons/script.home/toggle.audio.py")')
toggle.audio.py
from lib import automation
automation.execute('audio','toggle')
(in automation.py habe ich der Logik meiner Addon für die Steuerung)
Wirklich grauslich aber endlich scheint es zu laufen... ich bin sehr gespannt ob ich es in zwei Monaten, trotz ausführliche Kommentare, je wieder kapieren werde, was ich da herumgepfuscht habe...