Sådan bruger du Siri til at sætte scenen til romantik

I går viste vi dig, hvordan du opretter et Wi-Fi-lys; i dag vil vi bygge videre på den viden for at få Siri til at arbejde med Sonos, så sætte det sammen i en romantisk scene.

I går viste vi dig, hvordan du opretter et Wi-Fi-lys;  i dag vil vi bygge videre på den viden for at få Siri til at arbejde med Sonos, så sætte det sammen i en romantisk scene.
Reklame

I går viste vi dig hvordan du laver et DIY Wi-Fi-lys Sådan laver du et DIY-styret Wi-Fi-lys Sådan laver du et DIY-styret Wi-Fi-lys I denne vejledning skal du lære at skabe et Wi-Fi kontrollerbart lys, og styre det med Siri. Læs mere, der kunne styres med Siri; i dag vil vi bygge videre på den viden for at gøre Siri til at arbejde med et Sonos lydsystem, så sæt det hele sammen i en romantisk scene.

Tjek slutresultatet:

Videoen ovenfor var ikke faked eller iscenesat - alt er muligt ved hjælp af Siri, og vejledningen nedenfor. Ingen jailbreak er påkrævet, selv om der er noget programmering, som jeg har leveret koden til.

Ting du skal bruge:

  • Hindbær Pi
  • iOS-enhed
  • Siri-kompatibel farvet belysning, såsom Philips Hue med et 2. generations hub eller vores DIY Wi-Fi Light
  • Sonos (eller anden afspilningsenhed med en HTTP API)
  • (Valgfrit) NodeMCU / ESP8266, relæ og stikkontakter; eller et kommercielt HomeKit-stik

Hvorfor er dette så kompliceret?

HomeKit, og styring af dine enheder via stemmekontrol er virkelig pænt. Desværre er det lukkede økosystem, som Apple er, HomeKit begrænset til en håndfuld enheder. Sonos er ikke en af ​​dem. Men alt er ikke tabt. Takket være nogle hårdtarbejdende hackere var HomeKit-protokollen for nylig omvendt konstrueret, og som det blev demonstreret i vores sidste projekt, kan du nu oprette dine egne falske HomeKit-enheder. Vi vil drage fordel af det.

Start med at følge vores DIY Wi-Fi-lysvejledning Sådan laver du et DIY-styret Wi-Fi-lys Sådan laver du et DIY-styret Wi-Fi-lys I denne vejledning skal du lære at oprette en Wi- Fi kontrollerbart lys, og styr det med Siri. Læs mere, fordi det kommer til at danne grundlaget for alt andet. Faktisk, hvis du ikke allerede har et Philips Hue belysningssystem, kan du gå videre og faktisk opbygge Wi-Fi lyset, der er beskrevet i denne vejledning.

Selvom du har et farvesystem, skal du gå videre og følge vejledningen, fordi du skal oprette falske HomeKit tilbehør til alt andet (kode nedenfor). Ved at fortsætte med denne vejledning, vil jeg antage, at du har HAP-NodeJS-serveren allerede kørende, og har med succes tilføjet et falsk lys og testet ud af serveren, selvom den ikke er forbundet med en egentlig smule DIY hardware.

Lav en afspilningsliste

Gå videre og opret en ny Sonos Playlist med navnet "Romantic". Det behøver ikke at være det samme navn, men du skal senere justere tilbehørskripterne, hvis du ændrer det. Jeg har tilføjet nogle Marvin Gaye og Sade-spor til min. Glat .

Dernæst, over på Raspberry Pi, der kører HAB-NodeJS (hvis du ikke ved, hvad jeg taler om, har du ikke læst Wi-Fi lys tutorialen. Gør det først), naviger til dit hjemmekatalog og skriv Følgende for at installere HTTP API til Sonos. Dette vil give os en webadresse, som vi kan pinge for at udløse bestemte handlinger på Sonos.

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 

Hvis du ser en besked om et sådant modul ikke fundet, skal du blot gøre en anden npm-installation og modulnavnet, og prøv derefter at starte npm igen. Det er muligt, jeg havde allerede nogle moduler installeret globalt fra andre projekter, og du skal muligvis installere mere. Forhåbentlig ser du noget som dette:

sonos-http-api arbejder

Tillykke med, du har nu en simpel HTTP API, du kan bruge til at udløse din Sonos. Læs dokumentationen for den fulde liste over kommandoer, men det format, vi er mest interesserede i, er:

 http: // [SERVER IP]: 5005 / [ROOM NAME] / [ACTION] 

eller som et specifikt eksempel:

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

Sagen ser ikke ud til at have betydning. % 20 er en webadressekodning af et mellemrumstegn, men du skal også kunne skrive en faktisk plads og din browser konverterer den automatisk. Kommandoen ovenfor udløser simpelthen den romantiske afspilningsliste til Master Bedroom-enheden. Brug pause- kommandoen til at stoppe det:

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

Desuden giver API'en os også en funktion, der kommer til at være meget praktisk til andre projekter: Evnen til at sige en bestemt erklæring, som en meddelelse, fortsæt derefter med at spille den aktuelle kø. Prøve:

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

Første gang du gør dette, får du en besked om at skulle registrere til en API-nøgle på VoiceRSS.org (op til 350 anmodninger om dagen er gratis). Når du er færdig med det, skriv:

 nano settings.json 

og indsæt i din nøgle til følgende eksempel:

 { "voicerss":"YOURAPIKEY" } 

Genstart serveren og ping webadressen igen. Efter et par sekunder skal du høre en dejlig engelsk stemme. Du kan ændre slutningen af ​​webadressen til en-us, hvis du foretrækker en amerikansk stemme. Neat! Helt irrelevant for dette projekt, men neat alligevel!

Endelig lad os få denne server til at starte igen, når Pi genstartes:

 sudo nano /etc/rc.local 

Tilføj en linje før exit 0 :

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

CTRL-X, Y for at gemme. Du kan se, at jeg kører dette sammen med OpenHAB, en DIY Bluetooth-tilstedeværelsesdetektor og HAP-NodeJS HomeKit-serveren. Du skal også have det kørende allerede, hvis du allerede har fulgt forudsætningen for Wi-Fi-lysvejledning.

tilføj til rc-local Gør en HomeKit-enhed til Sonos

Kernen i dette projekt er, at Sonos ikke kan styres af Siri, men vi kan tilføje en vis grad af kontrol ved at oprette en falsk HomeKit-enhed, der aktiverer en bestemt afspilningsliste, når vi tænder den - et falsk lys er den nemmeste måde at gøre dette på.

Naviger til din HAP-NodeJS / mappe først, og installer modulet "Request".

 sudo npm install request 

Så spring ned til tilbehør / mappen og tag min premade armatur med følgende enkle kommando:

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

Gør nogle ændringer, hvis du har brug for at - dette er indstillet til standard Sonos "Master Bedroom" -sted, så ændrer strengmesteren% 20bedroom mod koden, hvis du vil have det henvist til et andet rum. Da vi har svigtet at være et lys, sender det ikke kommandoen lysstyrke, selvom jeg på et tidspunkt opdaterer det for at håndtere volumen. Dette er den kodeblok, der gør det magiske:

 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"); }) } },  

Du kan se det overraskende simpelt: Når lyset modtager en setPowerOn-kommando fra HomeKit, kontrollerer den for at se, om værdien er 1 (eller sand), og som peger på Sonos HTTP API-url for at afspille denne afspilningsliste. Hvis det er noget andet (dvs. 0, falsk), sender den pause-kommandoen. Genstart din HAP-NodeJS-server, og fortsæt derefter over til en iOS-enhed og følg samme procedure som før for at tilføje dit falske "Romantic Playlist" -lys (du skal bruge parringskoden 031-45-154) .

Kontrollér, at din nye enhed fungerer, og fortsæt derefter. Hvis du har lyst til lidt programmering, kan du prøve at kortlægge lysstyrken i volumen (og del din kode i kommentarerne, tak!).

(Valgfrit) Fairy Lights og andre AC enheder

Det kan overraske dig at høre, at der ikke er nogen officielle HomeKit-feelygter, og jeg kunne heller ikke finde nogen HomeKit generiske stikkontakter, som jeg kunne godt lide udseendet / prisen på - så jeg slog sammen en DIY-enhed ved hjælp af en NodeMCU / ESP8266 dev board Arduino Killer: ESP8266 Mød Arduino Killer: ESP8266 Hvad hvis jeg fortalte dig et der er en Arduino-kompatibel dev board med indbygget Wi-Fi for mindre end $ 10? Nå er der. Læs mere, et relæ og en standard to-gangs stikkontakt. Jeg vil ikke detaljere hardwareen for meget, da du ikke bør lægge ting i stikkontakter, hvis du ikke er helt sikker på den slags ting, men jeg vil give dig min kode til NodeMCU-siden af ​​ting (forbinde relæudløser til pin D2 / GPIO4), og tilbehør til at gå med det.

nodemcu relæ

Ligesom Wi-Fi-lyset kommunikerer dette kommandoer på en MQTT-kanal ("bedroomplug"), så du skal ændre koden med din MQTT-mægleradresse (se del 2 i vores OpenHAB-guide om, hvordan du konfigurerer en MQTT mægler OpenHAB Beginners Guide Del 2: ZWave, MQTT, Regler og kortlægning OpenHAB Beginners Guide Del 2: ZWave, MQTT, Regler og diagrammer OpenHAB, open source home automation software, langt overstiger mulighederne for andre hjemmeautomatiseringssystemer på markedet - men det er ikke let at få oprettet. Faktisk kan det være ret frustrerende. Læs mere), skift kanalnavne, hvis du ønsker det, og selvfølgelig indtast dine egne Wi-Fi-detaljer.

Samler det hele

Endelig skal vi lave nogle "scener" ved hjælp af appen Elgato Eve eller din foretrukne HomeKit manager. I HomeKit parlance kan en scene bestå af et hvilket som helst antal tilbehør og kommandoer til disse tilbehør.

Du kan navngive en scene, uanset hvad du vil, og Siri vil være i stand til at matche det selv uden at sige "set scene" . Så jeg har lavet to scener: den ene hedder "børnene er i seng", og en anden "lad os blive alvorlige nu".

Den første afbryder et af tændlysene, den anden bliver lyserød og tændes derefter for den romantiske afspilningsliste og eventyrlysene. Sidstnævnte gør lysene hvide igen og pauser Sonos (dvs. deaktiverer det romantiske afspilningsliste tilbehør). Simples!

homekit scene skabelse

Jeg håber du har haft denne øvelse og kan virkelig se, hvordan vi kan udvide Siri-kontrollen til noget uden for mange problemer, takket være kraften i HAP-NodeJS. Er der noget, du gerne vil se nogle specielle Siri-handlinger til? Lad os vide i kommentarerne og fortælle os, hvordan du har brugt Siri til at kontrollere dit hjem.

In this article