Kom godt i gang med OpenHAB Home Automation på Raspberry Pi

Kom godt i gang med OpenHAB Home Automation på Raspberry Pi
Denne vejledning kan downloades som en gratis PDF. Download denne fil nu . Du er velkommen til at kopiere og dele dette med dine venner og familie.

OpenHAB er en moden, open source hjemmeautomatiseringsplatform, der kører på en række hardware og er protokolagnostisk, hvilket betyder, at den kan oprette forbindelse til næsten enhver hjemmeautomatiseringshardware på markedet i dag. Hvis du har været frustreret over antallet af producentspecifikke apps, du skal køre bare for at styre dine lys, så har jeg gode nyheder til dig: OpenHAB er den løsning, du har ledt efter - det er det mest fleksible smarte hjem hub, du nogensinde finder.





Desværre er det omtrent så langt, du kan komme fra forbrugervenlig - men som altid er det her, MakeUseOf kommer ind: vi viser dig, hvordan du kommer i gang med de ultimative smart home -systempenge behøver ikke at købe (fordi OpenHAB er 100% gratis - lever bare hardwaren).





Den første del af denne vejledning fokuserer specifikt på, hvordan du får OpenHAB -opsætning med en Raspberry Pi 2 , men yderligere kan tutorials og råd anvendes på alle steder, hvor OpenHAB er installeret.





Denne vejledning dækker tre indledende emner og et lidt mere avanceret.

  • At få OpenHAB i gang på Pi og installere demo house -konfigurationen for at kontrollere, at kernesystemer fungerer.
  • Sådan tilføjes bindinger og profiler til enheder. Jeg arbejder med Philips Hue.
  • Aktivering af fjernadgang og forbindelse til IFTTT.
  • Tilføjelse af en DIY -tilstedeværelsessensor ved hjælp af Bluetooth og en introduktion til REST -grænsefladen.
  • Konfiguration af OpenHAB -mobilappen.

Hvad du skal bruge

I det mindste skal du bruge en Raspberry Pi (v2, helst) og en Ethernet- eller trådløs adapter (foretrukket Ethernet, denne vejledning indeholder ikke instruktioner om, hvordan din Wi-Fi-adapter fungerer). Alt andet er valgfrit. Bemærk, at OpenHAB også kører på den originale Raspberry Pi, men der er et kendt problem med langsommere behandling og Z-Wave-enheder. Hvis du ikke har brug for Z-Wave, kan du roligt ignorere denne advarsel og gå videre med en Raspberry Pi model B eller B+, fordi alt andet ser ud til at fungere fint. Du kan altid opgradere til den nyeste Pi, hvis og når du tilføjer Z-Wave.



Denne lille ting kan være det bedste smarte hjem -hub, du nogensinde har haft!

I skrivende stund er den seneste stabile version af OpenHAB version 1.71; version 1.8 forventes snart, og alt i denne vejledning skal stadig være relevant, selvom visse bindinger kan have flere funktioner. Version 2 er i øjeblikket også tilgængelig som en meget tidlig alfa -forhåndsvisning, men vedtager en dramatisk anderledes arkitektur end OpenHAB 1 -serien: denne vejledning er ikke kompatibel med version 2.





Jeg foreslår kraftigt, at du følger denne vejledning langsomt og metodisk igennem - prøv ikke at springe ind i den dybe ende og tilføj alt på én gang. Ja, det er en lang vejledning - OpenHAB er et svært system, der ofte kræver tilpasninger til dine behov, og den bedste måde at sikre succes på er at arbejde langsomt og færdiggøre et stykke ad gangen.

Den gode nyhed er, at når det først fungerer, er det en stensikker oplevelse og utrolig givende.





Installation af OpenHAB

Der er ikke noget forudkonfigureret billede til OpenHAB, så installationen udføres på den gammeldags måde via en kommandolinje. Jeg foreslår, at du arbejder hovedløst på RPi'en - omkostningerne ved at administrere en GUI, som du sjældent vil bruge, er ikke det værd.

Start med nyeste (fuld) Raspbian SD -billede (ikke 'lite' versionen, disse inkluderer ikke Java Virtual Machine). Tilslut dit netværkskabel, start derefter op, og naviger gennem SSH. Løb:

sudo raspi-config

Udvid filsystemet; og fra den avancerede menu skal du ændre hukommelsesopdelingen til 16. Når du er færdig, skal du genstarte og som god praksis køre en fuld opdatering

sudo apt-get update
sudo apt-get upgrade

Den lettere måde at installere OpenHAB -runtime på er via apt-get , men først skal vi tilføje en sikker nøgle og det nye lager:

wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' |sudo apt-key add -
echo 'deb http://dl.bintray.com/openhab/apt-repo stable main' | sudo tee /etc/apt/sources.list.d/openhab.list
sudo apt-get update
sudo apt-get install openhab-runtime
sudo update-rc.d openhab defaults

Mærkeligt nok blev alt installeret som ejet af 'root'. Vi skal rette det med følgende kommandoer.

sudo chown -hR openhab:openhab /etc/openhab
sudo chown -hR openhab:openhab /usr/share/openhab

Dernæst installerer vi Samba og deler konfigurations- og brugermapper-dette gør det lettere at installere tilføjelser og ændre sitemap eksternt.

sudo apt-get install samba samba-common-bin
sudo nano /etc/samba/smb.conf

Skift om nødvendigt arbejdsgruppens navn, men aktiver ellers WINS -support:

wins support = yes

(du skal fjerne kommentaren til linjen og ændre nej til ja)

tilføj derefter følgende til afsnittet om delingsdefinitioner (rul helt ned til bunden af ​​den lange fil):

[OpenHAB Home]
comment= OpenHAB Home
path=/usr/share/openhab
browseable=Yes
writeable=Yes
only guest=no
create mask=0777
directory mask=0777
public=no
[OpenHAB Config]
comment= OpenHAB Site Config
path=/etc/openhab
browseable=Yes
writeable=Yes
only guest=no
create mask=0777
directory mask=0777
public=no

Jeg kommenterede også sektionen Printere. Jeg har lavet to delinger, da konfigurationsfilerne faktisk gemmes separat til tilføjelserne.

Gem og luk. Vi skal endelig angive en Samba -adgangskode til openhab -brugeren:

sudo smbpasswd -a openhab

Jeg vil foreslå 'openhab' som adgangskode bare for brugervenlighed, men det gør ikke rigtig noget.

Tak til læseren David L - det ser ud til, at metoden til genstart af Samba har ændret sig i den seneste Raspian. Her er de opdaterede instruktioner:

sudo update-rc.d smbd enable
sudo update-rc.d nmbd enable
sudo service smbd restart

Efter genstart af Samba (ældre installationer bruges sudo service samba genstart ), test, kan du få adgang til det delte drev. Det opdages muligvis ikke automatisk på en Mac; men du kan bruge Finder -> -> Opret forbindelse til server og adressen

smb://openhab@raspberrypi.local

Godkend med brugernavn openhab og din valgte adgangskode, og åbn derefter begge dine delinger for at se dig omkring. Du burde endda kunne åbne http: //raspberrypi.local: 8080/i din webbrowser, men du vil blive mødt med en fejl, fordi vi endnu ikke har oprettet et sitemap. Det er normalt.

Nu ville det være et godt tidspunkt at lære kommandoen til at skræddersy OpenHAB -loggen, så du kan holde øje med fejl.

tail -f /var/log/openhab/openhab.log

Hold det kørende og åbn i et separat SSH -vindue hele tiden, mens du fortsætter med guiden.

Installer Demo House

Inden vi går i dybden med konfigurationsfiler, tilføjer enheder og bindinger osv. lad os kontrollere, at alt fungerer ved at tilføje demoindholdet. Du finder 'Demo Setup' under downloadsektionen på OpenHAB.org.

Når du har pakket det ud, er der to mapper: tilføjelser og konfigurationer .

Brug netværksdelingerne til at kopiere konfigurationer til OpenHAB Config dele og overskrive den eksisterende mappe. Kopi tilføjelser til den anden OpenHAB Home dele igen, overskrive de eksisterende mapper. Hvis du ikke bliver bedt om at overskrive noget, gør du det forkert. Hvis du har øje med fejlfindingslogfilen, skal du se en flutter af aktivitet, da den bemærker de nye bindinger og hvirvler til handling. Åbn raspberrypi.local: 8080/openhab.app? Sitemap = demo for at se demoen.

Det ser lidt grundlæggende ud i øjeblikket, men OpenHABs åbne karakter betyder, at vi senere kan installere et dejligt nyt tema eller en alternativ grænseflade. For nu skulle vi bare vide, at det hele fungerer. Bemærk, at det, vi ser på, kaldes a sitemap (intet at gøre med et webstedskort). Et sitemap beskriver brugergrænsefladen - ikke de faktiske enheder på dit netværk eller sensorer - kun grænsefladen for at se dem. Hver del af det kan fuldstændigt tilpasses. For at få et kig på, hvordan denne er blevet oprettet, skal du åbne sitemaps/demo.sitemap fil på OpenHAB Config -delingen.

Det er temmelig skræmmende, men for det meste kopierer du indsættelse af kodefragmenter fra eksempler andre steder for at oprette din egen brugerdefinerede grænseflade. Her er teknisk oversigt af alle mulige sitemapelementer, men for nu er det tilstrækkeligt bare at begynde at tænke på, hvilken slags grænseflade du vil bygge, og hvilke oplysninger du vil vise.

Mens du er derinde, skal du åbne op varer/demo.items også. Igen ser det skræmmende ud, men det er her, du opretter elementer til kontrol og definerer sensorer, der skal spores.

Så hvordan fungerer OpenHAB?

Nu hvor du har haft en hurtig gennemgang af mappen sitemap og items, lad os bryde præcis ned, hvad disse filer er og de andre hovedkomponenter i OpenHAB, der kombineres til at skabe dit komplette smarte hjem. Du finder underkataloger for hver af disse i OpenHAB Config delte mappe.

Varer er en oversigt over hver kontrolenhed, sensor eller informationselement, du ønsker i dit system. Det behøver heller ikke at være en fysisk enhed - du kan definere en webkilde, f.eks. Vejr- eller aktiekurser. Hvert element kan navngives, tildeles flere grupper (eller ingen) og forbindes til specifik binding. (Nybegyndertip: Store bogstaver er vigtige, når det kommer til bindinger. Jeg brugte lang tid på at finde ud af, hvorfor mine 'Hue' pærer ikke fungerede; det var fordi de burde have været 'nuance' i stedet).

Sitemaps vedrører kun den grænseflade, du vil se, når du åbner OpenHAB -mobilen eller webappen. Du kan styre præcist, hvordan du vil have knapperne lagt ud og oplysninger præsenteret. Du kan definere grupper på øverste niveau for hvert værelse i dit hus; Hvis du klikker på hver, vises en liste over alle enheder i rummet. Eller du foretrækker måske at vise grupper for hver type enhed: en knap til lys, en anden til stikkontakter. Der kan være nogle enheder, du bruger så ofte, at du bare vil have en switch til dem lige på startskærmen.

Regler er det, hvor hjemmeautomatiseringsaspektet spiller ind, hvor du kan definere tidsplaner eller betingelser for, at en handling kan ske. Enkle begivenheder som at tænde soveværelsets lamper ved 22 -tiden til en varm rød farve; eller mere kompleks logik som at tænde en rumvarmer, hvis temperaturen er mindre end 0, og der er nogen til stede i det rum. Du finder også en scripts mappe, der tilbyder lignende funktionalitet som regler, men på et mere komplekst niveau af programmerbar logik.

Udholdenhed er et avanceret emne, som vi ikke vil dække i denne vejledning, men vedholdenhed definerer data, du vil registrere. Som standard vil OpenHAB kun vise den aktuelle tilstand for noget; Hvis du vil spore denne værdi over tid, skal du konfigurere en persistensdefinition for den datakilde. I dette angiver du ting som f.eks. Hvor ofte et datapunkt skal måles, eller hvornår gamle datapunkter skal kasseres - du skal også fortælle det, hvilken slags persistensmotor du skal bruge, f.eks. MySQL eller simpel logning til en fil .

Transform indeholder tilknytninger til dataværdier til etiketter. For eksempel humidex. skala fil definerer en række fugtighedsindeksværdier, og hvordan de skal vises på engelsk: 29-38 er 'noget ubehag'.

Det sitemap og genstande filer er afgørende for, at OpenHAB kan køre; resten er valgfri. Du kan have flere sitemaps og emner, så du kan beholde demoindholdet og referere til det når som helst eller prøve et nyt layout til din hjemmekontrolgrænseflade. Bare rolig, hvis det hele virker lidt overvældende lige nu, vi deler det op i håndterbare stykker, og jeg lover, at i slutningen af ​​denne vejledning har du tillid til at oprette din egen OpenHAB -opsætning.

Dernæst vil vi guide dig gennem tilføjelse af et fælles smart home kit, der starter forfra i et nyt sitemap. Hver enkelt vil introducere nogle kernekoncepter som f.eks. Hvordan man installerer bindinger og varedefinitioner, så jeg vil stærkt opfordre dig til at læse disse instruktioner igennem selvom du ikke ejer de pågældende enheder .

Start med at oprette en ny (blank) hjem. varer fil og en ny hjem. sitemap fil i de relevante biblioteker. Åben op hjem. sitemap og indsæt følgende kode. Dette fungerer bare som et grundlæggende skelet, hvortil vi tilføjer bits senere.

sitemap home label='My Home'
{

}

Du bør se en meddelelse om at rapportere, at OpenHAB har identificeret et nyt sitemap og items -fil.

aligncenter størrelse-stor wp-image-496593

Aktiver fejlfindingstilstand

Mens du stadig forsøger at få OpenHAB til at fungere korrekt, kan det være nyttigt at aktivere en mere omfattende debug -log, der viser alt, og ikke kun de vigtige ting. For at aktivere denne tilstand skal du åbne OpenHAB Config delte mappe og redigere logback.xml . På linje 40 skal du ændre følgende linje for at læse DEBUG i stedet for INFO. Du skal genstarte efter at have ændret dette.

Dette er en global ændring, så du får meget mere information, når du har logfilfil.

Tilføjelse af Philips Hue

Jeg starter med Philips Hue. Som de fleste ting, du vil interagere med i OpenHAB, kræver Hue -pærer dig at installere en bindende - tænk på bindinger som en enhedsdriver. I skrivende stund er der omkring 160 bindinger til rådighed for OpenHAB 1, hvorfor OpenHAB er et så kraftfuldt system - det kan interface med alt og kombinere alle disse forskellige kontrolsystemer til en enkelt samlet grænseflade. Her er en demo og en hurtig oversigt over de involverede trin.

Bindinger skal først downloades, og den nemmeste måde at gøre dette på Pi er at bruge apt-get , tving derefter ejerskab til openhab -brugeren.

sudo apt-get install openhab-addon-binding-hue
sudo chown -hR openhab:openhab /usr/share/openhab

Dernæst skal du fortælle OpenHAB at indlæse denne binding og konfigurere de nødvendige variabler. Gå til konfigurationsmappen, og lav en kopi af openhab-default.cfg , navngive det openhab.cfg . Åbn det, søg efter HUE og erstat hele afsnittet med følgende kode. Det eneste, du skal ændre, er din bros IP -værdi - hvis du ikke allerede ved det, kan du prøve online opdagelsesværktøj. Den hemmelige værdi er ikke ligegyldig, det er bare en slags brugernavn, som OpenHAB vil bruge til at identificere sig til broen.

Hurtigt tip : For at aktivere en linje, skal du bare fjerne # fra starten. Som standard er den linje, der angiver broens IP -adresse, deaktiveret (eller teknisk set 'kommenteret'). Hvis du prøver en alternativ konfiguration, kan det også være nyttigt bare at kopiere den eksisterende linje og sætte et # i starten for at markere det som en kommentar, så du nemt kan vende tilbage, hvis det går galt.

################################ HUE Binding ######################################### # IP of the Hue bridge
hue:ip=192.168.1.216
hue:secret=makeuseofdotcom
hue:refresh=10000

Gem og luk. Som enhver anden Hue -applikation skal du godkende OpenHAB på Hue Bridge ved at trykke på knappen på forsiden - du skal kun gøre dette én gang. Du får vist en besked om venter på at blive parret hvis du skræver logfilen, men hvis du har glemt eller gået glip af nedtællingen, skal du bare nulstille Pi - du får en timer på 100 sekunder fra, når Hue -bindingen startes. Sørg for, at du har parret med succes, før du fortsætter.

Åbn derefter hjem. varer fil, hvortil vi tilføjer nogle Hue -pærer. Her er et eksempel på varedefinition:

Color Bedroom_Hue 'Bedroom Hue' (Bedroom) {hue='1'}
  • Det Farve word angiver, hvilken slags kontrol vi har over denne vare. RGB Hue -pærer er 'farve', da vi har fuld farvekontrol over dem. Andre lys kan bare være en switch.
  • Næste er varens kodenavn: Jeg valgte Soveværelse_Hue , men bogstaveligt talt er alt fint - bare noget beskrivende, der føles naturligt for dig, fordi du skal huske det senere, når du laver sitemap. Kodenavnet bør ikke have mellemrum.
  • Mellem anførselstegnene er etiketten. Vores er enkel i dette tilfælde, men for nogle emner som temperatur eller noget, der rapporterer en værdi, tilføjer du en særlig kode, der fortæller den, hvordan du viser denne værdi eller bruger hvad transformere. Etiketten er til grænsefladen, og den kan have mellemrum.
  • Mellem vinkelbeslagene er navnet på ikonet. Du finder alle de tilgængelige ikoner i OpenHAB -delingen under webapps/billeder vejviser. Der er faktisk en hel række nuanceikoner, der repræsenterer forskellige lysstyrker eller til/fra. Bare angiv navnet på basisikonet - OpenHAB ved, at det automatisk vil lede efter de forskellige tænd/sluk -ikoner, hvis dette er et skiftet element. Dette er valgfrit.
  • I de runde parenteser fortæller vi det, hvilke grupper der skal være en del af - i dette tilfælde bare Soveværelse gruppe.
  • Endelig og afgørende, forbinder vi varen med den relevante binding med alle nødvendige variabler. I dette tilfælde er farvetone bindende, og pærens nummer er 1. Du kan finde nummeret ved at åbne den officielle Hue -applikation og se på fanen Lys. Hver pære har et unikt nummer.

Jeg har tilføjet i alt fire pærer samt en simpel erklæring om de grupper, som vi udvider senere. Her er min komplette hjem. varer på dette tidspunkt:

Group Bedroom
Group Office
Group Kai
Group Living_Room
Group Cinema
Group Secret
Group Lights /* Lights */
Color Bedroom_Hue 'Bedroom Hue' (Bedroom,Lights) {hue='1'}
Color Office_Hue 'Office Hue' (Office, Lights) {hue='2'}
Color Secret_Hue 'Secret Hue' (Secret, Lights) {hue='3'}
Color Kai_Hue 'Kai's Hue' (Kai, Lights) {hue='4'}

Det / * Lys */ tekst er bare en kommentar, den har ingen anden funktion end at hjælpe os med at scanne filen senere, når den bliver større. Nu har vi tilføjet enhederne, men åbner http: //raspberrypi.local: 8080/? Sitemap = home resulterer i en tom grænseflade - naturligvis fordi vi faktisk ikke har oprettet grænsefladeelementer i sitemapet endnu. Lad os begynde virkelig simpelt for nu. Åben op hjem. sitemap .

Koden, der bruges til at beskrive grænsefladen, er forskellig fra elementer, men i øjeblikket opretter vi en ny 'ramme' og tilføjer et par gruppekontroller sammen med nogle ikoner.

sitemap home label='My Home'
{
Frame {
Group item=Lights label='All lighting' icon='hue'
Group item=Bedroom label='Bedroom' icon='bedroom'
Group item=Office label='Office' icon='desk'
}
}

Grupper er et nyttigt værktøj til hurtig test, men i virkeligheden vil du have mere kontrol over, hvordan elementerne vises. For nu vil dette være tilstrækkeligt. Gem og genindlæs dit hjemmesitemap i browseren. Du bør se dette (eller uanset hvilke grupper du har tilføjet).

Klik på Al belysning at se hvert Hue -lys, da vi har defineret dem alle som tilhørende den overordnede lysgruppe.

Bemærk, at Office Hue -elementet vises med et andet ikon - det er fordi mit kontorlys allerede er tændt, og OpenHAB ved det, da det talte til Hue -broen og var smart nok til at justere ikonet 'on' -versionen af ​​filen. Desværre afspejler det ikke farven, men hvis du har en mobilapp installeret, afspejler det den aktuelle farve.

Hvis du ser flere elementer, end du troede, du havde defineret eller modtog fejl om flere definitioner, skal du vide, at selvom du kun kan indlæse et sitemap ad gangen på siden alle sitemaps trækker elementer ind fra alle .item -filer , så hvis du har forladt demo -emnefilen der, kan du også få vist nogle ekstra emner i dine grupper. Jeg vil foreslå på dette tidspunkt at sikkerhedskopiere demodelementernes indhold og flytte det ud af mappen for at undgå kopieringsfejl.

Fjernadgang og IFTTT med My.OpenHAB

Lige nu skal du være på det samme lokale netværk for at få adgang til dit OpenHAB-system, men hvad nu hvis du vil styre dine enheder og kontrollere sensorer, når de er uden for rækkevidde af din Wi-Fi? Til det skal vi konfigurere fjernadgang - og vi gør det på den nemme måde med My.OpenHAB -webtjenesten [Broken URL Removed], som omgår behovet for at rode rundt med portvideresendelse og routerkonfigurationer. Som en bonus har My.OpenHAB -tjenesten også en IFTTT -kanal, der giver dig uendelige muligheder for fjernbetjening og automatisering.

Først: installer bindingen. Hurtigt tip: Hvis du ikke kender det nøjagtige navn på en bestemt installationspakke, kan du prøve at søge efter den med apt-cache.

sudo apt-get install openhab-addon-io-myopenhab
sudo chown -hR openhab:openhab /usr/share/openhab

Før du kan registrere dig på My.OpenHAB -webstedet, skal du oprette en hemmelig nøgle og finde dit UUID, der entydigt identificerer din installation. Tjek under OpenHAB Home -deling -> webapps -> statisk og du skal finde en UUID -fil, der indeholder dit unikke id. Det var på dette tidspunkt, at jeg opdagede, at min Pi brugte en ældre version af Java, som ikke korrekt opretter den hemmelige nøgle. Type

java -version

at tjekke. Hvis det ikke siger 1.7 eller højere, har du den forkerte version. Mærkeligt nok kommer den nyeste version af Raspbian med Oracle Java 8 installeret, men ikke som standard.

sudo update-alternativer --config java

hvordan man gendanner slettede facebook beskeder på pc

Vælg den indstilling, der angiver jdk-8-orakel , og genstart derefter OpenHAB. Bonus: Oracle Java 8 er hurtigere end standard OpenJDK!

Nu skal du også finde en hemmelig fil i webapps/statisk folder. Åbn begge hemmelighed og uuid , og være klar til at kopiere.

Nu skal du oprette en My.OpenHAB -konto ved hjælp af disse detaljer og derefter vende tilbage - du skal også bekræfte din e -mail, før noget virker. Der er et par trin til denne. Først skal vi indstille standard -persistensmotoren til myopenhab (vedholdenhed er noget for en senere vejledning, men uanset hvad skal vi oprette noget grundlæggende for at 'eksportere' vores data til onlinetjenesten og gøre dem synlige for IFTTT) . For at gøre dette skal du åbne openhab.cfg og finde den variabel, der siger vedholdenhed: standard = og ændre det til vedholdenhed: default = myopenhab . Gemme.

Til sidst skal du oprette en ny fil i konfigurationer/vedholdenhed mappe kaldet myopenhab.persist , og indsæt følgende regel.

Strategies {
default = everyChange
}
Items {
* : strategy = everyChange
}

Du behøver ikke at forstå dette for nu, men ved, at der står 'gem hver elementtilstand, når den ændres'.

For at oprette forbindelse til IFTTT skal du gå til OpenHAB -kanal - du skal godkende og give den adgang til din MyOpenHAB -konto. Bemærk også, at indtil dine varer har ændret sig mindst én gang, vil de ikke være synlige på elementlisten på IFTTT, så hvis det ikke er synligt, skal du slå noget til og fra og derefter genindlæse. Tillykke, du har nu fuldstændig IFTTT -adgang til alt i dit OpenHAB -system!

Bluetooth -tilstedeværelsessensor ved hjælp af REST

For kort tid siden viste jeg dig, hvordan du laver en automatisk kontordørlås ved hjælp af Bluetooth -scanning for at registrere tilstedeværelse af brugeren - jeg ville bringe sådan noget ind i OpenHAB.

På enhver anden platform end Raspberry Pi ville dette være enkelt takket være en færdiglavet Bluetooth-binding; desværre virker det ikke på Pi på grund af en afgørende Java -fil, der skulle genkompileres til ARM -arkitekturen, tilføjes til bindingen og derefter genopbygge bindingen. Tilstrækkeligt at sige, jeg prøvede det, og det var frygtelig kompliceret og fungerede ikke. Der er dog en meget lettere løsning, der også fungerer som en god introduktion til OpenHABs store udvidelsesmuligheder: vi vil ganske enkelt tilpasse vores tidligere Python -script for at få det til at rapportere direkte til OpenHAB RESTful -grænsefladen.

Bortset fra: en RESTful -grænseflade betyder, at du kan interagere med et system ved hjælp af den indbyggede webserver, blot ved at ringe til webadresser og videregive eller hente data. Du kan besøge denne URL for at se et enkelt eksempel på dette på din egen server: http: //raspberrypi.local: 8080/rest/items - som udsender en kodet liste over alle dine definerede elementer. Dette i utrolig kraftfuld, da det afslører det fulde potentiale i OpenHAB og giver dig mulighed for at skrive brugerdefinerede grænseflader; eller i brugt omvendt, for at rapportere status for sensorer uden at have en specifik binding. Vi vil bruge denne mulighed til at rapportere tilstedeværelsen af ​​en bestemt Bluetooth -enhed uden at ty til Bluetooth -bindingen.

Start med at tilføje en ny Kontakt element til din hjem. varer fil. Jeg har kaldt min 'JamesInOffice', og jeg har gjort det til en switch snarere end en simpel tænd/sluk -kontakt, så jeg manuelt kan styre min tilstedeværelse, hvis min telefon dør.

Switch JamesInOffice 'James in Office' (Office)

Bemærk, at jeg ikke har defineret et ikon eller tilknyttet en bestemt binding. Det er bare en generisk switch.

Indsæt derefter en kompatibel USB Bluetooth -dongle, og installer nogle grundlæggende værktøjer til at interagere med den.

sudo apt-get install bluez python-bluez python-pip
sudo pip install requests
hcitool dev

Den sidste kommando skal vise din Bluetooth -adapter. Hvis intet er angivet, kan du prøve en anden adapter, din er ikke kompatibel med Linux. Det næste trin er at finde Bluetooth -hardwareadressen på din enhed.

wget https://pybluez.googlecode.com/svn/trunk/examples/simple/inquiry.py
python inquiry.py

Sørg for, at din telefon er åben på siden med Bluetooth -indstillinger (som sætter den i parring/offentlig tilstand), og naturligvis at Bluetooth er aktiveret. Du bør finde en hexadecimal hardware -adresse på listen.

Opret et nyt Python -script fra din Pi -brugermappe indsæt denne kode .

Der er et par ting, du skal redigere, startende med din særlige enhedsadresse:

result = bluetooth.lookup_name('78:7F:70:38:51:1B', timeout=5)

Samt denne linje, der er to steder (ja, dette kunne nok være struktureret bedre). Skift JamesInOffice til kodenavnet på den switch, du definerede.

r = requests.put('http://localhost:8080/rest/items/JamesInOffice/state',data=payload)

Det sidste trin er at fortælle dette script at starte ved opstart.

sudo nano /etc/rc.local

Rul ned til bunden og lige før afkørsel 0, tilføj følgende linjer:

python /home/pi/detect.py &

& -Tegnet betyder 'gør dette i baggrunden'. Kør scriptet, hvis du ikke allerede har gjort det, og åbn din OpenHAB -grænseflade. Hvis du har føjet den til en gruppe, skal du klikke videre til den gruppe. Det tager cirka 10 sekunder at opdatere, men du vil se, at standardpæreikonet tændes eller slukkes, afhængigt af om din telefon er opdaget eller ej. Kontroller logfilen, hvis der ikke sker noget, det kan være, at du har brugt det forkerte varenavn.

OpenHAB Mobile App

Selvom du selvfølgelig kan bruge webgrænsefladen fra en mobilenhed, har OpenHAB native apps til begge ios og Android - og de ser a masse pænere end standard browser -grænsefladen. På indstillingsskærmen skal du indtaste den lokale URL som den interne IP, du har brugt indtil nu, inklusive portnummeret. For fjernwebadresse skal du indtaste https://my.openhab.org , og du brugernavn (e -mail) og adgangskode, som du indtastede, da du tilmeldte dig. Hvis du endnu ikke har tilmeldt dig MyOpenHAB, skal du bare lade autentificering og fjernwebadresse stå tomme, men du får kun adgang til dit system fra din lokale Wi-Fi.

Gå fremad og få hjælp

Mængden af ​​tilpasninger og flotte funktioner, du kan tilføje til din OpenHAB -controller, er virkelig episk. Udover den store liste over understøttede enheder med bindinger, kan du bruge RESTful -grænsefladen, HTTP -udvidelser og IFTTT til at læse fra eller styre bogstaveligt talt enhver form for IoT -enhed og derefter nogle (prøv nogle af vores kreative belysningsideer). Ja, det er en absolut smerte at installere, men ikke et enkelt kommercielt system kan komme tæt på kraften i et tilpasset OpenHAB -system.

Når det er sagt, var turen slet ikke let for mig, og det er netop derfor, jeg skrev denne guide, for at lette processen for dig. Og hvis du finder OpenHAB-systemet overvældende, er der andre muligheder, når det kommer til Raspberry-hjemmeautomatisering --- som f.eks. At bruge Raspberry Pi til at automatisere din garageport.

Følg med på MakeUseOf for en avanceret guide, der dækker Z-Wave og andre fede tricks, du kan konfigurere.

Hvis du har brug for hjælp til en bestemt del af denne vejledning, bedes du spørge væk i kommentarerne. Hvis du vil have hjælp til en anden binding eller nogle avancerede emner, vi ikke har dækket endnu, kan officielle OpenHAB -fora er et indbydende sted.

Del Del Tweet E -mail 5 tips til at overlade dine VirtualBox Linux -maskiner

Træt af den dårlige ydelse, der tilbydes af virtuelle maskiner? Her er hvad du skal gøre for at øge din VirtualBox -ydeevne.

Læs Næste
Relaterede emner
  • gør det selv
  • Smart hjem
  • Hjemmeautomatisering
  • Lang form
  • Longform Guide
  • Smart Hubs
Om forfatteren James Bruce(707 artikler udgivet)

James har en bachelor i kunstig intelligens og er CompTIA A+ og Network+ certificeret. Når han ikke har travlt som Hardware Reviews Editor, nyder han LEGO, VR og brætspil. Inden han kom til MakeUseOf, var han belysningstekniker, engelsklærer og datacenteringeniør.

Mere fra James Bruce

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere