Durch die Nutzung unserer Website stimmen Sie der Verwendung von Cookies zu, die timesaver nutzt zur Messung seiner eigenen Werbeaktivitäten und - wenn Sie wünschen - sich automatisch einzuloggen/eingeloggt zu bleiben.
Weitere Informationen / Richtlinien
open concept Newsletter Nr. 7 / 2016



Die Grösse des Internets verdoppelt sich alle 5,32 Jahre. Angetrieben wird dieses Wachstum durch ein Internet der Dinge, welches nicht mehr ausschliesslich Menschen, sondern immer mehr Dinge miteinander verbindet. Nach Schätzungen von Experten des IEEE (Institute of Electrical and Electronics Engineers) wird das Internet bis 2020 rund 100 Mrd. Dinge miteinander verbinden.

Dazu muss allerdings eine umfangreiche Softwareinfrastruktur im Netz und auf Hintergrundservern die Dinge verwalten und mit Dienstleistungen unterstützen. Ein solcher Dienst ist IFTTT. Die App wurde 2010 von Linden Tibbets ins Leben gerufen und erhielt 2015 den Jurypreis der Global Mobile Awards für die beste mobile App (Best Overall Mobile App). IFTTT verbindet Geräte und Anwendungen systemübergreifend, z.B. Ihren E-Mail-Dienst mit Ihrer Nachttischlampe. Einzige Voraussetzung: Internetanbindung.

Wir haben IFTTT an unserer mobilen Zeiterfassungssoftware «timesaver» erfolgreich getestet. Das automatische Ein- und Ausstempeln mit dem Mobiltelefon an einer beliebig wählbaren geographischen Position funktionierte einwandfrei und mit relativ geringem Aufwand. Wie das funktioniert, können Sie im dritten Abschnitt «Zeiterfassung mit IFTTT» nachlesen.

Ich wünsche Ihnen erfolgreiches Zeitwirtschaften.

Ihr Stefan Huggenberger
Themenübersicht:
IFTTT und das Internet der Dinge
IFTTT und das Internet der Dinge
 
IFTTT ist ein Akronym für «If This Then That» und basiert auf der sog. ereignisgesteuerten Programmierung. Es werden also vordergründig nicht Geräte, sondern Ereignisse und Aktionen miteinander verknüpft. Die möglichen Anwendungen schiessen dadurch ins Unendliche.

Abbildung 1: Screenshot der IFTTT Website www.ifttt.com

Die Architektur von IFTTT baut auf sogenannten Kanälen (Channels) auf. In einem Kanal gibt es Auslöser (Trigger) und Aktionen (Actions). Ein Auslöser und eine Aktion bilden zusammen eine Minianwendung (Applet). Der Auslöser bestimmt, unter welcher Bedingung eine Aktion durchgeführt wird. Das Applet definiert den gesamten Ablauf, der in Gang gesetzt wird, sobald die Bedingung erfüllt ist, also das IF THIS THEN THAT. Es gibt aktuell 376 Kanäle in 43 Kategorien.
 
Vor dem Update vom November 2016 hiess es statt «Applet» noch «Recipe» (Rezept). Lassen Sie sich also nicht verwirren, wenn in älteren Applets noch der Begriff «Recipe» Verwendung findet. Rezepte erlaubten nur die Verbindung genau eines Ereignisses mit genau einer Aktion. Applets erlauben dagegen die Erstellung komplexerer Anwendungen der Art: IF THIS THEN THAT, THAT and THAT. Ein Ereignis kann mehrere Aktionen auslösen. Dadurch wird die Menge möglicher Anwendungen noch einmal erweitert. Ein Wehrmutstropfen bleibt: Die Erstellung von Applets steht nur Bezahlkunden, sog. Service providers, offen, welche einen eigenen Kanal betreiben.
 

Der «Space Channel» der NASA

Den Alltagsanwender stellt IFTTT vor keine grossen Hürden. In wenigen Minuten lässt es sich einrichten, dass die NASA jeden Tag ein Bild an die persönliche E-Mail-Adresse schickt. Dazu ist nur eine Anmeldung mit gültiger E-Mail-Adresse nötig, um ein kostenloses Konto zu eröffnen. Im «Space Channel» klickt man dann auf das entsprechende Rezept «Get a beautiful photo from NASA delivered to your email every day» und bestätigt mit «Add».
 
Die Macher von IFTTT erwarten das grösste Wachstum allerdings im Bereich der Geschäftsanwendungen. Unternehmen wie der deutsche Automobilhersteller BMW oder der Schweizer Computerzubehör-Hersteller Logitech setzten als erste europäische Unternehmen auf IFTTT. Für den «Logitech POP Home Switch», einen physischen, kabellosen Schalter, stehen sechs Aktionen zur Verfügung, z.B. «Press Pop to automatically send an email». Der Pop-Schalter wird schon seit längerem in den USA verkauft und kam am 26. Oktober 2016 erstmals in Deutschland und Frankreich in den Handel.

Abbildung 2: Applets im Logitech POP Kanal

Meet the Maker

Seit Juni 2015 gibt es einen Kanal für Softwareentwickler, den sogenannten «Maker». Der Maker ist das hauseigene Entwicklerwerkzeug von IFTTT, mit dem sich Rezepte erstellen lassen. Daneben gibt es auch Entwicklerwerkzeuge anderer Unternehmen, die mit IFTTT kompatibel bleiben wollen.

Abbildung 3: Der Maker-Kanal in IFTTT

Mit dem Maker lassen sich Rezepte mit beliebigen Geräten oder Anwendungen verbinden, vorausgesetzt diese können WebHooks senden oder empfangen. WebHooks signalisieren einer Server-Software, dass ein bestimmtes Ereignis eingetreten ist und können eine Reaktion auf das Ereignis auslösen. Der Datenverkehr wird über Programmierschnittstellen (API) abgewickelt. Deshalb braucht man einen API-Key, einen individuellen, elektronischen Schlüssel, den man erhält, sobald man den Maker aktiviert hat. Um Missbrauch zu verhindern sollte man diesen unbedingt geheim halten. API-Schlüssel werden von IFTTT ausschliesslich mit Ende-zu-Ende-Verschlüsselung (englisch „end-to-end encryption“) übermittelt.
 
IFTTT schickt eine Code-Zeile (POST oder GET-Message) zusammen mit dem API-Schlüssel an eine vom Anwender definierte URL bzw. Webadresse. Optional können drei Werte mittels einer JSON-Codezeile (JavaScript Object Notation) übermittelt werden. Auch die Verwendung von CURL ist möglich. Weil Aktionen im Maker als WebHooks übermittelt werden, ist ein Cloudservice bzw. eine statische IP-Adresse zur eindeutigen Identifizierung notwendig. Heimnetzwerke erhalten dynamische IP-Adressen und eignen sich deshalb nicht.

Zeiterfassung mit IFTTT

openconcept AG hat den Maker von IFTTT an seiner Zeiterfassungssoftware «timesaver» erfolgreich getestet. Die Positionsermittlung während einer Zeitbuchung / -mutation war mittels IFTTT problemlos möglich.

Als Auslöser dient der Ortungsdienst iOS Location. Ortungsdienste bestimmen mithilfe von Informationen aus den Mobilfunknetzen, WLAN-Netzen und dem GPS-Netz den Standort eines Geräts.
iOS Location ist kompatibel mit den Betriebssystemen Apple OS, Android und Windows.

Sobald sich ein mobiles Gerät an der vorgängig definierten geographischen Position befindet, wird eine Meldung an den Maker / IFTTT ausgelöst. Der Maker sendet daraufhin an timesaver.ch einen WebHook. Die timesaver-Software interpretiert den Webhook und stempelt den Mitarbeiter ein oder aus. In der Zeiterfassung wird also ein Eintrag erzeugt, nämlich entweder der Beginn oder das Ende der Arbeitszeit. Die Anwendung war genau genug, um automatisiertes Ein- und Ausstempeln zum Beispiel in einem bestimmten Gebäude zu ermöglichen.


Wie Sie selbst in IFTTT ein Applet für timesaver konfigurieren können, wird im Folgenden erläutert. Ziel ist das positionsabhängige, automatische Ein- und Ausstempeln mit dem Mobiltelefon. Sie benötigen also ein Mobiltelefon mit WLAN, in dem Sie die folgenden Konfigurationen vornehmen.
1

Es wird für jeden Benutzer bzw. Mitarbeiter ein individueller API-Schlüssel benötigt. Von unseren Kunden brauchen wir dazu eine Liste mit den Namen aller Mitarbeiter, für die der IFTTT-Service eingerichtet werden soll. Sie erhalten die API-Schlüssel von uns auf Anfrage.
2

Richten Sie sich auf ifttt.com ein Konto ein. Dafür brauchen Sie nur eine gültige E-Mail-Adresse und ein Passwort.
3

Aktivieren Sie die Kanäle «iOS Location» und «Maker» in ihrem Konto. Dazu wählen Sie einfach den jeweiligen Kanal aus und bestätigen mit «Connect».
 
(Zur Kontrolle: Die Kanäle, mit denen Sie verbunden sind, lassen sich anschliessend unter dem Menüpunkt «Activity» einsehen.)
4
 
Erstellen Sie eine neue Minianwendung. Dazu sind sechs Schritte nötig. Wählen Sie im Menü «New Applet» aus. Es erscheint eine neue Seite mit dem Text «if +this then that». Klicken Sie auf das hervorgehobene «+this».


Auf der folgenden Seite «Choose a service» wählen Sie den Kanal «iOS Location» als Ihren «trigger service» aus (Step 1 of 6). Benutzen Sie die Suchleiste, um nach «iOS Location» zu suchen, und wählen Sie den Service «iOS Location» aus.
 
(Zur Kontrolle: Die Übersicht über Ihre Anwendungen, «My Applets», erreichen Sie über das Text-Symbol rechts neben dem Auge und der Lupe.)
5
 
Es erscheint eine neue Seite "Choose trigger" (Step 2 of 6). Konfigurieren Sie jetzt den «trigger », also die Bedingung. Zu beachten ist, dass der «trigger service» iOS Location nicht nur einen, sondern gleich drei Auslöser (trigger) unterstützt, von denen aber nur einer gewählt werden kann:
 
  1. You enter an area (in ein Gebiet hinein kommen)
  2. You exit an area (aus einem Gebiet heraus gehen)
  3. You enter or exit an area (in ein Gebiet hinein kommen oder aus einem Gebiet heraus gehen)

Wir wählen «You enter an area».

Empfehlung: Wir empfehlen nicht «enter or exit» zu verwenden. Denn dadurch könnte sich der gesamte workflow umkehren: aus Ein- wird Ausstempeln und umgekehrt.

Möglicherweise werden Sie aus Datenschutzgründen gefragt, ob der Browser auf Ihren Standort zugreifen darf. Bestätigen Sie. Auch IFTTT fragt, ob es auf Ihren Standort zugreifen darf. Bestätigen Sie wieder.
 
Die Positionierung erfolgt in Google Maps. Eventuell müssen Sie ihre Adresse eingeben. Bringen Sie das bekannte Google-Maps-Standortsymbol auf die gewünschte Position und wählen Sie den Radius der Positionsbestimmung. Der minimal Radius beträgt cirka 20 Meter.

Schliessen Sie mit «Create Trigger» ab.
6
 

Es erscheint wieder der Text «if this then +that». Nur dass diesmal die Aktion «that» blau hervorgehoben ist. «this» wurde durch das iOS Location-Symbol ersetzt. Klicken Sie auf «+that». Es erscheint eine neue Seite «Choose action service», der dritte Schritt auf dem Weg zu unserem Applet (step 3 of 6). Benutzen Sie die Suchleiste, um nach dem «Maker» zu suchen und wählen Sie diesen aus.
7

Auf der nächsten Seite «Choose action» (step 4 of 6) erscheint eine Aktion: «Make a web request». Der Maker bietet also nur eine einzige Aktion zur Auswahl. Klicken Sie auf das entsprechende Feld.
8
 

Auf der nächsten Seite «Complete action fields» (step 5 of 6) füllen Sie das Formular aus. Die Felder «URL», «Method» und «Content Type» müssen zwingend ausgefüllt werden.
 
URL: Im Aktionsfeld «URL» wird der WebHook eingegeben, welchen der Maker an timesaver.ch sendet.
 
Das Format lautet allgemein: Zieladresse / app / ifttt / API-Schlüssel / Befehl
 
Oder beispielsweise:
 
https://timesaver.ch/app/ifttt/111-33-Konrad-E-fg38/startWorktime
 
In den beiden anderen Eingabefeldern geben wir ein:
 
Method: GET
Content Type: application/json

Bestätigen Sie mit «Create action».
9

Auf der letzten Seite «Review and Finish» (step 6 of 6) sehen Sie eine Beschreibung der Anwendung.
Das Applet erhält von IFTTT den Titel: «If You enter an area, then make a web request». Es kann mit dem virtuellen On/Off-Schalter ganz einfach an- und ausgeschaltet werden.
 
Mit Klick auf «Finish»
speichern Sie das neue Applet.
 
Falls Sie mehrere identische Applets erstellt haben, lassen sich diese nur anhand der Applet ID unterscheiden. Jedem Applet wird also eine individuelle ID zugeordnet, die sich im Ordner «My applets» einsehen lässt, wenn Sie auf ein Applet klicken.
Programmierung von WebHooks
 
Der WebHook nimmt in jedem Applet, das mit dem Maker erstellt wird, eine zentrale Stellung ein. Im folgenden zeigen wir Ihnen die möglichen Befehle, die Sie verwenden können. Diese wurden von uns vorgängig auf unserer Server-Software timesaver.ch programmiert.

Wir stellen drei Befehle zur Verfügung: startWorktime, stopWorktime, startStopWorktime.
 
  1. startWorktime : Beginn der Arbeitszeit.
  2. stopWorktime : Ende der Arbeitszeit
  3. startStopWorktime : Beginn oder Ende der Arbeitszeit, abhängig vom zuletzt gespeicherten Wert.
 
Hinweis: Beachten Sie bei der Eingabe, dass die Befehlszeilen case sensitiv sind. Klein- und Grossschreibung wird also unterschieden.
 
Hinweis: Wir empfehlen nicht startStopWorktime zu verwenden. Denn wenn einmal zufällig vergessen wurde auszustempeln und anschliessend automatisch eingestempelt wird, kehrt sich der gesamte workflow um: aus Ein- wird Ausstempeln und umgekehrt.

Optionale Befehlsergänzungen
 
Jede Befehlszeile kann optional um einen Parameter ergänzt werden, der mit «?type=» anfängt und mit einem Wert endet. Der Wert entspricht einer beliebigen An-/Abwesenheitsart.
 
Beispiel: ?type=Anwesend
 
Der WebHook könnte also bspw. so lauten:
 
https://timesaver.ch/app/ifttt/111-33-Konrad-E-fg38/startWorktime?type=Anwesend
 
Da An-/Abwesenheitsarten selbst definiert werden können, sind hier die Möglichkeiten unbegrenzt und hängen letztendlich vom Benutzer ab. Eine denkbare Anwendung wäre: Ein Unternehmer bzw. Mandant verfügt über drei Lagerhäuser, deren Benutzung er kontrollieren will. Er erstellt in timesaver drei Anwesenheitsarten: Lager1, Lager2, Lager3. Der Unternehmer konfiguriert für seinen Lageristen Konrad sechs Applets, welche das Ein- und Ausstempeln regeln.

Das Einstempeln wird mit den folgenden drei WebHooks und dem Befehl startWorktime programmiert:
 
  1. https://timesaver.ch/app/ifttt/1-33-Konrad-E-fg38/startWorktime?type=Lager1
  2. https://timesaver.ch/app/ifttt/1-33-Konrad-E-fg38/startWorktime?type=Lager2
  3. https://timesaver.ch/app/ifttt/1-33-Konrad-E-fg38/startWorktime?type=Lager3

Das Ausstempeln wird mit den folgenden drei WebHooks und dem Befehl stopWorktime programmiert:
  1. https://timesaver.ch/app/ifttt/1-33-Konrad-E-fg38/stopWorktime?type=Lager1
  2. https://timesaver.ch/app/ifttt/1-33-Konrad-E-fg38/stopWorktime?type=Lager2
  3. https://timesaver.ch/app/ifttt/1-33-Konrad-E-fg38/stopWorktime?type=Lager3

Für jedes Lager werden also zwei Applets benötigt.
Verzögerungsfreies Ein- und Ausstempeln mit «occurredAt»
 
Der Parameter «occurredAt» ermöglicht zeitgenaues Ein- und Ausstempeln. Wird dieser Parameter angefügt, nimmt timesaver.ch den Zeitpunkt, zu dem das Ereignis tatsächlich stattgefunden hat, zur Grundlage. Dies hilft Ungenauigkeiten und Verzögerungen zu vermeiden, die dadurch entstehen, dass die Zeit erst am Endpunkt, auf timesaver.ch gemessen wird.
 
Die WebHooks für Konrad lauten dann:
 
…/1-33-Konrad-E-fg38/startWorktime?type=Lager1&occurredAt={{OccurredAt}}
…/1-33-Konrad-E-fg38/startWorktime?type=Lager2&occurredAt={{OccurredAt}}
…/1-33-Konrad-E-fg38/startWorktime?type=Lager3&occurredAt={{OccurredAt}}
…/1-33-Konrad-E-fg38/stopWorktime?type=Lager1&occurredAt={{OccurredAt}}
…/1-33-Konrad-E-fg38/stopWorktime?type=Lager2&occurredAt={{OccurredAt}}
…/1-33-Konrad-E-fg38/stopWorktime?type=Lager3&occurredAt={{OccurredAt}}
 
Anmerkung: {{OccurredAt}} ist ein Platzhalter, der automatisch von der IFTTT-App mit Datum und Uhrzeit, zu welchen das Ereignis aufgetreten ist, gefüllt wird.

Wir nehmen uns Zeit für Sie

 
Bei openconcept steht der Kunde im Mittelpunkt. Daher sind kostenloser Support (Telefon und E-Mail) und das Eingehen auf Kundenwünsche eine Selbstverständlichkeit. Und weil wir überzeugt sind, dass unsere Unternehmenssoftware auch für Sie das Beste ist, können Sie uns in einer kostenlosen Testphase prüfen.
 
Kontaktieren Sie uns für ein individuelles Angebot oder eine unverbindliche Einführung in timesaver.ch

 
Jetzt kontaktieren
Freundliche Grüsse

Ihr Stefan Huggenberger