Modul für Kodi (ehemals 70_XBMC)

Begonnen von vbs, 02 Februar 2017, 23:11:10

Vorheriges Thema - Nächstes Thema

Frank_Huber

Hallo,

Ich starte einen Radio Stream über
set Kodi open plugin://plugin.audio.radio_de/station/2241
Leider wird der Stream in Hintergrund geöffnet und das Menü steht noch drüber.

lässt sich der Befehl irgendwie anpassen so dass das Radio Plugin im Vordergrund gestartet wird?
FHEM ist aktuell, Kodi ist 18.1 auf Libreelec 9.01

Sauseklaus

Hallo,

vielen Dank für Deine Antwort.

Zu den Leerzeichen: alle möglichen Kodierungen wie z.B. %20 habe ich bereits ohne Erfolg ausprobiert. Im alten Aufruf mit gethttpfile hatte ich diese Kodierungen verwendet, im jsonraw Aufruf bekomme ich die Leerzeichen nicht an Kodi gesendet :-(
Hast Du ggf. noch weitere Ideen?

Zum Absturz von FHEM: ich würde derzeit ungern den Absturz wiederholen, da ich jedes Mal ein paar gemittelte Klimawerte per Hand anpassen muss und auch die Statistiken für das Jahr dann nicht mehr stimmen.

Ich habe mal in den Log-Dateien gesucht und leider nur noch ein paar Infos zum Abstürz finden können. Durch das viele Ausprobieren etc. sind die Log-Files leider schon überschrieben worden und ich habe mir nicht alle Versuche notiert. Ich konnte folgende Infos zum Thema Absturz noch zusammenbekommen:

- die reproduzierbaren Abstürze sind vermutlich durch den jsonraw-Befehl zum Umschalten des Audio-Ausgangs verursacht worden. Interessant finde ich, dass trotz Verbose=5 in FHEM dieser jsonraw-Befehl nicht (!) im Log-File protokoliert wurde. Er ist zeitlich vor dem Befehl mit dem Zeitstempel 2019.02.20 12:24:03 im FHEM-Log (s.u.) zu sehen und wurde aber definitiv an Kodi geschickt, da die Umschaltung der Audio-Quelle erfolgte und auch in der Kodi-Log-Datei der Request wie folgt protokolliert wurde:
Incoming request: {"jsonrpc":"2.0","method":"Settings.SetSettingValue","id":-1037191646,"params":{"setting":"audiooutput.audiodevice","value":"ALSA:@:CARD=Device,DEV=0"}}

- diesem Befehl folgte dann ein Befehl zur Wiedergabe der genannten Playlisten (xsp bzw. m3u), die dann auch ausgeführt wurden

- in der Log-Datei von FHEM wurden die folgenden Einträge kurz vor dem Absturz protokolliert (mit Verbose=5):
2019.02.20 12:22:42 4: KODI_Read: Decoding JSON message. Length: 161 Content: {"jsonrpc":"2.0","method":"Player.OnAVChange","params":{"data":{"item":{"title":"stream.mp3","type":"movie"},"player":{"playerid":1,"speed":1}},"sender":"xbmc"}}
2019.02.20 12:22:42 4: KODI_Read: Decoding JSON message. Length: 160 Content: {"jsonrpc":"2.0","method":"Player.OnAVStart","params":{"data":{"item":{"title":"stream.mp3","type":"movie"},"player":{"playerid":1,"speed":1}},"sender":"xbmc"}}
2019.02.20 12:22:52 4: KODI_Call: Sending: {"jsonrpc":"2.0","id":"37","method":"Player.GetActivePlayers"}
2019.02.20 12:22:52 4: KODI_Read: Decoding JSON message. Length: 92 Content: {"id":"37","jsonrpc":"2.0","result":[{"playerid":1,"playertype":"internal","type":"audio"}]}
2019.02.20 12:22:52 4: KODI_Call: Sending: {"method":"Player.Stop","id":38,"jsonrpc":"2.0","params":{"playerid":1}}
2019.02.20 12:22:53 4: KODI_Read: Decoding JSON message. Length: 104 Content: {"jsonrpc":"2.0","method":"VideoLibrary.OnUpdate","params":{"data":{"id":-1,"type":""},"sender":"xbmc"}}
2019.02.20 12:22:54 4: KODI_Read: Decoding JSON message. Length: 135 Content: {"jsonrpc":"2.0","method":"Player.OnStop","params":{"data":{"end":false,"item":{"title":"stream.mp3","type":"movie"}},"sender":"xbmc"}}
2019.02.20 12:22:54 4: KODI_Read: Decoding JSON message. Length: 39 Content: {"id":38,"jsonrpc":"2.0","result":"OK"}
2019.02.20 12:22:56 4: KODI_Check
2019.02.20 12:22:56 4: KODI_CheckConnection: Connection still alive. Last data from Kodi received 2 s ago
2019.02.20 12:22:56 4: KODI_Call: Sending: {"jsonrpc":"2.0","id":39,"params":{"properties":["volume","muted","name","version"]},"method":"Application.GetProperties"}
2019.02.20 12:22:56 4: KODI_Call: Sending: {"method":"GUI.GetProperties","params":{"properties":["skin","fullscreen","stereoscopicmode"]},"jsonrpc":"2.0","id":40}
2019.02.20 12:22:56 4: KODI_Call: Sending: {"id":"41","jsonrpc":"2.0","method":"Player.GetActivePlayers"}
2019.02.20 12:22:56 4: KODI_UpdatePlayerItem
2019.02.20 12:22:56 4: KODI_UpdatePlayerItem - cancelled (disconnected or not playing)
2019.02.20 12:22:56 4: KODI_Read: Decoding JSON message. Length: 157 Content: {"id":39,"jsonrpc":"2.0","result":{"muted":false,"name":"Kodi","version":{"major":18,"minor":0,"revision":"newclock5_18.0-Leia","tag":"stable"},"volume":68}}
2019.02.20 12:22:56 4: KODI_Read: Decoding JSON message. Length: 163 Content: {"id":40,"jsonrpc":"2.0","result":{"fullscreen":false,"skin":{"id":"skin.confluence","name":"Confluence"},"stereoscopicmode":{"label":"Deaktiviert","mode":"off"}}}
2019.02.20 12:22:56 4: KODI_Read: Decoding JSON message. Length: 39 Content: {"id":"41","jsonrpc":"2.0","result":[]}
2019.02.20 12:23:56 4: KODI_Check
2019.02.20 12:23:56 4: KODI_CheckConnection: Connection still alive. Last data from Kodi received 60 s ago
2019.02.20 12:23:56 4: KODI_Call: Sending: {"method":"Application.GetProperties","params":{"properties":["volume","muted","name","version"]},"jsonrpc":"2.0","id":42}
2019.02.20 12:23:56 4: KODI_Call: Sending: {"method":"GUI.GetProperties","id":43,"jsonrpc":"2.0","params":{"properties":["skin","fullscreen","stereoscopicmode"]}}
2019.02.20 12:23:56 4: KODI_Call: Sending: {"jsonrpc":"2.0","id":"44","method":"Player.GetActivePlayers"}
2019.02.20 12:23:56 4: KODI_UpdatePlayerItem
2019.02.20 12:23:56 4: KODI_UpdatePlayerItem - cancelled (disconnected or not playing)
2019.02.20 12:23:56 4: KODI_Read: Decoding JSON message. Length: 157 Content: {"id":42,"jsonrpc":"2.0","result":{"muted":false,"name":"Kodi","version":{"major":18,"minor":0,"revision":"newclock5_18.0-Leia","tag":"stable"},"volume":68}}
2019.02.20 12:23:56 4: KODI_Read: Decoding JSON message. Length: 163 Content: {"id":43,"jsonrpc":"2.0","result":{"fullscreen":false,"skin":{"id":"skin.confluence","name":"Confluence"},"stereoscopicmode":{"label":"Deaktiviert","mode":"off"}}}
2019.02.20 12:23:56 4: KODI_Read: Decoding JSON message. Length: 39 Content: {"id":"44","jsonrpc":"2.0","result":[]}
2019.02.20 12:24:03 4: KODI_Call: Sending: {"jsonrpc":"2.0","params":{"item":{"file":"special://profile/playlists/music/Radiosender/WDR 2 - Rheinland.m3u"}},"method":"Player.Open"}
2019.02.20 12:24:03 4: KODI_Read: Decoding JSON message. Length: 47 Content: {"id":1567267829,"jsonrpc":"2.0","result":true}
Not a HASH reference at ./FHEM/70_KODI.pm line 777.

Bitte nicht wundern: hier bei mir laufen 3 Kodi-Instanzen in FHEM, sodass die Nachrichten in der Log-Datei von allen 3 Geräten stammen können bzw. dürften.

Ich kann leider nicht mehr genau sagen, welche ID in dem Audio-Umschaltbefehl verwendet wurde, der dann zum Absturz führte. Kann gut sein, dass es die ID der letzten dekodierten Nachricht (1567267829) war, die ich manuell in dem jsonraw-Befehl eingetragen hatte. Der o.a. Eintrag aus dem Kodi-Log muss also nicht zwingend zu dieser letzten dekodierten Nachricht in FHEM passen. Sorry, aber mehr kann ich aus den noch verfügbaren Logs nicht rauskitzeln.

Ich weiß bzw. kann mir gut vorstellen, dass diese Infos nicht ausreichend bzw. nicht konsistent genug sind, um den Fehler zu lokalisieren. Im Moment möchte ich aber wie oben beschrieben nicht weiter damit rumspielen und weitere Abstürze meines FHEM-Servers provozieren bzw. riskieren. Ich hoffe, dass diese Infos trotzdem weiterhelfen.

Aus dem Kodi-Log-Eintrag kann man ja den jsonraw-Befehl in FHEM ableiten und dann diesen Befehl einfach mal auf einem Test-System ausführen. Wäre interessant zu sehen, ob der Aufruf dann überhaupt im FHEM-Log protokolliert wird und ggf. auch zum Absturz von FHEM führt.

Beste Grüße und Alaaf aus dem Rheinland! :-)

vbs

Zitat von: Sauseklaus am 05 März 2019, 14:55:48
Zu den Leerzeichen: alle möglichen Kodierungen wie z.B. %20 habe ich bereits ohne Erfolg ausprobiert. Im alten Aufruf mit gethttpfile hatte ich diese Kodierungen verwendet, im jsonraw Aufruf bekomme ich die Leerzeichen nicht an Kodi gesendet :-(
Hast Du ggf. noch weitere Ideen?
Kann natürlich auch theoretisch ein Problem von Kodi sein. Die Frage ist erstmal, ob jetzt die Anfrage syntaktisch korrekt von FHEM verschickt wird. Wäre gut, wenn du nochmal ganz konkret schreiben könntest, wie du die Nachricht verschickt hast und wie das dann im Log ausgesehen hat. Dann kann ich es hoffetnlich hier nachstellen.

Zitat von: Sauseklaus am 05 März 2019, 14:55:48
- die reproduzierbaren Abstürze sind vermutlich durch den jsonraw-Befehl zum Umschalten des Audio-Ausgangs verursacht worden. Interessant finde ich, dass trotz Verbose=5 in FHEM dieser jsonraw-Befehl nicht (!) im Log-File protokoliert wurde. Er ist zeitlich vor dem Befehl mit dem Zeitstempel 2019.02.20 12:24:03 im FHEM-Log (s.u.) zu sehen und wurde aber definitiv an Kodi geschickt, da die Umschaltung der Audio-Quelle erfolgte und auch in der Kodi-Log-Datei der Request wie folgt protokolliert wurde:
Incoming request: {"jsonrpc":"2.0","method":"Settings.SetSettingValue","id":-1037191646,"params":{"setting":"audiooutput.audiodevice","value":"ALSA:@:CARD=Device,DEV=0"}}
Zitat von: Sauseklaus am 05 März 2019, 14:55:48
2019.02.20 12:24:03 4: KODI_Call: Sending: {"jsonrpc":"2.0","params":{"item":{"file":"special://profile/playlists/music/Radiosender/WDR 2 - Rheinland.m3u"}},"method":"Player.Open"}
2019.02.20 12:24:03 4: KODI_Read: Decoding JSON message. Length: 47 Content: {"id":1567267829,"jsonrpc":"2.0","result":true}
Not a HASH reference at ./FHEM/70_KODI.pm line 777.
Hm, ich bekomm das nicht so richtig zusammen... Du sagst ja der Absturz wurde durch einen jsonraw-Befehl zum Umschalten des Audio-Ausgangs ausgelöst. Aber im Log die Nachricht ist ja ein "Player.Open"-Befehl. Ich hab schonmal etwas im Code rumgelesen, aber kann es mir da auch noch nicht erklären.

Also falls du nochmal die Gelegenheit hast, das zu präzisieren, dann wärs super! (Also welcher Befehl es genau war und am besten mit Logs)

Sauseklaus

Hallo nochmal,

Zitat von: vbs am 06 März 2019, 14:02:41
Kann natürlich auch theoretisch ein Problem von Kodi sein. Die Frage ist erstmal, ob jetzt die Anfrage syntaktisch korrekt von FHEM verschickt wird. Wäre gut, wenn du nochmal ganz konkret schreiben könntest, wie du die Nachricht verschickt hast und wie das dann im Log ausgesehen hat. Dann kann ich es hoffetnlich hier nachstellen.

Zum Thema Leerzeichen im Dateinamen habe ich es nachgestellt.

Hier die Infos:

  • Kodi-Device in FHEM mit verbose=5, die beiden anderen Kodi-Devices vorübergehend auf disabled für mehr Übersicht
  • Kodi auf Raspberry mit Debug Log und Filterung auf json-Befehle
  • Befehle im Notify eines Dummy-Buttons zum Starten der Playliste (im Kodi-Log unten blau/rot dargestellt):
    fhem('set Kodi_Device jsonraw  {"jsonrpc":"2.0","method":"Addons.ExecuteAddon","params":{"addonid":"script.audio.profiles","params":["1"]},"id":1}');
    fhem('set Kodi_Device jsonraw  {"jsonrpc":"2.0","method":"Playlist.Clear","id":1409650864,"params":{"playlistid":0}}');
    fhem('set Kodi_Device jsonraw {"jsonrpc":"2.0","method":"Playlist.Add","id":437776768,"params":{"playlistid":0,"item":{"directory":"special://profile/playlists/music/Liste mit Songs.xsp"}}}');
    fhem('set Kodi_Device jsonraw  {"jsonrpc":"2.0","method":"Player.Open","id":1746425270,"params":{"options":{"shuffled":true},"item":{"playlistid":0,"position":0}}}');
  • Auszug aus FHEM-Log:
    2019.03.07 09:36:41 4: KODI_Check
    2019.03.07 09:36:41 4: KODI_CheckConnection: Connection still alive. Last data from Kodi received 60 s ago
    2019.03.07 09:36:41 4: KODI_Call: Sending: {"params":{"properties":["volume","muted","name","version"]},"method":"Application.GetProperties","id":71964,"jsonrpc":"2.0"}
    2019.03.07 09:36:41 5: SW: 7b22706172616d73223a7b2270726f70657274696573223a5b22766f6c756d65222c226d75746564222c226e616d65222c2276657273696f6e225d7d2c226d6574686f64223a224170706c69636174696f6e2e47657450726f70657274696573222c226964223a37313936342c226a736f6e727063223a22322e30227d
    2019.03.07 09:36:41 4: KODI_Call: Sending: {"jsonrpc":"2.0","id":71965,"method":"GUI.GetProperties","params":{"properties":["skin","fullscreen","stereoscopicmode"]}}
    2019.03.07 09:36:41 5: SW: 7b226a736f6e727063223a22322e30222c226964223a37313936352c226d6574686f64223a224755492e47657450726f70657274696573222c22706172616d73223a7b2270726f70657274696573223a5b22736b696e222c2266756c6c73637265656e222c2273746572656f73636f7069636d6f6465225d7d7d
    2019.03.07 09:36:41 4: KODI_Call: Sending: {"method":"Player.GetActivePlayers","id":"71966","jsonrpc":"2.0"}
    2019.03.07 09:36:41 5: SW: 7b226d6574686f64223a22506c617965722e476574416374697665506c6179657273222c226964223a223731393636222c226a736f6e727063223a22322e30227d
    2019.03.07 09:36:41 4: KODI_UpdatePlayerItem
    2019.03.07 09:36:41 4: KODI_UpdatePlayerItem - cancelled (disconnected or not playing)
    2019.03.07 09:36:41 5: KODI_ProcessRead
    2019.03.07 09:36:41 5: No PARTIAL buffer
    2019.03.07 09:36:41 5: KODI_Read: Incoming data: {"id":71964,"jsonrpc":"2.0","result":{"muted":false,"name":"Kodi","version":{"major":18,"minor":1,"revision":"newclock5_18.1-Leia","tag":"stable"},"volume":52}}{"id":71965,"jsonrpc":"2.0","result":{"fullscreen":false,"skin":{"id":"skin.confluence","name":"Confluence"},"stereoscopicmode":{"label":"Deaktiviert","mode":"off"}}}
    2019.03.07 09:36:41 5: KODI_Read: Current processing buffer (PARTIAL + incoming data): {"id":71964,"jsonrpc":"2.0","result":{"muted":false,"name":"Kodi","version":{"major":18,"minor":1,"revision":"newclock5_18.1-Leia","tag":"stable"},"volume":52}}{"id":71965,"jsonrpc":"2.0","result":{"fullscreen":false,"skin":{"id":"skin.confluence","name":"Confluence"},"stereoscopicmode":{"label":"Deaktiviert","mode":"off"}}}
    2019.03.07 09:36:41 4: KODI_Read: Decoding JSON message. Length: 160 Content: {"id":71964,"jsonrpc":"2.0","result":{"muted":false,"name":"Kodi","version":{"major":18,"minor":1,"revision":"newclock5_18.1-Leia","tag":"stable"},"volume":52}}
    2019.03.07 09:36:41 4: KODI_Read: Decoding JSON message. Length: 166 Content: {"id":71965,"jsonrpc":"2.0","result":{"fullscreen":false,"skin":{"id":"skin.confluence","name":"Confluence"},"stereoscopicmode":{"label":"Deaktiviert","mode":"off"}}}
    2019.03.07 09:36:41 5: KODI_Read: Tail:
    2019.03.07 09:36:41 5: KODI_Read: PARTIAL:
    2019.03.07 09:36:41 5: KODI_ProcessRead
    2019.03.07 09:36:41 5: No PARTIAL buffer
    2019.03.07 09:36:41 5: KODI_Read: Incoming data: {"id":"71966","jsonrpc":"2.0","result":[]}
    2019.03.07 09:36:41 5: KODI_Read: Current processing buffer (PARTIAL + incoming data): {"id":"71966","jsonrpc":"2.0","result":[]}
    2019.03.07 09:36:41 4: KODI_Read: Decoding JSON message. Length: 42 Content: {"id":"71966","jsonrpc":"2.0","result":[]}
    2019.03.07 09:36:41 5: KODI_Read: Tail:
    2019.03.07 09:36:41 5: KODI_Read: PARTIAL:
    2019.03.07 09:37:09 3: KODI_CheckConnection: Connection lost! Last data from Kodi received 120 s ago
    2019.03.07 09:37:31 3: KODI_CheckConnection: Connection lost! Last data from Kodi received 120 s ago
    2019.03.07 09:37:41 4: KODI_Check
    2019.03.07 09:37:41 4: KODI_CheckConnection: Connection still alive. Last data from Kodi received 60 s ago
    2019.03.07 09:37:41 4: KODI_Call: Sending: {"params":{"properties":["volume","muted","name","version"]},"id":71967,"jsonrpc":"2.0","method":"Application.GetProperties"}
    2019.03.07 09:37:41 5: SW: 7b22706172616d73223a7b2270726f70657274696573223a5b22766f6c756d65222c226d75746564222c226e616d65222c2276657273696f6e225d7d2c226964223a37313936372c226a736f6e727063223a22322e30222c226d6574686f64223a224170706c69636174696f6e2e47657450726f70657274696573227d
    2019.03.07 09:37:41 4: KODI_Call: Sending: {"id":71968,"jsonrpc":"2.0","method":"GUI.GetProperties","params":{"properties":["skin","fullscreen","stereoscopicmode"]}}
    2019.03.07 09:37:41 5: SW: 7b226964223a37313936382c226a736f6e727063223a22322e30222c226d6574686f64223a224755492e47657450726f70657274696573222c22706172616d73223a7b2270726f70657274696573223a5b22736b696e222c2266756c6c73637265656e222c2273746572656f73636f7069636d6f6465225d7d7d
    2019.03.07 09:37:41 4: KODI_Call: Sending: {"jsonrpc":"2.0","id":"71969","method":"Player.GetActivePlayers"}
    2019.03.07 09:37:41 5: SW: 7b226a736f6e727063223a22322e30222c226964223a223731393639222c226d6574686f64223a22506c617965722e476574416374697665506c6179657273227d
    2019.03.07 09:37:41 4: KODI_UpdatePlayerItem
    2019.03.07 09:37:41 4: KODI_UpdatePlayerItem - cancelled (disconnected or not playing)
    2019.03.07 09:37:41 5: KODI_ProcessRead
    2019.03.07 09:37:41 5: No PARTIAL buffer
    2019.03.07 09:37:41 5: KODI_Read: Incoming data: {"id":71967,"jsonrpc":"2.0","result":{"muted":false,"name":"Kodi","version":{"major":18,"minor":1,"revision":"newclock5_18.1-Leia","tag":"stable"},"volume":52}}
    2019.03.07 09:37:41 5: KODI_Read: Current processing buffer (PARTIAL + incoming data): {"id":71967,"jsonrpc":"2.0","result":{"muted":false,"name":"Kodi","version":{"major":18,"minor":1,"revision":"newclock5_18.1-Leia","tag":"stable"},"volume":52}}
    2019.03.07 09:37:41 4: KODI_Read: Decoding JSON message. Length: 160 Content: {"id":71967,"jsonrpc":"2.0","result":{"muted":false,"name":"Kodi","version":{"major":18,"minor":1,"revision":"newclock5_18.1-Leia","tag":"stable"},"volume":52}}
    2019.03.07 09:37:41 5: KODI_Read: Tail:
    2019.03.07 09:37:41 5: KODI_Read: PARTIAL:
    2019.03.07 09:37:41 5: KODI_ProcessRead
    2019.03.07 09:37:41 5: No PARTIAL buffer
    2019.03.07 09:37:41 5: KODI_Read: Incoming data: {"id":71968,"jsonrpc":"2.0","result":{"fullscreen":false,"skin":{"id":"skin.confluence","name":"Confluence"},"stereoscopicmode":{"label":"Deaktiviert","mode":"off"}}}{"id":"71969","jsonrpc":"2.0","result":[]}
    2019.03.07 09:37:41 5: KODI_Read: Current processing buffer (PARTIAL + incoming data): {"id":71968,"jsonrpc":"2.0","result":{"fullscreen":false,"skin":{"id":"skin.confluence","name":"Confluence"},"stereoscopicmode":{"label":"Deaktiviert","mode":"off"}}}{"id":"71969","jsonrpc":"2.0","result":[]}
    2019.03.07 09:37:41 4: KODI_Read: Decoding JSON message. Length: 166 Content: {"id":71968,"jsonrpc":"2.0","result":{"fullscreen":false,"skin":{"id":"skin.confluence","name":"Confluence"},"stereoscopicmode":{"label":"Deaktiviert","mode":"off"}}}
    2019.03.07 09:37:41 4: KODI_Read: Decoding JSON message. Length: 42 Content: {"id":"71969","jsonrpc":"2.0","result":[]}
    2019.03.07 09:37:41 5: KODI_Read: Tail:
    2019.03.07 09:37:41 5: KODI_Read: PARTIAL:
    2019.03.07 09:37:43 5: KODI_Call: Sending: {"jsonrpc":"2.0","method":"Addons.ExecuteAddon","params":{"addonid":"script.audio.profiles","params":["1"]},"id":1}
    2019.03.07 09:37:43 5: SW: 7b226a736f6e727063223a22322e30222c226d6574686f64223a224164646f6e732e457865637574654164646f6e222c22706172616d73223a7b226164646f6e6964223a227363726970742e617564696f2e70726f66696c6573222c22706172616d73223a5b2231225d7d2c226964223a317d
    2019.03.07 09:37:43 5: KODI_Call: Sending: {"jsonrpc":"2.0","method":"Playlist.Clear","id":1409650864,"params":{"playlistid":0}}
    2019.03.07 09:37:43 5: SW: 7b226a736f6e727063223a22322e30222c226d6574686f64223a22506c61796c6973742e436c656172222c226964223a313430393635303836342c22706172616d73223a7b22706c61796c6973746964223a307d7d
    2019.03.07 09:37:43 5: KODI_Call: Sending: {"jsonrpc":"2.0","method":"Playlist.Add","id":437776768,"params":{"playlistid":0,"item":{"directory":"
    special://profile/playlists/music/ListemitSongs.xsp"}}}
    2019.03.07 09:37:43 5: SW: 7b226a736f6e727063223a22322e30222c226d6574686f64223a22506c61796c6973742e416464222c226964223a3433373737363736382c22706172616d73223a7b22706c61796c6973746964223a302c226974656d223a7b226469726563746f7279223a227370656369616c3a2f2f70726f66696c652f706c61796c697374732f6d757369632f414a736e6f63686e696368746765686f65727465536f6e67732e787370227d7d7d
    2019.03.07 09:37:43 5: KODI_Call: Sending: {"jsonrpc":"2.0","method":"Player.Open","id":1746425270,"params":{"options":{"shuffled":true},"item":{"playlistid":0,"position":0}}}

    2019.03.07 09:37:43 5: SW: 7b226a736f6e727063223a22322e30222c226d6574686f64223a22506c617965722e4f70656e222c226964223a313734363432353237302c22706172616d73223a7b226f7074696f6e73223a7b2273687566666c6564223a747275657d2c226974656d223a7b22706c61796c6973746964223a302c22706f736974696f6e223a307d7d7d
    2019.03.07 09:37:43 5: KODI_ProcessRead
    2019.03.07 09:37:43 5: No PARTIAL buffer
    2019.03.07 09:37:43 5: KODI_Read: Incoming data: {"id":1,"jsonrpc":"2.0","result":"OK"}{"id":1409650864,"jsonrpc":"2.0","result":"OK"}
    2019.03.07 09:37:43 5: KODI_Read: Current processing buffer (PARTIAL + incoming data): {"id":1,"jsonrpc":"2.0","result":"OK"}{"id":1409650864,"jsonrpc":"2.0","result":"OK"}
    2019.03.07 09:37:43 4: KODI_Read: Decoding JSON message. Length: 38 Content: {"id":1,"jsonrpc":"2.0","result":"OK"}
    2019.03.07 09:37:43 4: KODI_Read: Decoding JSON message. Length: 47 Content: {"id":1409650864,"jsonrpc":"2.0","result":"OK"}
    2019.03.07 09:37:43 5: KODI_Read: Tail:
    2019.03.07 09:37:43 5: KODI_Read: PARTIAL:
    2019.03.07 09:37:43 5: KODI_ProcessRead
  • Zugehöriger Auszug aus dem Kodi-Log:
    2019-03-07 09:37:43.655 T:1547547504   DEBUG: JSONRPC: Incoming request: {"jsonrpc":"2.0","method":"Addons.ExecuteAddon","params":{"addonid":"script.audio.profiles","params":["1"]},"id":1}
    2019-03-07 09:37:43.666 T:1547547504   DEBUG: JSONRPC: Incoming request: {"jsonrpc":"2.0","method":"Playlist.Clear","id":1409650864,"params":{"playlistid":0}}
    2019-03-07 09:37:43.677 T:1547547504   DEBUG: JSONRPC: Incoming request: {"jsonrpc":"2.0","method":"Playlist.Add","id":437776768,"params":{"playlistid":0,"item":{"directory":"special://profile/playlists/music/ListemitSongs.xsp"}}}
    2019-03-07 09:37:43.825 T:1799328624   DEBUG: JSONRPC: Incoming request: {"jsonrpc": "2.0", "method": "Settings.SetSettingValue", "params": {"setting": "audiooutput.ac3transcode", "value": false}, "id": 1}

Der Befehl von FHEM an Kodi geht also ohne Leerzeichen raus, sodass es m.E. ein Thema auf der FHEM-Seite ist. Vermutlich ist es ein Syntax-Thema bei der Übergabe der Parameter an das Kodi-Modul in FHEM bzw. der darauf folgenden Weiterverarbeitung in FHEM.

Interessant ist in diesem Zusammenhang m.E. auch, dass die Leerzeichen in einem Player.Open Befehl keine Probleme machen und korrekt ausgeführt werden! Nur bei Verwendung des jsonraw-Befehls, der bei Leia zum Starten von intelligenten Playlisten erforderlich ist, tritt das Problem mit den verschluckten Leerzeichen auf.

Zitat
Hm, ich bekomm das nicht so richtig zusammen... Du sagst ja der Absturz wurde durch einen jsonraw-Befehl zum Umschalten des Audio-Ausgangs ausgelöst. Aber im Log die Nachricht ist ja ein "Player.Open"-Befehl. Ich hab schonmal etwas im Code rumgelesen, aber kann es mir da auch noch nicht erklären.

Also falls du nochmal die Gelegenheit hast, das zu präzisieren, dann wärs super! (Also welcher Befehl es genau war und am besten mit Logs)

Ich muss mal schauen, ob ich das Absturz-Szenario nachstellen kann bzw. möchte, wie beschrieben.

Noch ein weiterer Hinweis: wie in meinem vorherigen Post geschrieben, tauchte der jsonraw-Befehl für die Umschaltung des Audio-Outputs im FHEM-Log trotz verbose=5 NICHT auf, wohl aber im Kodi-Log. Das hatte mich sehr gewundert. Daher ist das FHEM-Log-File hier irreführend, da dort ja als letzter ausgeführter jsonraw-Befehl der Player.Open-Befehl zu sehen ist. Das hört sich jetzt vielleicht etwas merkwürdig an, aber ich bin mir hier 100%ig sicher, dass es so war, da ich es selber kaum glauben konnte.

Beste Grüße

vbs

Hi Klaus,

danke für die Infos.

Zitat von: Sauseklaus am 07 März 2019, 10:55:46
fhem('set Kodi_Device jsonraw {"jsonrpc":"2.0","method":"Playlist.Add","id":437776768,"params":{"playlistid":0,"item":{"directory":"special://profile/playlists/music/Liste mit Songs.xsp"}}}');
...
2019-03-07 09:37:43.677 T:1547547504   DEBUG: JSONRPC: Incoming request: {"jsonrpc":"2.0","method":"Playlist.Add","id":437776768,"params":{"playlistid":0,"item":{"directory":"special://profile/playlists/music/ListemitSongs.xsp"}}}
Ich habe einen Bug entdeckt, der dafür sorgt, dass Leerzeichen aus dem jsonraw-Befehl rausfliegen. Ist in den meisten Fällen aber kein Problem. Aber: unabhängig davon solltest du Leerzeichen in URLs ("special://profile/playlists/music/Liste mit Songs.xsp" ist eine URL) als %20 kodieren.

Also wie gesagt, probier das bitte mal aus und schreibe, wie das dann aussieht bzw. ob das sogar funktioniert:
fhem('set Kodi_Device jsonraw {"jsonrpc":"2.0","method":"Playlist.Add","id":437776768,"params":{"playlistid":0,"item":{"directory":"special://profile/playlists/music/Liste%20mit%20Songs.xsp"}}}');


Zitat von: Sauseklaus am 07 März 2019, 10:55:46
Noch ein weiterer Hinweis: wie in meinem vorherigen Post geschrieben, tauchte der jsonraw-Befehl für die Umschaltung des Audio-Outputs im FHEM-Log trotz verbose=5 NICHT auf, wohl aber im Kodi-Log. Das hatte mich sehr gewundert. Daher ist das FHEM-Log-File hier irreführend, da dort ja als letzter ausgeführter jsonraw-Befehl der Player.Open-Befehl zu sehen ist. Das hört sich jetzt vielleicht etwas merkwürdig an, aber ich bin mir hier 100%ig sicher, dass es so war, da ich es selber kaum glauben konnte.
Hm, das ist dann wirklich sehr seltsam. Habe ich kein Erklärung für. Eigentlich müssen alle per jsonraw gesendet Befehle mit verbose 5 auch zu sehen sein.

Noch eine Bitte:
Log-Ausgabe u.ä. bitte in \[code\]-Tags hier im Forum. Du kannst einfach in deinem Post den Abschnitt markieren und dann in der Button-Leiste das "#"-Symbol drücken.

Sauseklaus

Hallo,
Zitat von: vbs am 07 März 2019, 11:29:14
Hi Klaus,

danke für die Infos.
Ich habe einen Bug entdeckt, der dafür sorgt, dass Leerzeichen aus dem jsonraw-Befehl rausfliegen. Ist in den meisten Fällen aber kein Problem. Aber: unabhängig davon solltest du Leerzeichen in URLs ("special://profile/playlists/music/Liste mit Songs.xsp" ist eine URL) als %20 kodieren.

Also wie gesagt, probier das bitte mal aus und schreibe, wie das dann aussieht bzw. ob das sogar funktioniert:
fhem('set Kodi_Device jsonraw {"jsonrpc":"2.0","method":"Playlist.Add","id":437776768,"params":{"playlistid":0,"item":{"directory":"special://profile/playlists/music/Liste%20mit%20Songs.xsp"}}}');

ich hatte bereits alle mir bekannten Kodierungen für Leerzeichen inkl. der %20-Variante vergeblich ausprobiert. Dennoch habe ich den von Dir angegebenen Befehl nochmals eingegeben und leider wieder folgende Fehlermeldung im FHEM-Log erhalten:

2019.03.07 17:59:19 5: KODI_Call: Sending: {"jsonrpc":"2.0","method":"Addons.ExecuteAddon","params":{"addonid":"script.audio.profiles","params":["1"]},"id":1}
2019.03.07 17:59:19 5: SW: 7b226a736f6e727063223a22322e30222c226d6574686f64223a224164646f6e732e457865637574654164646f6e222c22706172616d73223a7b226164646f6e6964223a227363726970742e617564696f2e70726f66696c6573222c22706172616d73223a5b2231225d7d2c226964223a317d
2019.03.07 17:59:19 5: KODI_Call: Sending: {"jsonrpc":"2.0","method":"Playlist.Clear","id":1409650864,"params":{"playlistid":0}}
2019.03.07 17:59:19 5: SW: 7b226a736f6e727063223a22322e30222c226d6574686f64223a22506c61796c6973742e436c656172222c226964223a313430393635303836342c22706172616d73223a7b22706c61796c6973746964223a307d7d
2019.03.07 17:59:19 5: KODI_Call: Sending: {"jsonrpc":"2.0","method":"Playlist.Add","id":437776768,"params":{"playlistid":0,"item":{"directory":"special://profile/playlists/music/Liste%20mit%20Songs.xsp"}}}
2019.03.07 17:59:19 5: SW: 7b226a736f6e727063223a22322e30222c226d6574686f64223a22506c61796c6973742e416464222c226964223a3433373737363736382c22706172616d73223a7b22706c61796c6973746964223a302c226974656d223a7b226469726563746f7279223a227370656369616c3a2f2f70726f66696c652f706c61796c697374732f6d757369632f414a732532306e6f63682532306e696368742532306765686f65727465253230536f6e67732e787370227d7d7d
2019.03.07 17:59:19 5: KODI_Call: Sending: {"jsonrpc":"2.0","method":"Player.Open","id":1746425270,"params":{"options":{"shuffled":true},"item":{"playlistid":0,"position":0}}}
2019.03.07 17:59:19 5: SW: 7b226a736f6e727063223a22322e30222c226d6574686f64223a22506c617965722e4f70656e222c226964223a313734363432353237302c22706172616d73223a7b226f7074696f6e73223a7b2273687566666c6564223a747275657d2c226974656d223a7b22706c61796c6973746964223a302c22706f736974696f6e223a307d7d7d
2019.03.07 17:59:19 5: KODI_ProcessRead
2019.03.07 17:59:19 5: No PARTIAL buffer
2019.03.07 17:59:19 5: KODI_Read: Incoming data: {"id":1,"jsonrpc":"2.0","result":"OK"}{"id":1409650864,"jsonrpc":"2.0","result":"OK"}
2019.03.07 17:59:19 5: KODI_Read: Current processing buffer (PARTIAL + incoming data): {"id":1,"jsonrpc":"2.0","result":"OK"}{"id":1409650864,"jsonrpc":"2.0","result":"OK"}
2019.03.07 17:59:19 4: KODI_Read: Decoding JSON message. Length: 38 Content: {"id":1,"jsonrpc":"2.0","result":"OK"}
2019.03.07 17:59:19 4: KODI_Read: Decoding JSON message. Length: 47 Content: {"id":1409650864,"jsonrpc":"2.0","result":"OK"}
2019.03.07 17:59:19 5: KODI_Read: Tail:
2019.03.07 17:59:19 5: KODI_Read: PARTIAL:
2019.03.07 17:59:19 5: KODI_ProcessRead
2019.03.07 17:59:19 5: No PARTIAL buffer
2019.03.07 17:59:19 5: KODI_Read: Incoming data: {"jsonrpc":"2.0","method":"Playlist.OnClear","params":{"data":{"playlistid":0},"sender":"xbmc"}}
2019.03.07 17:59:19 5: KODI_Read: Current processing buffer (PARTIAL + incoming data): {"jsonrpc":"2.0","method":"Playlist.OnClear","params":{"data":{"playlistid":0},"sender":"xbmc"}}
2019.03.07 17:59:19 4: KODI_Read: Decoding JSON message. Length: 96 Content: {"jsonrpc":"2.0","method":"Playlist.OnClear","params":{"data":{"playlistid":0},"sender":"xbmc"}}
2019.03.07 17:59:19 5: KODI_Read: Tail:
2019.03.07 17:59:19 5: KODI_Read: PARTIAL:
2019.03.07 17:59:19 5: KODI_ProcessRead
2019.03.07 17:59:19 5: No PARTIAL buffer
2019.03.07 17:59:19 5: KODI_Read: Incoming data: {"jsonrpc":"2.0","method":"Application.OnVolumeChanged","params":{"data":{"muted":false,"volume":65.0},"sender":"xbmc"}}
2019.03.07 17:59:19 5: KODI_Read: Current processing buffer (PARTIAL + incoming data): {"jsonrpc":"2.0","method":"Application.OnVolumeChanged","params":{"data":{"muted":false,"volume":65.0},"sender":"xbmc"}}
2019.03.07 17:59:19 4: KODI_Read: Decoding JSON message. Length: 120 Content: {"jsonrpc":"2.0","method":"Application.OnVolumeChanged","params":{"data":{"muted":false,"volume":65.0},"sender":"xbmc"}}
2019.03.07 17:59:19 5: KODI_Read: Tail:
2019.03.07 17:59:19 5: KODI_Read: PARTIAL:
2019.03.07 17:59:20 5: KODI_ProcessRead
2019.03.07 17:59:20 5: No PARTIAL buffer
2019.03.07 17:59:20 5: KODI_Read: Incoming data: {"error":{"code":-32602,"message":"Invalid params."},"id":437776768,"jsonrpc":"2.0"}
2019.03.07 17:59:20 5: KODI_Read: Current processing buffer (PARTIAL + incoming data): {"error":{"code":-32602,"message":"Invalid params."},"id":437776768,"jsonrpc":"2.0"}
2019.03.07 17:59:20 4: KODI_Read: Decoding JSON message. Length: 84 Content: {"error":{"code":-32602,"message":"Invalid params."},"id":437776768,"jsonrpc":"2.0"}
2019.03.07 17:59:20 3: KODI_Read: Received error message: {"error":{"code":-32602,"message":"Invalid params."},"id":437776768,"jsonrpc":"2.0"}
2019.03.07 17:59:20 5: KODI_Read: Tail:
2019.03.07 17:59:20 5: KODI_Read: PARTIAL:
2019.03.07 17:59:20 5: KODI_ProcessRead
2019.03.07 17:59:20 5: No PARTIAL buffer
2019.03.07 17:59:20 5: KODI_Read: Incoming data: {"id":1746425270,"jsonrpc":"2.0","result":"OK"}
2019.03.07 17:59:20 5: KODI_Read: Current processing buffer (PARTIAL + incoming data): {"id":1746425270,"jsonrpc":"2.0","result":"OK"}
2019.03.07 17:59:20 4: KODI_Read: Decoding JSON message. Length: 47 Content: {"id":1746425270,"jsonrpc":"2.0","result":"OK"}


Im Kodi-Log sieht es dazu wie folgt aus:
2019-03-07 17:59:19.733 T:1427108720   ERROR: JSONRPC: Failed to parse '{"jsonrpc": "2.0", "method": "Settings.SetSettingValue", "params": {"setting": "lookandfeel.soundskin", "value": resource.uisounds.kodi}, "id": 1}'
2019-03-07 17:59:20.225 T:1547547504   ERROR: Error loading Smart playlist special://profile/playlists/music/Liste%20mit%20Songs.xsp (failed to read file)
2019-03-07 17:59:20.230 T:1547547504   ERROR: Previous line repeats 1 times.
2019-03-07 17:59:20.230 T:1547547504   ERROR: GetDirectory - Error getting special://profile/playlists/music/Liste%20mit%20Songs.xsp


Hast Du schon eine Korrektur des entdeckten Bugs?

VG

vbs

Zitat von: Sauseklaus am 07 März 2019, 18:18:39
Hallo,
ich hatte bereits alle mir bekannten Kodierungen für Leerzeichen inkl. der %20-Variante vergeblich ausprobiert. Dennoch habe ich den von Dir angegebenen Befehl nochmals eingegeben und leider wieder folgende Fehlermeldung im FHEM-Log erhalten:
Ja glaub ich ja. War aber im Log nicht enthalten und ich muss sehen, was FHEM nun tatsächlich geschickt hat und wie Kodi darauf reagiert hat. Ich halte es mindestens für eine "Unschönheit" (wenn nicht sogar für einen Bug) in Kodi, dass Kodi offenbar keine "%20" in URLs als Leerzeichen ansieht. Trifft natürlich nur zu, wenn es den Pfad, den du geschickt hast auch wirklich gibt. Aber davon gehe ich mal aus.

Zitat von: Sauseklaus am 07 März 2019, 18:18:39
Hast Du schon eine Korrektur des entdeckten Bugs?
Ja, ist eingecheckt. Gibt's morgen im Update. Bin gespannt, ob es dann bei dir funktioniert.

Sauseklaus

Zitat von: vbs am 07 März 2019, 22:01:53
Ja glaub ich ja. War aber im Log nicht enthalten und ich muss sehen, was FHEM nun tatsächlich geschickt hat und wie Kodi darauf reagiert hat. Ich halte es mindestens für eine "Unschönheit" (wenn nicht sogar für einen Bug) in Kodi, dass Kodi offenbar keine "%20" in URLs als Leerzeichen ansieht. Trifft natürlich nur zu, wenn es den Pfad, den du geschickt hast auch wirklich gibt. Aber davon gehe ich mal aus.

Alles gut, war nur als Hinweis gedacht, dass ich neben %20 auch noch weitere Kodierungen ausprobiert habe. Bei der Methode vor Leia mit gethttpfile waren die Leerzeichen mit %20 kodiert und Kodi hat sie ohne Probleme akzeptiert und ausgeführt.

Der angegebene Pfad existiert natürlich.

ZitatJa, ist eingecheckt. Gibt's morgen im Update. Bin gespannt, ob es dann bei dir funktioniert.
Super, vielen Dank! Ich bin auch sehr gespannt und werde Bescheid geben.

Beste Grüße

Sauseklaus

Guten Morgen,
Zitat von: vbs am 07 März 2019, 22:01:53
Ja, ist eingecheckt. Gibt's morgen im Update. Bin gespannt, ob es dann bei dir funktioniert.
yup, läuft!  ;)
Herzlichen Dank für den tollen Support und die schnelle Korrektur des Moduls.
VG

Sauseklaus

Hallo nochmals,

Zitat von: vbs am 06 März 2019, 14:02:41
Hm, ich bekomm das nicht so richtig zusammen... Du sagst ja der Absturz wurde durch einen jsonraw-Befehl zum Umschalten des Audio-Ausgangs ausgelöst. Aber im Log die Nachricht ist ja ein "Player.Open"-Befehl. Ich hab schonmal etwas im Code rumgelesen, aber kann es mir da auch noch nicht erklären.

Also falls du nochmal die Gelegenheit hast, das zu präzisieren, dann wärs super! (Also welcher Befehl es genau war und am besten mit Logs)
ich habe mich dann doch entschlossen den Absturz ein letztes Mal zu provozieren, damit Du die notwendigen Infos aus den Log-Dateien für eine Fehleranalyse bekommst. Ohne geht es ja nicht ... ist mir schon klar. ;)

Befehle in FHEM wie folgt:

fhem('set Kodi_Device jsonraw  {"jsonrpc":"2.0","method":"Addons.ExecuteAddon","params":{"addonid":"script.audio.profiles","params":["1"]},"id":1}');
fhem("set Kodi_Device open special://profile/playlists/music/Radiosender/WDR 2 - Rheinland.m3u");

Der erste Befehl schaltet die Audio-Output Quelle um und der 2. Befehl startet einen Radio-Stream. Beide Befehle wurden von Kodi korrekt umgesetzt.

Log in FHEM:

2019.03.08 14:14:03 5: KODI_Call: Sending: {"jsonrpc":"2.0","method":"Settings.SetSettingValue","id":-1037191646,"params":{"setting":"audiooutput.audiodevice","value":"ALSA:@:CARD=Device,DEV=0"}}
2019.03.08 14:14:03 5: SW: 7b226a736f6e727063223a22322e30222c226d6574686f64223a2253657474696e67732e53657453657474696e6756616c7565222c226964223a2d313033373139313634362c22706172616d73223a7b2273657474696e67223a22617564696f6f75747075742e617564696f646576696365222c2276616c7565223a22414c53413a403a434152443d4465766963652c4445563d30227d7d
2019.03.08 14:14:03 4: KODI_Call: Sending: {"method":"Player.Open","jsonrpc":"2.0","params":{"item":{"file":"special://profile/playlists/music/Radiosender/WDR 2 - Rheinland.m3u"}}}
2019.03.08 14:14:03 5: SW: 7b226d6574686f64223a22506c617965722e4f70656e222c226a736f6e727063223a22322e30222c22706172616d73223a7b226974656d223a7b2266696c65223a227370656369616c3a2f2f70726f66696c652f706c61796c697374732f6d757369632f526164696f73656e6465722f5744522032202d20526865696e6c616e642e6d3375227d7d7d
2019.03.08 14:14:03 5: KODI_ProcessRead
2019.03.08 14:14:03 5: No PARTIAL buffer
2019.03.08 14:14:03 5: KODI_Read: Incoming data: {"id":-1037191646,"jsonrpc":"2.0","result":true}
2019.03.08 14:14:03 5: KODI_Read: Current processing buffer (PARTIAL + incoming data): {"id":-1037191646,"jsonrpc":"2.0","result":true}
2019.03.08 14:14:03 4: KODI_Read: Decoding JSON message. Length: 48 Content: {"id":-1037191646,"jsonrpc":"2.0","result":true}
Not a HASH reference at ./FHEM/70_KODI.pm line 780.

Nach dem Auslösen des Notify für die beiden Befehle war die Verbindung zu FHEM sofort weg. Der FHEM-Prozess war beendet und ich habe dann einen Reboot des Raspberry durchgeführt. Da habe ich mich anscheinend doch bzgl. der Aussage, dass der Befehl in FHEM nicht geloggt wurde, geirrt (obwohl ich mir da ziemlich sicher war ...). Sorry.

Kodi-Log:

2019-03-08 14:05:45.839 T:1516344176  NOTICE: Enabled debug logging due to GUI setting. Level 2.
2019-03-08 14:05:45.860 T:1937341984   DEBUG: ------ Window Init () ------
2019-03-08 14:05:49.165 T:1516344176   DEBUG: CWebServer[80]: request received for /jsonrpc
2019-03-08 14:06:09.169 T:1516344176   DEBUG: Previous line repeats 1 times.
2019-03-08 14:06:09.169 T:1516344176   DEBUG: JSONRPC: Incoming request: {"jsonrpc":"2.0","method":"Settings.SetSettingValue","id":-1224640697,"params":{"setting":"audiooutput.audiodevice","value":"ALSA:@:CARD=Device,DEV=0"}}
2019-03-08 14:06:16.136 T:1516344176   DEBUG: CWebServer[80]: request received for /jsonrpc
2019-03-08 14:06:16.137 T:1516344176   DEBUG: JSONRPC: Incoming request: {"jsonrpc":"2.0","method":"Settings.GetSections","id":-1926232570,"params":{"level":"expert"}}
2019-03-08 14:06:18.677 T:1516344176   DEBUG: CWebServer[80]: request received for /jsonrpc
2019-03-08 14:06:18.677 T:1516344176   DEBUG: JSONRPC: Incoming request: {"jsonrpc":"2.0","method":"Settings.GetCategories","id":-48216984,"params":{"section":"system","level":"expert"}}
2019-03-08 14:06:21.298 T:1516344176   DEBUG: CWebServer[80]: request received for /jsonrpc
2019-03-08 14:06:21.299 T:1516344176   DEBUG: JSONRPC: Incoming request: {"jsonrpc":"2.0","method":"Settings.GetSettings","id":-101169126,"params":{"filter":{"section":"system","category":"logging"},"level":"expert"}}
2019-03-08 14:06:23.451 T:1516344176   DEBUG: CWebServer[80]: request received for /jsonrpc
2019-03-08 14:06:23.452 T:1516344176   DEBUG: JSONRPC: Incoming request: {"jsonrpc":"2.0","method":"Settings.SetSettingValue","id":-2057074215,"params":{"setting":"debug.showloginfo","value":false}}
2019-03-08 14:06:23.453 T:1516344176  NOTICE: Disabled debug logging due to GUI setting. Level 0.


Wie oben geschrieben wurde das Audio-Output-Device korrekt umgeschaltet und der Radio-Stream gestartet.

Ich hoffe, dass diese Infos zum Nachstellen des Fehlers und für dessen Analyse hilfreich sind.

Beste Grüße

vbs

Hi Klaus,

also der kritische Befehl, der von FHEM an Kodi gesendet wird und dessen Antwort dann FHEM abstürzen lässt, ist scheinbar der hier:
Zitat von: Sauseklaus am 08 März 2019, 14:51:08

2019.03.08 14:14:03 5: KODI_Call: Sending: {"jsonrpc":"2.0","method":"Settings.SetSettingValue","id":-1037191646,"params":{"setting":"audiooutput.audiodevice","value":"ALSA:@:CARD=Device,DEV=0"}}


Der kann aber eigentlich nicht durch einen deiner genannten FHEM-Befehle ausgelöst sein (bzw. ich wüsste nicht wie):
Zitat von: Sauseklaus am 08 März 2019, 14:51:08
Befehle in FHEM wie folgt:

fhem('set Kodi_Device jsonraw  {"jsonrpc":"2.0","method":"Addons.ExecuteAddon","params":{"addonid":"script.audio.profiles","params":["1"]},"id":1}');
fhem("set Kodi_Device open special://profile/playlists/music/Radiosender/WDR 2 - Rheinland.m3u");


Aber ist auch evtl. gar nicht so relevant. Ich konnte jetzt ja sehen, wie die Nachricht aussieht, die FHEM rausschickt. Und ich hab da auch was gefunden und (hoffentlich) behoben. Bitte morgen nochmal testen.

Sauseklaus

Hi,
Zitat von: vbs am 08 März 2019, 16:44:29
Hi Klaus,

also der kritische Befehl, der von FHEM an Kodi gesendet wird und dessen Antwort dann FHEM abstürzen lässt, ist scheinbar der hier:
Der kann aber eigentlich nicht durch einen deiner genannten FHEM-Befehle ausgelöst sein (bzw. ich wüsste nicht wie):

Sorry, mein Fehler: ich habe den Beitrag hier nach dem Crash geschrieben und die geänderte Konfig in FHEM vorher nicht gespeichert. Daher war nach dem Crash wieder die ursprüngliche Konfig mit dem Addon Audio Profile aktiv, die ich dann ohne genau hinzusehen kopiert habe. Der korrekte Befehl, der zum Absturz geführt hat, lautet:

fhem('set Kodi_Device jsonraw  {"jsonrpc":"2.0","method":"Settings.SetSettingValue","id":-1037191646,"params":{"setting":"audiooutput.audiodevice","value":"ALSA:@:CARD=Device,DEV=0"}}');
fhem("set Kodi_Device open special://profile/playlists/music/Radiosender/WDR 2 - Rheinland.m3u");


Zitat
Aber ist auch evtl. gar nicht so relevant. Ich konnte jetzt ja sehen, wie die Nachricht aussieht, die FHEM rausschickt. Und ich hab da auch was gefunden und (hoffentlich) behoben. Bitte morgen nochmal testen.

OK, ich schaue es mir morgen oder am Sonntag an. Einen Crash meines FHEM-Servers kann ich noch verkraften ...  ;)

Beste Grüße

vbs

Ich denke, zum Testen kannst du dir auch einfach eine Minimal-Config bauen (so ziemlich alles außer dem einen Kodi-Device rausschmeißen) und dann nur diese Config starten. Zur Not auch parallel laufen lassen, aber dann musst du drauf achten, dass du in der Minimal-Config andere Pfade setzt fürs Logging/fhem.save-Files usw.

Sauseklaus

Guten Morgen,
Zitat von: vbs am 08 März 2019, 16:44:29
Aber ist auch evtl. gar nicht so relevant. Ich konnte jetzt ja sehen, wie die Nachricht aussieht, die FHEM rausschickt. Und ich hab da auch was gefunden und (hoffentlich) behoben. Bitte morgen nochmal testen.
läuft, kein Absturz mehr!  :)

Vielen Dank für die schnelle Korrektur des Moduls!

Beste Grüße

mtb

Hallo zusammen,

und auch von mir vorab schon einmal Dank an alle, die Mühe und Zeit in das Kodi-Modul gesteckt haben, welches ich weitestgehend erfolgreich und problemlos nutze.

Dennoch möchte ich mich kurz auf Beitrag #57 dieser Diskussion hier beziehen. Dort heißt es ...
ZitatDas Event CONNECTED bzw. das Reading state beziehen sich auf die Verbindung von FHEM zu Kodi. Sprich: Wenn sich FHEM zu Kodi verbunden hat bzw. die Verbindung beendet wird, wechselt state.

Das stimmt leider nicht bedingungslos, da das "state"-Reading und STATE nicht ohne ein Browser-Refresh aktualisiert werden, wie mir im Beitrag https://forum.fhem.de/index.php/topic,98799.0.html erklärt wurde.

Wäre es möglich, im Modul umzusetzen, dass das "state"-Reading und STATE genau wie z.B. auch das "playStatus"-Reading direkt und sofort aktualisiert wird?

VG
Tim