Hallo,
wollte hier mal ne kleine Anleitung schreiben wie man in Verbindung mit Openhab und Alexa Kodi per Sprache steuern kann ohne Skill.
vielleicht interessiert es den einen oder anderen, ansonsten dient es mir hier als Speicherort damit ich das nicht vergesse .
Ich habe bisher folgendes bei mir integriert
- EPG
- angefangene Serien
- neue Filme
- neue Episoden
- angefangene Filme
- zufällige Filme
- starte zb einen zufälligen Film
in Openhab müsst ihr das Openhab HTTP Binding installiert haben, sowie das Kodi Binding und das neueste Alexa Binding.
ich gehe davon aus das ihr das Kodi Binding und das Alexa Binding eingerichtet habt, und eine Verbindung zu eurem Kodi sowie eurer Alexa besteht.
Zuerst legt ihr euch ein Openhab Item an, hier mal ein Beispiel wie das item bei mir aktuell aussieht.
String Kodi_Steuerung_zeige "zeige mir[%s]" { alexa="ModeController.mode" [supportedModes="das t. v. programm=das t. v. programm,angefangene serien=angefangene serien,neue filme=neue filme,neue episoden=neue episoden,angefangene filme=angefangene filme,einen zufälligen film=einen zufälligen film,zufällige filme=zufällige filme"] }
das ganze läuft über den ModeController.mode, hier nachzulesen. Wenn man diesen nutzt gibt Alexa als Antwort immer OK anstatt wild drauf los zu quatschen.
in meinem Beispiel ist das Aktivierungswort zeige mir[%s], also ALEXA, zeige mir ..... , dahinter kommen dann die gesprochenen Befehle, diese könnt ihr natürlich wählen wie ihr wollt.
um zb angefangene filme auszulösen wäre es also, ALEXA, zeige mir angefangene filme.
Das zeige mir könnt ihr ändern in was immer ihr wollt.
so dann müsste ihr noch eine Rule anlegen, in diesem Beispiel wird eine Playlist mit angefangenen Filmen geöffnet.
die Playlist müsst ihr natürlich und Videos --> Wiedergabelisten --> Neue Intelligente Wiedergabeliste... anlegen.
rule "kodi steuerung mit aktivierungswort - zeige mir"
when
Item Kodi_Steuerung_zeige received command
then
switch (receivedCommand)
{
case receivedCommand == "angefangene filme": {
sendHttpPostRequest("http://kodi:1234@192.168.0.242:8088/jsonrpc", "application/json", "{\"jsonrpc\":\"2.0\",\"method\":\"GUI.ActivateWindow\",\"params\":{\"window\":\"videos\",\"parameters\":[\"special://profile/playlists/video/angefangene filme.xsp\"]},\"id\":1}")
logInfo("INFO","sende befehl neue episoden")
}
}
end
Alles anzeigen
die rule wird dann immer erweitert um die anderen abfragen bzw befehle die man senden möchte.
der HttpPost Befehl muss natürlich abgeändert werden von euch,
sendHttpPostRequest("http://NUTZER:PASSWORT@IP:PORT/jsonrpc", "application/json", "{\"jsonrpc\":\"2.0\",\"method\":\"GUI.ActivateWindow\",\"params\":{\"window\":\"videos\",\"parameters\":[\"special://profile/playlists/video/NAME_EURER_PLAYLIST.xsp\"]},\"id\":1}")
ihr müsste dafür vorher in Kodi ein paar einstellungen aktiveren, und zwar unter Einstellungen --> Dienste --> Steuerung , Steuerung über HTTP erlauben aktivieren, einen Port, Benutzernamen und Passwort eingeben, diese kommen dann oben in den HTTPOST Befehl. Ich habe extra einen anderen Port genommen als 8080, da dort schon Openhab drauf läuft.
des Weiteren habe ich Fernsteuerung durch Anwendungen dieses Rechners erlauben und Fernsteuerung durch Anwendungen anderer Rechner erlauben aktiviert.
das war es glaube ich auch schon, hier noch Beispiele,
Playlist Zufällige Filme öffnen
case receivedCommand == "einen zufälligen film": {
sendHttpPostRequest("http://NUTZER:PASSWORT@IP:PORT/jsonrpc", "application/json", "{\"jsonrpc\":\"2.0\",\"method\":\"Player.Open\",\"params\":{\"item\":{\"directory\":\"special://profile/playlists/video/randommovies.xsp\"}},\"id\":\"1\"}")
logInfo("INFO","sende befehl zufällige Filme")
}
EPG öffnen
case receivedCommand == "das t. v. programm": {
sendHttpPostRequest("http://NUTZER:PASSWORT@IP:PORT/jsonrpc", "application/json", "{\"jsonrpc\":\"2.0\",\"method\":\"GUI.ActivateWindow\",\"params\":{\"window\":\"tvguide\"},\"id\":1}")
logInfo("INFO","sende befehl epg")
}
Zufälligen Film starten
so kann man zb auch einen Zufälligen Film starten
case receivedCommand == "einen zufälligen film": {
sendHttpPostRequest("http://NUTZER:PASSWORT@IP:PORT/jsonrpc", "application/json", "{\"jsonrpc\":\"2.0\",\"method\":\"Player.Open\",\"params\":{\"item\":{\"directory\":\"special://profile/playlists/video/randommovies.xsp\"}},\"id\":\"1\"}")
logInfo("INFO","sende befehl - starte einen zufälligen Film")
}
wie die Playlisten aussehen müssen, zeige ich jetzt mal nicht, wenn bedarf besteht einfach fragen.
der dank dabei geht an @TehTux @horschte , wenn die beiden nicht so geduldig und hilfsbereit gewesen wären, hätte ich das niemals hingekriegt.
für das einschalten von LiveTv Sendern in Kodi per Sprache reiche ich dann eine kleine Anleitung nach.