Möge die Macht mit dir sein! Wir durften hinter die Kulissen des neuen Star Wars Trailer schauen und zeigen dir, wie du ab sofort dein Fibaro Smart Home wie von hohen Mächten gelenkt, per Gestensteuerung bedienen kannst.
Nein, natürlich waren wir nicht beim echten Star Wars Trailer Dreh dabei, dafür ist der siio Blog zu noch klein ;-) . Wir meinen das neue Video von "Mein-cleveres-Haus.de. In Ihrem YouTube Channel zeigten die Jungs von mein-cleveres-haus vergangene Woche im Star Wars Outfit, wie sich Jalousien magisch per Handbewegung öffnen lassen und die Sonos Lautsprecher per "Wisch" lauter wurden. Der angekündigte Fibaro Swipe ist noch nirgends verfügbar (wir haben hier berichtet), also wie haben die Jungs das gemacht?
Diese Frage haben wir uns auch gestellt und durften exklusiv hinter die Kulissen schauen.
[youtube url="http://www.youtube.com/watch?v=aCAcsurQD2A" rel="0" showsearch="0"]Leap Motion für die Gestensteuerung.
1) Als Hardware diente der Leap Motion, welchen du bei Amazon für rund 80 Euro bekommst. Wer bei Amazon nach dem Gerät sucht, der wird zwei Versionen finden. Die teure Version (ca 230 Euro) enthält das SDK Kit, es genügt aber die "günstige" Variante um dieses Tutorial hier nachbauen zu können.
2) Weiterhin brauchst du für dieses Tutorial die kostenfreie App "HandWAVE" vom Leap App Store. Diese findest du hier.
3) Zu guter Letzt, benötigst du noch das Programm "wget" für Windows. (Es würde auch ohne das kleine Programm gehen und man könnte es via Browser ausführen - diese benötigen aber im Vergleich mehr Speicher und sind langsamer.) wget bekommst du zum Beispiel hier.
Du siehst, wir haben eine Hardware, sowie Software, welche für den Windows PC ist. Das bedeutet, unsere Gestensteuerung funktioniert nur, wenn der PC, Barbone, Notebook, oder was auch immer eingeschaltet ist. Es sei aber angemerkt, das die Hardware Leap Motion auch am Raspberry Pi funktioniert. Vielleicht ist es später mal ein Versuch wert, das ganze am kleinen Einplatinen PC nachzubauen.
HandWave
Als allererstes lade und installiere dir die Leap Motion Software. Hierbei wird auch eine Registrierung in dem Leap Motion App Store benötigt. Danach kannst du die „Leap Motion App Home“ starten. Jetzt kannst du in den App Store gehen und dir die oben genannte HandWAVE App laden.
[alert variation="alert-info"]Wer noch mehr Möglichkeiten benötigt, kann auch die APP: "GameWAVE" für knapp 4$ kaufen. Diese kann sogar unterscheiden ob du die geste mit 1,2,3 oder mehr Fingern ausführst und bietet somit eine Vielzahl mehr an Möglichkeiten.[/alert]Nach dem ersten Start musst du eine Kalibrierung in HandWave durchführen. Hier einfach den Anweisungen auf dem Bildschirm folgen. Danach muss die APP HandWave noch angepasst werden. Hierzu einfach im Dialog „File-> New“ eine neue Konfiguration erstellen.
Hier kannst du nun jeder Geste eine Funktion zuordnen, welche später ausgeführt wird, wenn Leap Motion diese Geste erkennt. Hierzu klicke einfach auf das Feld mit den 3 Punkten (...)
Hier kannst du unter dem Punkt "Launch File" auch Dateien einfügen, die das entsprechende Kommando enthalten. Am Ende dieses Tutorials haben wir dir eine *.zip Datei zusammengestellt, welche unter anderem auch die sogenannten Batch Dateien (*.cmd) enthalten.
Nach dem einfügen der Batch Dateien sieht das ganze dann zum Beispiel so aus:
Am besten speicherst du die Konfiguration nun ab. Dazu einfach in dem Programm oben auf: "File -> Save as" klicken und das Ziel auf deiner Festplatte wählen. Ideal wäre es, die Datei zusammen mit dem oben angesprochenen Tool "wget" in ein Verzeichnis zu kopieren. In unserem Beispiel haben wir den gemeinsamen Pfad: C:\@leap gewählt.
Batch Dateien anpassen
Damit das ganze auch bei dir läuft, musst du natürlich diese Batch Dateien (*.cmd) anpassen, denn diese beinhalten unter anderem die IP Adresse zu deinem Fibaro HomeCenter 2, sowie den Benutzernamen und das Passwort.
- Ganz vorn in der Batch Datei steht der Pfad zum Programm "wget". In unserem Fall ist das c:\@leap\wget -> solltest du das Programm unter einem anderem Pfad installiert haben, so passe dies hier an.
- Danach folgt der Benutzername und das Passwort für dein Fibaro Home Center2
- Hinter http:// steht die lokale IP Adresse deines Fibaro Home Center 2. Die musst du natürlich anpassen
Danach siehst du schon, das ein API Call folgt. Das wird dir vielleicht bekannt vorkommen, denn genau das hat Daniel damals für sein Tutorial mit der Sprachsteuerung via Google now verwendet. Das heißt, wir verwenden hierfür die Fibaro API. So kannst du Geräte direkt ansprechen, "Knöpfe" bei virtuellen Geräten drücken und auch ganze Szenen starten. Unser Beispiel bedarf natürlich einiger Anpassungen:
Zunächst müssen natürlich die Werte von deviceID“ - mit den IDs deiner Geräte ersetzt werden. Wie man die ID herausfindet, hier ein Beispiel:
- ersetze: aaa mit der ID deines RollerShutter
- ersetze: bbb mit der ID des Dimmers
- ersetze: ccc mit der ID des Leap Motion VD (weiter unten im Text dazu mehr)
Beispiel: Hand nach oben bewegen (Rollos hoch)
c:\@leap\wget --user=admin --password=admin "http://192.168.100.24/api/callAction?deviceID=aaa&name=close" -O dummy
Beispiel: Handwisch rechts (Licht aus)
c:\@leap\wget --user=admin --password=admin "http://192.168.100.24/api/callAction?deviceID=bbb&name=turnOff" -O dummy
Beispiel: Hand kreiseln gegen den Uhrzeigersinn (Licht (Dimmer) dunkler stellen)
c:\@leap\wget --user=admin --password=admin "http://192.168.100.24/api/callAction?deviceID=ccc&name=pressButton&arg1=2" -O dummy
Auf Nachfrage, welche Steuerung für die Sonos im Video verwendet wurde, sagte uns Thomas Radtke von mein-cleveres-haus:
Das ist das „INTUITECH Sonos Virtual Device“, den Source liefern wir unseren Kunden gern auf Anfrage. In unserem Video haben wir nur ein Teil der verfügbaren Funktionen benutzt: „Sender wechseln“, „Sonons an/aus“ und die Lautstärkeregelung mit einfachen „Handgelenk einmalig nach unten/oben zeigen“.
Damit du das Beispiel benutzen kannst, nutzen wir für die Laustärkeregelung eine vereinfachte Form und das Fibaro Sonos Plugin. Dadurch ist es möglich die Lautstärke mit mehrfachen Handbewegungen (nach unten ggf. oben zeigend) zu kontrollieren. In unserem Beispiel ersetze dafür das "xxx" mit der ID des Sonos Plugin.
Für den Sonos Sender Wechsel mit Fibaro reicht übrigens ein VD mit Senderliste und z.b. SonosTTS/MP3 wie das von Jean-Christophe Vermandé.
Beispiel: Faust bilden (Sonos an / aus)
c:\@leap\wget --user=admin --password=admin "http://192.168.100.24/api/callAction?deviceID=xxx&name=pressButton&arg1=3" -O dummy
Damit hast du eigentlich schon den aufwändigsten Teil geschafft. Wechseln wir nun einfach mal rüber auf die Weboberfläche von deinem Fibaro Home Center 2
Fibaro Szenen und VDs erstellen
Hier brauchen wir zwei globale Variablen. Gehe also im Menü auf "Steuerung -> Variablen Steuerung" und lege unter "Vordefinierte Werte" die beiden folgenden Variablen an:
- lmDimmChange mit den Werten: 0, 1 und 2
- scVolChange mit den Werten: 0, 1 und 2
Die Variable "lmDimmChange" wird später für das Dimmen der Lichter interessant sein und die Variable "scVolChange" benötigst du zur Sonos Steuerung.
Leap Motion Virtual Device
Hier kommt nun das Leap Motion Virtual device ins Spiel, welches wir oben in dem Teil "Batch Datei anpassen" schon einmal angesprochen hatten. Ganz einfach: Gehe im Fibaro Home Center 2 auf den Menüpunkt "Module" dann links auf "Lösche oder füge Gerät hinzu" und wähle hier im Abschnitt "Virtuelles Modul" -> Datei auswählen. Hier kannst du das Leap Motion VD, welches du dir hier herunterladen kannst einfügen.
An dem Virtual Device sind dann keine Anpassungen nötig, da dieses lediglich Szenen triggert.
Szenen für die Gestensteuerung
Also kommen wir doch direkt zu den eben angesprochenen Szenen. Damit dein Smart Home genauso abgespaced funktioniert wie in dem Video von "mein-cleveres-haus", benötigst du zwei Szenen. Die folgende Szene nennen wir mal: lm-dimm-action und diese ist für die Dimmer Steuerung zuständig. Hier musst du in Zeile 9 natürlich die ID deines Dimmers (wie zum Beispiel des Fibaro Dimmer 2 Moduls) eintragen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
--[[ %% properties 186 sceneActivation %% globals lmDimmChange --]] local dimmerid = 186; -- ID des Dimmers local startSource = fibaro:getSourceTrigger() if (startSource["name"] == "lmDimmChange") then if (fibaro:getGlobal("lmDimmChange") == "1") then local c = tonumber(fibaro:getValue(dimmerid, "value")); if (c < 100) then c = c + 5 else c = 100 end; fibaro:call(dimmerid, "setValue", c ); fibaro:sleep(250); end if (fibaro:getGlobal("lmDimmChange") == "2") then local c = tonumber(fibaro:getValue(dimmerid, "value")); if (c < 1) then c = 0 else c = c - 5 end; fibaro:call(dimmerid, "setValue", c ); fibaro:sleep(250); end fibaro:setGlobal('lmDimmChange', 0); end |
Wenn du ab sofort auch dein Sonos per Gestensteuerung kontrollieren möchtest, dann benötigst du noch eine zweite Szene. Diese ist zuständig für die Sonos Lautstärke Steuerung. Hier musst du in der Zeile 8 die ID deines Sonos Plugin eintragen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
--[[ %% properties %% globals scVolChange --]] local fibsonosid = 188; -- ID des Sonos Plugin Lautsprechers local startSource = fibaro:getSourceTrigger() if (startSource["name"] == "scVolChange") then if (fibaro:getGlobal("scVolChange") == "1") then local c = tonumber(fibaro:getValue(fibsonosid, "volume")); if (c < 100) then c = c + 2 else c = 100 end; fibaro:call(fibsonosid, "setVolume", c ); fibaro:sleep(250); end if (fibaro:getGlobal("scVolChange") == "2") then local c = tonumber(fibaro:getValue(fibsonosid, "volume")); if (c < 1) then c = 0 else c = c - 2 end; fibaro:call(fibsonosid, "setVolume", c ); fibaro:sleep(250); end fibaro:setGlobal('scVolChange', 0); end |
[alert variation="alert-info" dismiss="dismiss"]Solltest du schon auf deinem Fibaro Home Center schon die Software Version v4.058 oder höher haben,so setze die „Max. running instances:“ mindestens auf den Wert 3.[/alert]
Das war es schon:
Das benötigte Virtual Device, die Szenen und die Batch Dateien haben wir dir in einem *.zip Paket zusammengestellt, dieses kannst du hier herunterladen.
Ich bitte kurz um Feedback, ob ich schon drin bin... Danke!