Amazon Dash/IoT Button: Demo

Wir haben eine Demo-Anwendung für den Amazon Dash bzw. IoT-Button erstellt: Je nach Tastenklick wird eine Nachricht an unseren Slack-Channel gesendet. In diesem Blogbeitrag werde ich Euch zeigen (in Tutorial-Form), wie man diese Anwendung erstellt, vom Paket auspacken bis zur fertigen Anwendung. In diesem Demo verwenden wir die "AWS IoT" und "Lambda" Services von AWS (Amazon Web Services).

In diesem Blogbeitrag findest du alles wissenswertes über den Amazon IoT bzw. Dash-Button. Nachdem man die Grundlagen weiß, starten wir gleich mit der ersten Anwendung. Sollte noch kein AWS-Account erstellt wurden sein, kann man sich hier registrieren.

1) Slack vorbereiten

Damit Nachrichten an Slack gesendet werden können, müssen wir eine Slack-App registrieren. Diese App nennt sich „Incoming WebHooks“, und funktioniert wie ein Webserver, der einen Request entgegen nimmt, diesen auswertet und anschließend die Befehle des Requests ausführt. In unserem Fall nimmt dieser Webhook eine Nachricht an und sendet diese dann im entsprechenden Slack-Channel. Dazu gehen Sie zu den Slack-Apps und suchen nach „Incoming WebHooks“:

  • Klicken Sie auf „Add Configuration
  • Wählen Sie den gewünschten Slack-Channel aus, zu welchem die Nachricht später gesendet werden soll
  • Und klicken Sie auf „Add incoming Webhooks Configuration“
  • Notieren Sie die angezeigte „Webhook URL“

Eine genaue Dokumentation zu „Incoming Webhooks“ findet man hier. Diese App dient wie eine Bridge, welche Requests von außerhalb entgegen nimmt und anschließend in Slack übertragen werden.

Amazon Dash/IoT Button: Demo

2) Lambda-Funktion erstellen

Nachdem anmelden auf der Amazon AWS-Seite wechseln wir zu den Lambda Funktionen, achten Sie darauf welche Region ausgewählt ist (ich wähle hier (recht oben im Menü) Frankfurt). Folgen Sie hier nun folgenden Schritten:

  • Klicken Sie auf „Create function“
  • Wählen Sie „Author from scratch“
  • Name: Geben Sie einen Namen ein, zB. „iot_button_test“
  • Runtime: Als Runtime können Sie die Standard-Einstellung lassen (Node.js 6.10)
  • Role: Create new role from templates(s)
  • Role name:  Geben Sie einen beliebigen Namen ein, zB. „iot_lambda_role“
  • Policy templates: Wählen Sie hier „AWS IoT Button permissions“ aus
  • Schritt mittels „Create function“ abschließen
Amazon Dash/IoT Button: Demo

3) Lambda-Funktion konfigurieren

In diesem Schritt wird nun der richtige auslöser für die Lambda-Funktion konfiguriert:

  • Unter „Add triggers“ wählen Sie „AWS IoT“ aus
  • IoT type: Wählen Sie „IoT button“
  • Device Serial Number: Die Seriennummer finden Sie auf der Rückseite des Buttons (startet meistens mit „G03″)
  • Aktiviere „Enable trigger“
  • Klicke auf den Button „Generate certificate and keys„. 
  • Die Daten müssen nun gespeichert werden:
    • Your certificate PEM
    • Your private key
    • Endpoint subdomain
    • Endpoint region
  • Nachdem die Daten notiert wurden, klicken Sie auf „Add

4) Lambda-Code schreiben

Nun geht es darum den Code der Funktion zu schreiben. Klicken Sie oben im Designer auf die Lambda-Funktion („iot_button_test“). Danach können Sie unten den folgenden Code einfügen:

//libraries einbindenvar https = require('https');var util = require('util'); exports.handler = function(event, context) {   //Nachricht Daten -> channel, username uws.    var postData = {        "channel": "#varioous",        "username": "varioous_bot",        "icon_emoji": ":aws:"    };     //nachricht    postData.attachments = [        {            "text": "Wie wäre es mit einer Kaffeepause?"        }    ];     //hook konfiguration -> hier url eintragen    var options = {        method: 'POST',        hostname: 'hooks.slack.com',        port: 443,        path: '/services/XXXXXXXXXX'    };     //request absenden    var req = https.request(options, function(res) {      res.setEncoding('utf8');      res.on('data', function (chunk) {        context.done(null);      });    });         req.on('error', function(e) {      console.log('problem with request: ' + e.message);    });         req.write(util.format("%j", postData));    req.end();};

Hierbei müssen Sie aufpassen, dass Sie in Zeile 8-10 die richtigen Daten angeben, und in Zeile 25 die richtige URL für den Webhook angeben.

Klicken Sie anschließend nur noch auf  „Save“.

Amazon Dash/IoT Button: Demo

5) Lambda + Slack Integration testen

Nun können wir die Funktion bereits testen: Wenn wir nun die Lambda Funktion aufrufen, muss die Nachricht bereits an den Slack-Channel gesendet werden. Dazu bei der Lambda-Funktion einfach ein Test-Event erstellen, dieses kann ein leeres json („{}“) sein. Klickt man nun auf „Test“ wird die Nachricht an den Slack Channel gesendet.

6) IoT-Button konfigurieren

Nun muss noch die Konfiguration (aus Schritt 2) auf den Button gespielt werden:

  • Halten Sie die Taste am Button für 6 Sekunden gedrückt, damit wird der Button in den Wartungsmodus versetzt.
  • Der Button beginnt nun blau zu blinken
  • Verbinden Sie sich mit dem nun verfügbaren WLAN „Button ConfigureMe – ECE“
  • Öffnen Sie im Browser die Seite http://192.168.0.1
  • Wi-FI Configuration: Oben geben Sie die Daten Ihres WLAN’s ein (SSID und Password)
  • AWS Iot Configuration: Geben Sie die zuvor notierten Daten ein (Zertifikat, Private-Key, Subdomain, Region).
  • Klicken Sie auf Configure

7) Fertig und Testen

Damit ist die Konfiguration und das Demo abgeschlossen. Wenn Sie alle Schritte richtig gemacht haben, erhalten Sie nach einem Tastendruck auf den Button eine Slack-Nachricht. Sollte der Button nach einem Tastendruck rot und nicht grün leuchten, haben Sie vermutlich in Schritt 6 einen Fehler gemacht, heißt der Button kann nicht ordentlich mit Amazon kommunizieren. 

In der Amazon AWS-Console finden Sie unter dem Punkt „AWS IoT“ noch weitere nützliche Informationen zum Button. Unter „Manage -> Things“ muss der Button nun ersichtlich sein. Mittels  Monitor sehen Sie eine Übersicht der erfolgreichen Verbindung. Unter Test können Sie sich zu einem Topic registrieren und sehen somit welche Daten vom Button gesendet werden, bzw. ob diese Ordnungsgemäß bei Amazon ankommen.

Amazon Dash/IoT Button: Demo

Da Amazon immer wieder das Design ändert oder Funktionen wo anders platziert, kann es sein dass diese Anleitung (Stand: 01.02.2018) nicht mehr zu 100% passt, der Ablauf sollte allerdings der ungefähr der gleiche bleiben.

Quellen / Links

Wir entwickeln digitale Lösungen mit Leidenschaft

Warum wir das tun? Weil die Verwirklichung Ihrer Vision unser größter Anspruch und die schönste Anerkennung ist. Deshalb nehmen wir uns gerne ausreichend Zeit für die Realisierung Ihres digitalen Projekts.

Kontaktieren Sie uns, wir sind gerne für Ihre Fragen da:

Passend zu diesem Thema:

Das war das TYPO3camp München 2019

Das war das TYPO3camp München 2019

Vom 13. – 15. September fand das TYPO3camp 2019 in München statt und auch varioous war vor Ort um sich mit anderen TYPO3-Entwicklern und Unternehmen z…

Richter Pharma Web4Partners

Richter Pharma Web4Partners

Um den Austausch von Marketing-Material und Bilder sowie die Verbreitung von Informationen für Vertriebspartner von Richter Pharma einfacher und schne…

TYPO3 Chatbot

TYPO3 Chatbot

Chatbots ermöglichen es, die Betreuung von Website-Besuchern im Kundenservice einfach und effizient zu gestalten. Der Einsatz dieser virtuellen Helfer…