Wie kann man aus Java heraus auf IPS Variablen zugreifen?

Hallo zusammen,

ich möchte gerne aus Java heraus IPS-Variablen setzen und abfragen. Trotz ausgiebiger Suche bin ich leider noch nicht zum Erfolg gekommen.

So weit bin ich gekommen:

  • der Zugriff sollte (muss?) über die IPS SOAP Schnittstelle erfolgen
  • zur Erzeugung der entsprechenden Java Klassen gibt es Codegeneratoren wie wsimport aus dem jdk oder „Axis2 code generator“.

So weit, so gut…
Aber leider kommen beide Generatoren mit den wsdl files von IPS nicht zurecht und brechen mit Fehlermeldungen ab.

Und nun bin ich ratlos :frowning:

Gibt es Alternativen (möglichst nicht zu kompliziert ;))? Oder hat jemand bereits fertige Klassen, die man „nur“ einbinden muss?

Ich bin für jede Hilfe dankbar!

Viele Grüße

Burkhard

Tada: http://www.ip-symcon.de/forum/f13/ip-symcon-json-rpc-schnittstelle-10537/ :slight_smile:

paresy

Super, das hört sich gut an und macht mir Mut. Es scheint für mich der richtige Weg zu sein.

Jetzt brauch ich aber noch etwas Starthilfe… Kann mir jemand bitte noch mit einem konkreten Beispiel in Java behilflich sein?

Benötige ich einen JSON-Parsor und Generator wie z.B. Jackson um das Ganze zum Laufen zu bringen? Welchen soll ich nehmen? Im Prinzip benötige ich eine Anleitung, die ich nachbauen kann …

Im Moment habe ich noch viele Fragen :smiley:

Viele Grüße

Burkhard

Ich versuche mich gerade mit curl heranzutasten.

Aber der Versuch mit

curl --data-binary '{"jsonrpc": "2.0", "id":"1", "method": "isAPIReady", "params": [] }' http://shuttle:82/jsonrpc.php 

scheitert mit der Ausgabe

curl: (6) Could not resolve host: 2.0,; No data record of requested type
curl: (6) Could not resolve host: id:1,; No data record of requested type
curl: (6) Could not resolve host: method; Host not found
curl: (6) Could not resolve host: isAPIReady,; No data record of requested type
curl: (6) Could not resolve host: params; Host not found
curl: (3) [globbing] illegal character in range specification at pos 2
curl: (3) [globbing] unmatched close brace/bracket at pos 1
"{\"jsonrpc\":\"2.0\",\"error\":{\"code\":\"-32700\",\"message\":\"Invalid request\",\"data\":\"Invalid header or postdata.\"},\"id\":\"Null\"}"

Da fehlt wohl noch etwas … :confused:

Hat jemand eine Idee?

Viele Grüße

Burkhard

Ich bin nach langer Zeit etwas weitergekommen:)

Der Zugriff über curl gelingt mir nun. Beispiel:

curl --data-binary "{\"jsonrpc\": \"2.0\", \"id\":\"1\", \"method\": \"isAPIReady\", \"params\": [] }" http://shuttle:82/jsonrpc.php

liefert:

{"jsonrpc":"2.0","result":true,"id":"1"}

… was ja schon einmal gar nicht schlecht ist und zeigt, dass serverseitig alles funktioniert.

Jetzt geht es daran, aus Java heraus über JSON die Verbindung aufzunehmnen. Falls jemand dazu einen Tipp hat, nur her damit :wink:

Viele Grüße

Burkhard

Hallo,
estmal ein ganz großes Lob an das Forum.Ich besitze IPS schon seit geraumer Zeit und bin höchst zufrieden damit.
Als kleine Erweiterung habe ich mir ein Ipad zugelegt mit einer Commandfusion Lizense um meine eigene Mediensteuerung zu gestalten.Als Mediacenter benutze ich XBMC was ich auch über die Json Schnittstelle anspreche.Jetzt suche nach einer Möglichkeit einen Befehl an die JSON Schnittstelle von IPS zu schicken finde aber leider kein genaues Beispiel wie so ein Befehl (z.B. SetVariableBoolen) auszusehen hat zwecks Parameterübergabe.Gibt es denn diesbezüglich eine Doku oder ein Beispiel wie der gesammte Json String auszusehen hat.

Hat jemand eine Idee?

Viele Grüße

Renè

Hi,

ich suche nach einem Weg, um von aussen - am besten per JSON - Variablen innerhalb von IPS zu setzen bzw. zu schreiben oder auch Aktionen auszulösen.
Per JSON und GET an Daten heranzukommen, geht schon.
Und jetzt stellen ich mir den anderen Weg per PUT vor.

Hat da jemand ein Beispiel oder ein Code-Schnippsel das mir hilft in die Thematik hineinzukommen?

BG Johannes