Drucken

OpenHAB bietet eine sehr einfache Methode Items abzufragen oder deren Werten zu setzen - das REST-Interface. Dies ist für allem für Sensoren/Aktoren wichtig, für die es keine Bindings gibt (z.B. Arduino-Sensoren/-Aktoren). Aber auch beim Test von OpenHAB ist diese Schnittstelle wichtig.

Dabei handelt es sich um eine HTTP-Schnittstelle, für deren URL's es Vorschriften gibt. Die Möglichkeiten von REST werden im Folgenden näher beschrieben.

OpenHAB Items abfragen

Werte von Items abgefragen:

http://localhost:8080/rest/items/Test_REST_Switch

Das OpenHAB-Item heißt im Beispiel "Test_REST_Switch"

Als Antwort erhält man einen JSON-String

<item>
<type>SwitchItem</type>
<name>Test_REST_Switch</name>
<state>ON</state>
<link>http://localhost:9080/rest/items/Test_REST_Switch</link>
</item>

Diese Antwort kann man im Programm des gekoppelten Gerätes auswerten. Es gibt auch noch die Möglichkeit, nur den Wert zu erhalten:

http://localhost:8080/rest/items/Test_REST_Switch/state

Als Antwort erhält man den Wertestring oder eine Zahl

ON

Statt dem Test_REST_Switch setzt bitte eure eigenen Itemnamen ein. Statt localhost sollte der DNS-Name oder die IP-Adresse eures OpenHAB Servers eingetragen werden. Damit kann man beim Test von OpenHAB die Items und ihre Zustände abfragen.

 

OpenHAB Items setzen

Möchte man die Werte eines Items durch eigene Programme testen, dann kann man dies ebenfalls mit REST vornehmen. Der Wert des Items muß mit POST übertragen werden. Das ist mit einem Programm nicht schwierig, im Browser zum Test aber nicht machbar. Hierzu gibt es eine modifierte REST-Methode mit Parameter-/Wertepaaren:

Ein-/Ausschalten eines Schaltaktors:

http://localhost:9080/CMD?Test_REST_Switch=ON
http://localhost:9080/CMD?Test_REST_Switch=OFF

Setzen einer Fließkommazahl:

http://localhost:9080/CMD?Test_REST_Number=10.2837
http://localhost:9080/CMD?Test_REST_Number=-70.34

Setzen einer Integerzahl:

http://localhost:9080/CMD?Test_REST_Number=36
http://localhost:9080/CMD?Test_REST_Number=-5

Setzen eines Strings:

http://localhost:9080/CMD?Test_REST_String=Andreas
http://localhost:9080/CMD?Test_REST_String=Peter

Sendet man Strings mit Leerzeichen, so müssen diese durch %20 ersetzt werden!

Es kann immer nur ein Item auf einmal gesetzt werden. Meldet ein Sensor fünf Meßwerte, so muß er fünfmal die REST-URL absenden.