IFTTT - Schalten eines smarten Gerätes bei Erzeugung eines Tickets


In diesem Tutorial wird am Beispiel des IoT-Anbieters IFTTT beschrieben, welche Rolle todo4teams im Internet der Dinge spielen kann. Andere IoT-Provider können analog in die Geschäftsprozesse von todo4teams eingebunden werden. Voraussetzung ist eine Registrierung bei dem jeweiligen Anbieter und der Erwerb eines geeigneten Gerätes. In diesem Beispiel wird eine schaltbare Steckdose (Smart-Plug) benutzt. Vorussetzung ist, dass das entprechende Gerät zuvor bei  IFTTT registriert wird. In unserem Beispiel wird in todo4teams aus einem Skript heraus einen Aufruf auslöst, der ein damit verknüpftes Ereignis auslöst. Konkret wird in diesem Beispiel bei Erzeugung eines Tickets über eine eintreffende E-Mail eine smarte Steckdose angeschaltet.

1. Schritt: Das todo4teams-Skript um das Ereignis auszulösen

Das Skript und der Schlüssel um auf das Internet der Dinge zuzugreifen werden in zwei Servereigenschaften abgelegt. Wir nennen diese Servereigenschaften in unserem Beispiel IFTTT für das Skript und IFTTT_KEY für den zugehörigen Schlüssel.

In der Servereigenschaft IFTT wird die Funktion abgelegt, mit deren Hilfe man das Ereignis auslösen kann. Als Parameter wird der Funktion der Name des auszulösenden "Webhooks" übergeben:

function ifttt( hookname ){
 var iftttkey = helper.getServerPropertyByName("IFTTT_KEY");    
 var StringArray = Java.type("java.lang.String[]");
 var JsonType = Java.type("net.sf.json.JSONObject");
 var ClientConfig = Java.type("org.glassfish.jersey.client.ClientConfig");
 var ClientBuilder = Java.type("javax.ws.rs.client.ClientBuilder");
 var Entity = Java.type("javax.ws.rs.client.Entity");
 var UriBuilder = Java.type("javax.ws.rs.core.UriBuilder");
 var config = new ClientConfig();
 var client = ClientBuilder.newClient(config);
 var target = client.target(UriBuilder.fromUri("https://maker.ifttt.com/trigger/"+hookname+"/with/key/"+iftttkey).build());
 var json = new JsonType();
 json.put("Start", "Start");
 var payload = json.toString();
 var accept = new StringArray(1);
 accept[0]= new java.lang.String("application/json");
 var response = target.request(accept).put(Entity.json(payload));
}

2. Schritt: Auslösen des jeweiligen Ereignisses im Internet der Dinge

Mit den obigen Vorbereitungen kann in der serverseitig ausgeführten Skripten nun das jeweilige Ereignis wie folgt ausgelöst werden:

eval(helper.getServerPropertyByName("IFTTT"));    
ifttt("NeuesTicket");
     

Unterseiten