Beispiele

In folgendem Beispiel möchten wir ein Licht über die REST API schalten.

Bevor wir beginnen können, müssen zuerst betreffende Vorbereitungen zur Authentifizierung getroffen werden (siehe Punkte "Vorbereitung" sowie "Authentifizierung"). Mit dem dadurch erhaltenen Token können nun alle Anfragen und Befehle gesendet werden.

Zuerst senden wir eine GET Anfrage an "http://[evon Smart Home_IP]/api/instances" und erhalten eine Liste mit allen Instanzen, die aktuell auf dem evon Smart Home System aktiv sind.

{ "statusCode": 200, "statusText": "success", "data": [ { "ID": "SC1_M04.Light1", "ClassName": "SmartCOM.Light.Light", "Name": "Arbeitslicht", Group": "AreaOutdoor }, ... ] }

Da wir ein Licht schalten wollen, wählen wir hier das 'Arbeitslicht' und verwenden den "ClassName": "SmartCOM.Light.Light" um eine GET Anfrage an "http://[evon Smart Home_IP]/api/apps/SmartCOM.Light.Light" zu senden und die verfügbaren Methoden und Eigenschaften zu erhalten.

{ "statusCode": 200, "statusText": "success", "data": { "methods": [ { "parameter": [], "name": "SwitchOn", "type": 0, "derived": false, "tags": [ linkable ], "returnType": "void", "description": "Einschalten", "isStatic": false }, ... ], "properties": [ { "name": "IsOn", "type": "boolean", "remark": "Licht eingeschaltet", "declaration": "2", "derived": true, "parameter": false, "tags": [ linkable ], "isStatic": false }, ... ], "fullName": "SmartCOM.Light.Light", "displayName": "Licht", "autoStart": false } }

Nun senden wir eine POST Anfrage an "http://[evon Smart Home_IP]/api/instances­/SC1_M04.Light1/SwitchOn"
mit folgenden Parametern im Header:

  • instanceId: SC1_M04.Light1
  • action: SwitchOn
  • body: [ ]

Dadurch wir die betreffende Licht Methode aufgerufen und das Licht wird eingeschalten. Wir können den aktuellen Status auch überprüfen, indem wir eine GET Anfrage an "http://[evon Smart Home_IP]/api/instances/SC1_M04.Light1/IsOn" senden. Als Antwort erhalten wir den aktuellen Status, in diesem Fall 'true'.

{ "statusCode": 200, "statusText": "success", "data": true }