Χθες σας παρουσιάσαμε πώς να δημιουργήσετε ένα DIY Wi-Fi φως Πώς να φτιάξετε ένα DIY Siri-Controlled Wi-Fi Light Πώς να κάνετε ένα DIY Siri-Controlled Wi-Fi Light Σε αυτόν τον οδηγό, θα μάθετε πώς να δημιουργήσετε ένα Wi-Fi ελεγχόμενο φως και τον έλεγχο με το Siri. Διαβάστε περισσότερα που θα μπορούσαν να ελέγχονται με το Siri. σήμερα πρόκειται να αξιοποιήσουμε αυτή τη γνώση για να καταστήσουμε το Siri να δουλέψει με ένα ηχητικό σύστημα Sonos και στη συνέχεια να το βάλει μαζί σε μια ρομαντική σκηνή.
Ελέγξτε το τελικό αποτέλεσμα:
Το παραπάνω βίντεο δεν ήταν παραπλανητικό ή δεν ήταν εφικτό - όλα είναι δυνατά χρησιμοποιώντας το Siri και τον παρακάτω οδηγό. Δεν απαιτείται jailbreak, αν και υπάρχει κάποιος προγραμματισμός, για τον οποίο έχω δώσει τον κώδικα.
Πράγματα που θα χρειαστείτε:
- Raspberry Pi
- iOS
- Έγχρωμο φωτισμό συμβατό με Siri, όπως η Philips Hue με διανομέα 2ης γενιάς ή το DIY Wi-fi Light
- Sonos (ή άλλη συσκευή αναπαραγωγής με API HTTP)
- (Προαιρετικό) NodeMCU / ESP8266, ρελέ και υποδοχές ρεύματος. ή ένα εμπορικό εξάρτημα υποδοχής HomeKit
Γιατί είναι αυτό τόσο περίπλοκο;
Το HomeKit και ο έλεγχος των συσκευών σας μέσω φωνητικού ελέγχου είναι πραγματικά τακτοποιημένο. Δυστυχώς, το κλειστό οικοσύστημα που είναι η Apple, το HomeKit περιορίζεται σε λίγες συσκευές. Ο Σονός δεν είναι ένας από αυτούς. Ωστόσο, όλα δεν χάνονται. Χάρη σε μερικούς εργαζόμενους χάκερ, το πρωτόκολλο HomeKit ανασχηματίστηκε πρόσφατα και όπως φάνηκε στο τελευταίο μας έργο, μπορείτε τώρα να δημιουργήσετε τις δικές σας ψεύτικες συσκευές HomeKit. Θα επωφεληθούμε από αυτό.
Ξεκινήστε ακολουθώντας το DIY Wi-Fi φως tutorial Πώς να κάνει ένα DIY Siri-ελεγχόμενο φως Wi-Fi Πώς να κάνει ένα DIY Siri-Controlled Wi-Fi Light Σε αυτόν τον οδηγό, θα μάθετε πώς να δημιουργήσετε ένα Wi- Fi και ελέγξτε το με το Siri. Διαβάστε περισσότερα, γιατί πρόκειται να αποτελέσει τη βάση για οτιδήποτε άλλο. Στην πραγματικότητα, εάν δεν διαθέτετε ήδη σύστημα φωτισμού Philips Hue, μπορείτε να προχωρήσετε και να δημιουργήσετε πραγματικά το φως Wi-Fi που περιγράφεται σε αυτό το σεμινάριο.
Ακόμα κι αν έχετε ένα σύστημα Hue, προχωρήστε και ακολουθήστε το σεμινάριο γιατί θα χρειαστεί να δημιουργήσετε ψεύτικα εξαρτήματα HomeKit για οτιδήποτε άλλο (τον κωδικό που παρέχεται παρακάτω). Συνεχίζοντας με αυτόν τον οδηγό, πρόκειται να υποθέσω ότι έχετε ήδη τρέξει το διακομιστή HAP-NodeJS και έχετε προσθέσει με επιτυχία ένα ψεύτικο φως και δοκιμάσετε το διακομιστή, ακόμη και αν δεν είναι συνδεδεμένο με ένα πραγματικό κομμάτι DIY σκεύη, εξαρτήματα.
Κάντε μια λίστα αναπαραγωγής
Συνεχίστε και δημιουργήστε μια νέα λίστα αναπαραγωγής Sonos που ονομάζεται "Ρομαντική". Δεν χρειάζεται να είναι ακριβώς το ίδιο όνομα, αλλά θα πρέπει αργότερα να προσαρμόσετε τα σενάρια των βοηθητικών εξαρτημάτων αν το αλλάξετε. Έχω προσθέσει μερικά κομμάτια Marvin Gaye και Sade στο δικό μου. Ομαλή .
Στη συνέχεια, πάνω στο Raspberry Pi που τρέχει HAB-NodeJS (αν δεν ξέρετε τι μιλάω, δεν έχετε διαβάσει το Wi-Fi φως tutorial. Κάντε αυτό πρώτα), πλοηγηθείτε στον οικείο κατάλογο και τον τύπο σας ακολουθήστε τα εξής για να εγκαταστήσετε το API HTTP για Sonos. Αυτό θα μας δώσει μια διεύθυνση URL ιστού που μπορούμε να χρησιμοποιήσουμε για να ενεργοποιήσουμε ορισμένες ενέργειες στο 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
Εάν δείτε ένα μήνυμα σχετικά με μια τέτοια ενότητα που δεν βρέθηκε, απλά κάντε μια άλλη εγκατάσταση npm και το όνομα της μονάδας, στη συνέχεια, δοκιμάστε npm εκκίνηση ξανά. Είναι πιθανό να είχα ήδη εγκατεστημένες ορισμένες λειτουργικές μονάδες παγκοσμίως από άλλα έργα και ίσως χρειαστεί να εγκαταστήσετε περισσότερα. Ας ελπίσουμε ότι θα δείτε κάτι τέτοιο:
Συγχαρητήρια, έχετε τώρα ένα απλό API HTTP που μπορείτε να χρησιμοποιήσετε για να ενεργοποιήσετε το Sonos σας. Ανατρέξτε στην τεκμηρίωση για την πλήρη λίστα των εντολών, αλλά η μορφή που μας ενδιαφέρει είναι:
http: // [IP SERVER]: 5005 / [ΟΝΟΜΑ ΔΩΜΑΤΙΟΥ] / [ΔΡΑΣΗ]
ή ως συγκεκριμένο παράδειγμα:
http://192.168.1.99:5005/master%20bedroom/playlist/romantic
Η υπόθεση δεν φαίνεται να έχει σημασία. Το% 20 είναι μια κωδικοποίηση URL ενός χαρακτήρα διαστήματος, αλλά θα πρέπει επίσης να μπορείτε να πληκτρολογείτε έναν πραγματικό χώρο και το πρόγραμμα περιήγησης θα το μετατρέπει αυτόματα. Η παραπάνω εντολή απλώς ενεργοποιεί τη ρομαντική λίστα αναπαραγωγής στη συσκευή Master Bedroom. Χρησιμοποιήστε την εντολή παύσης για να την σταματήσετε:
http://192.168.1.99:5005/master%20bedroom/pause
Εκτός από αυτό, το API μας δίνει επίσης μια λειτουργία που θα είναι πολύ βολική για άλλα έργα: η δυνατότητα να λέει μια συγκεκριμένη δήλωση, όπως μια ειδοποίηση, τότε να συνεχίσει να παίζει την τρέχουσα ουρά. Δοκιμάστε:
http://192.168.1.99:5005/master%20bedroom/say/make%20use%20of%20is%20awesome/en-gb
Την πρώτη φορά που θα κάνετε αυτό, θα λάβετε ένα μήνυμα σχετικά με την υποχρέωση εγγραφής σε ένα κλειδί API στο VoiceRSS.org (μέχρι και 350 αιτήματα ανά ημέρα είναι δωρεάν). Όταν τελειώσετε με αυτό, πληκτρολογήστε:
nano settings.json
και επικολλήστε το κλειδί σας στο ακόλουθο παράδειγμα:
{ "voicerss":"YOURAPIKEY" }
Επανεκκινήστε το διακομιστή και επαναφέρετε ξανά τη διεύθυνση URL. Μετά από λίγα δευτερόλεπτα, θα πρέπει να ακούσετε μια ευχάριστη αγγλική φωνή. Μπορείτε να αλλάξετε το τέλος της διεύθυνσης URL σε en-us εάν προτιμάτε μια αμερικανική φωνή. Καθαρός! Εντελώς άσχετο με αυτό το έργο, αλλά καθαρό ούτως ή άλλως!
Τέλος, ας αρχίσουμε ξανά αυτό το διακομιστή όταν επανεκκινηθεί το Pi:
sudo nano /etc/rc.local
Προσθέστε μια γραμμή πριν την έξοδο 0 :
sudo node /home/pi/sonos/server.js< /dev/null &
CTRL-X, Y για αποθήκευση. Μπορείτε να δείτε ότι τρέχω μαζί με το OpenHAB, έναν DIY Bluetooth ανιχνευτή παρουσίας και τον κεντρικό υπολογιστή HAP-NodeJS HomeKit - θα πρέπει επίσης να έχετε αυτό το τρέξιμο ήδη εάν ακολουθήσατε το προαπαιτούμενο εκπαιδευτικό πρόγραμμα φωτισμού Wi-Fi ήδη.
Κάνοντας μια συσκευή HomeKit για το Sonos
Η ουσία αυτού του έργου είναι ότι ο Sonos δεν μπορεί να ελεγχθεί από το Siri, ωστόσο μπορούμε να προσθέσουμε κάποιο βαθμό ελέγχου δημιουργώντας μια ψεύτικη συσκευή HomeKit που ενεργοποιεί μια συγκεκριμένη λίστα αναπαραγωγής όταν την ενεργοποιούμε - ένα πλαστό φως είναι ο ευκολότερος τρόπος για να γίνει αυτό.
Μεταβείτε πρώτα στον κατάλογο HAP-NodeJS / και εγκαταστήστε τη μονάδα "αιτήματος".
sudo npm install request
Στη συνέχεια, πηδώντας προς τα κάτω στον κατάλογο εξαρτημάτων / αρχείων και αρπάξτε το εξάρτημα προθέματός μου με την ακόλουθη απλή εντολή:
wget https://gist.githubusercontent.com/jamesabruce/72bd250fbcf054acaa25/raw/8272d4b9a4ef76db752cab2ddd9bdc47d09a65f1/Romantic_accessory.js
Πραγματοποιήστε κάποιες αλλαγές αν χρειαστεί - αυτό έχει οριστεί για την προεπιλεγμένη θέση Sonos "Master Bedroom", οπότε αλλάξτε το master string % 20bedroom προς την αρχή του κώδικα αν θέλετε να κατευθυνθείτε σε διαφορετικό δωμάτιο. Δεδομένου ότι έχουμε υποτιμήσει ότι είναι ένα φως, η αποστολή της εντολής φωτεινότητας δεν θα κάνει τίποτα, αν και σε κάποιο σημείο θα ενημερώσω ότι θα ασχοληθεί με τον όγκο. Αυτό είναι το μπλοκ κώδικα που κάνει τη μαγεία:
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"); }) } },
Μπορείτε να δείτε ότι είναι εκπληκτικά απλό: όταν το φως λαμβάνει μια εντολή setPowerOn από το HomeKit, ελέγχει εάν η τιμή είναι 1 (ή αληθής) και ποια είναι η θέση του ping του url Sonos HTTP API για την αναπαραγωγή αυτής της λίστας αναπαραγωγής. Εάν είναι οτιδήποτε άλλο (δηλ. 0, ψευδές), στέλνει την εντολή παύσης. Επανεκκινήστε τον διακομιστή HAP-NodeJS και, στη συνέχεια, κατευθυνθείτε ξανά σε μια συσκευή iOS και ακολουθήστε την ίδια διαδικασία όπως προηγουμένως για να προσθέσετε την ψεύτικη λάμψη "Romantic Playlist" (θα χρειαστείτε τον κωδικό ζευγαρώματος 031-45-154) .
Ελέγξτε ότι η καινούργια συσκευή σας λειτουργεί και, στη συνέχεια, προχωρήστε. Εάν νιώθετε λίγο προγραμματισμό, δοκιμάστε να αντιστοιχίσετε τις αλλαγές φωτεινότητας στην ένταση (και μοιραστείτε τον κωδικό σας στα σχόλια, παρακαλώ!).
(Προαιρετικά) φώτα νεράιδων και άλλες συσκευές AC
Μπορεί να σας εκπλήξει να μάθετε ότι δεν υπάρχουν καθόλου επίσημα φώτα νεράιδων HomeKit, ούτε θα μπορούσα να βρω οποιεσδήποτε γενικές ρευματοδότες HomeKit που μου άρεσε η εμφάνιση / τιμή του - γι 'αυτό χτύπησα μαζί ένα DIY χρησιμοποιώντας ένα NodeMCU / ESP8266 dev το Arduino Killer: ESP8266 Γνωρίστε τον Killer Arduino: ESP8266 Τι θα συμβεί αν σας έλεγα ότι υπάρχει ένας πίνακας Dev συμβατός με Arduino με ενσωματωμένο Wi-Fi για λιγότερο από $ 10; Λοιπόν, υπάρχει. Διαβάστε περισσότερα, ένα ρελέ και μια τυπική πρίζα δύο συστοιχιών. Δεν θα αναλύσω το υλικό πάρα πολύ, καθώς δεν θα έπρεπε να βάζετε τα πράγματα μέσα στις πρίζες, αν δεν είστε απόλυτα βέβαιοι με αυτά τα πράγματα, αλλά θα σας παράσχουμε τον κώδικα για την πλευρά του NodeMCU (συνδέστε το ενεργοποιήστε το ρελέ για να καρφώσετε το D2 / GPIO4) και το αξεσουάρ για να το πάτε.
Όπως και το φως Wi-Fi, αυτό μεταδίδει εντολές σε ένα κανάλι MQTT ("bedroomplug"), οπότε θα χρειαστεί να τροποποιήσετε τον κώδικα με τη διεύθυνση του μεσίτη MQTT (δείτε το μέρος 2 του οδηγού OpenHAB για τον τρόπο ρύθμισης ενός MQTT Μέρος 2: ZWave, MQTT, κανόνες και χαρτογράφηση Το OpenHAB, το λογισμικό ανοικτής πηγής οικιακού αυτοματισμού, ξεπερνά κατά πολύ τις δυνατότητες άλλων συστημάτων αυτοματοποίησης οικιακών συσκευών στην αγορά, αλλά δεν είναι εύκολο να εγκατασταθεί.Στην πραγματικότητα, μπορεί να είναι εντελώς απογοητευτικό.Διαβάστε περισσότερα), αλλάξτε τα ονόματα των καναλιών αν θέλετε και φυσικά εισάγετε τα δικά σας στοιχεία Wi-Fi.
Κάνοντας όλοι μαζί
Τέλος, θα κάνουμε κάποιες "σκηνές" χρησιμοποιώντας την εφαρμογή Elgato Eve ή τον προτιμώμενο διαχειριστή του HomeKit. Στο κείμενο του HomeKit, μια σκηνή μπορεί να αποτελείται από οποιοδήποτε αριθμό εξαρτημάτων και εντολών σε αυτά τα εξαρτήματα.
Μπορείτε να ονομάσετε μια σκηνή ό, τι θέλετε, και Siri θα είναι σε θέση να το ταιριάζει ακόμη και χωρίς να λέει "σκηνή σκηνής" . Έτσι, έκανα δύο σκηνές: ο ένας ονομάζεται "τα παιδιά είναι στο κρεβάτι", και ένα άλλο "ας γίνουμε σοβαροί τώρα".
Ο πρώτος απενεργοποιεί ένα από τα φώτα Hue, αλλάζει το άλλο σε ροζ χρώμα, στη συνέχεια ενεργοποιεί το ρομαντικό εξάρτημα αναπαραγωγής και τα φώτα νεράιδας. Το τελευταίο κάνει ξανά τα φώτα και παύει το Sonos (δηλ. Απενεργοποιεί το ρομαντικό εξάρτημα αναπαραγωγής). Simples!
Ελπίζω να απολαύσατε αυτό το σεμινάριο και να δείτε πώς μπορούμε να επεκτείνουμε τον έλεγχο της Siri σε οτιδήποτε χωρίς πολύ κόπο, χάρη στη δύναμη του HAP-NodeJS. Υπάρχει κάτι που θα θέλατε να δείτε μερικές ειδικές δράσεις του Siri; Ενημερώστε μας στα σχόλια και πείτε μας πώς χρησιμοποιείτε το Siri για να ελέγχετε το σπίτι σας.