Module für XBMC

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

Vorheriges Thema - Nächstes Thema

Hans Franz

#570
Ich habe keine ChannelGroups und deshhalb wohl:404 Not found.

Gruß
Hans

Edit:
Habe um 14:10 kodi-TV gestoppt und warte auf die Keys in PendingPlayerCMDs-Meldung. Aber das dauert...

Edit2:
Habe Blödsinn erzählt  :'(
Auf Port 8091:
{"id":6939,"jsonrpc":"2.0","result":{"channelgroups":[{"channelgroupid":1,"channeltype":"tv","label":"Alle Kanäle"}],"limits":{"end":1,"start":0,"total":1}}}
{"id":6939,"jsonrpc":"2.0","result":{"channels":[{"channelid":84,"label":"Das Erste"},{"channelid":94,"label":"ZDF"},{"channelid":21,"label":"RTL Television"},{"channelid":5,"label":"SAT.1"},{"channelid":38,"label":"ProSieben"},{"channelid":33,"label":"kabel eins"},{"channelid":48,"label":"RTL2"},{"channelid":60,"label":"SUPER RTL"},{"channelid":74,"label":"VOX"},{"channelid":58,"label":"DMAX"},{"channelid":42,"label":"SIXX"},{"channelid":54,"label":"Disney Channel"},{"channelid":98,"label":"3sat"},{"channelid":100,"label":"Bayerisches FS Süd"},{"channelid":106,"label":"hr-fernsehen"},{"channelid":83,"label":"WDR Köln"},{"channelid":111,"label":"SWR Fernsehen BW"},{"channelid":88,"label":"WDR Bielefeld"},{"channelid":110,"label":"Radio Bremen TV"},{"channelid":102,"label":"WDR Test A"},{"channelid":108,"label":"Einsfestival"},{"channelid":81,"label":"EinsPlus"},{"channelid":82,"label":"arte"},{"channelid":103,"label":"PHOENIX"},{"channelid":96,"label":"SR Fernsehen"},{"channelid":90,"label":"ARD-alpha"},{"channelid":79,"label":"rbb Brandenburg"},{"channelid":85,"label":"rbb Berlin"},{"channelid":91,"label":"ARD-TEST-1"},{"channelid":89,"label":"NDR FS NDS"},{"channelid":99,"label":"MDR Thüringen"},{"channelid":87,"label":"SWR Fernsehen RP"},{"channelid":49,"label":"N24"},{"channelid":40,"label":"SAT.1 Gold"},{"channelid":72,"label":"ProSieben MAXX"},{"channelid":107,"label":"ALT - SUCHLAUF STARTEN"},{"channelid":63,"label":"Comedy Central/VIVA"},{"channelid":64,"label":"KiKA"},{"channelid":95,"label":"ZDFinfo"},{"channelid":97,"label":"zdf_neo"},{"channelid":86,"label":"zdf.kultur"},{"channelid":101,"label":"tagesschau24"},{"channelid":68,"label":"n-tv"},{"channelid":104,"label":"CBC01"},{"channelid":92,"label":"VOX CH"},{"channelid":39,"label":"RTLNITRO"},{"channelid":80,"label":"RTL Living"},{"channelid":56,"label":"Eurosport Deutschland"},{"channelid":45,"label":"TELE 5"},{"channelid":62,"label":"ServusTV Deutschland"},{"channelid":93,"label":"ServusTV Oesterreich"}],"limits":{"end":51,"start":0,"total":51}}}
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

vbs

Joa passt ja, oder? Du hast scheinbar einfach keinen Channel 1, Channel 5 gibts aber.

Hans Franz

Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

zensbert

Zitat von: vbs am 08 November 2015, 10:43:55
Benutzt du bewusst http anstatt tcp? Wenn nein, dann solltest du auf tcp umstellen, da der Funktionsumfang von http sehr eingeschränkt ist (zB keine Statusänderungen, wie du auch bemerkt hast).

Ok, daran lags. Danke!

Hans Franz

Hallo,
openchannelid fehlt noch in der Liste der möglichen Argumente.

Um einen Dummy mit den für ein notify nötigen Readings zu befüllen:
#!/usr/bin/perl
use strict;
use warnings;

use LWP::UserAgent;
use HTTP::Request;
use JSON qw( decode_json );

my $jsonUser = "xbmc";
my $jsonPass = "";
my $jsonHost = "localhost:8091";
my $jsonUrl  = sprintf("http://%s:%s@%s/jsonrpc",$jsonUser,$jsonPass,$jsonHost);
my $fhem_port = "7072";
my $dummy_name = "xbmc_channels";
my $jsonReq =sprintf("{
\"jsonrpc\" : \"2.0\",
\"id\" : 1,
\"method\" : \"PVR.GetChannels\",
\"params\" : {\"channelgroupid\" : 1 }
}");

my $http = HTTP::Request->new('POST', $jsonUrl);

$http->header('Content-Type' => 'application/json');
$http->content($jsonReq);

my $ua  = LWP::UserAgent->new;
my $res = $ua->request($http);

if ($res){
    my $setlist;
    my $data = decode_json($res->content);
    system("/opt/fhem/fhem.pl $fhem_port 'defmod $dummy_name dummy'");
    system("/opt/fhem/fhem.pl $fhem_port 'deletereading '.$dummy_name.' .*'");
    foreach my $key1 (keys %$data->{result}->{channels}) {
        my $reading = $data->{result}->{channels}[$key1]->{label};
        my $value   = $data->{result}->{channels}[$key1]->{channelid};
        $reading =~ s/ /_/g;
        system("/opt/fhem/fhem.pl $fhem_port 'setreading $dummy_name $reading $value'");
        $setlist = $setlist.' '.$reading;
    }
    system("/opt/fhem/fhem.pl $fhem_port 'attr $dummy_name setList $setlist'");
    exit(0);
}


Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

vbs

openchannelid hab ich gestern ergänzt, sollte heute im Update sein.

Ich könnte theoretisch diese Channel-Listen-Sachen hinzufügen. Wäre das nützlich? Wenn ja, wofür? Man müsste dann ja auch die Channel-Groups erstmal anfragen.

Hans Franz

Muss, glaube ich, nicht sein. Kann sich ja jeder selber anpassen. Wann wechselt man schon mal die Kanalzuordnung in Kodi?

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

zensbert

Hi,
Nachdem ihr mir so schnell geholfen hattet nochmal eine Frage:

Ich schalte über FHEM Licht ein, wenn bei XBMC Pause ist. aber 2 Nachteile:
-schalte ich über XBMC von Kanal 1 auf 2 ist ca. eine Sekunde Status pause, also geht licht an
-schalte ich über die Harmony alles aus, geht der HTPC nicht schnell genug aus, demnach gibt FHEM nochmal ein Licht-Einschalt-Signal obwohl eigentlich alles aus sein sollte

Der aktuelle Notify sieht so aus:
HTPC.playStatus:.paused set LEDLichtleiste PowerOn

Kann ich da ein 2-3 Sekunden Delay einsetzen? Bzw. auch verhindern dass das Licht anbleibt wenn Harmony Status = PowerOff?

Cool wäre auch generell: wenn Wechsel von Harmony Status auf PowerOff 5 Minuten Licht an, ist aber ja wahrsch. Ein eigenes Notify, oder?

Vielen Dank!!

Thomas

Amenophis86

Schau dir mal in der commandref DOIF und dabei das wait Attribut noch. Erklärungen dazu findest du viele hier im Forum und in der Commandref.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

zensbert

Hallo Amenophis86,
Erstmal danke.. Tut mir leid, aber ich muss nochmal nerven.. Ich habe es versucht aber ich sag ganz ehrlich dass ichs nicht so ganz raffe.. Mit dem sleep befehl hat es auch nicht geklappt.

Könntet ihr mir vll. Bei der Syntax etwas helfen?

Nochmal Sry, fange gerade erst mit FHEM an.

Gruß Thomas

Amenophis86

Es gehört zwar eigentlich nicht hier her, aber es könnte in etwa so aussehen:


define LichtTV DOIF ([HTPC:playStatus] eq "paused") (set LEDLichtleiste PowerOn) DOELSE (set LEDLichtleiste PowerOff)
attr LichtTV wait 4:4


Der Code ist jetzt geschrieben, ohne dass ich deine genaue Syntax kenne. Er soll quasi ein Anhaltspunkt sein. Wenn du damit nicht weiter kommst, dann mach doch ein extra Thema auf und ich helfe dir dort gerne weiter.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

zensbert

Hallo Amenophis86,
Danke für die Hilfe. Ich habe dass mal in einem eigenen Thread eröffnet.

Würde mich freuen wenn du mir weiterhelfen könntest.

http://forum.fhem.de/index.php/topic,43905.0.html

LG!

Dersch

Hat das Modul jemand mit Kodi 15.2 am laufen? Ich kann machen und einstellen was ich will aber ich bekomme nicht mal eine Verbindung von FEHM zu Kodi :(

vbs


Dersch

Kodi ist richtig konfiguriert (steuerung von externen programmen erlauben) und mehr als das Modul mit tcp einrichten ist doch nicht nötig. Ich verstehe daher nicht waurm er Kodi einfach nicht erkennt und als disconnected anzeigt.