BMWRaspControl - Forum
[FeatureRequest] Kommunikation Skin --> HelgeInterface - Druckversion

+- BMWRaspControl - Forum (https://www.bmwraspcontrol.de/board)
+-- Forum: BMWRaspControl - Diskussion (https://www.bmwraspcontrol.de/board/forumdisplay.php?fid=13)
+--- Forum: BMWRaspControl - Kodi / Skin (https://www.bmwraspcontrol.de/board/forumdisplay.php?fid=15)
+--- Thema: [FeatureRequest] Kommunikation Skin --> HelgeInterface (/showthread.php?tid=198)

Seiten: 1 2 3 4 5


RE: Kommunikation Skin --> HelgeInterface - Derhelge - 26.10.2015

Code:
import webbrowser

webbrowser.open('http://eample.com')
Das sollte es sein.
Da wo "Http...." steht muss die JSON Anfrage rein.

oder noch besser:

Code:
import urllib2

urllib2.urlopen(http://www.example.com/)

Gruß


RE: Kommunikation Skin --> HelgeInterface - harryberlin - 26.10.2015

hmm, irgendwas passt da nicht. krieg immer nen scriptfehler. ich glaub das liegt an den "

aber dafür krieg ich nun das event mit, wenn ein neuer track startet, pausiert, resumed :-)
d.h. der track anzeige steht nur noch die json übermittlung im weg.


RE: Kommunikation Skin --> HelgeInterface - Derhelge - 28.10.2015

so funktioniert es erstmal.
Aber schön ist es nicht. Das Timeout steht auf 0s. Kodi meldet einen Addonfehler. Es funktzt aber trotzdem.
Da muss was anderes her.

Code:
#Name: GET OBC Value
#Version: v0.1
#Owner: harryberlin

import urllib

urllib.urlopen( 'http://192.168.2.7:44000/jsonrpc?request={"jsonrpc": "2.0", "method": "OBC.Refresh", "params": { "Property": ALL }, "id": 0}', [0])

pass



RE: Kommunikation Skin --> HelgeInterface - harryberlin - 28.10.2015

da bekomme ich einen scriptfehler.
wie hast du das getestet?


RE: Kommunikation Skin --> HelgeInterface - Derhelge - 28.10.2015

an meinem Rechner.
Pi inkl Resler an mein netzwerk und dann kanns schon losgehen.
mit Putty auf den Pi und dann "tail -f /home/HelgeInterface/Log/HelgeInterface.log" --> dann folgst du dem Logfile

und dann im internetexplorer die URL eingeben. Dann sollte das HelgeInterface reagieren.

Das pythonscript kannst du mit
python /home/osmc/.kodi/addons/skin.confluence-vertical/scripts/get_obcvalue_all.py

testen

PS: grad das senden von Strings ans IKE getestet. Doku findest du im Forum unter HelgeInterface (oben angepinnt).
Werde heut noch im Auto testen und dann gibts DLLs zum testen.


Gruß


RE: Kommunikation Skin --> HelgeInterface - harryberlin - 28.10.2015

1. das script wird bei mir beim aufruf des BC Screens ausgeführt
2. ich bekomme immer eine fehlermeldung, dass das script einen fehler hat. egal ob 127.0.0.1 oder seine IP.
3. entsprechend des fehlers taucht natürlich auch nix im log auf.

kann dir gern ein video machen, wenn du es nicht glaubst.



habs jetzt noch mal komplett neu probiert. jetzt scheint es wohl zu gehen.
dennoch bekomme ich die fehlermeldung.



Also gehen tut es ja mit der anfrage, aber kodi gibt einen fehler aus.

naja, hab jetzt bissl getrickst. so gehts:
mal schaun ob ich heut noch ein script draus mach, bei dem man parameter übergeben kann.

Code:
#Name: HelgeInterface
#Version: v0.1
#Owner: harryberlin

import sys, urllib

ip = '127.0.0.1'
port = '44000'
method = 'OBC.Refresh'
property = 'ALL'

try:
    urllib.urlopen('http://' + ip + ':' + port + '/jsonrpc?request={"jsonrpc": "2.0", "method": "' + method + '", "params": { "Property": ' + property + ' }, "id": 0}', [0])
except:
    pass



RE: Kommunikation Skin --> HelgeInterface - harryberlin - 29.10.2015

Irgendwie geht das mehrfach property nicht.

Das Script schaut im Moment so aus:
Spoiler!
Code:
#Name: HelgeInterface
#Version: v0.1
#Owner: harryberlin

import sys, urllib
import xbmc, xbmcgui

#DEBUG = True

HI_CLASS = ['OBC', 'IKE', 'IBUS']
HI_METHOD_OBC = ['Refresh', 'Reset', 'Set']
HI_METHOD_IKE = ['Displaytext']
HI_METHOD_IBUS = ['SendMSG']
HI_METHOD = [HI_METHOD_OBC, HI_METHOD_IKE, HI_METHOD_IBUS]


#######################  -- Functions -- #######################
def Debug(sTring1,sTring2='',sTring3=''):
    try:
        if DEBUG: xbmcgui.Dialog().ok(str(sTring1), str(sTring2), str(sTring3))
    except:
        return


def HI_JSON( sClass, sMethod, sProperty ):
    
    Debug("got JSON arguments", sMethod, sProperty)
    
    ip = '127.0.0.1'
    port = '44000'
    sClass_tmp = str(sClass)
    sMethod_tmp = str(sMethod)
    sClassMethod_tmp = sClass_tmp + '.' + sMethod_tmp
    sProperty_tmp = str(sProperty)
    
    Debug('before', sProperty_tmp)
    
    if sMethod in [HI_METHOD_OBC[0],HI_METHOD_OBC[1]]:
        sProperty_tmp = sProperty.split(',')
        sProperty_tmp = ', "Property": '.join(sProperty_tmp)
    
    Debug('after', sProperty_tmp)

    try:
        urllib.urlopen('http://' + ip + ':' + port + '/jsonrpc?request={"jsonrpc": "2.0", "method": "' + sClassMethod_tmp + '", "params": { "Property": ' + sProperty_tmp + ' }, "id": 0}', [0])
    except:
        return


#####################  -- programm -- #####################

count = len(sys.argv) - 1

if count < 1:
    Debug("No arguments given", "You must specify arguments to the script", "i.e. 'tether_toggle' - to toggle wifi tethering, etc")
else:
    aMethod = str(sys.argv[1]).split(".")
    
    # parse Class and set Index
    if aMethod[0] in HI_CLASS:
        iHI_CLASS_INDEX = int(HI_CLASS.index(aMethod[0]))
        Debug("", "CLASS is OK ", aMethod[0])
    else:
        Debug("unknown arguments given", " - ".join(sys.argv))
        pass

    # parse Method and set Index
    if aMethod[1] in HI_METHOD[iHI_CLASS_INDEX]:
        iHI_METHOD_INDEX = int(HI_METHOD[iHI_CLASS_INDEX].index(aMethod[1]))
        
        Debug("good parameter given", ".".join(aMethod), sys.argv[2])
    else:
        Debug("combined arguments bad", "don't combine Class   -   Method" , str(aMethod[0]) + " - " + str(aMethod[1]))
        pass    
    
    # send as json
    HI_JSON(aMethod[0], aMethod[1], sys.argv[2])

pass



RE: Kommunikation Skin --> HelgeInterface - Derhelge - 29.10.2015

mehrfach property?


RE: Kommunikation Skin --> HelgeInterface - harryberlin - 29.10.2015

wenn man nicht ALL, sondern z.b. CONS1,CONS2 mit einer request anfragt.


RE: Kommunikation Skin --> HelgeInterface - Derhelge - 29.10.2015

Ahso, das kann das script dann nicht?
Wenn du es irgendwie in den JSON String reinbekommst, dann kann es das HelgeInterface interpretieren.