Alles klar, danke! Aus Respekt vor der „SOAP Keule“ habe ich auf die Schnelle mal etwas mit der JSON API gespielt.
Siehe da, so Quick’n Dirty mässig lassen sich damit schon mal recht einfach Variablen auslesen sowie Werte setzen.
Falls es interessiert, hier der Weg:
IPS
JSON API im IPS hinzufügen
Funktion testen durch Aufruf im Browser (IPS Webserver horcht auf http://10.10.10.10:82):
http://10.10.10.10:82/jsonrpc.php?{"jsonrpc":"2.0","method":"isAPIReady","params":[],"id":"Null"}
Antwort sollte in etwa so aussehen:
{"jsonrpc":"2.0","result":true,"id":"Null"}
Testvariable anlegen, im Beispiel bool mit id 43146
OpenRemote
Command-Definitionen:
[b]Name: on[/b]
Protocol: HTTP
URL: http://10.10.10.10:82/jsonrpc.php
HTTP Method: POST
HTTP Method: {"jsonrpc":"2.0","method":"SetValue","params":[43146,true],"id":"Null"}
[b]Name: off[/b]
Protocol: HTTP
URL: http://10.10.10.10:82/jsonrpc.php
HTTP Method: POST
HTTP Method: {"jsonrpc":"2.0","method":"SetValue","params":[43146,false],"id":"Null"}
[b]Name: status[/b]
Protocol: HTTP
URL: http://10.10.10.10:82/jsonrpc.php
HTTP Method: POST
HTTP Method: {"jsonrpc":"2.0","method":"GetValue","params":[43146],"id":"Null"}
Polling interval: 2s
JSONPath Expression: $.result
Sensordefinition:
[b]Name: status_sensor[/b]
Command: status
Type: custom
Custom state items
off = false
on = true
Switchdefinition:
[b]Name: on/off[/b]
sensor: status_sensor
command(on): on
command(off): off
PS: Ich habe die OpenRemote-Controller-2.1.0_SNAPSHOT-2013-04-09 Version verwendet, da die aktuelle stable Version 2.0.2 wohl ein Problem beim Verarbeiten von HTTP Requests haben soll. :rolleyes:
Das ganze ist zwar noch nicht wirklich schön und alle 2s auf die Variable pollen ist auf Dauer und für grössere Installationen auch nicht wirklich tauglich. Aber vielleicht gibts ja noch ne cleverere Lösung…