Licht durch die Wolken – Homeautomation mit Windows 10, IoT Core, Cortana und Azure (Teil1 Vorstellung und Azure Backend)

In unserem aktuellen Techtalk, den ich zusammen mit meinem Kollegen Daniel Meixner  gemacht habe, ging es um das Microsoft Band, und wie wir Entwickler mit dem verfügbaren Band SDK Apps für dieses coole Gadget entwickeln können. Neben all den Möglichkeiten die das Microsoft Band mit all seiner Sensorik und Schnittstellen zu Productivity-Notifications gibt, war es ein Feature das es mir persönlich sehr angetan hatte – Das Band kann mit Fräulein Cortana meiner anderen Geräten sprechen, die ich über Bluetooth verbinde. Um dies zu demonstrieren, ist ein Homeautomation Szenario entstanden, welches in dieser vierteiligen Blogserie beleuchtet und rekonstruiert wird. Nachbauen unbedingt erwünscht.

Und das ist das Szenario: Das Microsoft Band übergibt einen Sprachbefehl wie „Es werde Licht“ an Cortana, welchen Cortana dann über eine installierte App auf dem verbundenen Telefon an eine analoge echte Lampe sendet und so auf dem Tisch zum leuchten bringt.

Was wir in diesem TechTalk nicht beleuchtet haben ist: Wie funktioniert es, dass links ein Sprachbefehl kommt, und rechts eine Lampe erleuchtet und eine halbe Disco startet?
Eine Skizzierung des Szenarios zeigt uns den Masterplan:

WP_20150812_17_13_09_Pro
Unsere kleine Demo besteht demnach aus 3 Kernelementen:
– Client App, die Cortana mit Voice Commands füttert und auf unsere Spracheingabe reagiert. Sie soll unsere Befehle auswerten, und darauf hin Befehle in eine Command-Queue in Azure publishen.

– Azure Service Bus mit einer Queue für die Kommunikation zwischen Cortana und der analogen Lampe auf dem Tisch.

– App auf einem Raspberry PI2, verbunden mit dem Internet und einem 3 adrigen Schalt-Relais, welches in den Stromkreis der Lampe eingebunden ist und die Stromzufuhr unterbricht, bzw. freigibt. Die verwendete Hardware setzt sich zusammen aus:

Die Wolke konfigurieren – Service Bus und Queue einrichten

Bevor wir mit dem Entwickeln der beiden App-Komponenten beginnen, muss die Infrastruktur für die Kommunikation geschaffen werden. Dieses kleine Szenario verwendet den Service Bus in Verbindung mit Queues unter Microsoft Azure. Die Einrichtung erfolgt über das Azure-Portal:

createServicebus

createServiceBusWizzard

UNBEDINGT BEACHTEN: Bevor im Wizard die „Message Tier“ festgelegt wird, sollte sich jeder mit den den Preisen beschäftigen, die im Standard-Tier anfallen. Hierzu folgenden Link beachten: http://azure.microsoft.com/en-us/pricing/details/service-bus/

Wer über eine MSDN-Subscription verfügt, kann über das monatlich zur Verfügung stehende Azure-Guthaben locker die Kosten decken.

 

Nach der Erstellung des Service Bus, ist es notwendig die Queue anzulegen, über welche die Komponenten kommunizieren. Dazu muss vorher in den neu angelegten Service Bus gewechselt und werden:

CreateNewQueue

Nachdem die Queue erstellt wurde, ist alles bereit um eine Kommunikation zwischen den Devices auf denen die VoiceCommand-App läuft, und dem Raspberry PI2, welcher  die Lampe schaltet, aufgebaut werden. Um programmatisch auf die erstellte Service Bus Instanz und die Queue zugreifen zu können, braucht es den Connection String und ein gültiges Secret. Beides findet sich in der „Connection Information“ der Service Bus Instanz im Azure Portal:

getConnectionString

AccessConnectionString
Im zweiten Teil des Blogs werden wir mit dem Connectionstring und unserer VoiceCommand App eine Verbindung auf den Service Bus, und die darin gehostete Queue erstellen und Messages mit Steuerbefehlen versenden, auf die der Raspberry PI2 reagieren wird.

Viel Spaß beim Einrichten!

2 comments to Licht durch die Wolken – Homeautomation mit Windows 10, IoT Core, Cortana und Azure (Teil1 Vorstellung und Azure Backend)

  • Philippe  says:

    Hallo Marco,

    ich nehme mal an der Masterplan scheitert in der Praxis daran, dass dein Handy dafür entsperrt sein muss, damit die App im Vordergrund mit Azure kommunizieren kann oder? Gibt es schon Neuigkeiten, wann das Band SDK auch mit Windows 10 Mobile zusammen funktioniert? Wenn man das ganze über einen App Service lösen würde es dann auch in der Praxis Spaß machen sein Haus per Band zu steuern. 🙂

    Abgesehen davon -> cooler Showcase! Bitte mehr davon 🙂

    grüße
    Philippe

    • Marco Richardson  says:

      Hi Phillipe,

      danke für Dein Feedback, freut mich wenn Dir das Szenario gefällt.
      Du hast aktuell Recht – Um über das MS Band den Befehl absetzen zu können, muss das Gerät (in meinem Fall das Windows Phone) entsperrt sein. Aktuell gibt es auch keine Möglichkeit, das Ganze programmatisch zu umgehen. Cortana führt generell alle Aktionen die über das Band angefragt werden (z.B. sende eine SMS) erst aus, wenn das Device entsperrt ist, der Befehl kommt also erst gar nicht zur gewünschten App durch.

      Wann das Band SDK für Windows 10 verfügbar sein wird, ist aktuell noch nicht bekannt. Allerdings: Für den Fall, der hier behandelt wird, braucht es keinerlei Entwicklung für das MS Band selbst – Dieses kann out-of-the-box mit Cortana auf dem über Bluetooth verbundenen Device sprechen und auch mit dem Response umgehen (wie im Video zu sehen). In den kommenden 3 Blogposts wird ersichtlich: Für die Integration von Band in dieses Szenario ist wirklich keine Zeile Code erforderlich. Und ich denke, gerade unter diesem Gesichtspunkt ist der Masterplan trotz der (aktuellen) Entsperrproblematik nicht völlig zerstört, da es eine kostenlose Draufgabe ist. 🙂

      Stay tuned für den Rest.

      Viele Grüße,

      Marco

Leave a reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>