Module für XBMC

Begonnen von Dennis B., 06 Januar 2013, 22:32:24

Vorheriges Thema - Nächstes Thema

vbs


fhainz

Danke, hab die Version eingespielt. Ich melde mich falls es Probleme gibt!

P.A.Trick

Ich hatte heute auch ständig Reconnect Probleme mit dem Modul. Ich habe das Testmodul laufen und das funktioniert bei mir bisher einwandfrei!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

vbs

Ok, hab die Version jetzt so eingecheckt.

P.A.Trick

Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

ChrisK

Ich hatte bisher eine relativ alte Version im Einsatz, da ich keine Updates gemacht hatte, und die Kommunikation zwischen FHEM und KODI klappte problemlos.
Bis dahin ging es auch nur um die Anzeige einer Nachricht auf Kodi.

Jetzt wollte ich ein bisschen mit der Steuerung rum spielen und habe als erstes ein Update gemacht.
Das führt allerdings dazu, dass auch die Anzeige einer Nachricht nicht funktioniert.

Definiert ist KODI so:
define wz_KODI XBMC 192.168.2.102:8080 tcp user pass
attr wz_KODI devStateIcon opened:rc_GREEN:on disconnected:rc_RED:off Initialized:message_socket_disabled
attr wz_KODI group Multimedia
attr wz_KODI room Wohnzimmer
attr wz_KODI verbose 4

(ich habe auch versucht den Port weg zu lassen und/oder Benutzername und Passwort weg zu lassen)

Ein
set wz_KODI msg 'SmartHome' 'Test1' 5000 info

Führt zu folgendem Eintrag im FHEM-Log
2015.06.09 17:35:02 4: XBMC_Call: Sending: {"method":"GUI.ShowNotification","jsonrpc":"2.0","params":{"message":"Test1","image":"info","title":"SmartHome","displaytime":5000}}

Bei Kodi im Log kommt leider nichts an (Kodi zeigt die Nachricht auch nicht an).

Folgender direkter Aufruf klappt dagegen problemlos:
http://192.168.2.102:8080/jsonrpc?request={"method":"GUI.ShowNotification","params":{"image":"info","displaytime":5000,"title":"SmartHome","message":"Test1"},"jsonrpc":"2.0"}

Kodi und FHEM sind auf dem gleichen Server.
Den Test-Aufruf direkt per url habe ich von einem anderen Rechner gestartet.

Irgendeine Idee, was ich prüfen könnte? Oder sogar was der Grund sein könnte?

vbs

Das muss ich jetzt erstmal fragen: Ansonsten funktioniert die Steuerung/die Readings und STATE steht auf "opened", oder?

Hab ich ansonsten erstmal keine guten Ideen. Ein komplettes Log wäre dann erstmal gut.

ChrisK

Erstmal danke für die schnelle Antwort!
Zitat von: vbs am 09 Juni 2015, 18:12:05
Das muss ich jetzt erstmal fragen: Ansonsten funktioniert die Steuerung/die Readings und STATE steht auf "opened", oder?
Frag ruhig alles, was Du fragen willst ;)
STATE steht auf opened, aber playStatus auf stopped obwohl gerade was läuft (würde er Live-TV auch erkennen? Hab noch nie drauf geachtet)
Ein "set wz_KODI pause" macht dementsprechend auch nichts.

Zitat von: vbs am 09 Juni 2015, 18:12:05
Ein komplettes Log wäre dann erstmal gut.

Hier ist das komplette Log seit Neustart gerade eben.
Danach habe ich versucht ein msg zu schicken.

2015.06.09 18:20:49 1: Including fhem.cfg
2015.06.09 18:20:49 3: telnetPort: port 7072 opened
2015.06.09 18:20:49 3: WEB: port 8083 opened
2015.06.09 18:20:49 3: WEBphone: port 8084 opened
2015.06.09 18:20:49 3: WEBtablet: port 8085 opened
2015.06.09 18:20:49 2: eventTypes: loaded 1283 events from ./log/eventTypes.txt
2015.06.09 18:20:49 1: HMLAN_Parse: HMLAN1 new condition disconnected
2015.06.09 18:20:49 3: Opening HMLAN1 device 192.168.2.3:1000
2015.06.09 18:20:49 3: HMLAN1 device opened
2015.06.09 18:20:49 1: HMLAN_Parse: HMLAN1 new condition init
2015.06.09 18:20:49 1: Including ./cfgfiles/rollos.cfg
2015.06.09 18:20:49 1: Including ./cfgfiles/licht.cfg
2015.06.09 18:20:49 1: Including ./cfgfiles/media.cfg
2015.06.09 18:20:49 3: [STV] defined with host: 192.168.2.18 port: 55000 MAC: d0:50:99:3f:17:53
2015.06.09 18:20:49 3: wz_fernbedienung: connected to /dev/input/event3
2015.06.09 18:20:49 1: Including ./cfgfiles/netzwerk.cfg
2015.06.09 18:20:49 3: Connecting to database mysql:database=xxxx
2015.06.09 18:20:49 3: Connection to db mysql:database=xxxx
2015.06.09 18:20:49 3: Connection to db mysql:database=xxxx
2015.06.09 18:20:49 1: Including ./cfgfiles/floorplan.cfg
2015.06.09 18:20:49 1: Including ./cfgfiles/allgemein.cfg
2015.06.09 18:20:50 1: Including ./log/fhem.save
2015.06.09 18:20:50 3: wz_fernbedienung: connected to /dev/input/event3
2015.06.09 18:20:50 3: NTFY return:  HM_261F3F:ARRAY(0x2e545f0)
2015.06.09 18:20:50 0: Server started with 76 defined entities (version $Id: fhem.pl 8690 2015-06-04 16:47:20Z rudolfkoenig $, os linux, user fhem, pid 9890)
2015.06.09 18:20:50 3: telnetForBlockingFn: port 42393 opened
2015.06.09 18:20:51 1: HMLAN_Parse: HMLAN1 new condition ok
2015.06.09 18:20:52 1: 192.168.2.18:55000 reappeared (wz_TV)
2015.06.09 18:20:52 1: 192.168.2.102:8080 reappeared (wz_KODI)
2015.06.09 18:20:54 4: XBMC_Call: Sending: {"params":{"properties":["volume","muted","name","version"]},"jsonrpc":"2.0","method":"Application.GetProperties","id":619047}
2015.06.09 18:20:54 4: XBMC_Call: Sending: {"method":"GUI.GetProperties","id":408772,"params":{"properties":["skin","fullscreen"]},"jsonrpc":"2.0"}
2015.06.09 18:20:54 4: XBMC_Call: Sending: {"jsonrpc":"2.0","id":"559037","method":"Player.GetActivePlayers"}
2015.06.09 18:20:54 4: XBMC_UpdatePlayerItem
2015.06.09 18:20:54 4: XBMC_UpdatePlayerItem - cancelled (disconnected or not playing)
2015.06.09 18:20:54 3: CUL_HM set az_rollo statusRequest
2015.06.09 18:20:57 3: CUL_HM set ba_rollo1 statusRequest
2015.06.09 18:20:59 3: CUL_HM set ba_rollo2 statusRequest
2015.06.09 18:21:00 3: CUL_HM set ho_rollo1 statusRequest
2015.06.09 18:21:02 3: CUL_HM set ho_rollo2 statusRequest
2015.06.09 18:21:03 3: CUL_HM set ku_licht statusRequest
2015.06.09 18:21:05 3: CUL_HM set sz_rollo statusRequest
2015.06.09 18:21:06 3: CUL_HM set wz_rollo1 statusRequest
2015.06.09 18:21:07 3: CUL_HM set wz_rollo2 statusRequest
2015.06.09 18:21:08 3: CUL_HM set wz_rollo3 statusRequest
2015.06.09 18:21:10 4: XBMC_Call: Sending: {"method":"GUI.ShowNotification","jsonrpc":"2.0","params":{"displaytime":5000,"image":"info","title":"SmartHome","message":"Test1"}}
2015.06.09 18:21:12 3: CUL_HM set ku_licht getConfig


Hab jetzt nach dem Durchgucken des Logs folgendes probiert:
http://192.168.2.102:8080/jsonrpc?request={"jsonrpc":"2.0","id":"559037","method":"Player.GetActivePlayers"}
Und Kodi liefert das hier:
{"id":"559037","jsonrpc":"2.0","result":[{"playerid":1,"type":"video"}]}

Liegt es also an Kodi vielleicht?
Da habe ich eigentlich nichts dran geändert, wobei ich dieses "eigentlich" kenne ;)

vbs

Hm, auffällig ist erstmal, dass FHEM mehrere NAchrichten an Kodi sendet, aber nie eine Antwort bekommt:
2015.06.09 18:20:52 1: 192.168.2.18:55000 reappeared (wz_TV)
2015.06.09 18:20:52 1: 192.168.2.102:8080 reappeared (wz_KODI)
2015.06.09 18:20:54 4: XBMC_Call: Sending: {"params":{"properties":["volume","muted","name","version"]},"jsonrpc":"2.0","method":"Application.GetProperties","id":619047}
2015.06.09 18:20:54 4: XBMC_Call: Sending: {"method":"GUI.GetProperties","id":408772,"params":{"properties":["skin","fullscreen"]},"jsonrpc":"2.0"}
2015.06.09 18:20:54 4: XBMC_Call: Sending: {"jsonrpc":"2.0","id":"559037","method":"Player.GetActivePlayers"}
2015.06.09 18:20:54 4: XBMC_UpdatePlayerItem
2015.06.09 18:20:54 4: XBMC_UpdatePlayerItem - cancelled (disconnected or not playing)


Eine Idee wäre ein Firewall-Problem?
Ansonstne könntest du mal probieren, händisch von der Konsole eine Telnet-Verbindung zu Kodi aufzumachen und mal eine solche Nachricht händisch zu senden und zu gucken, ob da eine Reaktion kommt. Ist das evtl. etwas mit Username/Password im Argen? Hab ich noch nie benutzt, muss ich sagen.

ChrisK

Zitat von: vbs am 09 Juni 2015, 18:32:36
Eine Idee wäre ein Firewall-Problem?
Ansonstne könntest du mal probieren, händisch von der Konsole eine Telnet-Verbindung zu Kodi aufzumachen und mal eine solche Nachricht händisch zu senden und zu gucken, ob da eine Reaktion kommt.
Gilt das auch wenn fhem und kodi auf dem gleichen Server sind? Vielleicht sollte ich localhost statt der IP nehmen?

Probiere ich später mal aus, wenn ich wieder am Rechner bin. Dann gucke ich auch mal ob ich in kodi das Passwort raus nehmen kann.

P.A.Trick

Username uind Passwort klappen bei mir einwandfrei mit dem aktuellen Modul!
Ist die Fernsteuerung (von anderen Apps) im Kodi aktiviert?
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

ChrisK

Benutzername und Passwort in Kodi raus nehmen hat leider nicht geholfen, genau so wenig wie in define auf localhost zu gehen.

Zitat von: P.A.Trick am 09 Juni 2015, 19:21:43
Ist die Fernsteuerung (von anderen Apps) im Kodi aktiviert?
Die ist für lokale und auch für entfernte Programme zugelassen.

Jetzt habe ich beim rum probieren ein paar mehr Log-Einträge, vielleicht sagen die Euch ja was:
2015.06.09 19:53:17 4: XBMC_Call: Sending: {"id":38354,"jsonrpc":"2.0","method":"Application.GetProperties","params":{"properties":["volume","muted","name","version"]}}
2015.06.09 19:53:17 4: XBMC_Call: Sending: {"params":{"properties":["skin","fullscreen"]},"jsonrpc":"2.0","id":923339,"method":"GUI.GetProperties"}
2015.06.09 19:53:17 4: XBMC_Call: Sending: {"method":"Player.GetActivePlayers","jsonrpc":"2.0","id":"4704"}
2015.06.09 19:53:17 4: XBMC_UpdatePlayerItem
2015.06.09 19:53:17 4: XBMC_UpdatePlayerItem - cancelled (disconnected or not playing)
2015.06.09 19:54:17 4: XBMC_Check
2015.06.09 19:54:17 3: XBMC_CheckConnection: Connection lost! Last data from Kodi received 120.01108789444 s ago
2015.06.09 19:54:17 1: localhost:8080 disconnected, waiting to reappear (wz_KODI)
2015.06.09 19:54:19 1: localhost:8080 reappeared (wz_KODI)
2015.06.09 19:54:20 4: XBMC_Call: Sending: {"params":{"properties":["volume","muted","name","version"]},"jsonrpc":"2.0","id":316094,"method":"Application.GetProperties"}
2015.06.09 19:54:20 4: XBMC_Call: Sending: {"jsonrpc":"2.0","id":217504,"method":"GUI.GetProperties","params":{"properties":["skin","fullscreen"]}}
2015.06.09 19:54:20 4: XBMC_Call: Sending: {"method":"Player.GetActivePlayers","jsonrpc":"2.0","id":"915948"}
2015.06.09 19:54:20 4: XBMC_UpdatePlayerItem
2015.06.09 19:54:20 4: XBMC_UpdatePlayerItem - cancelled (disconnected or not playing)
2015.06.09 19:55:20 4: XBMC_Check
2015.06.09 19:55:20 4: XBMC_CheckConnection: Connection still alive. Last data from Kodi received 60.0071959495544 s ago
2015.06.09 19:55:20 4: XBMC_Call: Sending: {"method":"Application.GetProperties","id":171390,"jsonrpc":"2.0","params":{"properties":["volume","muted","name","version"]}}
2015.06.09 19:55:20 4: XBMC_Call: Sending: {"method":"GUI.GetProperties","jsonrpc":"2.0","id":731089,"params":{"properties":["skin","fullscreen"]}}
2015.06.09 19:55:20 4: XBMC_Call: Sending: {"method":"Player.GetActivePlayers","id":"971001","jsonrpc":"2.0"}
2015.06.09 19:55:20 4: XBMC_UpdatePlayerItem
2015.06.09 19:55:20 4: XBMC_UpdatePlayerItem - cancelled (disconnected or not playing)


Interessant finde ich, dass die Connection zwischendurch verloren geht.

Müsste nicht irgendwo auf dem Server der ankommende Call gelogt werden?
Also nicht im kodi-log, weil da scheint ja nichts anzukommen.

vbs

#492
Hast du im Kodi das Debug-Log aktiviert? Sonst sieht man die JSON-Nachrichten nicht IIRC.

Dass die Verbindung verloren geht, liegt daran, dass FHEM keine Antwort bekommt und daher denkt, dass Kodi weg ist (ist der Ersatz für das ping/pong).
EDIT:
Stimmt gar nicht! Das UpdatePlayer wird einfach nicht ausgeführt, weil Kodi eh gerade nicht abspielt, sorry.
END-EDIT:

Ansonsten würde ich gern nochmal die händische Telnet-Methode vorschlagen.

ChrisK

Zitat von: vbs am 09 Juni 2015, 20:00:21
Hast du im Kodi das Debug-Log aktiviert? Sonst sieht man die JSON-Nachrichten nicht IIRC.
Jepp, andere JSON-Calls werden da angezeigt, nur nichts was von fhem kommt.

Ich habe jetzt in der Definition von tcp auf http gestellt und jetzt geht es.
Aber jetzt sind keine Readings mehr da, was vermutlich auch in der Definition so beschrieben ist:
ZitatTo receive events it is necessary to use TCP.

Zitat von: vbs am 09 Juni 2015, 20:00:21
Ansonsten würde ich gern nochmal die händische Telnet-Methode vorschlagen.
Da brauche ich dann ein bisschen Hilfe ;)
fhem und kodi sind auf dem gleichen Server (kodibuntu). Eine telnet-Verbindung baue ich direkt auf dem Server auf?
Bisher habe ich entweder in der Console auf dem Server selbst oder per Putty von einem Windows-Laptop was gemacht.

vbs

Ist ja ein Ding :D Hast du irgendwas an den Ports gemacht in deinem Kodi? Normalerweise ist Port 80 Web (http) und 9090 JSON (tcp). Und wenn es nun mit Port 8080 über http funktioniert, dann ist 8080 offenbar nicht den JSON-Port, oder? Versuch mal tcp mit Port 9090.
Da man mit http keine Events bekommt ist das IMHO ziemlich ungeil.