LaMetric IoT Device ausprobiert
In einem kleinen Projekt konnte ich unlängst mit der LaMetric erste Erfahrungen mit einem aus einer Kickstarter Kampagne erstandenen IoT Device machen. Es ist faszinierend, dass man dank der durchdachten Konstruktion und der guten Dokumentation bereits nach wenigen Klicks seine erste App erstellt hat. Mit etwas Erfahrung mit einer Programmiersprache und Verständnis der API bindet man das Gerät sehr leicht an jedes beliebige Service an.
LaMetric IoT Device ausprobiert
Die LaMetric Time Box ist eine sehr vielseitig einsetzbares Gerät mit Audio-Boxen, einem Pixel Display und Wifi. Man kann es als Radio oder Uhr verwenden, oder diese Funktionalität mit eigenen Apps quasi universell einsetzen. Für 200 € recht wenig sollte man meinen. Der Preis wird aber durch die einfache Verwendung als IoT Device auch für Anfänger gerechtfertigt. Ich kann das bestätigen, hatte ich mir in weniger als 30 Minuten meine erste App zusammengeklickt. Diese ist mittlerweile auch schon online verfügbar und wurde schon einige Male heruntergeladen und bewertet.
Praxisbeispiel
Ich hätte von dem LaMetric Gerät wohl nie etwas gehört hätte mir nicht ein Kollege diese Box gegeben mit der Bitte diese über eine App mit einem Magento Shop zu verbinden. Die Aufgabe war einfach: eingehende Bestellungen sollen von der Box registriert werden. Ein Signalton wird ausgegeben und das Display zeigt sowohl aktuelle Anzahl der Tagesbestellungen + Gesamtumsatz an. Eine Magento App gab es noch gar nicht.
App erstellen
Startpunkt jeder Entwicklung ist die Dokumentation der Schnittstelle und der Tutorials auf Webseite. Dort angemeldet kann man sich eine Push oder Pull App direkt im Browser zusammenstellen. Es gibt dabei folgende Unterschiede:
- Push
Status-Aktualisierungen werden von einem externen System (in meinem Fall Magento) als JSON an das LaMetric Service geschickt. Dieses sendet die Daten dann an die Box, die über eine eindeutige ID registriert ist. - Pull
Für diese Möglichkeit benötigt man keine eindeutige ID. Die Box fragt in einem festgelegten Intervall die Daten ab und aktualisiert die Anzeige falls notwendig. - API
es gibt auch noch die dritte Möglichkeit. Man kann das IoT Device auch über das lokale Netzwerk ansprechen. Dabei gibt es noch um einiges mehr Möglichkeiten und man braucht das LaMetric Online Service nicht nutzen (zum Beispiel für sensible Daten).
Meine App besteht aus 2 Frames die ich im Browser definiert habe. Ein Frame für die Anzahl an Bestellungen und ein zweiter für den Umsatz. Sofern die App aktiv ist wechseln sich diese beiden Anzeigen periodisch ab.
Im Browser habe ich für diese App beiden Frames definiert. Neben der Reihenfolge wird auch noch ein Icon festgelegt (Icons kann man vorgefertigte verwenden oder ein eigenes erstellen). Die App ist somit nur eine Hülle die mit Daten gefüllt werden will. Wir sind damit fertig.
Daten aktualisieren
Wie kommen die Daten nun auf das Gerät? Man zahlt nicht 200€ für ein IoT Device, wenn das nicht super einfach wäre! Mit folgendem kleinen PHP Skript pushen wir die Daten in LaMetric System, welches das Device aktualisiert:
<?php $url = "https://developer.lametric.com/api/v1/dev/widget/update/com.lametric.8c639b641b594ac5787d8faba4567205/1"; //create testdata json $test = array( "frames" => array( array("text" => "7", "icon" => "i2570", "index" => 0), array("text" => "2814,90", "icon" => "a1835", "index" => 1), ), ); $json = json_encode($test); //send to device with curl $process = curl_init($url); curl_setopt($process, CURLOPT_HTTPHEADER, array( 'X-Access-Token: DEVICE_ID', 'Accept: application/json', 'Cache-Control: no-cache', )); curl_setopt($process, CURLOPT_TIMEOUT, 30); curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($process, CURLOPT_SSL_VERIFYPEER, TRUE); curl_setopt($process, CURLOPT_USERAGENT, "magento"); curl_setopt($process, CURLOPT_POSTFIELDS, $json); curl_setopt($process, CURLINFO_HEADER_OUT, true); $return = curl_exec($process); curl_close($process);
Das Skript besteht aus zwei Teilen. Im ersten wird ein JSON erstellt mit dem frames Array, dass Daten für beide in der App definierten Frames enthält. Die Daten bestehen aus Text (Anzahl Bestellungen bzw. Gesamtumsatz), Icon (eine eindeutige Icon Nummer) und dem Index (Durchnummerierung der Frames). Im zweiten Teil senden wir dieses JSON mit einem Curl. Die Anzeige aktualisiert sich daraufhin in Bruchteilen einer Sekunde!
Der Relevante Teil beim Curl ist das X-Access-Token. Dort gibt man die DEVICE_ID seines eigenen Geräts an. Damit ist festgelegt, dass die Daten nur an das eigene Gerät geschickt werden. Diese ID legt man im Skript fest. Ich habe das Skript in ein Magento Modul verpackt, dass das JSON dynamisch mit Daten füllt. Über das Backend kann man seine eigene DEVICE_ID eintragen.
Fazit
Mein erster Kontakt mit einem nicht Raspberry Pi Device war sehr erfolgreich. Innerhalb weniger Minuten stand die erste LaMetric Magento App, nur 2 Stunden später war die volle Funktion getestet und im Livebetrieb. In den Wochen die das Gerät nun schon im Betrieb war hat es sich mehr als bewährt. Zugegeben, die Funktionen dieser „Uhr mit Lautsprechern“ ist recht eingeschränkt. Ich bin gespannt auf weitere tolle IoT Geräte.
Was denkt ihr über die LaMetric Time? Hättet ihr dafür Bedarf?