Openremote

Vielen Dank :slight_smile: Jetzt klappt es endlich :slight_smile:

So per Postman geht es aber per Openremote passiert nix.

So habe ich es eingestellt :

Bildschirmfoto 2013-08-18 um 14.49.30.png

Hat sich erledigt hab auf die 2.2 gewechselt seit dem geht es einwandfrei :slight_smile:

Super, na dann viel Spass beim basteln und Graphiken erstellen… :wink:

Danke, aber das ist mur viel zu aufwendig mir ging es nur ums Prinzip :wink:

Hi Jungs,

Ich habe mir OpenRemote installiert und versucht die Schnittstelle dort abzubilden.
Mein Symcon Webfront ist von aussen über Port 80 zu erreichen.
Somit müsste doch der String zum ausführen eines Scriptes von aussen lauten:
http://ueser:password@host.test.net/api/{„jsonrpc“:„2.0“,„method“:„IPS_RunScript“,„params“:[12712],„id“:„Null“}
Passt das ?
Ich habe versucht es wie Ihr in OpenRemote einzutragen, aber es tut sich nichts…
Anbei ein Screenshot der Einstellungen.

Vielleicht habt Ihr eine Idee…

Danke im Voraus.

Gruß
Michael

openremote.jpg

Bei der URL scheint das http zu fehlen. Könnte daran liegen. Die JSON-RPC API hast du korrekt aktiviert?

paresy

JASON-RPC ist im WebFront Konfigurator angeklickt ist es und Username und Passwort ist vergeben.
Ich sehe aber auch im Webfront Konfigurator Debug nichts reinkommen - sollte ich da was sehen?

Ich habe http:// vor die URL gehängt…geht trotzdem nix…

Mein Webfront läuft auf Port 80…

Bin für alles dankbar !!!

versuch mal den Slash hinter der /api wegzulassen.

Habe Beispiele gefunden, die ohne / sind

Hi,
Hat leider nichts gebracht.

Vielleicht ist im Aufruf etwas falsch:
{„jsonrpc“:„2.0“,„method“:„IPS_RunScript“,„params“:[12712],„id“:„Null“}

12712 Ist das Script, das ich ausführen möchte.

ich hätte deinen Aufruf so konstruiert:

{„jsonrpc“:„2.0“,„method“:„IPS_RunScript(12712)“,„params“:„Null“,„id“:„Null“}

Danke Dapor, aber leider hat der geänderte Aufruf nichts gebracht.
Weder mit / noch ohne / hinter api.

Ich werde heute Abend mal genauer schauen und alle Möglichkeiten austesten.

Steht im Logfile denn irgendwo, was IPS zurückliefert?

paresy

Das falsch. Schau dir die JSON-RPC specs bitte an.

paresy

Etwas Laienhaft sicherlich aber:

ich habe in openremote einen Sensor erstellt für ein Device (Command).
Dieser hat folgende Werte:

http://xxx:82/api
HTTP-Method: POST
Workload: {„jsonrpc“:„2.0“,„method“:„IPS_GetVariable“,„params“:[45641],„id“:„Null“}

Allerdings bekomme ich dazu im Android App im Label nur ein „N/A“ und im Tomcat-Fenster

ERROR [Polling thread for sensor: Zeuch]: ClientProtocolException when executing
 HTTP method
org.apache.http.client.HttpResponseException: Not Found
        at org.apache.http.impl.client.BasicResponseHandler.handleResponse(Basic
ResponseHandler.java:67)
        at org.apache.http.impl.client.BasicResponseHandler.handleResponse(Basic
ResponseHandler.java:54)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpCl
ient.java:735)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpCl
ient.java:709)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpCl
ient.java:700)
        at org.openremote.controller.protocol.http.HttpGetCommand.requestURL(Htt
pGetCommand.java:231)
        at org.openremote.controller.protocol.http.HttpGetCommand.run(HttpGetCom
mand.java:245)
        at java.lang.Thread.run(Thread.java:724)

Wo ist hier der Haken? Will einfach nur zum „spielen“ eine Dummy-Variable aus IPS abfragen.
Per Postman bekomme ich entsprechende Antworten. Aber das ist eine Liste und nicht nur der Wert. Jetzt weiss ich nicht wie ich im OR definiere, welchen Wert er ausgeben soll (ValueInteger in dem Fall)

{
    "result": {
        "VariableCustomProfile": "",
        "VariableChanged": 1375994277.446,
        "VariableIsLocked": false,
        "VariableUpdated": 1376781531.988,
        "VariableID": 45641,
        "VariableCustomAction": 0,
        "VariableAction": 0,
        "VariableIsBinary": false,
        "VariableProfile": "",
        "VariableValue": {
            "ValueArray": [],
            "ValueType": 1,
            "ValueIndex": {
                "IndexStr": "",
                "IndexInt": 0,
                "IndexType": 0
            },
            "ValueBoolean": false,
            "ValueFloat": 0,
            "ValueString": "",
            "ValueVariant": null,
            "ValueInteger": 100
        }
    },
    "id": "Null",
    "jsonrpc": "2.0"
}

Probiert mal eher die Methode IPS_GetValueFormatted :wink:

paresy

{
    "id": "Null",
    "error": {
        "message": "Method IPS_GetValueFormatted not found",
        "code": "-32601"
    },
    "jsonrpc": "2.0"
}

GetValueFormatted muss es natürlich heißen :slight_smile:

paresy

Ich bekomme weiterhin leider ein „Not Found“ in dem Java Gewirr von OpenRemote … Per Postman geht alles.

Habe ich vllt grundsätzlich etwas vergessen in der Konfiguration?

EDIT: So der Fehler ist weg … jetzt bekomm ich nur die Meldung

ERROR [HTTP-Thread-6]: Requested sensor id ‚28‘ was not found. Defaulting to ‚N/A‘

Ich habe in IPS eine Variable Typ Integer mit neuem Profil Integer_ angelegt … Min/Max 0/100 Schrittweite 1
diese auf 20 gesetzt

Bei der Abfrage kommt jetzt das…

Hi,
Wenn ich die JSON Schnittstelle im Webfront Konfigurator aktiviere und kein Usernamen und Passwort eintrage, so klappt der Openremote Zugriff.
Sobald ich ein Username und ein Passwort im Konfigurator eintrage und es somit fordere zeigt mir OpenRemote im Logger:

INFO 2013-08-20 09:06:12,424 (HTTP): received message: {„id“:„Null“,„error“:{„message“:„Invalid Username/Password for JSON-RPC!“,„code“:"-32603"},„jsonrpc“:„2.0“}

Ich habe schon mindestens 6 verschiedene Usernamen und Passwörter eingetragen und es funktioniert mit keinem.
Hinweis auf ein Bug in IPS?