Kodi Modul, STATE ist fehlerhaft

Nachdem ich das Gerät gelöscht und wieder neu angelegt habe funktioniert es auch teilweise. :wink:

image

Der Raspberry Pi mit Kodi läuft dauernd, da er zusätzlich auch noch Homegear-Gateway ist. Als Fernbedienung habe ich die OSMC-Remote, Kodi lässt sich sehr angenehm damit bedienen. Da der Fernseher damit nicht ein- oder ausgeschaltet werden kann, frage ich den Bildschirmschoner oder die Lautstärkeregelung ab.

Diese schaltet dann eine Zigbee-Steckdose ein sobald sich die Lautstärke ändert oder der Bildschirmschoner aus geht. Geht der Bildschirmschoner an, wird der Fernseher abgeschaltet.

Grundfunktionalität ist also nach erneutem Erzeugen des Gerätes da. Nun würde ich noch gerne bei bestimmten Events den Player in den Pause-Modus bringen.

Leider schweigt sich die Referenz aus, was ich an PLAY_PAUSE senden muss, damit etwas passiert. Weiss da jemand mehr?

Es wir mir laut Log auch nur der STATE und die PLAYER_ID zurückgegeben, dass funktioniert allerdings irgendwie auch nicht dauernd. Ich würde erwarten, dass auch PLAY_PAUSE geändert wird.

Die Änderung der Lautstärke ist da zuverlässig, da wird jede Änderung erkannt, auch wenn die Statusänderungen nicht mehr angezeigt werden.

11/25/18 21:04:41.300 Module Kodi: Info: VOLUME of peer 162 with serial number 1111111111:2 was set to 0x42696E010000000C000000043171C70000000007.
11/25/18 21:04:48.379 Module Kodi: Info: VOLUME of peer 162 with serial number 1111111111:2 was set to 0x42696E010000000C000000043200000000000007.
11/25/18 21:07:32.909 Module Kodi: Info: PLAYER_ID of peer 162 with serial number 1111111111:9 was set to 0x42696E01000000080000000100000001.
11/25/18 21:07:32.910 Module Kodi: Info: STATE of peer 162 with serial number 1111111111:9 was set to 0x42696E01000000080000000100000002.

Wechselt man bei Kodi (mit einer Fernbedienung) jetzt von Play auf Pause und wieder zurück, wird das irgendwie vergessen. Danach funktioniert das erstmal nicht mehr. Nach einem Stoppen der Wiedergabe geht es wieder.

Ist aktuell immer noch so, die Zustände (PLAY, PAUSE) werden nur einmal gesetzt. Erst Stoppen setzt die Zustandsverarbeitung wieder zurück, so dass wieder genau einmal von Play auf Pause erkannt wird.

Benutzt ausser mir eigentlich noch jemand das Kodi-Modul?

Hallo @job,

irgendwie habe ich den Thread übersehen, sorry…

https://ref.homegear.eu/device.html?directory=Kodi&file=Kodi.xml&familyLink=kodi&name=Kodi#affixSubsubsection3_0_1

Die Variable ist vom Typ ACTION, also ein true.

Die Variable hat keinen Zustand (Typ ACTION), daher kann sie sich nicht ändern. Das ergibt sich aus der Kodi-API.

Wechselt man bei Kodi (mit einer Fernbedienung) jetzt von Play auf Pause und wieder zurück, wird das irgendwie vergessen. Danach funktioniert das erstmal nicht mehr. Nach einem Stoppen der Wiedergabe geht es wieder.

Jetzt sollten sich wiederholende Werte verarbeitet werden. Ändert das etwas? Falls nicht, muss ich mir mal eine Testumgebung aufbauen. Eigentlich habe ich Kodi sogar bei mir am Laufen, nur immer noch nicht in Homegear eingebunden :roll_eyes: - das wäre doch jetzt mal ein Anlass.

Viele Grüße

Sathya

Ahh. Verstehe. ich hatte bei ACTION direkt an einen String wie “PLAY” oder “PAUSE” gedacht.

Dann wechselt die PLAY_PAUSE bei jeder Nachricht immer hin und her. Wenn man also einen definierten Status braucht, muss man vorher den State analysieren.

Ich habe die Funktionen z.Z. in openHAB umgesetzt, da hat man ein Player-Control (Play,Pause, Fwd, Prev), daher bin ich davon ausgegangen, das wäre auch in der Kodi-API so. Die kenne ich eher gar nicht.

Jetzt? Oder nach dem nächsten Nightly?

Vielen Dank!

Joachim

So, hatte jetzt endlich mal etwas Zeit das auszutesten. Es funktioniert leider erst halb.

  • Der Wechsel von Play->Pause wird jetzt immer registriert.
  • Der Wechsel von Pause->Play leider nicht.

Hallo @job,

ich hatte jetzt endlich einmal Gelegenheit, mit das näher anzusehen und habe mal eine Kodi-Testinstallation in Betrieb genommen. Bei mir wird der Wechsel in beide Richtungen sauber registiert. Könntest du mir von dem Wechsel einmal einen Logabschnitt auf Loglevel 5 posten? Da werden die eingehenden Pakete von Kodi direkt gelogt.

Ich habe jetzt auch Mal ein paar weitere Variablen hinzugefügt (das geht übrigens direkt in der XML-Datei, es ist nichts hartkodiert): NEXT, PREVIOUS und STOP. Prinzipiell lassen sich mit Homegear sämtliche API-Funktionen implementieren (für komplexere Funktionen sind vermutlich noch ein paar Quelltextanpassungen erforderlich).

Viele Grüße

Sathya

2 Likes

Hallo @sathya,

ich habe mir das aktuelle Nightly installiert und das nochmal geprüft. Der Fehler bleibt bei mir bestehen.

Hier ist das Log auf Level 5. Ich habe es auf Kodi gefiltert, ansonsten wird das etwas viel. Allerdings kann man die json-Nachrichten sehen, ich hoffe das reicht aus.

Ich benutze die aktuelle OSMC-Beta von Kodi 18, vielleicht liegt es daran.
Kann es sein, dass der Statuswechsel Stop->Play->Pause->Resume->Pause->Resume->Stop ist?

02/01/19 00:44:57.043 Module Kodi: Kodi interface: Debug: Packet received from Kodi: {"jsonrpc":"2.0","method":"Player.OnPause","params":{"data":{"item":{"title":"extra 3","type":"movie"},"player":{"playerid":-1,"speed":0}},"sender":"xbmc"}}
02/01/19 00:44:57.045 Module Kodi: Info: PLAYER_ID of peer 162 with serial number 1111111111:9 was set to 0x42696E010000000800000001FFFFFFFF.
02/01/19 00:44:57.046 Module Kodi: Info: STATE of peer 162 with serial number 1111111111:9 was set to 0x42696E01000000080000000100000001.
02/01/19 00:44:59.623 Module Kodi: Kodi interface: Debug: Packet received from Kodi: {"jsonrpc":"2.0","method":"Player.OnResume","params":{"data":{"item":{"title":"extra 3","type":"movie"},"player":{"playerid":-1,"speed":1}},"sender":"xbmc"}}
02/01/19 00:45:02.742 Module Kodi: Kodi interface: Debug: Packet received from Kodi: {"jsonrpc":"2.0","method":"Player.OnPause","params":{"data":{"item":{"title":"extra 3","type":"movie"},"player":{"playerid":-1,"speed":0}},"sender":"xbmc"}}
02/01/19 00:45:02.742 Module Kodi: Info: PLAYER_ID of peer 162 with serial number 1111111111:9 was set to 0x42696E010000000800000001FFFFFFFF.
02/01/19 00:45:02.742 Module Kodi: Info: STATE of peer 162 with serial number 1111111111:9 was set to 0x42696E01000000080000000100000001.
02/01/19 00:45:05.323 Module Kodi: Kodi interface: Debug: Packet received from Kodi: {"jsonrpc":"2.0","method":"Player.OnResume","params":{"data":{"item":{"title":"extra 3","type":"movie"},"player":{"playerid":-1,"speed":1}},"sender":"xbmc"}}
02/01/19 00:45:10.703 Module Kodi: Kodi interface: Debug: Packet received from Kodi: {"jsonrpc":"2.0","method":"Player.OnPause","params":{"data":{"item":{"title":"extra 3","type":"movie"},"player":{"playerid":-1,"speed":0}},"sender":"xbmc"}}
02/01/19 00:45:10.703 Module Kodi: Info: PLAYER_ID of peer 162 with serial number 1111111111:9 was set to 0x42696E010000000800000001FFFFFFFF.
02/01/19 00:45:10.704 Module Kodi: Info: STATE of peer 162 with serial number 1111111111:9 was set to 0x42696E01000000080000000100000001.
02/01/19 00:45:14.223 Module Kodi: Kodi interface: Debug: Packet received from Kodi: {"jsonrpc":"2.0","method":"Player.OnResume","params":{"data":{"item":{"title":"extra 3","type":"movie"},"player":{"playerid":-1,"speed":1}},"sender":"xbmc"}}

Vielen Dank,

Joachim

Hi @sathya,

ich habe mich mal mit dem xml beschäftigt und das Kodi Modul um den State “OnResume” erweitert.
Ich habe mein aktuelles Kodi.xml um die Einträge erweitert. Das funktioniert jetzt wie erwartet.

Viele Grüße

Joachim

2 Likes

Hi @job,

perfekt, dass du das Problem gefunden hast.

Vielen Dank :slight_smile: und viele Grüße

Sathya