Créez un appareil intelligent avec Pilight et HomeKit: 14 étapes

Créez un appareil intelligent avec Pilight et HomeKit: 14 étapes

Table des matières:

Anonim

Salut! Dans cet Instructable, vous allez apprendre à transformer 5 appareils stupides en appareils intelligents, le tout pour le prix d'un commutateur intelligent commercial unique. Prêt? Nous commencerons bientôt, mais d'abord …

QU'EST-CE QUE C'EST?

Ce projet vise à aider tout le monde à construire facilement une maison intelligente. Il utilise Pilight et un serveur HomeKit écrit en NodeJS.

POURQUOI DIY?

Le bricolage est une solution amusante à tout, et le plaisir de le faire seul en vaut la peine, à mon avis.

Vous économiserez également une somme d'argent ridicule, ce qui est également un avantage.

Provisions:

Étape 1: Trouvez un périphérique stupide!

Cela peut sembler simple, mais ce n’est pas toujours facile. Un appareil muet doit répondre aux critères suivants:

1. Il doit avoir une position allumée et une position éteinte (un ordinateur avec un bouton "On / Off" ne fonctionnera pas puisqu'il s'agit du même commutateur, mais une lampe avec un commutateur "On / Off" le fera!)

2. Il doit être rendu plus utile avec la possibilité de contrôler avec votre téléphone, pas moins!

3. Il ne faut PAS agacer vos voisins si vous l’allumez:)

4. IL DOIT ÊTRE VRAIMENT IMPRESSIONNANT LORSQUE VOUS MONTREZ AUX PERSONNES, VOUS POUVEZ COMMANDER VOS ÉCLAIRAGES AVEC VOTRE TÉLÉPHONE. Sérieusement. C'est un must.

Donc, en tant que TL; DR: Tout ce qui peut rester allumé avec un interrupteur ou un cadran fonctionnera.

Étape 2: matériel / matériaux

Voici vos matériaux …

BreadBoard enfichable sans soudure, 830 points d'attache, 2 couloirs d'alimentation, 200PTS, 16,5 x 5,4 x 0,85 cm (10 $, mais en vente au prix de 2,80 $ au 25/03/2016. Vous pouvez l'ignorer si vous avez déjà une planche à pain.)

50 fils de liaison PCS 200 mm M / F mâle-à-femme (12 $, mais en vente au prix de 3,15 $ US / expédition à partir du 25/03/2016. Vous pouvez l'ignorer si vous avez déjà des câbles de connexion.)

Commutateur de prise de courant électrique à télécommande sans fil Etekcity pour appareils ménagers (5Rx-2Tx) (39,98 $, en vente au prix de 29,98 $ le 25/03/2016. Si vous possédez déjà certains commutateurs pouvant être contrôlés par une télécommande RF, vous pouvez passer cette option, Mais si vous le faites, sa compatibilité ne sera pas garantie. Je doute que certaines de ces erreurs traînent … Si vous le faites, utilisez-le à l'avance, mais assurez-vous qu'il corresponde à la fréquence de l'émetteur / récepteur! ! JE VOUS RECOMMANDE FORTEMENT D'OBTENIR CECI SI VOUS N'ÊTES PAS SÛR.)

433mhz Rf Transmitter & Receiver Kit pour Raspberry Pi (7,91 $), je ne pourrais pas trouver une meilleure offre, n'hésitez pas à magasiner! Je doute que vous en ayez un qui traîne … si vous y allez, utilisez-le, mais assurez-vous cela correspond à la fréquence des points de vente que vous achetez! C’est un must! Je vous le recommande vivement de l’obtenir si vous n’êtes pas sûr.)

Le cœur du projet: un Raspberry Pi B + (devrait fonctionner avec n'importe quel Raspberry Pi! Vous en avez probablement un en usage ou traînant, mettons-le à profit!)

Vous aurez également besoin d’un câble micro usb, d’une carte SD, de type en fonction du modèle Pi que vous utilisez et d’un dongle USB WiFi si vous avez besoin d’une connexion sans fil.

Personnellement, j’avais déjà un Raspberry Pi … j’avais un câble micro usb … j’avais une carte SD et un dongle WiFi.

Donc, le prix de ce projet était pour moi $43.84, hors taxe. (UNE unique (1) Le commutateur Belkin Wemo coûte 49,99 $, soit 6,15 $ de plus que le CINQ commutateurs, nous allons construire.) Donc, nous payons $8.77par commutateur lorsque nous construisons, tandis que si nous achetions un Wemo, nous payons 49,99 $ par commutateur.

Le prix total du projet varie en fonction de ce que vous avez, mais les articles pour lesquels j'ai indiqué les prix sont les seuls que vous n'avez probablement pas.

Pour ce tutoriel, un iPhone est le meilleur moyen de contrôler vos appareils.

Étape 3: Matériel / Configuration

Avant de commencer à télécharger des programmes, nous devons configurer notre matériel.

Nous devons câbler:

RECEPTEUR -> FRAMBOISE PI

TRANSMETTEUR -> FRAMBOISE PI

Étape 4: Commutateurs à distance / Configuration

Cette étape est assez simple: les commutateurs sont fournis avec 2 télécommandes et les 2 télécommandes avec 2 piles, une pour chaque télécommande.

La seule chose à faire est de mettre une pile dans l’une des télécommandes. Nous y reviendrons plus tard, alors ne le perdez pas!

Étape 5: Logiciel / Configuration - Noeud

Nous allons installer Node via adafruit.

Ce tutoriel suppose que vous avez déjà installé Raspbian sur votre Raspberry Pi et que vous savez comment utiliser SSH dessus. Si vous ne savez pas comment faire cela, visitez ce lien.

SSH dans votre Pi et exécutez cette commande pour ajouter le référentiel d’adafruit, qui contient le nœud:

curl -sLS http://apt.adafruit.com/add | sudo bash

Ensuite, installez réellement Node:

sudo apt-get install node

Enfin, vérifiez qu’il est correctement installé en exécutant:

noeud -v

Si tout va bien, continuons!

Étape 6: Logiciel / Configuration - Dépendances

Faites-vous superutilisateur en lançant:

sudo su

Installez des dépendances:

apt-get installez python-dev python-pip libavahi-compat-libdnssd-dev

Enfin, installez certains modules nécessaires à ce noeud:

npm install -g node-gyp && npm installer python-shell && npm installer node-persist && npm installer srp && npm installer mdns && npm installer ed25519 && npm installer curve25519 && npm installer debug

C'est tout pour la configuration du nœud - allons configurer Pilight!

Étape 7: Logiciel / Configuration - Pilight

SSH dans votre Pi et connectez-vous. Courir:

S'il demande un mot de passe, entrez-le. Ensuite, exécutez:

Vous devriez voir au moins une ligne sur ce fichier, telle que: "deb http://mirrordirector.raspbian.org/raspbian/ wheezy contrib principale rpi non libre"

Sous la dernière ligne de ce fichier, ajoutez:

Enregistrer en appuyant sur CTRL + X, suivi par Y pour "oui, économisez."

Mettre à jour la base de données des packages:

apt-get update

Et enfin, installez Pilight:

apt-get install pilight

Pilight devrait maintenant être installé et devrait démarrer au démarrage. Certaines personnes ont eu des problèmes avec le démarrage automatique, donc si vous pensez que cela ne démarre pas au démarrage, en tant que root, exécutez:

pilight-daemon

Étape 8: Détectez les codes RF

L'étape suivante consiste à détecter les codes RF.

Chaque bouton de la télécommande a un code qui correspond au commutateur approprié. Sur l'image de l'interrupteur ci-dessus, l'interrupteur a un code général de 1502. Il s'agit du 4ème interrupteur du pack de 5, d'où le numéro 1502-4. Mais nous avons besoin du code RF, pas du code général. Pour obtenir cela, nous détectons le code RF.

Pour allumer cet interrupteur avec la télécommande, il vous suffirait d'appuyer sur le 4ème bouton "On". Nous allons donc récupérer le code RF envoyé lorsque vous appuyez sur le 4ème bouton "On".

SSH dans votre Pi à nouveau (ou continuez simplement votre dernière session, si vous ne l'avez pas fermé) et lancez:

sudo pilight-receive

S'il n'y a pas d'erreur, ignorez le texte souligné. S'il y a une erreur à propos de "pas de session pilight-ssdp trouvée", vous souhaiterez lire le texte souligné.

L'erreur "aucune session pilight-ssdp trouvée" signifierait que "pilight-daemon"n’est pas en cours d’exécution. Il se peut qu’il n’ait pas été lancé au démarrage et vous devrez le démarrer manuellement. Faites-le en exécutant la commande"sudo pilight-daemon'

Saisissez la télécommande avec la pile de l’étape 4 et approchez-la du récepteur.

Nous allons commencer avec Commutateur 1. Avec le Pilight-recevoir programme toujours en cours, appuyez sur le bouton "On" pour le commutateur n ° 1.

Regardez la sortie du Pilight-recevoir programme. At-il montré quelque chose?

Oui! Ça faisait! Ça devrait ressembler à ça!

"message": {

"id": "A3", "unité": 34, "state": "on"

}, "origine": "destinataire", "protocole": clarus_switch ", "uuid": "SOMENUMBER", "répète": 1

}

Maintenant, nous devons comprendre ce que cela signifie et nous permettre de le contrôler.

Les informations dont nous aurons besoin pour la prochaine étape sont les suivantes: identifiant, la unité, et le protocole.

Étape 9: Écrire un script d’envoi RF

En utilisant les informations (id, unité) de la dernière étape, nous pouvons maintenant envoyer des signaux RF.

L'étape 6 m'a dit que le protocole de mon commutateur était clarus_switch, l'id était A3et l'unité était 34.

Dans cet esprit, nous pouvons écrire un script qui enverra le même code à partir de Raspberry Pi que celui que la télécommande enverrait.

Accédez au répertoire dans lequel vous souhaitez enregistrer les scripts, puis exécutez:

nano Switch1_On.sh

… pour créer et éditer le fichier de script On. Si vous utilisez le commutateur n ° 2, vous pouvez le nommer. Switch2_On.sh ou quelque chose comme ça.

Ensuite, mettez ceci dans le fichier:

sudo pilight-send -p protocole -i id -u unité -t

… où protocole est votre protocole, id est votre identifiant et unité est votre unité. "-t" signifie "On".

Donc, si votre identifiant et votre unité étaient identiques aux miens, votre script ressemblerait à ceci:

sudo pilight-send -p clarus_switch -i A3 -u 34 -t

Enregistrez le fichier avec CTRL + X, suivi par Y pour "oui, enregistrez ce fichier."

Rendre le fichier exécutable en lançant:

sudo chmod + x Switch_On.sh

Ensuite, nous allons créer le script Off. En fait, vous pouvez utiliser exactement le même script avec une seule modification. Nous allons donc copier le script et le modifier. Les autorisations d'exécution seront également copiées. Il n'est donc pas nécessaire de relancer chmod.

cp Switch1_On.sh Switch1_Off.sh

nano Switch1_Off.sh

Le fichier doit être modifié à partir de:

…à:

…où -F signifie pour éteindre l'interrupteur.

Étape 10: tester les scripts

Félicitations, vous êtes arrivé à la dernière étape de la première partie de ce didacticiel. Nous allons maintenant tester les scripts pour nous assurer qu'ils fonctionnent.

Mais d’abord, nous aurons besoin de notre périphérique stupide de l’étape 1!

Mon appareil stupide était un fan. Je l'ai réglé sur la position "ON" sur le réglage 1, de sorte que le ventilateur fonctionne toujours tant qu'il est alimenté.

Ensuite, je l'ai branché à la prise RF n ° 1 (celle pour laquelle nous avons écrit le script), puis branché la prise au mur. Vous pouvez confirmer que la prise fonctionne normalement en la mettant sous et hors tension avec la télécommande.

En supposant que la télécommande fonctionne correctement, il est enfin temps d'essayer les scripts. SSH dans votre Pi à nouveau, ou continuez votre session si vous ne l'avez pas déjà fermé, lancez:

sudo./Switch1_On.sh

At-il allumé votre appareil muet? Oui? Votre appareil stupide est maintenant un peu plus intelligent.

Maintenant, éteignez-le en lançant:

sudo./Switch1_Off.sh

De? Oui? Votre appareil est maintenant encore plus intelligent.

Vous pouvez maintenant utiliser ces scripts pour activer et désactiver vos points de vente et tout service capable d'exécuter vos fichiers.sh peut désormais être utilisé pour activer / désactiver votre périphérique muet.

Mais qu'en est-il de le rendre encore plus intelligent?

Étape 11: Intégration de HomeKit / Siri - Édition

HomeKit fournit une excellente plate-forme pour l’innovation et l’automatisation de la maison, même si ce n’est pas encore si populaire.

Nous allons commencer par cloner mon dépôt Git fourni par KhaosT. J'ai apporté quelques modifications dans le cadre de ce didacticiel, mais vous pouvez toujours trouver l'original ici.

Pour cloner mon fork et entrer dans le répertoire accessoires, lancez:

clone de git http://github.com/MiniguyBrendan/HAP-NodeJS.git

cd HAP-NodeJS / accessoires /

Nous devons apporter quelques modifications.

Nous devrons générer un nom d'utilisateur aléatoire (sous la forme d'une adresse MAC) pour chaque périphérique. Nous pouvons le faire ici.

Assurez-vous de procéder comme suit sur ce site:

Définissez le format d’adresse MAC sur celui comportant des deux points (00: 10: FA: 6E: 38: 4A)

Définir la casse en majuscule

Modifions le fichier par défaut Outlet_accessory.js pour Outlet # 1 afin que nous puissions ajouter notre nom d'utilisateur:

sudo nano Outlet_accessory.js

Trouvez la ligne qui dit outlet.username = "1A: 2B: 3C: 4D: 5E: FF";

Modifiez la valeur du nom d'utilisateur en fonction du site Web généré. Par exemple, je pourrais le modifier comme suit:

… Si c'est ce que le générateur m'a donné.

Aussi, sur les lignes avec PythonShell.run ('light1.py', function (err) { et PythonShell.run ('light0.py', function (err) {

… Portez une attention particulière aux noms de fichiers "light1.py" et "light0.py". Vous pouvez remplacer "light1" ou "light0" par "fan1" ou "fan0" si, par exemple, votre périphérique muet est un ventilateur. Si vous choisissez de remplacer la valeur par défaut, n'oubliez pas ce que vous changez pour!

Étape 12: Intégration de HomeKit / Siri - Python

Maintenant, nous aurons besoin d’un script Python qui exécute notre script.sh. "Euh, c'est inefficace", vous pensez probablement. Oui, vous avez raison. Exécuter des fichiers.sh avec Node a été irrégulier sur mon Raspberry Pi, donc YMMV. À cause de cela, nous allons plutôt exécuter le fichier.sh à travers un script python.

Si vous vous trouvez toujours dans le dossier "accessoires", revenez à la racine du dossier HAP-NodeJS:

cd..

Ensuite, créez un fichier python pour appeler notre script "Switch1_On.sh".

sudo nano light1.py

Et écrivez ce qui suit:

sous-processus d'importation

subprocess.Popen ('sh', 'votre répertoire /Switch1_On.sh ')

… où votre répertoire est le répertoire dans lequel vous avez enregistré votre fichier.sh.

Enregistrez le fichier en tapant CTRL + X et Y pour "oui, sauvez ceci s'il vous plaît!"

Une fois encore, nous pouvons dupliquer ce fichier pour le script Off:

sudo cp light1.py light0.py

Puis éditez-le …

sudo nano light0.py

… et changer " Switch1_On.sh "à " Switch1_Off.sh '

Enregistrez-le avec CTRL + X, puis Y pour "oui, je veux vraiment économiser. merci."

Étape 13: Intégration de HomeKit / Siri - Npm

Pour exécuter le serveur HomeKit, nous devons reconstruire le projet Node. Cela prendra du temps, essayez d'être patient! Courir:

npm reconstruire

Et maintenant, enfin, nous pouvons essayer d’exécuter le serveur lui-même!

nœud sudo BridgedCore.js

Si vous avez tout configuré correctement, le serveur HomeKit doit être démarré. Nous sommes prêts à brancher notre iPhone!

Étape 14: Intégration de HomeKit / Siri - Terminer

Nous sommes dans la dernière ligne droite! La dernière étape consiste à connecter votre iPhone à votre serveur HomeKit, ce qui vous permettra de contrôler vos appareils avec Siri.

Mon favori personnel des applications HomeKit qui peuvent être utilisées pour configurer un nouvel appareil: Eve elgato. Vous pouvez le télécharger sur votre iPhone ou iPad ici.

Assurez-vous de lui permettre d'accéder à vos données personnelles, puis laissez-le rechercher des appareils. Il devrait découvrir le ou les périphériques que vous avez configurés précédemment. Ajoutez votre appareil. Suivez les instructions à l'écran. Si vous souhaitez modifier le nom du périphérique, faites-le maintenant.

Lorsque vous avez terminé, vous devriez pouvoir contrôler votre appareil à l'aide du nom que vous avez défini.

Essayez le! Activez Siri et dites: "Allumez nom de l'appareil"

… où nom de l'appareil est le nom que vous lui avez donné.

Est-ce qu'il s'allume? Oui? Félicitations, vous venez de créer une maison intelligente!