Kako koristiti Siri za postavljanje scena za romantiku

  • Brian Curtis
  • 0
  • 5408
  • 5
Oglas

Jučer smo vam pokazali kako stvoriti DIY Wi-Fi svjetlo Kako napraviti DIY siri-kontrolirano Wi-Fi svjetlo Kako napraviti DIY siri-kontrolirano Wi-Fi svjetlo U ovom ćete vodiču naučiti kako kreirati Wi-Fi upravljanjem svjetla, a upravljajte ga Siri. koja bi se mogla kontrolirati Siri; danas ćemo nadograditi na tom znanju da bismo Siri radili i sa Sonos ozvučenjem, a zatim sve to zajedno stavili u romantičnu scenu.

Provjerite krajnji rezultat:

Gornji videozapis nije lažiran niti postavljen - sve je moguće pomoću Siri i vodiča u nastavku. Nije potrebno zatvora od zatvora, iako postoji program, za koji sam vam osigurao kod.

Stvari koje će vam trebati:

  • Raspberry Pi
  • iOS uređaj
  • Kompatibilna sa Siri osvjetljenjem, kao što je Philips Hue sa središnjim dijelom druge generacije ili naše DIY Wi-fi svjetlo
  • Sonos (ili drugi uređaj za reprodukciju s HTTP API-jem)
  • (Neobavezno) NodeMCU / ESP8266, relej i utičnice; ili komercijalni pribor za utičnicu HomeKit

Zašto je to tako komplicirano?

HomeKit i kontrola uređaja putem glasovne kontrole zaista je uredna. Nažalost, zatvoreni ekosustav kakav je Apple, HomeKit je ograničen na nekoliko uređaja. Sonos nije jedan od njih. Međutim, sve nije izgubljeno. Zahvaljujući nekim marljivim hakerima, nedavno je dizajniran protokol HomeKit obrnuto, a kao što je pokazano u našem posljednjem projektu, sada možete kreirati vlastite lažne HomeKit uređaje. Mi ćemo to iskoristiti.

Započnite pomoću našeg DIY svjetla za Wi-Fi Kako napraviti DIY siri-kontrolirano Wi-Fi svjetlo Kako napraviti DIY siri-kontrolirano Wi-Fi svjetlo U ovom ćete vodiču naučiti kako stvoriti Wi-Fi Fi kontrolirajuće svjetlo i upravljajte njime Siri. , jer će to biti osnova svega ostalog. U stvari, ako već nemate Philips Hue sustav rasvjete, možete nastaviti naprijed i zapravo izgraditi Wi-Fi svjetlo opisano u tom vodiču.

Čak i ako imate sustav Hue, idite naprijed i slijedite vodič jer ćete za sve ostalo trebati stvoriti lažne dodatke HomeKit (kôd naveden u nastavku). Nastavljajući s ovim vodičem, pretpostavljam da ste već pokrenuli HAP-NodeJS poslužitelj i uspješno dodali lažno svjetlo i testirali poslužitelj, čak i ako nije povezan sa stvarnim djelom DIY hardver.

Napravite popis za reprodukciju

Samo naprijed i stvorite novi Popis za reprodukciju Sonosa “romantičan”. Ne mora biti isti naziv, ali kasnije ćete morati prilagoditi skripte za dodatnu opremu ako ga promijenite. U svoje sam dodao pjesme Marvina Gayea i Sadea. Glatko, nesmetano.

Dalje, na Raspberry Pi koji izvodi HAB-NodeJS (ako ne znate o čemu govorim, niste pročitali Wi-Fi svjetlosni vodič. Učinite to prvo), dođite do kućnog direktorija i upišite sljedeće da biste instalirali HTTP API za Sonos. Ovo će nam dati web URL koji možemo pingirati kako bismo pokrenuli određene akcije na Sonosu.

git klon https://github.com/jishi/node-sonos-http-api.git sonos cd sonos npm instaliraj produkciju npm instaliraj basic-auth sonos-otkrivanje zahtijeva-fu zahtjev-obećanje node-statički async npm start

Ako vidite da poruka o takvom i takvom modulu nije pronađena, samo učinite drugu npm instalacija i naziv modula, a zatim pokušajte npm start opet. Moguće je da sam već imao neke module instalirane globalno iz drugih projekata, a možda ćete trebati instalirati više. Nadam se da ćete vidjeti nešto ovako:

Čestitamo, sada imate jednostavan HTTP API koji možete koristiti za pokretanje vašeg Sonosa. Pročitajte dokumentaciju za cijeli popis naredbi, ali format koji nas najviše zanima je:

http: // [SERVER IP]: 5005 / [NAZIV SOBE] / [AKCIJA]

ili kao poseban primjer:

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

Čini se da slučaj nije važan. % 20 je kodiranje URL-a svemirskog znaka, ali trebali biste moći upisati i stvarni prostor i vaš preglednik će ga automatski pretvoriti. Gornja naredba jednostavno aktivira popis za reprodukciju Romantični uređaj na uređaj Master Bedroom. Koristiti pauza naredba za zaustavljanje:

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

Na stranu, API nam daje i funkciju koja će biti vrlo korisna za druge projekte: mogućnost da izgovorite određenu izjavu, poput obavijesti, a zatim nastavite igrati trenutni red. Probati:

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

Prvi put kad to učinite, na VoiceRSS.org [No Longer Available] (do 350 zahtjeva dnevno nije besplatno) dobit ćete poruku da se morate registrirati na API ključ. Kada završite s tim, upišite:

nano postavke.json

i zalijepite u svoj ključ na sljedeći primjer:

"voicerss": "YOURAPIKEY"

Ponovno pokrenite poslužitelj i ponovno pingirajte URL. Nakon nekoliko sekundi trebali biste čuti ugodan engleski glas. Možete promijeniti kraj URL-a u hr-hr ako više volite američki glas. Uredan! Potpuno irelevantan za ovaj projekt, ali uredan ionako!

Na kraju, pokrenimo ovaj poslužitelj ponovno kad se ponovno pokrene Pi:

sudo nano /etc/rc.local

Dodajte liniju prije izlaz 0:

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

CTRL-X, Y za spremanje. Možete vidjeti da ovo pokrećem zajedno s OpenHAB-om, DIY Bluetooth detektorom prisutnosti i HAP-NodeJS HomeKit poslužiteljem - to biste trebali raditi i ako ste već slijedili preduvjet za Wi-Fi svjetlosni vodič.

Izrada HomeKit uređaja za Sonos

Srž ovog projekta je u tome što Sonos ne može kontrolirati Siri, no možemo dodati određeni stupanj kontrole tako što ćemo stvoriti lažni HomeKit uređaj koji aktivira određeni popis za reprodukciju kada ga uključimo - lažno svjetlo je najlakši način za to..

Dođite do svog HAP-NodeJS / prvo mapu i instalirajte “zahtjev” modul.

sudo npm zahtjev za instalaciju

Zatim skočite dolje pribor/ direktorijum i zgrabite moje prethodno pripremljeno učvršćenje sa sljedećom jednostavnom naredbom:

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

Ako trebate, napravite neke promjene - ovo je postavljeno za zadani Sonos “Glavna spavaća soba” lokaciju, pa promijenite niz majstor% 20bedroom prema početku koda ako želite da se usmjeri u drugu sobu. Budući da smo lažirali da budemo svjetlo, slanje naredbe svjetline zapravo neće ništa učiniti, mada ću je u nekom trenutku to ažurirati kako bih se bavio glasnoćom. Ovo je blok koda koji čini magiju:

setPowerOn: funkcija (uključeno) console.log ("Uključivanje svjetla% s!", uključeno? "uključeno": "isključeno"); FAKELIGHT.powerOn = uključen; console.log (o); if (on) request ('http: // localhost: 5005 / master% 20bedroom / playlist / romantic', funkcija (greška, odgovor, tijelo) console.log ("Poslao zahtjev za igranje");) else  zahtjev ('http: // localhost: 5005 / master% 20bedroom / pause', funkcija (greška, odgovor, tijelo) console.log ("Poslan zahtjev za pauzu");), 

Možete vidjeti da je iznenađujuće jednostavno: kad svjetlo primi naredbu setPowerOn od HomeKita, on provjerava je li vrijednost 1 (ili istina) i koja točka upućuje URL Sonos HTTP API-ja da bi reproducirao taj popis za reprodukciju. Ako je išta drugo (tj. 0, lažno), šalje naredbu pause. Ponovo pokrenite HAP-NodeJS poslužitelj, a zatim prijeđite na iOS uređaj i slijedite isti postupak kao prije, da biste dodali lažni “Romantični popis za reprodukciju” svjetlo (trebat će vam kôd za uparivanje 031-45-154).

Provjerite radi li vaš novi uređaj i krenite dalje. Ako se osjećate pomalo u programiranju, pokušajte preslikati promjene svjetline u glasnoću (i podijelite kôd u komentarima, molim vas!).

(Neobavezno) Bajke i ostale izmjenične uređaje

Možda će vas iznenaditi saznanje da ne postoje službena kućna svjetla HomeKit, niti sam mogao pronaći bilo koje HomeKit generičke utičnice koje su mi se svidjele po izgledu / cijeni - pa sam spojio DIY jedan pomoću ploče za NodeMCU / ESP8266 Arduino ubojica: ESP8266 Upoznajte Arduino ubojicu: ESP8266 Što ako vam kažem da postoji Arduino kompatibilna dev ploča s ugrađenim Wi-Fi-jem za manje od 10 dolara? Pa, postoji. , relej i standardna utičnica za dvije bande. Neću detaljno opisivati ​​hardver jer ne biste trebali stavljati stvari u utičnice ako niste potpuno sigurni u takve stvari, ali dostavit ću vam svoj kod za NodeMCU stranu stvari (povežite relej okidača za spajanje D2 / GPIO4) i dodatnog pribora uz njega.

Kao i lampica Wi-Fi, ova komunicira naredbe na MQTT kanalu (“bedroomplug”), tako da ćete trebati izmijeniti kôd s adresom vašeg MQTT brokera (pogledajte 2. dio našeg vodiča za OpenHAB o tome kako postaviti MQTT broker OpenHAB vodič za početnike 2. dio: ZWave, MQTT, pravila i crtanje OpenHAB-ovog vodiča za početnike Dio 2: ZWave, MQTT, Pravila i grafikoni OpenHAB, softver za automatizaciju kućnih automata s otvorenim kodom daleko nadmašuje mogućnosti ostalih sustava za automatizaciju domova na tržištu - ali to nije lako postaviti. U stvari, to može biti potpuno frustrirajuće.) , po želji promijenite nazive kanala i, naravno, unesite svoje Wi-Fi detalje.

Stavljajući sve zajedno

Napokon ćemo napraviti neke “scene” pomoću aplikacije Elgato Eve ili vašeg preferiranog HomeKit menadžera. U Parlamentu HomeKit, scena se može sastojati od bilo kojeg broja dodataka i naredbi za tu dodatnu opremu.

Možete imenovati scenu kako god želite i Siri će joj to moći uskladiti čak i bez riječi “postavljena scena”. Dakle, napravio sam dvije scene: jedna se zove “djeca su u krevetu”, i drugi “idemo ozbiljno sada”.

Prvo isključuje jedno od Hue svjetla, drugo pretvara u ružičasto, a zatim uključuje romantični pribor za playlistu i vilinska svjetla. Ovo posljednje svjetla ponovno postaje bijelo i zaustavlja Sonos (tj. Isključuje romantičnu dodatnu listu). simples!

Nadam se da ste uživali u ovom udžbeniku i da stvarno možete vidjeti kako možemo proširiti kontrolu nad Siri bez ikakvih problema, zahvaljujući snazi ​​HAP-NodeJS. Želite li vidjeti neke posebne Siri akcije? Javite nam u komentarima i recite nam kako ste koristili Siri za kontrolu svog doma.




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.