FHEM Forum

FHEM - Anwendungen => Multimedia => Thema gestartet von: pula am 15 Juli 2017, 23:25:52

Titel: kodi, TV und die channels
Beitrag von: pula am 15 Juli 2017, 23:25:52
Hallo,

ich nutze kodi  (mit vnsi und vdr) und dafür openchannelid, wenn ich das Multimedia-System einschalte.
Leider verstellen sich immer wieder die Channel-Nummern, wenn zb vdr neue channels findet und dann wird durch openchannelid ein falscher Kanal gestartet, was vor allem die Frau ein wenig nervt.
Kennt jemand eine Möglichkeit, das zu unterbinden, oder die Channels auszulesen und dadurch auf den richtigen Kanal zu kommen?

Danke und cheers,

Pula
Titel: Antw:kodi, TV und die channels
Beitrag von: pula am 22 Juli 2017, 17:18:46
Ich beantworte es mir mal selber :-)

Hab mir eine kleine python-Routine gebaut, die für einen Channel-Namen die ID zurückgibt:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import json
import urllib2
import warnings
import sys

warnings.filterwarnings("ignore", category=UserWarning, module='urllib2')

def searchID(ID):
    url = 'http://IP_VON_KODI/jsonrpc?request={"jsonrpc":"2.0","method": "PVR.GetChannels","params": {"channelgroupid": "alltv"},"id": 1}'
    p = urllib2.HTTPPasswordMgrWithDefaultRealm()
    p.add_password(None, url, 'user', 'passwort')
    handler = urllib2.HTTPBasicAuthHandler(p)
    opener = urllib2.build_opener(handler)
    urllib2.install_opener(opener)
    response = urllib2.urlopen(
        url=url,
        timeout=10
    )
    data = json.load(response)
    if 'result' in data and 'channels' in data['result']:
        data = data['result'].get('channels')
        for channels in data:
            if channels['label'] == ID:
                return channels['channelid']

print(searchID("RTL HD"))


Das Ganze kann man dann auf verschiedene Arten an fhem zurückliefern. Ich werde das direkt in dem Python-Skript machen, indem ich einen dummy in fhem entsprechend setze. Aber hier hat jeder einen anderen Geschmack ;-)

Cheers,

Pula