Autor Thema: Gelöst: Kodi über json-rpc fernsteuern & jederzeit aktuelle Tagesschau abspielen  (Gelesen 1080 mal)

Offline thorschtn

  • Full Member
  • ***
  • Beiträge: 108
Ich möchte auf Zuruf immer die letzte Folge der Tagesschau gezeigt bekommen. FHEM soll dabei den Fernseher und Kodi starten (das ist ja erstmal kein Problem), über das Tagesschau-Addon die letzte Sendung auswählen, den Player starten und die letzte Folge abspielen (da wirds dann schon ein bisschen schwieriger).

Zwischenzeitlich bin ich da auch ein paar Schritte weiter:

# CALL
set Kodi jsonraw {"jsonrpc":"2.0","method":"Files.GetDirectory","params":{"directory":"plugin://plugin.video.tagesschau/","media":"files"},"id":"1"}
schreibt die Folder-Liste des Tagesschau-Addons ins FHEM-Logfile:
# READ
{"file":"plugin://plugin.video.tagesschau/?action=list_feed&feed=latest_broadcasts","filetype":"directory","label":"Aktuelle Sendungen","type":"unknown"}, ………..
mit dieser Antwort kann man sich dann die aktuell verfügbaren Sendungen anfragen:
# CALL
set Kodi jsonraw {"jsonrpc":"2.0","method":"Files.GetDirectory","params":{"directory":"plugin://plugin.video.tagesschau/?action=list_feed&feed=latest_broadcasts","media":"files"},"id":"1"}
und bekommt dann diese Antwort:
# READ
{"id":"1","jsonrpc":"2.0","result":{"files":[{"file":"plugin://plugin.video.tagesschau?action=play_video&feed=latest_broadcasts&tsid=ts-22411","filetype":"file","label":"tagesschau vom 25.10.2017","type":"unknown"},{"file":"plugin://plugin.video.tagesschau?action=play_video&feed=latest_broadcasts&tsid=tt-5587","filetype":"file","label":"tagesthemen vom 25.10.2017","type":"unknown"},{"file":"plugin://plugin.video.tagesschau?action=play_video&feed=latest_broadcasts&tsid=nm-4535","filetype":"file","label":"nachtmagazin vom 25.10.2017","type":"unknown"},{"file":"plugin://plugin.video.tagesschau?action=play_video&feed=latest_broadcasts&tsid=tsvorzwanzig-2887","filetype":"file","label":"tagesschau vor 20 Jahren vom 24.10.2017","type":"unknown"},{"file":"plugin://plugin.video.tagesschau?action=play_video&feed=latest_broadcasts&tsid=tsg-5451","filetype":"file","label":"tagesschau (mit Gebärdensprache) vom 25.10.2017","type":"unknown"},{"file":"plugin://plugin.video.tagesschau?action=play_video&url=http%253A%2F%2Fmedia.tagesschau.de%2Fvideo%2F100s%2F2017%2F1025%2FTV-100s-2109.webxl.h264.mp4","filetype":"file","label":"Tagesschau in 100 Sekunden vom 25.10.2017 21:09","type":"unknown"},{"file":"plugin://plugin.video.tagesschau?action=play_video&feed=latest_broadcasts&tsid=tt-5587","filetype":"file","label":"tagesthemen vom 25.10.2017 21:35","type":"unknown"}],"limits":{"end":7,"start":0,"total":7}}} …….
Hieraus kann man sich dann den Aufruf der letzten Sendung ableiten und diese direkt im Player starten:
# CALL
set Kodi jsonraw {"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"file":"plugin://plugin.video.tagesschau?action=play_video&feed=latest_broadcasts&tsid=ts-22411"}},"id":"1"}
set Kodi volume 70

Jetzt muss ich lediglich noch aus der Antwort mit der Sendungsliste die tsid der letzten Sendung in ein FHEM-Reading bekommen und schon lässt sich jederzeit automatisch die letzte Sendung aufrufen!

Wie bekomme ich denn jestzt die Json-Antwort, die ich bislang nur im Logfile stehen habe über das Kodi-Modul oder über httpmod in ein Reading!?
« Letzte Änderung: 28 Oktober 2017, 17:26:05 von thorschtn »
RPi 2 - FHEM 5.8 - Smartvisu 2.9
NanoCUL Homematic, 433MHz, AB440, 1-Wire Bewässerung & Pool, Jarolift (Bastelbudenbuben), yowsup, Denon AVR, LG WebOS, AmazonEcho, Jura S90 (ESP8266), Sonoff, Xiaomi Mii Sauger, Worx SO500i,   Roomba, Medion Wischroboter (noch offline)
RPi 3 - OSMC

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1902
Ich wüsste leider keine einfache Methode, um an die Response-JSON-Daten zu kommen.

Offline thorschtn

  • Full Member
  • ***
  • Beiträge: 108
Ich denke, httpmod sollte das können. Ich weiß nur noch nicht, wie ich den request in httpmod aufsetzen muss....
RPi 2 - FHEM 5.8 - Smartvisu 2.9
NanoCUL Homematic, 433MHz, AB440, 1-Wire Bewässerung & Pool, Jarolift (Bastelbudenbuben), yowsup, Denon AVR, LG WebOS, AmazonEcho, Jura S90 (ESP8266), Sonoff, Xiaomi Mii Sauger, Worx SO500i,   Roomba, Medion Wischroboter (noch offline)
RPi 3 - OSMC

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1902
Ich hab hier mal eine KODI-Version für dich gebaut, mit der du auf die JSON-Antworten reagieren kannst. Kannst du ja evtl mal ausprobieren:
https://forum.fhem.de/index.php/topic,66299.msg705700.html#msg705700

Offline thorschtn

  • Full Member
  • ***
  • Beiträge: 108
Wie genial ist das denn? Du weisst keine einfache Methode um an die Daten zu kommen aber implementierst das mal eben?

Hat funktioniert, besten Dank!

Damit kann ich jetzt jederzeit die Liste der verfügbaren Sendungen aktualisieren:
set Kodi jsonraw {"jsonrpc":"2.0","method":"Files.GetDirectory","params":{"directory":"plugin://plugin.video.tagesschau/?action=list_feed&feed=latest_broadcasts","media":"files"},"id":"1"}
Und dann lediglich den JSON String noch zerlegen und in einzelnen Readings bereit stellen:
define Kodi.Tagesschau expandJSON Kodi:jsonResponse:.{.*} json
Jetzt kann ich die aktuellste Tagesschau aufrufen/starten:
set Kodi jsonraw {"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"file":"{(ReadingsVal("Kodi","result_files_07_file",0))}"}},"id":"1"}
Und schon kann Alexa auf Zuruf jederzeit die Tagesschau einschalten!

Besten Dank vbs, das hat mir sehr geholfen!
RPi 2 - FHEM 5.8 - Smartvisu 2.9
NanoCUL Homematic, 433MHz, AB440, 1-Wire Bewässerung & Pool, Jarolift (Bastelbudenbuben), yowsup, Denon AVR, LG WebOS, AmazonEcho, Jura S90 (ESP8266), Sonoff, Xiaomi Mii Sauger, Worx SO500i,   Roomba, Medion Wischroboter (noch offline)
RPi 3 - OSMC

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 1902
Freut mich!

Offline riker1

  • Full Member
  • ***
  • Beiträge: 355


Damit kann ich jetzt jederzeit die Liste der verfügbaren Sendungen aktualisieren:
set Kodi jsonraw {"jsonrpc":"2.0","method":"Files.GetDirectory","params":{"directory":"plugin://plugin.video.tagesschau/?action=list_feed&feed=latest_broadcasts","media":"files"},"id":"1"}
Und dann lediglich den JSON String noch zerlegen und in einzelnen Readings bereit stellen:
define Kodi.Tagesschau expandJSON Kodi:jsonResponse:.{.*} json
Jetzt kann ich die aktuellste Tagesschau aufrufen/starten:
set Kodi jsonraw {"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"file":"{(ReadingsVal("Kodi","result_files_07_file",0))}"}},"id":"1"}


Hi, wollte da nun nachbauen, allerdings bekomme ich das nicht hin.
hört sich ja top an.

also, bekomme als result: am Kodi objekt:

{"id":"1","jsonrpc":"2.0","result":{"files":[{"file":"plugin://plugin.video.tagesschau?action=play_video&feed=latest_broadcasts&tsid=ts-27859","filetype":"file","label":"tagesschau vom 04.10.2018","type":"unknown"},{"file":"plugin://plugin.video.tagesschau?action=play_video&feed=latest_broadcasts&tsid=tt-6295","filetype":"file","label":"tagesthemen vom 04.10.2018","type":"unknown"},{"file":"plugin://plugin.video.tagesschau?action=play_video&feed=latest_broadcasts&tsid=nm-4967","filetype":"file","label":"nachtmagazin vom 05.10.2018","type":"unknown"},{"file":"plugin://plugin.video.tagesschau?action=play_video&feed=latest_broadcasts&tsid=weltspiegel-3917","filetype":"file","label":"Weltspiegel vom 30.09.2018","type":"unknown"},{"file":"plugin://plugin.video.tagesschau?action=play_video&feed=latest_broadcasts&tsid=tsvorzwanzig-3633","filetype":"file","label":"tagesschau vor 20 Jahren vom 04.10.2018","type":"unknown"},{"file":"plugin://plugin.video.tagesschau?action=play_video&feed=latest_broadcasts&tsid=tsg-6145","filetype":"file","label":"tagesschau (mit Gebärdensprache) vom 04.10.2018","type":"unknown"},{"file":"plugin://plugin.video.tagesschau?action=play_video&url=http%253A%2F%2Fmedia.tagesschau.de%2Fvideo%2F100s%2F2018%2F1005%2FTV-100s-1426.webxl.h264.mp4","filetype":"file","label":"Tagesschau in 100 Sekunden vom 05.10.2018 14:26","type":"unknown"},{"file":"plugin://plugin.video.tagesschau?action=play_video&feed=latest_broadcasts&tsid=ts-27871","filetype":"file","label":"tagesschau vom 05.10.2018 14:00","type":"unknown"}],"limits":{"end":8,"start":0,"total":8}}}
dann mit

defmod OSMC95Wohn.Tagesschau expandJSON OSMC95Wohn:jsonResponse:.{.*} json
aber dieses Reading:
..(ReadingsVal("Kodi","result_files_07_file",0)..
ist nicht da.

was könnte ich denn falsch machen?

Danke

FHEM 5.8 Ubuntu, FHEM 5.8 RPI 3 , Actoren: IT ,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

 

decade-submarginal