So verwenden Sie Siri, um die Szene für die Romantik einzustellen

So verwenden Sie Siri, um die Szene für die Romantik einzustellen / DIY

Gestern haben wir Ihnen gezeigt, wie Sie eine DIY-Wi-Fi-Lampe erstellen. So erstellen Sie eine DIY-Siri-gesteuerte Wi-Fi-Lampe. So erstellen Sie eine DIY-Siri-gesteuerte Wi-Fi-Lampe. In diesem Handbuch erfahren Sie, wie Sie etwas herstellen ein per Wi-Fi steuerbares Licht, und steuern Sie es mit Siri. Lesen Sie mehr, das mit Siri gesteuert werden könnte; Heute werden wir auf diesem Wissen aufbauen, um Siri dazu zu bringen, auch mit einem Sonos-Soundsystem zu arbeiten, und dann alles in einer romantischen Szene zusammenfügen.

Überprüfen Sie das Endergebnis:

Das obige Video wurde nicht gefälscht oder inszeniert - alles ist mit Siri und dem nachfolgenden Leitfaden möglich. Es ist kein Jailbreak erforderlich, obwohl es einige Programmierungen gibt, für die ich den Code bereitgestellt habe.

Dinge, die du brauchen wirst:

  • Himbeer-Pi
  • iOS-Gerät
  • Siri-kompatible farbige Beleuchtung wie Philips Hue mit Hub der 2. Generation oder unser DIY-WLAN-Licht
  • Sonos (oder ein anderes Wiedergabegerät mit einer HTTP-API)
  • (Optional) NodeMCU / ESP8266, Relais und Steckdosen; oder ein handelsübliches Zubehör für die HomeKit-Steckdose

Warum ist das so kompliziert??

HomeKit und die Steuerung Ihrer Geräte über die Sprachsteuerung ist wirklich ordentlich. Leider ist das geschlossene Ökosystem von Apple, HomeKit, auf eine Handvoll Geräte beschränkt. Sonos gehört nicht dazu. Es ist jedoch nicht alles verloren. Dank einiger hart arbeitender Hacker wurde vor kurzem das HomeKit-Protokoll zurückentwickelt. Wie in unserem letzten Projekt gezeigt, können Sie jetzt Ihre eigenen gefälschten HomeKit-Geräte erstellen. Wir werden das nutzen.

Beginnen Sie mit unserem DIY-Wi-Fi-Licht-Tutorial. So stellen Sie ein DIY-Siri-gesteuertes Wi-Fi-Licht her So erstellen Sie ein DIY-Siri-gesteuertes Wi-Fi-Licht In diesem Handbuch erfahren Sie, wie Sie ein Wi- Fi steuerbares Licht, und mit Siri steuern. Lesen Sie mehr, denn das wird die Grundlage für alles andere sein. Wenn Sie noch nicht über ein Philips Hue-Beleuchtungssystem verfügen, können Sie die in diesem Lernprogramm beschriebene WLAN-Lampe tatsächlich erstellen.

Auch wenn Sie über ein Hue-System verfügen, folgen Sie der Anleitung, da Sie für alles andere gefälschte HomeKit-Zubehörteile erstellen müssen (unten angegebener Code). Wenn Sie mit diesem Handbuch fortfahren, gehe ich davon aus, dass der HAP-NodeJS-Server bereits ausgeführt wird und Sie erfolgreich ein Scheinlicht hinzugefügt und den Server getestet haben, auch wenn er nicht mit einem echten DIY-Element verbunden ist Hardware-.

Erstellen Sie eine Playlist

Erstellen Sie eine neue Sonos-Playlist mit dem Namen “Romantisch”. Es muss nicht unbedingt derselbe Name sein, aber Sie müssen die zusätzlichen Skripts später anpassen, wenn Sie sie ändern. Ich habe einige Marvin Gaye und Sade Tracks zu meinen hinzugefügt. Glatt.

Als nächstes auf dem Himbeer-Pi, auf dem HAB-NodeJS läuft (Wenn Sie nicht wissen, wovon ich spreche, haben Sie das Wi-Fi-Light-Tutorial nicht gelesen. Tun Sie das zuerst), Navigieren Sie zu Ihrem Basisverzeichnis und geben Sie Folgendes ein, um die HTTP-API für Sonos zu installieren. Dadurch erhalten Sie eine Web-URL, über die wir bestimmte Aktionen auf dem Sonos auslösen können.

git clone https://github.com/jishi/node-sonos-http-api.git sonos cd sonos npm installieren produktion npm installieren basic-auth sonos-findung required-fu anforderungsversprechen knoten-statisch async npm start

Wenn eine Meldung angezeigt wird, dass ein solches Modul nicht gefunden wurde, führen Sie einfach eine andere aus npm installieren und den Modulnamen, dann versuchen Sie es npm starten nochmal. Es ist möglich, dass bereits einige Module aus anderen Projekten global installiert wurden. Möglicherweise müssen Sie weitere Module installieren. Hoffentlich sieht man so etwas:

Glückwunsch, Sie haben jetzt eine einfache HTTP-API, mit der Sie Ihr Sonos auslösen können. In der Dokumentation finden Sie die vollständige Liste der Befehle. Das Format, das uns am meisten interessiert, ist:

http: // [SERVER IP]: 5005 / [ZIMMERNAME] / [AKTION]

oder als konkretes Beispiel:

http://192.168.1.99:5005/master%20bedroom/playlist/romantic

Der Fall scheint keine Rolle zu spielen. % 20 ist eine URL-Kodierung für ein Leerzeichen. Sie sollten jedoch auch ein Leerzeichen eingeben können, das von Ihrem Browser automatisch konvertiert wird. Der obige Befehl löst einfach die Romantic-Playlist auf dem Master-Bedroom-Gerät aus. Verwenden Sie die Pause Befehl, um es zu stoppen:

http://192.168.1.99:5005/master%20bedroom/pause

Abgesehen davon gibt uns die API auch eine Funktion, die für andere Projekte sehr nützlich sein wird: Die Möglichkeit, eine bestimmte Anweisung wie eine Benachrichtigung zu sagen, spielt dann die aktuelle Warteschlange weiter ab. Versuchen:

http://192.168.1.99:5005/master%20bedroom/say/make%20use%20of%20is%20awesome/en-gb

Wenn Sie dies zum ersten Mal tun, erhalten Sie eine Meldung, dass Sie sich bei VoiceRSS.org für einen API-Schlüssel registrieren müssen (bis zu 350 Anfragen pro Tag sind kostenlos). Wenn Sie damit fertig sind, geben Sie Folgendes ein:

nano einstellungen.json

und fügen Sie Ihren Schlüssel in das folgende Beispiel ein:

"voicerss": "YOURAPIKEY"

Starten Sie den Server neu und pingen Sie die URL erneut an. Nach ein paar Sekunden sollten Sie eine entzückende englische Stimme hören. Sie können das Ende der URL in ändern en-uns wenn Sie eine amerikanische Stimme bevorzugen. Ordentlich! Völlig irrelevant für dieses Projekt, aber trotzdem ordentlich!

Lassen Sie uns diesen Server erneut starten, wenn das Pi neu gestartet wird:

sudo nano /etc/rc.local

Fügen Sie eine Zeile vor dem hinzu Ausfahrt 0:

Sudo-Knoten /home/pi/sonos/server.js < /dev/null &

STRG-X, Y zum Speichern. Sie können sehen, dass ich neben OpenHAB, einem DIY Bluetooth-Präsenzmelder und dem HAP-NodeJS HomeKit-Server aktiv bin. Sie sollten dies auch ausführen, wenn Sie bereits die Anleitung zum Wi-Fi-Licht beachtet haben.

Erstellen eines HomeKit-Geräts für den Sonos

Der entscheidende Punkt bei diesem Projekt ist, dass Sonos nicht von Siri gesteuert werden kann. Wir können jedoch ein gewisses Maß an Kontrolle hinzufügen, indem Sie ein falsches HomeKit-Gerät erstellen, das eine bestimmte Wiedergabeliste aktiviert, wenn wir sie einschalten. Ein Scheinlicht ist der einfachste Weg, dies zu tun.

Navigiere zu deinem HAP-NodeJS / Verzeichnis und installieren Sie das “anfordern” Modul.

sudo npm Installationsanforderung

Dann spring runter zum Zubehör/ verzeichnis und nimm mein vorgefertigtes Gerät mit dem folgenden einfachen Befehl:

wget https://gist.githubusercontent.com/jamesabruce/72bd250fbcf054acaa25/raw/8272d4b9a4ef76db752cab2ddd9bdcbdd99a65f1/Romantic_accessory.js

Nehmen Sie gegebenenfalls Änderungen vor - dies ist für den Standard-Sonos festgelegt “Hauptschlafzimmer” Position, ändern Sie die Zeichenfolge master% 20bedroom am Anfang des Codes, wenn Sie möchten, dass er in einen anderen Raum geleitet wird. Da wir vorgetäuscht haben, eine Leuchte zu sein, wird das Senden des Helligkeitsbefehls nicht wirklich etwas bewirken, obwohl ich das irgendwann aktualisieren werde, um mit der Lautstärke umzugehen. Dies ist der Codeblock, der die Magie ausübt:

setPowerOn: function (ein) console.log ("Licht ausschalten% s!", ein? "ein": "aus"); FAKELIGHT.powerOn = ein; console.log (ein); if (on) request ('http: // localhost: 5005 / master% 20bedroom / playlist / romantic'), Funktion (Fehler, Antwort, Text) console.log ("Gesendete Wiedergabeanforderung");) else  request ('http: // localhost: 5005 / master% 20bedroom / pause', Funktion (Fehler, Antwort, Rumpf) console.log ("Gesendete Pausenanforderung");), 

Sie sehen, dass es überraschend einfach ist: Wenn das Licht einen Befehl setPowerOn von HomeKit empfängt, prüft es, ob der Wert 1 (oder wahr) ist und an welchem ​​Punkt die Sonos HTTP API-URL zur Wiedergabe dieser Wiedergabeliste gepingt wird. Wenn es etwas anderes ist (zB 0, false), sendet es den Befehl pause. Starten Sie Ihren HAP-NodeJS-Server neu, gehen Sie zu einem iOS-Gerät über und befolgen Sie das gleiche Verfahren wie zuvor, um Ihre Fälschung hinzuzufügen “Romantische Playlist” Licht (Sie benötigen den Pairing-Code 031-45-154).

Prüfen Sie, ob Ihr neues Gerät funktioniert, und fahren Sie dann fort. Wenn Sie ein wenig programmieren möchten, ordnen Sie die Helligkeitsänderungen der Lautstärke zu (und teilen Sie Ihren Code in den Kommentaren mit, bitte!)..

(Optional) Lichterketten und andere Wechselstromgeräte

Es überrascht Sie vielleicht zu erfahren, dass es keine offiziellen HomeKit-Lichterketten gibt, und ich könnte auch keine generischen HomeKit-Steckdosen finden, deren Aussehen / Preis mir gefallen hat. Deshalb habe ich ein DIY-Gerät zusammen mit einem NodeMCU / ESP8266-Entwicklertreffen zusammengeschlagen der Arduino-Killer: ESP8266 Lernen Sie den Arduino-Killer kennen: ESP8266 Was wäre, wenn ich Ihnen ein Arduino-kompatibles Entwicklungsboard mit eingebautem WLAN für weniger als 10 US-Dollar sagen würde? Nun, das gibt es. Lesen Sie mehr, ein Relais und eine standardmäßige Zweifachsteckdose. Ich werde die Hardware nicht allzu detailliert beschreiben, da Sie nicht in Steckdosen stecken sollten, wenn Sie mit solchen Dingen nicht absolut zuversichtlich sind, aber ich werde Ihnen meinen Code für die NodeMCU - Seite der Dinge zur Verfügung stellen (connect the Relaisauslöser an Pin D2 / GPIO4) und das zugehörige Zubehör.

Wie die Wi-Fi-Leuchte übermittelt diese Befehle auf einem MQTT-Kanal (“schlafzimmerplug”), Sie müssen also den Code mit Ihrer MQTT-Broker-Adresse ändern (siehe Teil 2 unseres OpenHAB-Leitfadens zum Einrichten eines MQTT-Broker-OpenHAB-Beginner-Guide-Teils 2: ZWave, MQTT, Rules- und Charting-OpenHAB-Begleithandbuch-Part.) 2: ZWave, MQTT, Regeln und Diagramme OpenHAB, die Open-Source-Hausautomationssoftware, übertrifft bei weitem die Fähigkeiten anderer Hausautomationssysteme auf dem Markt - aber es ist nicht einfach, sich einzurichten. Tatsächlich kann es völlig frustrierend sein Mehr), ändern Sie die Kanalnamen, wenn Sie möchten, und geben Sie natürlich Ihre eigenen Wi-Fi-Details ein.

Alles zusammenfügen

Zum Schluss machen wir noch welche “Szenen” Verwenden Sie die Elgato Eve-App oder Ihren bevorzugten HomeKit-Manager. Im HomeKit-Sprachgebrauch kann eine Szene aus einer beliebigen Anzahl von Zubehör und Befehlen für dieses Zubehör bestehen.

Sie können eine Szene benennen, wie Sie möchten, und Siri kann sie abgleichen auch ohne zu sagen “Szene einstellen”. Ich habe also zwei Szenen gemacht: eine rief an “Die Kinder sind im Bett”, und ein anderer “lass uns jetzt ernst werden”.

Ersteres schaltet eine der Hue-Lichter aus, verwandelt die andere in Rosa und schaltet dann das romantische Playlist-Zubehör und die Lichterkette ein. Letzteres macht die Lichter wieder weiß und pausiert den Sonos (dh das romantische Playlist-Zubehör wird deaktiviert). Einfaches!

Ich hoffe, Ihnen hat dieses Tutorial gefallen und Sie können wirklich sehen, wie wir die Siri-Kontrolle dank der Leistungsfähigkeit von HAP-NodeJS ohne großen Aufwand auf alles erweitern können. Gibt es etwas, für das Sie spezielle Siri-Aktionen sehen möchten? Lass es uns in den Kommentaren wissen und erzähle uns, wie du Siri benutzt hast, um dein Zuhause zu kontrollieren.

Erfahren Sie mehr über: Himbeer-Pi, Siri, Sonos.