Hi Zusammen,
ich hoffe ich bin in diesem Forum Teil richtig.
Vorweg: Wenn hier jemand ein Fertiges Plugin erwartet, das wird er nicht finden! Das ganze ist ein Anfangsversuch.
Zu mir: Ich bin ein ziemlicher Programmierungs Neuling also bitte keine Aussagen von wegen das hätte ich dir schneller machen können.
Zu meinem Projekt: Ich möchte ein Plugin für die Dreambox schreiben welches sich mittels SOAP Schnittstelle mit IP Symcon verbindet und dort steuern kann. (Leichter gesagt als getan )
Aktueller Stand: Nach ca. 2 Tagen durchwühlen von Python, SOAPpy, SOAP und ZSI Dokumentationen & Examples hab ichs nun endlich geschafft einen Wert von IP-Symcon über die Shell auf meiner Dream, mittels Python abzufragen (Also ja es kann klappen )
Wer das ganze mit SOAPpy versucht, lasst es sein. Bei mir hats nicht geklappt. So wie ich das verstanden habe funktioniert SOAPpy besser wenn der Server JSON Werte zur verfügung stellt, die WSDL Komponenten funktionieren nicht wirklich (bei mir).
Folgende Konstellation funktioniert bei mir:
Dream 7020HD
OpenEnigma2 unstable (OE1.6 sollte eigentlich auch klappen)
ZSI2.0 http://pywebsvcs.sourceforge.net/
UND PyXML-0.8.4 (die auf der dream vorhandenen XML Komponenten haben nicht alle von ZSI benötigten Funktionen)
VORSICHT !!! PyXML führt zu Problemen mit dem Webinterface !!! Ich suche die Tage nach einer Lösung !!! Also erstmal nicht zum probieren installieren !!!
ich habe beide Python Erweiterungen nach /usr/lib/python2.7/site-packages auf der Dream kopiert.
Das python script sieht momentan wie folgt aus (192.168.178.4 ist mein IPS):
from ZSI.ServiceProxy import ServiceProxy
import _xmlplus
wsdlUrl = 'http://192.168.178.4:3773/wsdl/IIPSSimpleKernel'
dbfetchSrv = ServiceProxy(wsdl=wsdlUrl)
print dbfetchSrv.GetKernelVersion()
und liefert folgendes Ergebnis:
{'return': 572}
///EDIT: Erfolg beim Script Start über python:
from ZSI.ServiceProxy import ServiceProxy
import _xmlplus
wsdlUrl = 'http://192.168.178.4:3773/wsdl/IIPSScriptEngine'
dbfetchSrv = ServiceProxy(wsdl=wsdlUrl)
dbfetchSrv.ExecuteScript(ScriptID=57919,DoWait=True)
///EDIT2: Variable Boolean schreiben:
from ZSI.ServiceProxy import ServiceProxy
import _xmlplus
wsdlUrl = 'http://192.168.178.4:3773/wsdl/IIPSVariableManager'
dbfetchSrv = ServiceProxy(wsdl=wsdlUrl)
dbfetchSrv.WriteVariableBoolean(VariableID=16771,VarValue=True)
///EDIT3: Variable Boolean Abfragen und Ergebnis printen
from ZSI.ServiceProxy import ServiceProxy
import _xmlplus
wsdlUrl = 'http://192.168.178.4:3773/wsdl/IIPSVariableManager'
dbfetchSrv = ServiceProxy(wsdl=wsdlUrl)
resultDict = dbfetchSrv.ReadVariableBoolean(VariableID=16771)
result = resultDict['return']
print result
So langsam wirds was Fehlt nur noch die Logik Abfragen und die Visualisierung in Python auf der Dreambox
Mein Ziel wird es sein Plugin zu entwickeln welches nur noch die IPS IP und die Objekt ID einer Kategorie benötigt und dann Selbstständig die dort vorhandenen Variablen Abfragt und auf der Dreambox visualisiert.
Hoffe diese Infos können schon jemandem helfen der vielleicht ähnliches vor hat.