Gør en dum enhed smart med Pilight og HomeKit: 14 trin

Gør en dum enhed smart med Pilight og HomeKit: 14 trin

Indholdsfortegnelse:

Anonim

Hej! I denne vejledende lærer du, hvordan du omdanner 5 dumme enheder til smart, alt for prisen på en enkelt kommerciel smart switch. Parat? Vi kommer snart i gang, men først …

HVAD ER DETTE?

Dette projekt har til formål at hjælpe enhver og alle med at gøre et smukt hjem med lethed. Det bruger Pilight og en HomeKit server skrevet i NodeJS.

HVORFOR DIY?

DIY er en sjov løsning på noget, og det sjovt at lave alene gør det værd, efter min mening.

Du sparer også en latterlig mængde penge, så det er også et plus.

forsyninger:

Trin 1: Find en dum enhed!

Det lyder måske simpelt, men det er faktisk ikke altid let. En dum enhed skal opfylde følgende kriterier:

1. Den skal have en tændt og slukket position (så en computer med en tænd / sluk-knap fungerer ikke, da det er den samme kontakt, men en lampe med en tænd / sluk-knap vil!)

2. Det skal gøres mere nyttigt med evnen til at kontrollere med din telefon, ikke mindre!

3. Det må IKKE irritere dine naboer, hvis du tænder det:)

4. DET SKAL VÆRE VERKELIG AWESOME, NÅR du viser folk, kan du kontrollere dine lys med din telefon. Helt seriøst. Det er et must.

Så som en TL; DR: Alt med en kontakt eller et opkald, der kan forblive i en på-stilling, vil fungere.

Trin 2: Hardware / Materialer

Her er dine materialer …

Loddefri Plug-in BreadBoard, 830 slips-punkter, 2 strømbaner, 200PTS, 16,5 x 5,4 x 0,85 cm ($ 10, men til salg for 2,80 kr. Pr. 25/2/2016. Du kan springe over dette, hvis du allerede har et brødbræt.)

50 PCS Jumper Wires 200mm M / F Mand til Kvinde ($ 12, men til salg for $ 3,15 inc fragt fra 3/25/2016. Du kan springe over dette, hvis du allerede har jumperkabler.)

Etekcity trådløs fjernbetjening El-afbryder til husholdningsapparater (5Rx-2Tx) (39,98 $, til salg for 29,98 dollar pr. 3/25/2016. Hvis du har nogle kontakter, der allerede kan styres af en RF-fjernbetjening, kan du springe over dette, men det er ikke garanteret at være kompatibelt, hvis du gør det. Jeg tvivler på, at nogle af disse ligger rundt … hvis du gør det, gå videre og brug det, men sørg for, at det passer til frekvensen af ​​senderen / modtageren! Det er et must ! Jeg anbefaler stærkt, at du får det, hvis du ikke er sikker.)

433mhz Rf Transmitter & Receiver Kit til Raspberry Pi ($ 7,91, kunne ikke finde en bedre aftale, velkommen til at shoppe! Jeg tvivler på, at du har en af ​​disse liggende rundt … hvis du gør det, og brug det, men sørg for det svarer til hyppigheden af ​​de afsætningsmuligheder, du køber! Det er et must! Jeg anbefaler stærkt, at du får det, hvis du ikke er sikker.)

Kernen i projektet: En Raspberry Pi B + (Skal arbejde med nogen Raspberry Pi! Du har sikkert en af ​​disse i brug eller ligger rundt, lad os bruge den!)

Du skal også bruge et micro usb-kabel, et SD-kort, skrive afhængigt af hvilken model Pi du bruger, og en USB WiFi-dongle, hvis du har brug for en trådløs forbindelse.

Personligt havde jeg allerede en Raspberry Pi … Jeg havde et micro usb-kabel … Jeg havde et SD-kort, og jeg havde en WiFi-dongle.

Så prisen på dette projekt for mig var $43.84, ikke inklusive skat. (EN enkelt (1) Belkin Wemo switch er $ 49,99, $ 6,15 mere end FEM skifter vi skal bygge.) Så vi betaler $8.77pr. kontakt, når vi bygger, mens vi køber en Wemo, betaler vi $ 49,99 pr. switch.

Den samlede pris på projektet vil variere alt efter hvad du har, men de varer, jeg har opført pris på, er de eneste, du sandsynligvis ikke har.

Til denne vejledning er en iPhone bedst til at styre dine enheder.

Trin 3: Hardware / Opsætning

Før vi begynder at downloade programmer, skal vi få vores hardware oprettet.

Vi skal bruge:

MODTAGER -> RASPBERRY PI

TRANSMITTER -> RASPBERRY PI

Trin 4: Fjernbetjeninger / Opsætning

Dette trin er ret ligetil - omskifterne kom med 2 fjernbetjeninger, og de 2 fjernbetjeninger kom med 2 batterier, en til hver fjernbetjening.

Det eneste, vi skal gøre, er at sætte et batteri i et af fjernbetjeningerne. Vi kommer tilbage til det senere, så tag det ikke tabt!

Trin 5: Software / Opsætning - Node

Vi skal installere Node gennem adafruit.

Denne vejledning forudsætter, at du allerede har installeret Raspbian på din Raspberry Pi, og ved hvordan du kan SSH ind i den. Hvis du ikke ved, hvordan du gør det, skal du besøge dette link.

SSH i din Pi og kør denne kommando for at tilføje adafruit's repo, som indeholder Node:

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

Så installer faktisk Node:

sudo apt-get install node

Endelig skal du kontrollere, at den er installeret korrekt ved at køre:

node -v

Hvis alt ser godt ud, lad os fortsætte!

Trin 6: Software / opsætning - afhængigheder

Gør dig selv superbruger ved at køre:

sudo su

Installer nogle afhængigheder:

apt-get install python-dev python-pip libavahi-kompatibel-libdnssd-dev

Endelig skal du installere nogle moduler, som noden har brug for:

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

Det er det til Node setup - lad os gå i gang med at oprette pilight!

Trin 7: Software / Setup - Pilight

SSH i din Pi og login. Løb:

Hvis den anmoder om en adgangskode, skal du indtaste den. Kør derefter:

Du skal se mindst én linje på denne fil, f.eks.: "deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi"

Under den sidste linje i den fil skal du tilføje:

Gem ved at trykke på CTRL + X, efterfulgt af Y for "ja, gem."

Opdatér pakkenes database:

apt-get opdatering

Og endelig skal du installere Pilight:

apt-get install pilight

Pilight skal nu installeres, og skal starte ved opstart. Nogle mennesker har haft problemer med automatisk start, så hvis du tror at det ikke starter ved opstart, som root, kør:

pilight-daemon

Trin 8: Sniff Out RF-koder

Det næste skridt er at snuse RF-koderne.

Hver knap på fjernbetjeningen har en kode, der svarer til den relevante knap. På billedet af kontakten ovenfor har omskifteren en generel kode på 1502. Det er den 4. omskifter i 5-pakken, således 1502-4. Men vi har brug for RF-koden, ikke den generelle kode. For at få dette sniffer vi RF-koden ud.

For at tænde denne tænd for fjernbetjeningen, skal du blot trykke på den 4. "On" -knap. Så vi tager fat i RF-koden, der sendes, når den 4. "On" -knap trykkes.

SSH i din Pi igen (eller bare fortsæt din sidste session, hvis du ikke lukkede det) og kør:

sudo pilight-receive

Hvis der ikke er nogen fejl, skal du springe forbi den understregede tekst. Hvis der er en fejl om "ingen pilight-ssdp sessioner fundet", vil du gerne læse den understregede tekst.

Fejlen "ingen pilight-ssdp sessioner fundet" ville betyde, at "pilight-daemon"kører ikke. Chancerne er, at det ikke startede ved opstart, og du skal starte det manuelt. Gør det ved at køre kommandoen"sudo pilight-daemon'

Tag fjernbetjeningen med batteriet fra trin 4, og tag det tæt på modtageren.

Vi begynder med Skift 1. Med pilight-modtager Programmet kører stadig, tryk på "On" knappen for switch # 1.

Se på output fra pilight-modtager program. Visede det noget?

Ja! Det gjorde! Det skal se sådan ud!

"besked": {

"id": "A3", "enhed": 34, "state": "on"

}, "oprindelse": "modtager"

"protokol": clarus_switch ", "uuid": "SOMENUMBER", "gentagelser": 1

}

Nu skal vi forstå, hvad det betyder, og lade os styre det.

De oplysninger, vi skal bruge til næste trin, er id, det enhed, og protokol.

Trin 9: Skriv RF Send Script

Ved hjælp af (id, enhed) information fra sidste trin kan vi nu sende RF-signaler.

Trin 6 fortalte mig, at min switchens protokol var clarus_switch, id var A3, og enheden var 34.

Med det i tankerne kan vi skrive et script, der sender samme kode fra Raspberry Pi som fjernbetjeningen ville sende.

Gå til det bibliotek, du vil gemme scriptene, og kør derefter:

nano Switch1_On.sh

… for at oprette og redigere On-scriptfilen. Hvis du bruger # 2-switch, så kan du navngive det Switch2_On.sh eller noget i den stil.

Derefter sættes dette i filen:

sudo pilight-send -p protokol -i id -u enhed -t

… hvor protokol er din protokol, id er dit id, og enhed er din enhed. "-t" betyder "On".

Så hvis dit ID og UNIT var det samme som mit, ville dit script se sådan ud:

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

Gem filen med CTRL + X, efterfulgt af Y for "ja, gem den fil."

Gør filen kørebar ved at køre:

sudo chmod + x Switch_On.sh

Dernæst opretter vi off-scriptet. Du kan faktisk bruge det nøjagtige samme script med en ændring, så vi kopierer kun scriptet og redigerer det. Udførelsesrettighederne kopieres også, så vi behøver ikke at køre chmod igen.

cp Switch1_On.sh Switch1_Off.sh

nano Switch1_Off.sh

Filen skal ændres fra:

…til:

…hvor -f betyder at slukke for kontakten.

Trin 10: Test scriptene

Tillykke med, du gjorde det til sidste trin i del 1 til denne vejledning. Vi får nu at teste scripts for at sikre, at de arbejder.

Men først skal vi bruge vores dumme enhed fra trin 1!

Min dumme enhed var en fan. Jeg skiftede den til "ON" positionen på indstilling 1, så ventilatoren altid kører, mens den har strøm.

Dernæst plugte jeg det i RF Outlet # 1 (den vi skrev scriptet til), og satte stikket ud i væggen. Du kan bekræfte, at stikkontakten fungerer normalt ved at tænde og slukke med fjernbetjeningen.

Forudsat fjernbetjeningen fungerede korrekt, er det endelig tid til at prøve scripts. SSH i din Pi igen, eller fortsæt din session, hvis du ikke har lukket den allerede, og kør derefter:

sudo./Switch1_On.sh

Har det slået din dumme enhed på? Ja? Din dumme enhed er nu lidt smartere.

Sluk det ved at køre:

sudo./Switch1_Off.sh

Af? Ja? Din enhed er nu endnu smartere.

Du kan nu bruge disse scripts til at slå dine udsalg til og fra, og enhver tjeneste, der kan køre dine.sh-filer, kan nu bruges til at slå din dumme enhed til / fra.

Men hvad med at gøre det endnu mere smart?

Trin 11: HomeKit / Siri Integration - Redigering

HomeKit giver en fremragende platform til hjemmeinnovation og automatisering, selv om det ikke er så populært endnu.

Vi starter med at klone mit Git repo, der er forked fra KhaosT. Jeg lavede nogle få ændringer i formålet med denne tutorial, men du kan altid finde originalen her.

For at klone min gaffel og indtaste tilbehørskataloget i det, kør:

git klon http://github.com/MiniguyBrendan/HAP-NodeJS.git

cd HAP-NodeJS / tilbehør /

Der er et par ændringer, vi skal lave.

Vi skal generere et tilfældigt brugernavn (i form af en MAC-adresse) for hver enhed. Det kan vi gøre her.

Sørg for at gøre følgende på dette websted:

Indstil MAC-adresseformat til den med Colons (00: 10: FA: 6E: 38: 4A)

Sæt sag til store bogstaver

Lad os redigere standard Outlet_accessory.js for Outlet # 1, så vi kan tilføje vores brugernavn:

sudo nano Outlet_accessory.js

Find den linje der siger outlet.username = "1A: 2B: 3C: 4D: 5E: FF";

Skift brugernavnværdien til uanset hvilket website der genereres. For eksempel kan jeg ændre det for at læse:

… hvis det var, hvad generatoren gav mig.

Også på linierne med PythonShell.run ('light1.py', funktion (err) { og PythonShell.run ('light0.py', funktion (err) {

… vær opmærksom på filnavnet "light1.py" og "light0.py." Du kan erstatte "light1" eller "light0" med "fan1" eller "fan0", hvis din dumme enhed for eksempel er en fan. Hvis du vælger at erstatte standardværdien, glem ikke hvad du ændrer det til!

Trin 12: HomeKit / Siri Integration - Python

Nu skal vi bruge et Python-script, der kører vores.sh script. "Eww, det er ineffektivt," tænker du sandsynligvis. Ja, du er korrekt. Running.sh filer med Node har været plettet på min Raspberry Pi, så YMMV. På grund af det vil vi i stedet køre.sh filen gennem et python script.

Hvis du stadig er i mappen "tilbehør", skal du gå tilbage til roden i mappen HAP-NodeJS:

cd..

Opret derefter en python-fil for at ringe til vores "Switch1_On.sh" script.

sudo nano light1.py

Og skriv følgende:

import subprocess

subprocess.Popen ('sh', 'din katalog /Switch1_On.sh ')

… hvor din katalog er den mappe, hvor du gemte.sh-filen.

Gem filen ved at skrive CTRL + X og Y for "ja, gem det venligst!"

Endnu engang kan vi duplikere denne fil til Off-scriptet:

sudo cp light1.py light0.py

Rediger derefter det …

sudo nano light0.py

… og ændre " Switch1_On.sh "til " Switch1_Off.sh '

Gem det med CTRL + X, derefter Y for "ja, jeg vil virkelig spare. tak."

Trin 13: HomeKit / Siri Integration - Npm

For at kunne køre HomeKit-serveren skal vi genopbygge Node-projektet. Det vil tage lidt tid at fuldføre, prøv at være tålmodig! Løb:

npm genopbygge

Og endelig kan vi forsøge at køre serveren selv!

sudo knudepunkt BridgedCore.js

Hvis du har indstillet alt korrekt, skal det starte HomeKit-serveren. Vi er klar til at tilslutte vores iPhone!

Trin 14: HomeKit / Siri Integration - Efterbehandling

Vi er i hjemmet strækningen! Det sidste trin er at forbinde din iPhone til din HomeKit-server, som giver dig mulighed for at styre dine enheder med Siri.

Min personlige favorit i HomeKit apps, der kan bruges til at oprette en ny enhed: Eve elgato. Du kan downloade den på din iPhone eller iPad her.

Sørg for at give den adgang til dine Home Data, og lad den søge efter enheder. Det skal opdage den eller de enheder, du tidligere har oprettet. Tilføj din enhed. Følg vejledningen på skærmen. Hvis du vil ændre navnet på enheden, skal du gøre det nu.

Når du er færdig, skal du kunne styre din enhed med det navn, du har angivet.

Prøv det! Aktivér Siri, og sig "Tænd enhedens navn"

… hvor enhedsnavn er det navn, du gav det.

Tænder det? Ja? Tillykke med, du har lige oprettet et smart hjem!