Så här använder du Siri för att ställa in scenen för romantik

Igår visade vi dig hur man skapar ett Wi-Fi-ljus; idag ska vi bygga vidare på den kunskapen för att göra Siri till jobbet med Sonos, sedan sätta den ihop i en romantisk scen.

Igår visade vi dig hur man skapar ett Wi-Fi-ljus;  idag ska vi bygga vidare på den kunskapen för att göra Siri till jobbet med Sonos, sedan sätta den ihop i en romantisk scen.
Annons

Igår visade vi dig hur man skapar ett DIY Wi-Fi-ljus. Hur man gör ett DIY-styrt Wi-Fi-ljus. Hur man gör ett DIY-styrt Wi-Fi-ljus I den här guiden kommer du att lära dig hur man skapar ett Wi-Fi kontrollerbart ljus och styra det med Siri. Läs mer som kan kontrolleras med Siri; idag ska vi bygga vidare på den kunskapen för att Siri ska kunna arbeta med ett Sonos ljudsystem och sedan sätta allt ihop i en romantisk scen.

Kolla in slutresultatet:

Videon ovan var inte fakad eller iscensatt - allt är möjligt med hjälp av Siri och guiden nedan. Ingen jailbreak krävs, men det finns viss programmering, för vilken jag har angivit koden.

Saker du behöver:

  • Raspberry Pi
  • iOS-enhet
  • Siri-kompatibel färgbelysning, till exempel Philips Hue med en 2: a generations nav eller vår DIY Wi-Fi Light
  • Sonos (eller annan uppspelningsenhet med ett HTTP API)
  • (Valfritt) NodeMCU / ESP8266, relä och eluttag; eller ett kommersiellt HomeKit-uttag

Varför är det så komplicerat?

HomeKit, och kontrollerar dina enheter via röstkontroll är verkligen snyggt. Tyvärr är det stängda ekosystemet som Apple är HomeKit begränsat till en handfull enheter. Sonos är inte en av dem. Men allt är inte förlorat. Tack vare några hårt arbetande hackare, var HomeKit-protokollet nyligen ombyggt, och som visat i vårt senaste projekt kan du nu skapa egna falska HomeKit-enheter. Vi kommer att dra nytta av det.

Börja med att följa vår DIY Wi-Fi-ljusstudie. Hur man gör ett DIY-styrt Wi-Fi-ljus. Hur man gör ett DIY-styrt Wi-Fi-ljus I den här guiden kommer du att lära dig hur du skapar ett Wi- Fi kontrollerbart ljus, och kontrollera det med Siri. Läs mer, för det kommer att ligga till grund för allt annat. Om du inte redan har ett Philips Hue belysningssystem, kan du faktiskt bygga upp Wi-Fi-lampan som beskrivs i den handledningen.

Även om du har ett nyanssystem, fortsätt och följ handledningen eftersom du måste skapa falska HomeKit-tillbehör för allt annat (kod som anges nedan). Genom att fortsätta med den här guiden kommer jag att anta att du har HAP-NodeJS-servern redan igång och har framgångsrikt lagt till ett falskt ljus och testat ut servern, även om den inte är kopplad till en verklig bit av DIY hårdvara.

Gör en spellista

Gå vidare och skapa en ny Sonos-spellista med namnet "Romantic". Det behöver inte vara exakt samma namn, men du måste justera åtkomstskript senare om du ändrar det. Jag har lagt till några Marvin Gaye och Sade spår till min. Smidig .

Därefter, över på Raspberry Pi som kör HAB-NodeJS (om du inte vet vad jag pratar om, läste du inte Wi-Fi-ljushandledningen. Gör det först), navigera till din hemkatalog och skriv Följande för att installera HTTP API för Sonos. Detta kommer att ge oss en webbadress som vi kan pinga för att utlösa vissa åtgärder 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 

Om du ser ett meddelande om en sådan modul hittades inte, gör bara en annan npm-installation och modulnamnet, och försök sedan starta igen. Det är möjligt att jag redan hade några moduler installerade globalt från andra projekt, och du kanske behöver installera mer. Förhoppningsvis ser du något så här:

sonos-http-api arbetar

Grattis, du har nu ett enkelt HTTP API som du kan använda för att utlösa din Sonos. Läs igenom dokumentationen för hela listan med kommandon, men det format vi är mest intresserade av är:

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

eller som ett speciellt exempel:

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

Fallet verkar inte vara så viktigt. % 20 är en URL-kodning av en mellanslag, men du borde kunna skriva ett faktiskt utrymme också, och din webbläsare konverterar den automatiskt. Kommandot ovan utlöser bara den romantiska spellistan till sovrummet. Använd pauskommandot för att stoppa det:

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

Dessutom ger API-en oss en funktion som kommer att bli väldigt praktisk för andra projekt: möjligheten att säga ett specifikt uttalande, som en anmälan, fortsätt sedan spela den aktuella köen. Prova:

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

Första gången du gör det får du ett meddelande om att du måste registrera dig på en API-nyckel på VoiceRSS.org (upp till 350 förfrågningar per dag är gratis). När du är klar med det, skriv:

 nano settings.json 

och klistra in i nyckeln till följande exempel:

 { "voicerss":"YOURAPIKEY" } 

Starta om servern och pinga URL-adressen igen. Efter några sekunder borde du höra en härlig engelsk röst. Du kan ändra slutet på webbadressen till en-us om du föredrar en amerikansk röst. Propert! Helt irrelevant för detta projekt, men snyggt ändå!

Till sist, låt oss göra den här servern igen när Pi startas om:

 sudo nano /etc/rc.local 

Lägg till en rad före utgången 0 :

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

CTRL-X, Y för att spara. Du kan se att jag kör detta tillsammans med OpenHAB, en DIY Bluetooth-närvaro detektor, och HAP-NodeJS HomeKit-servern - du borde också ha det redan om du följde den nödvändiga Wi-Fi-självstudiet redan.

lägg till rc-local Gör en HomeKit-enhet för Sonos

Kärnpunkten i detta projekt är att Sonos inte kan styras av Siri, men vi kan lägga till viss grad av kontroll genom att skapa en falsk HomeKit-enhet som aktiverar en viss spellista när vi slår på den - ett falskt ljus är det enklaste sättet att göra detta.

Navigera till din HAP-NodeJS / katalog först och installera "begäran" -modulen.

 sudo npm install request 

Hoppa sedan ner till tillbehöret / katalogen och ta tag i min premade armatur med följande enkla kommando:

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

Gör några ändringar om du behöver - det här är inställt på standard Sonos "Master Bedroom" -plats, så ändra strängmästaren% 20bäddsrum mot kodens början om du vill att den ska riktas till ett annat rum. Eftersom vi har misslyckats som ett ljus, skickar kommandot ljusstyrka inte någonting, men vid något tillfälle uppdaterar jag det för att hantera volymen. Detta är kodblocket som gör det magiska:

 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 är förvånansvärt enkelt: när ljuset mottar ett setPowerOn-kommando från HomeKit, kontrollerar det om värdet är 1 (eller sant) och vilket pekar det pekar på Sonos HTTP API-url för att spela den spellistan. Om det är något annat (dvs 0, falskt), skickar det pauskommandot. Starta om din HAP-NodeJS-server och gå vidare till en iOS-enhet och följ samma procedur som tidigare för att lägga till ditt falska "Romantic Playlist" -lampa (du behöver parningskoden 031-45-154) .

Kontrollera att din nya enhet fungerar och fortsätt sedan. Om du känner dig lite programmerad, försök att kartlägga ljusstyrkan ändras till volymen (och dela din kod i kommentarerna, tack!).

(Valfritt) Fairy Lights och andra AC-enheter

Det kan överraska dig att lära dig att det inte finns några officiella HomeKit-ljusljus, och jag kunde inte hitta några HomeKit generiska strömuttag som jag gillade utseendet / priset på - så jag slog samman en DIY-enhet med en NodeMCU / ESP8266 dev-styrelse Meet Arduino Killer: ESP8266 Möt Arduino Killer: ESP8266 Vad händer om jag sa till dig att det finns en Arduino-kompatibel dev-kort med inbyggd Wi-Fi för mindre än $ 10? Jo, det finns det. Läs mer, ett relä och en standard tvåfaldig strömuttag. Jag kommer inte att detaljera hårdvaran för mycket, eftersom du inte borde sätta saker i stickkontakter om du inte är helt säker på den typen av saker, men jag kommer att förse dig med min kod för NodeMCU-sidan av saker (anslut den relä utlösare till stift D2 / GPIO4) och tillbehöret att gå med det.

nodemcu-relä

Liksom Wi-Fi-ljuset kommunicerar kommandon på en MQTT-kanal ("bedroomplug"), så du måste ändra koden med din MQTT-mäklareadress (kolla in del 2 i vår OpenHAB-guide om hur du ställer in en MQTT mäklare OpenHAB Beginners Guide Del 2: ZWave, MQTT, Regler och kartläggning OpenHAB Beginners Guide Del 2: ZWave, MQTT, Regler och kartläggning OpenHAB, open source hemautomationsprogramvara, överstiger möjligheterna för andra hemautomatiseringssystem på marknaden - men Det är inte lätt att få igång. Det kan faktiskt vara frustrerande. Läs mer), ändra kanalnamnen om du vill, och självklart skriv in dina egna Wi-Fi-detaljer.

Få alltid att falla på plats

Slutligen ska vi göra några "scener" med hjälp av Elgato Eve-appen, eller din favorit HomeKit-chef. I HomeKit parlance kan en scen bestå av ett antal tillbehör och kommandon till dessa tillbehör.

Du kan namnge en scen oavsett vad du vill, och Siri kommer att kunna matcha det även utan att säga "set scene" . Så jag har gjort två scener: en som heter "barnen är i sängen" och en annan "låt oss bli allvarliga nu".

Den förstnämnda stänger av ett av nyanslysen, vänder den andra till rosa och slår sedan på det romantiska spellistortillbehöret och feiljuset. Den senare gör lamporna vita igen och pausar Sonos (dvs stänger av det romantiska spellista-tillbehöret). Simples!

homekit scen skapande

Jag hoppas att du har haft den här handledningen och kan verkligen se hur vi kan utöka Siri-kontrollen till allt utan alltför mycket besvär, tack vare kraften hos HAP-NodeJS. Finns det något du vill se några speciella Siri-åtgärder för? Låt oss veta i kommentarerna och berätta hur du har använt Siri för att styra ditt hem.

In this article