Come usare Siri per impostare la scena per Romance

Come usare Siri per impostare la scena per Romance / Fai da te

Ieri ti abbiamo mostrato come creare una luce Wi-Fi fai-da-te Come fare una luce Wi-Fi controllata da Siri fai-da-te Come fare una luce Wi-Fi con controllo Siri fai-da-te In questa guida, imparerai come creare una luce controllabile Wi-Fi e controlla con Siri. Leggi altro che potrebbe essere controllato con Siri; oggi costruiremo questa conoscenza per far sì che Siri lavori anche con un sistema sonoro Sonos, quindi metti tutto insieme in una scena romantica.

Controlla il risultato finale:

Il video qui sopra non è stato simulato o messo in scena: tutto è possibile usando Siri e la guida qui sotto. Non è richiesto alcun jailbreak, anche se c'è un po 'di programmazione, per cui ho fornito il codice.

Cose che ti serviranno:

  • Raspberry Pi
  • dispositivo iOS
  • Illuminazione colorata compatibile con Siri, come Philips Hue con un mozzo di seconda generazione, o la nostra luce Wi-Fi fai-da-te
  • Sonos (o altro dispositivo di riproduzione con un'API HTTP)
  • (Opzionale) NodeMCU / ESP8266, relè e prese di corrente; o un accessorio commerciale per prese di corrente HomeKit

Perché è così complicato?

HomeKit e controllare i tuoi dispositivi tramite il controllo vocale è davvero accurato. Sfortunatamente, l'ecosistema chiuso di Apple, HomeKit è limitato a una manciata di dispositivi. Sonos non è uno di loro. Tuttavia, non tutto è perduto. Grazie ad alcuni hacker laboriosi, il protocollo HomeKit è stato recentemente reingegnerizzato e, come dimostrato nel nostro ultimo progetto, ora puoi creare i tuoi falsi dispositivi HomeKit. Ne approfitteremo.

Inizia seguendo il nostro tutorial sulla luce Wi-Fi fai-da-te. Come realizzare una luce Wi-Fi controllata da Siri fai-da-te Come realizzare una luce Wi-Fi controllata da Siri fai-da-te. In questa guida imparerai come creare un Wi-Fi Luce controllabile e controllabile con Siri. Per saperne di più, perché questo costituirà la base di tutto il resto. Infatti, se non disponi già di un sistema di illuminazione Philips Hue, puoi procedere e costruire effettivamente la luce Wi-Fi descritta in questo tutorial.

Anche se disponi di un sistema Hue, continua e segui il tutorial perché dovrai creare accessori HomeKit falsi per tutto il resto (codice fornito di seguito). Continuando con questa guida, assumerò che tu abbia già il server HAP-NodeJS già in esecuzione, e abbia aggiunto con successo una luce fasulla e testato il server, anche se non è collegato a un vero pezzo di DIY hardware.

Crea una playlist

Vai avanti e crea una nuova Playlist Sonos chiamata “Romantico”. Non ha bisogno di essere esattamente lo stesso nome, ma dovrai modificare gli script accessori in seguito se lo cambierai. Ho aggiunto alcuni brani di Marvin Gaye e Sade ai miei. Liscio.

Successivamente, sul Raspberry Pi è in esecuzione HAB-NodeJS (se non sai di cosa sto parlando, non hai letto il tutorial sulla luce Wi-Fi., passare alla directory home e digitare quanto segue per installare l'API HTTP per Sonos. Questo ci fornirà un URL Web che possiamo eseguire il ping per attivare determinate azioni su Sonos.

git clone https://github.com/jishi/node-sonos-http-api.git sonos cd sonos npm installazione produzione npm installazione basic-auth sonos-discovery require-fu richiesta-promessa nodo-statico async npm start

Se vedi un messaggio su tale e tale modulo non trovato, fallo un altro installazione di npm e il nome del modulo, quindi prova inizio di npm ancora. È possibile che alcuni moduli siano già stati installati a livello globale da altri progetti e potrebbe essere necessario installarne altri. Spero che vedrai qualcosa di simile a questo:

Congratulazioni, ora hai una semplice API HTTP che puoi utilizzare per attivare Sonos. Leggi sulla documentazione per l'elenco completo dei comandi, ma il formato che ci interessa di più è:

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

o come esempio specifico:

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

Il caso non sembra avere importanza. Il% 20 è una codifica URL di un carattere spazio, ma dovresti essere in grado di digitare anche uno spazio reale e il tuo browser lo convertirà automaticamente. Il comando sopra fa semplicemente scattare la playlist Romantica sul dispositivo della camera da letto principale. Utilizzare il pausa comando per fermarlo:

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

A parte questo, l'API ci fornisce anche una funzione che sarà davvero utile per altri progetti: la possibilità di pronunciare una dichiarazione specifica, come una notifica, quindi continuare a riprodurre la coda corrente. Provare:

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

La prima volta che lo fai, riceverai un messaggio su come registrarti a una chiave API su VoiceRSS.org (fino a 350 richieste al giorno gratuite). Quando hai finito, digita:

nano settings.json

e incolla la tua chiave nell'esempio seguente:

"voicers": "YOURAPIKEY"

Riavvia il server e esegui nuovamente il ping dell'URL. Dopo pochi secondi, dovresti sentire una deliziosa voce inglese. Puoi cambiare la fine dell'URL in it-it se preferisci una voce americana. Neat! Totalmente irrilevante per questo progetto, ma comunque pulito!

Infine, facciamo riavviare il server quando viene riavviato il Pi:

sudo nano /etc/rc.local

Aggiungi una linea prima del uscita 0:

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

CTRL-X, Y per salvare. Puoi vedere che sto eseguendo questa operazione insieme a OpenHAB, un rilevatore di presenza Bluetooth fai-da-te e al server HomeKit HAP-NodeJS - dovresti averlo già eseguito se hai già seguito il tutorial sulla luce Wi-Fi dei prerequisiti.

Creare un dispositivo HomeKit per Sonos

Il punto cruciale di questo progetto è che Sonos non può essere controllato da Siri, tuttavia possiamo aggiungere un certo grado di controllo creando un falso dispositivo HomeKit che attiva una particolare playlist quando la accendiamo - una luce fasulla è il modo più semplice per farlo.

Vai al tuo HAP-NodeJS / prima la directory e installa il file “richiesta” modulo.

sudo npm richiesta di installazione

Quindi saltare giù al Accessori/ directory e prendere il mio apparecchio premade con il seguente semplice comando:

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

Apporta alcune modifiche se necessario: è impostato per il Sonos predefinito “Camera da letto principale” posizione, quindi cambiare la stringa maestro% 20bedroom verso l'inizio del codice se si desidera che venga indirizzato a una stanza diversa. Dato che abbiamo simulato una luce, l'invio del comando di luminosità in realtà non farà nulla, anche se a un certo punto lo aggiornerò per gestire il volume. Questo è il blocco di codice che fa la magia:

setPowerOn: function (on) console.log ("Accensione della luce% s!", acceso? "on": "off"); FAKELIGHT.powerOn = on; console.log (a); if (on) request ('http: // localhost: 5005 / master% 20bedroom / playlist / romantic', function (error, response, body) console.log ("richiesta di riproduzione inviata");) else  richiesta ('http: // localhost: 5005 / master% 20bedroom / pause', funzione (errore, risposta, corpo) console.log ("richiesta di risposta inviata");), 

Puoi vedere che è sorprendentemente semplice: quando la luce riceve un comando setPowerOn da HomeKit, controlla se il valore è 1 (o vero), e in quale punto esegue il ping dell'URL dell'API di Sonos HTTP per riprodurre quella playlist. Se è qualcos'altro (cioè 0, falso), invia il comando di pausa. Riavvia il tuo server HAP-NodeJS, quindi vai su un dispositivo iOS e segui la stessa procedura di prima per aggiungere il tuo falso “Playlist romantica” luce (avrai bisogno del codice di abbinamento 031-45-154).

Verifica che il nuovo dispositivo funzioni, quindi prosegui. Se hai voglia di programmare un po ', prova a mappare le modifiche della luminosità al volume (e condividi il tuo codice nei commenti, per favore!).

(Opzionale) Luci natalizie e altri dispositivi CA.

Potrebbe sorprendervi sapere che non ci sono fari ufficiali di HomeKit, né potrei trovare alcuna presa di corrente generica di HomeKit che mi è piaciuta l'aspetto / prezzo - così ho messo insieme una unità fai-da-te utilizzando una scheda di sviluppo NodeMCU / ESP8266 the Arduino Killer: ESP8266 Incontra l'Arduino Killer: ESP8266 E se ti dicessi che c'è una scheda di sviluppo compatibile con Arduino con Wi-Fi integrato a meno di $ 10? Bene, c'è. Ulteriori informazioni, un relè e una presa di corrente standard a due gang. Non dettaglio l'hardware troppo perché non dovresti inserire le cose nelle prese se non sei totalmente sicuro di quel genere di cose, ma ti fornirò il mio codice per il lato NodeMCU delle cose (connetti il relè trigger per pin D2 / GPIO4), e l'accessorio per andare con esso.

Come la luce Wi-Fi, questo comunica i comandi su un canale MQTT (“bedroomplug”), quindi dovrai modificare il codice con l'indirizzo del broker MQTT (consulta la parte 2 della nostra guida OpenHAB su come impostare un broker MQTT Guida per principianti OpenHAB Parte 2: ZWave, MQTT, regole e grafici OpenHAB Guida per principianti Parte 2: ZWave, MQTT, regole e grafici OpenHAB, il software di domotica open source, supera di gran lunga le capacità di altri sistemi domotici sul mercato, ma non è facile da installare, anzi, può essere addirittura frustrante. Altro), cambia i nomi dei canali se lo desideri e, naturalmente, inserisci i tuoi dettagli Wi-Fi.

Mettere tutto insieme

Alla fine, ne faremo alcuni “scene” utilizzando l'app Elgato Eve o il tuo gestore HomeKit preferito. Nel linguaggio di HomeKit, una scena può consistere in un numero qualsiasi di accessori e comandi per quegli accessori.

Puoi nominare una scena come preferisci e Siri sarà in grado di eguagliarla anche senza dire “imposta la scena”. Quindi ho realizzato due scene: una chiamata “i bambini sono a letto”, e un altro “diventiamo seri ora”.

Il primo spegne una delle luci della tonalità, trasforma l'altra in rosa, quindi accende l'accessorio della playlist romantica e le luci delle fate. Quest'ultimo rende nuovamente bianche le luci e mette in pausa il Sonos (ovvero, spegne l'accessorio della playlist romantica). semplici!

Spero che questo tutorial ti sia piaciuto e puoi davvero vedere come estendere il controllo di Siri a qualsiasi cosa senza troppi problemi, grazie alla potenza di HAP-NodeJS. C'è qualcosa per cui vorresti vedere alcune azioni speciali di Siri? Fateci sapere nei commenti e dicci come hai usato Siri per controllare la tua casa.

Scopri di più su: Raspberry Pi, Siri, Sonos.