Wie man Siri benutzt, um die Szene für Romanze zu setzen

Gestern haben wir dir gezeigt, wie man ein Wi-Fi-Licht erstellt; Heute werden wir auf diesem Wissen aufbauen, um Siri mit Sonos arbeiten zu lassen und es dann in einer romantischen Szene zusammenzufügen.

Gestern haben wir dir gezeigt, wie man ein Wi-Fi-Licht erstellt;  Heute werden wir auf diesem Wissen aufbauen, um Siri mit Sonos arbeiten zu lassen und es dann in einer romantischen Szene zusammenzufügen.
Werbung

Gestern haben wir Ihnen gezeigt, wie man ein DIY Wi-Fi-Licht zu machen Wie man ein DIY Siri-Controlled Wi-Fi-Licht zu machen Wie man ein DIY Siri-Controlled Wi-Fi Light In diesem Leitfaden werden Sie lernen, wie man erstellt ein Wi-Fi kontrollierbares Licht, und steuern Sie es mit Siri. Lesen Sie mehr, die mit Siri gesteuert werden könnten; Heute werden wir auf diesem Wissen aufbauen, um Siri auch mit einem Sonos-Soundsystem arbeiten zu lassen, 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 möglich mit Siri und der Anleitung unten. Kein Jailbreak ist erforderlich, obwohl es einige Programme gibt, für die ich den Code zur Verfügung gestellt habe.

Dinge, die du brauchen wirst:

  • Raspberry Pi
  • iOS-Gerät
  • Siri-kompatible farbige Beleuchtung wie Philips Hue mit einem Hub der 2. Generation oder unsere DIY Wi-Fi Light
  • Sonos (oder ein anderes Wiedergabegerät mit einer HTTP-API)
  • (Optional) NodeMCU / ESP8266, Relais und Steckdosen; oder ein handelsübliches HomeKit-Steckdosenzubehör

Warum ist das so kompliziert?

HomeKit und die Steuerung Ihrer Geräte durch Sprachsteuerung ist wirklich ordentlich. Leider ist das geschlossene Ökosystem von Apple, HomeKit, auf eine Handvoll Geräte beschränkt. Sonos ist keiner von ihnen. Aber alles ist nicht verloren. Dank einiger hart arbeitender Hacker wurde das HomeKit-Protokoll kürzlich reverse-engineered, und wie in unserem letzten Projekt gezeigt, können Sie jetzt Ihre eigenen gefälschten HomeKit-Geräte erstellen. Wir werden das ausnutzen.

Fangen Sie an, indem Sie unserem DIY Wi-Fi Light Tutorial folgen Wie man ein DIY Siri-Controlled Wi-Fi Light macht Wie man ein DIY Siri-Controlled Wi-Fi Light macht In diesem Handbuch erfahren Sie, wie Sie ein Wi-Fi Light erstellen. Fi kontrollierbares Licht und kontrolliere es mit Siri. Lesen Sie mehr, denn das wird die Basis für alles andere bilden. Wenn Sie noch kein Philips Hue-Beleuchtungssystem haben, können Sie tatsächlich die in diesem Tutorial beschriebene Wi-Fi-Beleuchtung erstellen.

Selbst wenn Sie ein Hue-System haben, gehen Sie weiter und folgen Sie dem Tutorial, da Sie für alles andere gefälschtes HomeKit-Zubehör erstellen müssen (Code unten). Wenn ich mit diesem Handbuch fortfahre, gehe ich davon aus, dass der HAP-NodeJS-Server bereits läuft und ein gefälschtes Licht hinzugefügt wurde und den Server getestet hat, selbst wenn es nicht mit einem echten bisschen DIY verbunden ist Hardware.

Erstellen Sie eine Playlist

Erstelle eine neue Sonos Playlist mit dem Namen "Romantic". Es muss nicht genau derselbe Name sein, aber Sie müssen die Zubehörskripte 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 Raspberry Pi, auf dem HAB-NodeJS läuft (wenn du nicht weißt, wovon ich rede, hast du das Wi-Fi Light-Tutorial nicht gelesen. Mach das zuerst), navigiere zu deinem Home-Verzeichnis und tippe dort Folgendes, um die HTTP-API für Sonos zu installieren. Dies wird uns eine Web-URL geben, die wir anpingen können, um bestimmte Aktionen auf den Sonos auszulösen.

git clone https://github.com/jishi/node-sonos-http-api.git sonos cd sonos npm install production npm install basic-auth sonos-discovery require-fu request-promise node-static async npm start 

Wenn Sie eine Nachricht über solch ein Modul nicht gefunden finden, tun Sie einfach eine andere npm Installation und den Modulnamen, dann versuchen Sie npm erneut zu starten . Es ist möglich, dass ich bereits einige Module global aus anderen Projekten installiert habe und Sie möglicherweise mehr installieren müssen. Hoffentlich sehen Sie so etwas:

Sonos-http-API funktioniert

Herzlichen Glückwunsch, Sie haben jetzt eine einfache HTTP-API, mit der Sie Ihre Sonos auslösen können. Lesen Sie die Dokumentation für die vollständige Liste der Befehle, aber das Format, an dem wir am meisten interessiert sind, ist:

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

oder als spezifisches Beispiel:

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

Der Fall scheint keine Rolle zu spielen. Die% 20 ist eine URL-Codierung eines Leerzeichen, aber Sie sollten auch einen tatsächlichen Platz eingeben können, und Ihr Browser wird sie automatisch konvertieren. Der obige Befehl löst einfach die Romantische Wiedergabeliste auf dem Master Bedroom-Gerät aus. Verwenden Sie den Befehl pause, 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 wirklich nützlich sein wird: die Fähigkeit, eine bestimmte Aussage zu sagen, wie eine Benachrichtigung, und dann die aktuelle Warteschlange weiterzuspielen. 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 Nachricht, 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 settings.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 en-us ändern , wenn Sie eine amerikanische Stimme bevorzugen. Ordentlich! Völlig irrelevant für dieses Projekt, aber trotzdem ordentlich!

Lassen Sie uns zum Schluss diesen Server erneut starten, wenn der Pi neu gestartet wird:

 sudo nano /etc/rc.local 

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

 sudo node /home/pi/sonos/server.js< /dev/null & 

STRG-X, Y zum Speichern. Sie können sehen, dass ich dies neben OpenHAB, einem DIY Bluetooth-Präsenzmelder und dem HAP-NodeJS HomeKit-Server betreibe - Sie sollten das auch schon laufen lassen, wenn Sie bereits das erforderliche Wi-Fi-Light-Tutorial befolgt haben.

zu rc-local hinzufügen Ein HomeKit-Gerät für die Sonos erstellen

Der Kern dieses Projekts ist, dass Sonos nicht von Siri gesteuert werden kann, aber wir können ein gewisses Maß an Kontrolle hinzufügen, indem wir ein gefälschtes HomeKit-Gerät erstellen, das beim Einschalten eine bestimmte Playlist aktiviert - ein Scheinlicht ist dafür der einfachste Weg.

Navigieren Sie zuerst zu Ihrem HAP-NodeJS / -Verzeichnis und installieren Sie das Modul "request".

 sudo npm install request 

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

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

Nehmen Sie bei Bedarf Änderungen vor - dies ist für den standardmäßigen Sonos- Hauptschlafzimmer-Speicherort festgelegt. Ändern Sie daher den Zeichenfolgenmaster % 20bedroom in Richtung des Anfangspunkts des Codes, wenn Sie möchten, dass er in einen anderen Raum geleitet wird. Da wir vorgetäuscht haben, ein Licht zu sein, wird das Senden des Helligkeitsbefehls eigentlich nichts bewirken, obwohl ich das irgendwann aktualisieren werde, um mit der Lautstärke umzugehen. Dies ist der Code-Block, der die Magie tut:

 setPowerOn: function(on) { console.log("Turning the light %s!", on ? "on" : "off"); FAKELIGHT.powerOn = on; console.log(on); if(on){ request('http://localhost:5005/master%20bedroom/playlist/romantic', function (error, response, body) { console.log("Sent play request"); }) } else{ request('http://localhost:5005/master%20bedroom/pause', function (error, response, body) { console.log("Sent pause request"); }) } },  

Sie können sehen, dass es überraschend einfach ist: Wenn das Licht einen setPowerOn-Befehl von HomeKit empfängt, prüft es, ob der Wert 1 (oder wahr) ist und an welchen Punkt es die Sonos HTTP API-URL sendet, um diese Wiedergabeliste abzuspielen. Wenn es etwas anderes ist (z. B. 0, falsch), sendet es den Pause-Befehl. Starten Sie Ihren HAP-NodeJS-Server neu, gehen Sie dann zu einem iOS-Gerät und folgen Sie dem gleichen Verfahren wie zuvor, um Ihr falsches "Romantische Playlist" -Licht hinzuzufügen (Sie benötigen den Kopplungscode 031-45-154) .

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

(Optional) Lichterketten und andere AC-Geräte

Es mag Sie überraschen zu erfahren, dass es keine offiziellen HomeKit-Lichterketten gibt und ich auch keine HomeKit-Generic-Steckdosen finden würde, die mir den Look / Preis gefallen hätten - also habe ich ein DIY-Gerät mit einem NodeMCU / ESP8266-Dev-Board Meet zusammengebaut Der Arduino-Killer: ESP8266 Lernen Sie den Arduino-Killer kennen: ESP8266 Was ist, wenn ich Ihnen sagte, dass es ein Arduino-kompatibles Entwicklungsboard mit eingebautem Wi-Fi für weniger als 10 $ gibt? Nun, da ist es. Lesen Sie mehr, ein Relais und eine Standard-Zweifach-Steckdose. Ich werde die Hardware nicht zu detailliert beschreiben, da Sie keine Dinge in Stecksockel stecken sollten, wenn Sie mit solchen Dingen nicht vollkommen vertraut sind, aber ich werde Ihnen meinen Code für die NodeMCU-Seite der Dinge zur Verfügung stellen Relais-Trigger an Pin D2 / GPIO4), und das Zubehör, um damit zu gehen.

Knotenmcu Relais

Wie bei der Wi-Fi-Beleuchtung kommuniziert dies Befehle auf einem MQTT-Kanal ("Schlafzimmer-Plug"). Daher müssen Sie den Code mit Ihrer MQTT-Broker-Adresse ändern (lesen Sie Teil 2 unseres OpenHAB-Leitfadens zum Einrichten eines MQTT) broker OpenHAB Anfängerleitfaden Teil 2: ZWave, MQTT, Regeln und Charts OpenHAB Anfängerleitfaden Teil 2: ZWave, MQTT, Regeln und Charting OpenHAB, die Open-Source-Heimautomatisierungssoftware, geht weit über die Möglichkeiten anderer am Markt befindlicher Hausautomationssysteme hinaus Es ist nicht einfach, sich einzurichten, es kann geradezu frustrierend sein. Lesen Sie mehr), ändern Sie die Kanalnamen, wenn Sie möchten, und geben Sie natürlich Ihre eigenen WLAN-Daten ein.

Alles zusammenfügen

Schließlich werden wir einige Szenen mit der Elgato Eve-App oder Ihrem bevorzugten HomeKit-Manager erstellen. Im HomeKit-Sprachgebrauch kann eine Szene aus beliebig vielen Zubehörteilen und Befehlen für diese Zubehörteile bestehen.

Sie können eine Szene benennen, was auch immer Sie mögen, und Siri wird in der Lage sein, sie zu treffen, ohne "Set-Szene" zu sagen . Also habe ich zwei Szenen gemacht: eine heißt "die Kinder sind im Bett" und eine andere "lass uns jetzt ernst werden".

Ersteres schaltet eines der Hue-Lichter aus, das andere rosa und schaltet dann das romantische Playlist-Zubehör und die Lichterkette ein. Letzteres macht die Lichter wieder weiß und unterbricht die Sonos (dh schaltet das romantische Playlist-Zubehör aus). Einfach!

Homekit-Szenekreation

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

In this article