In Erweiterung zum Proof of Concept Blockchain – Internet Of Things wird in diesem Demo gezeigt, wie über einen „digitalen Assistenten“ eine Blockchain-Transaktion ausgelöst wird. Ich verwende dazu mein Amazon Echo Dot Device „Alexa“.
Amazon Echo Dot – „Alexa“
Alexa nimmt dazu „Blino“ zur Hilfe. Der „Blockchain-Interface-Node“ stellt die Schnittstelle zwischen IoT-Devices und Blockchains zur Verfügung.
Alexa schreibt in die Blockchain – Übersicht
Ablauf
- Ein Sprachkommando wie „Alexa, sage Blino, er soll 471234 in die Blockchain schreiben.“ startet den Vorgang.
- Alexa ruft den „Skill“ (=Anwendung) Blino in der Amazon Cloud auf.
- Der Skill ruft das Blino-Webservice auf, welches die entsprechenden Informationen an den Interface-Node sendet, der sie in die Blockchain schreibt. Danach wird die entsprechende Antwort erstellt und an den Skill retourniert.
- Der Skill übergibt die Antwort an Alexa, welche sie dann ausspricht.
Der Multichain-Stream „DeviceLog“, der die von Alexa mittels Blino protokollierten Daten beinhaltet.
Anmerkung: Zum Testen habe ich einen Voice Synthesizer verwendet:
Automatische erzeugtes Sprachkommando für Alexa
Der gesamte Voice Dialog hört sich so an.
Der Skill
Die Konfiguration des Skills mittels Alexa Skills Kit (ASK) besteht im Wesentlichen aus folgenden Schritten:
Alexa Skill Kit: Allgemeine Konfiguration
Die allgemeine Konfiguration beinhaltet den „Invocation Name“, die Bezeichnung mit der Alexa den Skill im System findet, wenn sie mit „Alexa, starte Blino …“ angesprochen wird.
Im nächsten Schritt werden die „Intents“ konfiguriert, das sind die Aktionen, die über Sprachbefehle aufgerufen werden können. Intents können Parameter haben – in diesem Fall einen Parameter „Nummer“.
Alexa Skill Kit: Konfiguration der Intents
Nun werden verschiedene Phrasen („Utterances“) konfiguriert, die alle denselben Intent aufrufen – mit Übergabe des Parameters „Nummer“.
Alexa Skill Kit: Konfiguration der Utterances
Schließlich wird noch der Endpoint eingerichtet, die Serverfunktion, die vom Skill aufgerufen wird und das Ergebnis an Alexa zurückgibt.
Skills verwenden in fast allen Fällen Amazon’s Lambda Funktionen. Im vorliegenden Beispiel habe ich allerdings ein eigenes Webservice verwendet, da ich die Anbindung an den Interface Node bereits aus einem Vorprojekt zur Verfügung hatte.
Der Endpoint
Der Endpoint ist als Webservice implementiert, die Verarbeitung besteht im Wesentlichen aus
- Parsen des Json-Requests und Ermitteln der angeforderten Verarbeitung,
- der eigentlichen Verarbeitung, z.B. Aufruf des Interface Nodes mittels WebSockets
- und dem Aufbauen des Responses, der dann an über den Skill an Alexa retourniert wird
Alexa Skill Kit: Testen des Endpoints
Fazit
Ob das Protokollieren von Daten in einer Blockchain durch einen digitalen Assistenten jetzt enorm viele praktische Anwendungsmöglichkeiten hat, muss natürlich jeder selbst beurteilen 😉
Ich fand es jedenfalls recht interessant, ein wenig in die Welt von Alexa eintauchen und mich mit der Entwicklung von Skills und deren Schnittstellen zu beschäftigen.
Dabei sind mir auch gleich Ideen für weitere Experimente gekommen: Alexa könnte sich ja auch mit Node-RED unterhalten, oder? Das werde ich mich bald einmal ansehen …