Module für XBMC

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

Vorheriges Thema - Nächstes Thema

Owel

2015.02.14 19:45:15 5: XBMC_Call: Sending: {"params":{"volume":100},"jsonrpc":"2.0","method":"Application.SetVolume"}
2015.02.14 19:45:15 5: SW: 7b22706172616d73223a7b22766f6c756d65223a3130307d2c226a736f6e727063223a22322e30222c226d6574686f64223a224170706c69636174696f6e2e536574566f6c756d65227d
2015.02.14 19:45:20 5: XBMC_Call: Sending: {"params":{"volume":94},"jsonrpc":"2.0","method":"Application.SetVolume"}
2015.02.14 19:45:20 5: SW: 7b22706172616d73223a7b22766f6c756d65223a39347d2c226a736f6e727063223a22322e30222c226d6574686f64223a224170706c69636174696f6e2e536574566f6c756d65227d
2015.02.14 19:45:29 5: XBMC_Call: Sending: {"params":{"action":"volumeup"},"jsonrpc":"2.0","method":"Input.ExecuteAction"}
2015.02.14 19:45:29 5: SW: 7b22706172616d73223a7b22616374696f6e223a22766f6c756d657570227d2c226a736f6e727063223a22322e30222c226d6574686f64223a22496e7075742e45786563757465416374696f6e227d
2015.02.14 19:45:35 5: XBMC_Call: Sending: {"jsonrpc":"2.0","method":"Input.Select"}
2015.02.14 19:45:35 5: SW: 7b226a736f6e727063223a22322e30222c226d6574686f64223a22496e7075742e53656c656374227d
2015.02.14 19:45:46 5: XBMC_Call: Sending: {"params":{"title":null,"message":null},"jsonrpc":"2.0","method":"GUI.ShowNotification"}
2015.02.14 19:45:46 5: SW: 7b22706172616d73223a7b227469746c65223a6e756c6c2c226d657373616765223a6e756c6c7d2c226a736f6e727063223a22322e30222c226d6574686f64223a224755492e53686f774e6f74696669636174696f6e227d


richtig viel mehr steht da nicht im Log.
Wenn ich mit Putty auf 9090 gehe, bekomme ich ein "connection refused", normal?

vbs

Nee, das ist nicht normal. Wichtig ist, dass du nicht nur "Fernsteuerung zulassen", sondern auch "Fernsteuerung durch andere Programme zulassen" (o.ä.) aktiviert hast. Falls es dann immer noch nicht geht, dann bitte ein komplettes Log posten.

Owel

#377
eigentlich habe ich das, ich steuer xbmc ja auch mit yatze, und das funktioniert super.
Ich schau jetzt noch mal in allen Einstellungen nach.

Mehr Log gibt es eigentlich nicht.
hatte ja bis grad noch den port 80 drin.
Ich schau mal ob noch relevante Logs erzeugt werden, und werde die dann posten.

EDit;
Taha! habe alle Einstellungen noch mal off/on geschalten und XBMC neugestartet. Jetzt tut es. Klasse!

Rince

Ja, das sollte in die Doku aufgenommen werden:
Änderungen an den Netzwerkeinstellungen (Freigaben oder auch Portänderungen) bei Kodi werden erst nach einem Neustart von Kodi aktiv.

Bin da einige Seiten vorher auch schon mal drüber gestolpert ;)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

blade-of-fire

Hallo, ich bins mal wieder :)

Seit einem Update vor wenigen Tage, wird mal wiede fröhlich mein Logfile vollgeschrieben mit folgender Meldung. Ich habe mal verbose 5 aktiviert, ich kann aber da jetzt nichts verwerfliches sehen.


2015.02.16 09:12:56 1: 192.168.178.6:9090 reappeared (Wohnzimmer_Hifi_XBMC)
2015.02.16 09:12:56 5: XBMC_Call: Sending: {"params":{"properties":["volume","muted","name","version"]},"jsonrpc":"2.0","id":363561,"method":"Application.GetProperties"}
2015.02.16 09:12:56 5: SW: 7b22706172616d73223a7b2270726f70657274696573223a5b22766f6c756d65222c226d75746564222c226e616d65222c2276657273696f6e225d7d2c226a736f6e727063223a22322e30222c226964223a3336333536312c226d6574686f64223a224170706c69636174696f6e2e47657450726f70657274696573227d
2015.02.16 09:12:56 5: XBMC_Call: Sending: {"params":{"properties":["skin","fullscreen"]},"jsonrpc":"2.0","id":482857,"method":"GUI.GetProperties"}
2015.02.16 09:12:56 5: SW: 7b22706172616d73223a7b2270726f70657274696573223a5b22736b696e222c2266756c6c73637265656e225d7d2c226a736f6e727063223a22322e30222c226964223a3438323835372c226d6574686f64223a224755492e47657450726f70657274696573227d
2015.02.16 09:12:56 5: XBMC_Call: Sending: {"jsonrpc":"2.0","id":"392553","method":"Player.GetActivePlayers"}
2015.02.16 09:12:56 5: SW: 7b226a736f6e727063223a22322e30222c226964223a22333932353533222c226d6574686f64223a22506c617965722e476574416374697665506c6179657273227d
2015.02.16 09:12:56 5: XBMC_ProcessRead
2015.02.16 09:12:56 5: No PARTIAL buffer
2015.02.16 09:12:56 5: XBMC_Read: Incoming data: {
"id": 363561,
"jsonrpc": "2.0",
"result": {
"muted": false,
"name": "Kodi",
"version": {
"major": 14,
"minor": 0,
"revision": "ad747d9",
"tag": "stable"
},
"volume": 100
}
}
{
"id": 482857,
"jsonrpc": "2.0",
"result": {
"fullscreen": false,
"skin": {
"id": "skin.hybrid",
"name": "Hybrid"
}
}
}
{
"id": "392553",
"jsonrpc": "2.0",
"result": [

]
}

2015.02.16 09:12:56 4: XBMC_Read: Current processing buffer (PARTIAL + incoming data): {
"id": 363561,
"jsonrpc": "2.0",
"result": {
"muted": false,
"name": "Kodi",
"version": {
"major": 14,
"minor": 0,
"revision": "ad747d9",
"tag": "stable"
},
"volume": 100
}
}
{
"id": 482857,
"jsonrpc": "2.0",
"result": {
"fullscreen": false,
"skin": {
"id": "skin.hybrid",
"name": "Hybrid"
}
}
}
{
"id": "392553",
"jsonrpc": "2.0",
"result": [

]
}

2015.02.16 09:12:56 4: XBMC_Read: Decoding JSON message. Length: 201 Content: {
"id": 363561,
"jsonrpc": "2.0",
"result": {
"muted": false,
"name": "Kodi",
"version": {
"major": 14,
"minor": 0,
"revision": "ad747d9",
"tag": "stable"
},
"volume": 100
}
}
2015.02.16 09:12:56 3: XBMC_ParseMsg: Garbage character before message:

2015.02.16 09:12:56 4: XBMC_Read: Decoding JSON message. Length: 136 Content: {
"id": 482857,
"jsonrpc": "2.0",
"result": {
"fullscreen": false,
"skin": {
"id": "skin.hybrid",
"name": "Hybrid"
}
}
}
2015.02.16 09:12:56 3: XBMC_ParseMsg: Garbage character before message:

2015.02.16 09:12:56 4: XBMC_Read: Decoding JSON message. Length: 56 Content: {
"id": "392553",
"jsonrpc": "2.0",
"result": [

]
}
2015.02.16 09:12:56 3: XBMC_ParseMsg: Garbage character before message:

2015.02.16 09:12:56 5: XBMC_Read: Tail:
2015.02.16 09:12:56 5: XBMC_Read: PARTIAL:
2015.02.16 09:12:58 5: XBMC_ProcessRead
2015.02.16 09:12:58 5: No PARTIAL buffer
2015.02.16 09:12:58 5: XBMC_Read: Incoming data: {
"jsonrpc": "2.0",
"method": "VideoLibrary.OnScanFinished",
"params": {
"data": null,
"sender": "xbmc"
}
}

2015.02.16 09:12:58 4: XBMC_Read: Current processing buffer (PARTIAL + incoming data): {
"jsonrpc": "2.0",
"method": "VideoLibrary.OnScanFinished",
"params": {
"data": null,
"sender": "xbmc"
}
}

2015.02.16 09:12:58 4: XBMC_Read: Decoding JSON message. Length: 115 Content: {
"jsonrpc": "2.0",
"method": "VideoLibrary.OnScanFinished",
"params": {
"data": null,
"sender": "xbmc"
}
}
2015.02.16 09:12:58 3: XBMC_ParseMsg: Garbage character before message:

2015.02.16 09:12:58 5: XBMC_Read: Tail:
2015.02.16 09:12:58 5: XBMC_Read: PARTIAL:
2015.02.16 09:13:56 5: SW: 7b226a736f6e727063223a22322e30222c226964223a3838313431392c226d6574686f64223a224a534f4e5250432e50696e67227d
2015.02.16 09:13:56 5: XBMC_ProcessRead
2015.02.16 09:13:56 5: No PARTIAL buffer
2015.02.16 09:13:56 5: XBMC_Read: Incoming data: {
"id": 881419,
"jsonrpc": "2.0",
"result": "pong"
}

2015.02.16 09:13:56 4: XBMC_Read: Current processing buffer (PARTIAL + incoming data): {
"id": 881419,
"jsonrpc": "2.0",
"result": "pong"
}

2015.02.16 09:13:56 4: XBMC_Read: Decoding JSON message. Length: 55 Content: {
"id": 881419,
"jsonrpc": "2.0",
"result": "pong"
}
2015.02.16 09:13:56 3: XBMC_ParseMsg: Garbage character before message:

2015.02.16 09:13:56 5: XBMC_Read: Tail:
2015.02.16 09:13:56 5: XBMC_Read: PARTIAL:
2015.02.16 09:14:56 5: SW: 7b226a736f6e727063223a22322e30222c226964223a3330393833362c226d6574686f64223a224a534f4e5250432e50696e67227d
2015.02.16 09:14:56 5: XBMC_ProcessRead
2015.02.16 09:14:56 5: No PARTIAL buffer
2015.02.16 09:14:56 5: XBMC_Read: Incoming data: {
"id": 309836,
"jsonrpc": "2.0",
"result": "pong"
}

2015.02.16 09:14:56 4: XBMC_Read: Current processing buffer (PARTIAL + incoming data): {
"id": 309836,
"jsonrpc": "2.0",
"result": "pong"
}

2015.02.16 09:14:56 4: XBMC_Read: Decoding JSON message. Length: 55 Content: {
"id": 309836,
"jsonrpc": "2.0",
"result": "pong"
}
2015.02.16 09:14:56 3: XBMC_ParseMsg: Garbage character before message:

2015.02.16 09:14:56 5: XBMC_Read: Tail:
2015.02.16 09:14:56 5: XBMC_Read: PARTIAL:


Wie man sieht kommt die Meldung jede Minute. Der Fehler scheint in folgendem Code-Abschnitt zu passieren.

foreach my $c (split //, $buffer) {
if($open == $close && $open > 0) {
$tail .= $c;
}
elsif(($open == $close) && ($c ne '{')) {
Log3($name, 3, "XBMC_ParseMsg: Garbage character before message: " . $c);
}


Kodi scheint wohl (mal wieder) irgend einen Blödsinn zu senden.
Da ich bisher noch keinen Beitrag gefunden habe, wo jemand das gleiche Problem hat, vermute ich, dass ich vielleicht mein XBMC (bzw. Kodi) mal komplett neu aufsetzen muss. Obwohl es ansonsten eigentlich wunderbar funktioniert.
VM mit Ubuntu und FHEM-Instanz (Hauptinstanz)
FHEM2FHEM
Raspberry Pi 3 B+ mit Eigenbau-Platine + Relais-Platine + Cul-Stick + FHEMDuino

vbs

Ja, kann mich erinnern. :) Aber nun sollte das Modul bei dir immerhin funktionieren, oder? Geloggt wird dieses ominöse unerwartete Zeichen trotzdem. Ich könnte das Log-Level hochsetzen, dann ist das bei LogLevel 3 nicht mehr sichtbar. Würde ich aber ungerne machen, ohne zu wissen, was eigentlich da hinter steckt. Tritt scheinbar nur bei dir auf :/

blade-of-fire

Nein, deshalb brauchst sicherlich nicht im allgemeinen das Loglevel hochsetzen. Ist ja schließlich ein Indiz, das irgendetwas nicht so läuft wie es sollte. Vor allem, da es ja scheinbar nur bei mir auftritt. Ich werde jetzt einfach bei mir das Loglevel des Kodi auf 2 stellen, damit mein Logfile nicht mehr zugesetzt wird und demnächst setze ich mein Kodi mal neu auf.
Was mich nur wundert ist, dass es die ganze Zeit nicht geloggt wurde. Aber ansonsten funzt es ja :)

Danke nochmal.  8)
VM mit Ubuntu und FHEM-Instanz (Hauptinstanz)
FHEM2FHEM
Raspberry Pi 3 B+ mit Eigenbau-Platine + Relais-Platine + Cul-Stick + FHEMDuino

pallago

Hallo,
vielen Dank für das Modul und die Beschreibungen. Ich habe zwei Raspberries, auf einem Raspbmc/Kodi, auf dem anderen FHEM. Die beiden sprechen auch miteinander, in FHEM sehe ich den Status von Kodi/raspbmc und von FHEM kann ich KODI/Raspbmc steuern.
Jetzt würde ich gerne ein paar FHEM Kommandos ausführen, in Abhängigkeit vom Status des Kodi/raspbmc. Dazu habe ich den Link hier gefunden (http://www.fhemwiki.de/wiki/XBMC). Ich habe den Code eingebaut, umgebaut etc. Ich scheitere jedoch an der Fehlermeldung "Unknown command } , try help. 0" - dieser Fehler verschwindet zwar, wenn man den ";" bei fhem(...) herausnimmt, jedoch werden dann keine Befehle ausgeführt.
Da ich schon seit ein paar Stunden versuche das zum Laufen zu bekommen, habe feststellen müssen, das falsch gesetzte Leerzeichen beispielsweise ein Problem darstellen.
Hat jemand ein paar Zeilen Code für mich (am besten als Datei wegen der Formatierung?

Vielen Dank und schönen Sonntag noch.

P.A.Trick

Zitat von: pallago am 22 Februar 2015, 13:38:43
Hallo,
vielen Dank für das Modul und die Beschreibungen. Ich habe zwei Raspberries, auf einem Raspbmc/Kodi, auf dem anderen FHEM. Die beiden sprechen auch miteinander, in FHEM sehe ich den Status von Kodi/raspbmc und von FHEM kann ich KODI/Raspbmc steuern.
Jetzt würde ich gerne ein paar FHEM Kommandos ausführen, in Abhängigkeit vom Status des Kodi/raspbmc. Dazu habe ich den Link hier gefunden (http://www.fhemwiki.de/wiki/XBMC). Ich habe den Code eingebaut, umgebaut etc. Ich scheitere jedoch an der Fehlermeldung "Unknown command } , try help. 0" - dieser Fehler verschwindet zwar, wenn man den ";" bei fhem(...) herausnimmt, jedoch werden dann keine Befehle ausgeführt.
Da ich schon seit ein paar Stunden versuche das zum Laufen zu bekommen, habe feststellen müssen, das falsch gesetzte Leerzeichen beispielsweise ein Problem darstellen.
Hat jemand ein paar Zeilen Code für mich (am besten als Datei wegen der Formatierung?

Vielen Dank und schönen Sonntag noch.

Du solltest die Kommandos nicht in der fhem.cfg editieren sondern das WebIF benutzen. Ich tippe mal, du hast die doppelten Semikolons vergessen!
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

pallago

Hallo,
vielen Dank!, habe das auch auf Seite 13/14 gefunden - schlussendlich habe ich es hinbekommen.

Die Idee ist nun, dass das Licht beim Filmschauen ausgeht und danach wieder an (wenn es davor auch schon an war). Dazu speichere ich den Zustand vor dem "play" in die Variable "status_LED1". Soweit so gut, funktioniert auch - ich verstehe jedoch nicht wieso das Skript 2x durchläuft, wenn ich auf "play" dücke. Wenn ich ihn anhalte, läuft das Skript auch nur 1x durch. Dadruch, dass das Skript 2x ausgeführt wird, wird der Status immer auf "off" gesetzt; somit funktioniert es nicht.

2015.02.22 16:18:42 3: PLAYING status_LED1: on
2015.02.22 16:18:42 3: PLAYING status_LED1: off
2015.02.22 16:18:45 3: PAUSED status_LED1: off


(Log 3,... ist der Debug)
Hat da jemand eine Idee?



z_XBMC:playStatus.* { if (ReadingsVal("wz_XBMC", "type", "") eq "movie"){
   my $status_LED1 = ReadingsVal("LED1", "state", "");
   if (ReadingsVal("wz_XBMC", "playStatus", "") eq "playing"){
   Log 3, "PLAYING status_LED1: " . $status_LED1;
   if ($status_LED1 eq "on"){
fhem("set LED1 off");
   }
    }
    if (ReadingsVal("wz_XBMC", "playStatus", "") eq "paused"){
Log 3, "PAUSED status_LED1: " . $status_LED1;
if ($status_LED1 eq "on"){
fhem("set LED1 on");
}
    }
   }}

Icinger

Zitatz_XBMC:playStatus.*

Schau mal im Eventmonitor, welche Events alle auftauchen. Und dann das RegEx genauer anpassen.

lg, Ici
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

pallago

Hallo Ici,
vielen Dank. Ich habe gesehen, dass zwei mal das Event
2015-02-22 18:34:06 XBMC wz_XBMC playStatus: playing
auftaucht. Somit wird meine variable immer überschrieben. Sauber ist meine Lösung nicht, jedoch funktioniert sie; ich habe mir zwei dummy angelegt

define tmp_LED1 dummy
attr tmp_LED1 setList on off
define tmp_LED2 dummy
attr tmp_LED2 setList on off


Dann im DEF:

wz_XBMC:playStatus.* { if (ReadingsVal("wz_XBMC", "type", "") eq "movie"){
   if (ReadingsVal("wz_XBMC", "playStatus", "") eq "playing") {
   my $status_LED1 = ReadingsVal("LED1", "state", "");
   my $status_LED2 = ReadingsVal("LED2", "state", "");
   if ($status_LED1 eq "on"){
fhem("set LED1 off");
fhem("set tmp_LED1 $status_LED1");
   }
   if ($status_LED2 eq "on"){
fhem("set LED2 off");
fhem("set tmp_LED2 $status_LED2");
   }
    }
    if (ReadingsVal("wz_XBMC", "playStatus", "") eq "paused"){
if (ReadingsVal("tmp_LED1", "state", "") eq "on") {
fhem("set LED1 on");
fhem("set tmp_LED1 off");
}
if (ReadingsVal("tmp_LED2", "state", "") eq "on") {
fhem("set LED2 on");
fhem("set tmp_LED2 off");
}
    }
   }}


vielleicht hat jemand auch das Problem und das hilft hier jemanden.

P.A.Trick

Hast du event-on-changereading gesetzt?
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

Bambi

Moin, kleines Update zu meinem Problemchen.

Kodi (Amazon Fire TV) und Fhem laufen nun auch per tcp super zusammen. Ich hatte die advancedsettings.xml nicht richtig eingerichtet.

>.< kaum macht man's richtig, funktioniert's

Danke für eure Hilfe

Zitat von: Bambi am 14 Januar 2015, 22:48:28
Hallöchen und schönen Abend,
ganz neu bin ich inzwischen nimmer, aber bestimmt etwas blind oder begriffsstutzig.

Ich möchte die Kommunikation zwischen FHEM und KODI aufbauen, doch leider verstehe ich nicht, wie ich KODI dazu bringen kann mir Informationen zu schicken. Mit dem Script aus dem Wiki klappt es anscheinend nicht bei mir.

Für Vorschläge bin ich offen :)

Zum System:
* FHEM 5.6 auf nem Raspi
** KODI ist angelegt:
Internals:
   CFGFN      /opt/fhem/FHEM/HW_Mediasysteme.cfg
   DEF        192.168.0.47 tcp
   DeviceName 192.168.0.47:9090
   Host       192.168.0.47
   NAME       wz_KODI
   NEXT_OPEN  1421273415.50827
   NR         141
   PARTIAL
   Port       9090
   Protocol   tcp
   STATE      disconnected
   TYPE       XBMC
   Readings:
     2015-01-14 23:09:15   state           disconnected
Attributes:
   devStateIcon opened:rc_GREEN:on disconnected:rc_RED:off Initialized:message_socket_disabled
   pingInterval 60
   room       Wohnzimmer


* KODI 14 per sideload auf nem Amazon Fire TV
** JSON-RPC API ist aktiviert.

Besten Dank vorab :D


Update:
Kommuikation über http läuft - feini :)=

Anscheinend bekomme ich Telnet / tcp nicht zum laufen...

Owel

Magst du uns auch verraten was der Fehler war und wie du ihn behoben hast?
So können andere auch davon teilhaben die ähnliche Probleme hat!