Komme i gang med OpenHAB Home Automation på Raspberry Pi

Komme i gang med OpenHAB Home Automation på Raspberry Pi
Denne guiden er tilgjengelig for nedlasting som en gratis PDF. Last ned denne filen nå . Kopier og del dette gjerne med venner og familie.

OpenHAB er en moden, åpen kildekode hjemmeautomatiseringsplattform som kjører på en rekke maskinvarer og er protokollagnostisk, noe som betyr at den kan koble til nesten hvilken som helst hjemmeautomatiseringsmaskinvare på markedet i dag. Hvis du har blitt frustrert over antallet produsentspesifikke apper du trenger å kjøre bare for å kontrollere lysene dine, så har jeg gode nyheter for deg: OpenHAB er løsningen du har lett etter - det er det mest fleksible smarthuset hub du noen gang vil finne.





Dessverre er det omtrent så langt du kan komme fra forbrukervennlig - men som alltid, det er her MakeUseOf kommer inn: Vi viser deg hvordan du kommer i gang med de ultimate smarthus -systempengene du ikke trenger å kjøpe (fordi OpenHAB er 100% gratis - bare å levere maskinvaren).





Den første delen av denne veiledningen fokuserer spesielt på hvordan du får OpenHAB -oppsett med en Raspberry Pi 2 , men videre kan opplæringsprogrammene og rådene brukes overalt hvor OpenHAB er installert.





Denne guiden dekker tre innledende emner, og ett litt mer avansert.

  • Å få OpenHAB i gang på Pi, og installere demo house -konfigurasjonen for å kontrollere at kjernesystemer fungerer.
  • Slik legger du til bindinger og profiler for enheter. Jeg skal jobbe med Philips Hue.
  • Aktivering av ekstern tilgang og tilkobling til IFTTT.
  • Legger til en DIY -tilstedeværelsessensor ved hjelp av Bluetooth, og en introduksjon til REST -grensesnittet.
  • Konfigurering av OpenHAB -mobilappen.

Hva du trenger

I det minste trenger du en Raspberry Pi (fortrinnsvis v2) og en Ethernet- eller trådløs adapter (foretrukket Ethernet, denne guiden inneholder ikke instruksjoner om hvordan du får Wi-Fi-adapteren til å fungere). Alt annet er valgfritt. Vær oppmerksom på at OpenHAB også vil kjøre på den opprinnelige Raspberry Pi, men det er et kjent problem med tregere behandling og Z-Wave-enheter. Hvis du ikke trenger Z-Wave, kan du trygt ignorere denne advarselen og fortsette med en Raspberry Pi modell B eller B+, fordi alt annet ser ut til å fungere fint. Du kan alltid oppgradere til den siste Pi hvis og når du legger til Z-Wave.



Denne lille tingen kan være den beste smarthjemmen du noen gang har hatt!

I skrivende stund er den siste stabile versjonen av OpenHAB versjon 1.71; versjon 1.8 forventes snart, og alt i denne veiledningen bør fortsatt være relevant, selv om visse bindinger kan ha flere funksjoner. Versjon 2 er for øyeblikket også tilgjengelig som en veldig tidlig alfa -forhåndsvisning, men vedtar en dramatisk annerledes arkitektur enn OpenHAB 1 -serien: denne veiledningen er ikke kompatibel med versjon 2.





Jeg anbefaler på det sterkeste at du følger denne guiden sakte og metodisk - ikke prøv å hoppe inn i den dype enden og legg til alt på en gang. Ja, det er en lang guide - OpenHAB er et vanskelig system som ofte krever justeringer for dine behov, og den beste måten å sikre suksess er å jobbe sakte og fullføre ett stykke om gangen.

Den gode nyheten er at når det først fungerer, er det en bunnsolid opplevelse og utrolig givende.





Installere OpenHAB

Det er ikke noe forhåndskonfigurert bilde for OpenHAB, så installasjonen gjøres på en gammeldags måte via en kommandolinje. Jeg foreslår at du jobber hodeløst på RPi - kostnaden for å administrere en GUI som du sjelden vil bruke er ikke verdt det.

Start med siste (fulle) Raspbian SD -bilde (ikke 'lite' -versjonen, disse inkluderer ikke Java Virtual Machine). Koble til nettverkskabelen, start deretter opp og naviger gjennom SSH. Løpe:

sudo raspi-config

Utvid filsystemet; og fra den avanserte menyen, endre minnedelingen til 16. Når du er ferdig, starter du på nytt og kjører en fullstendig oppdatering

sudo apt-get update
sudo apt-get upgrade

Den enklere måten å installere OpenHAB -kjøretiden på er via apt-get , men først må vi legge til en sikker nøkkel og det nye depotet:

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

Merkelig nok ble alt installert som eid av 'root'. Vi må fikse det med følgende kommandoer.

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

Deretter installerer vi Samba og deler konfigurasjons- og brukermapper-dette vil gjøre det enklere å installere tillegg og endre nettstedskart eksternt.

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

Endre arbeidsgruppens navn om nødvendig, men aktiver ellers WINS -støtte:

wins support = yes

(du må fjerne kommentaren til linjen og endre nei til ja)

legg deretter til følgende i delingsdefinisjoner -delen (bla helt ned til bunnen av den lange filen):

[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 kommenterte også Printers -delen. Jeg har laget to aksjer, siden konfigurasjonsfilene faktisk lagres separat i tilleggene.

Lagre og lukk. Vi må endelig sette et Samba -passord for openhab -brukeren:

sudo smbpasswd -a openhab

Jeg vil foreslå 'openhab' som passord bare for brukervennlighet, men det spiller egentlig ingen rolle.

Takk til leseren David L - det ser ut til at metoden for å starte Samba på nytt har endret seg i den siste Raspian. Her er de oppdaterte instruksjonene:

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

Etter omstart av Samba (eldre installasjoner bruker sudo service samba restart ), tester du tilgang til den delte stasjonen. Det blir kanskje ikke automatisk oppdaget på en Mac; men du kan bruke Finder -> -> Koble til server og adressen

smb://openhab@raspberrypi.local

Godkjen med brukernavn openhab og passordet du har valgt, og åpne deretter begge delingene dine for å se deg rundt. Du bør til og med kunne åpne http: //raspberrypi.local: 8080/i nettleseren din, men du vil bli møtt med en feil fordi vi ikke har opprettet et nettstedskart ennå. Det er normalt.

Nå ville det være et godt tidspunkt å lære kommandoen for å tilpasse OpenHAB -loggen slik at du kan holde øye med feil.

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

Hold det kjørende og åpne det i et eget SSH -vindu hele tiden mens du fortsetter med guiden.

Installer Demo House

Før vi går i dybden med konfigurasjonsfiler, legger vi til enheter og bindinger osv. la oss sjekke at alt fungerer ved å legge til demoinnholdet. Du finner 'Demo Setup' under nedlastingsdelen på OpenHAB.org.

Når du har pakket den ut, er det to mapper: tillegg og konfigurasjoner .

Kopier med nettverksdelingene konfigurasjoner til OpenHAB Config dele og overskrive den eksisterende mappen. Kopiere tillegg til den andre OpenHAB Home dele igjen, overskrive de eksisterende mappene. Hvis du ikke blir bedt om å overskrive noe, gjør du det feil. Hvis du har øye med feilsøkingsloggfilen, bør du se en flutter av aktivitet når den merker de nye bindingene og hvirvler til handling. Åpne raspberrypi.local: 8080/openhab.app? Sitemap = demo for å se demoen.

Det ser litt grunnleggende ut for øyeblikket, men den åpne naturen til OpenHAB betyr at vi kan installere et nydelig nytt tema senere eller et alternativt grensesnitt helt. For nå måtte vi bare vite at alt fungerer. Vær oppmerksom på at det vi ser på kalles a nettstedskart (ingenting å gjøre med et nettstedskart). Et nettstedskart beskriver brukergrensesnittet - ikke de faktiske enhetene på nettverket eller sensorer - bare grensesnittet for å se dem. Hver del av den er fullstendig tilpassbar. For å se hvordan denne er opprettet, åpner du nettstedskart/demo.sitemap filen på OpenHAB Config -delingen.

Det er ganske skremmende, men for det meste kopierer du limekodefragmenter fra eksempler andre steder for å lage ditt eget tilpassede grensesnitt. Her er teknisk oversikt av alle mulige nettstedskartelementer, men for nå er det nok bare å begynne å tenke på hva slags grensesnitt du vil bygge og hvilken informasjon du vil vise.

Mens du er der inne, åpner du opp varer/demo.items også. Igjen ser det skummelt ut, men det er her du lager elementer for å kontrollere og definere sensorer som skal spores.

Så hvordan fungerer OpenHAB?

Nå som du har hatt en rask gjennomgang av mappen for nettstedskart og elementer, la oss bryte ned nøyaktig hva disse filene er og de andre hovedkomponentene i OpenHAB som kombineres for å skape ditt komplette smarte hjem. Du finner undermapper for hver av disse i OpenHAB Config delte mappe.

Elementer er en oversikt over hver kontrollenhet, sensor eller informasjonselement du vil ha i systemet. Det trenger ikke være en fysisk enhet heller - du kan definere en webkilde, for eksempel vær eller aksjekurser. Hvert element kan navngis, tilordnes flere grupper (eller ingen), og kobles til spesifikk binding. (Nybegynnertips: Store bokstaver er viktig når det gjelder bindinger. Jeg brukte lang tid på å finne ut hvorfor 'Hue' -pærene ikke fungerte; det var fordi de burde vært 'fargetone' i stedet).

Nettkart er bare opptatt av grensesnittet du vil se når du åpner OpenHAB -mobil- eller nettappen. Du kan kontrollere nøyaktig hvordan du vil at knappene skal legges ut og informasjonen presenteres. Du kan definere grupper på toppnivå for hvert rom i huset ditt; Hvis du klikker på hver, vises en liste over alle enhetene i rommet. Eller du foretrekker å vise grupper for hver type enhet: en knapp for lys, en annen for stikkontakter. Det kan være noen enheter du bruker så ofte at du bare vil ha en bryter for dem rett på startskjermen.

Regler Det er her hjemmeautomatiseringsaspektet spiller inn, hvor du kan definere tidsplaner eller betingelser for at en handling skal skje. Enkle hendelser som å slå på soveromslysene klokken 22.00 til en varm rød farge; eller mer kompleks logikk som å slå på en romvarmer hvis temperaturen er lavere enn 0 og noen er tilstede i det rommet. Du finner også en skript mappe, som tilbyr lignende funksjonalitet som regler, men på et mer komplekst nivå av programmerbar logikk.

Standhaftighet er et avansert emne som vi ikke vil behandle i denne veiledningen, men utholdenhet definerer data du vil beholde en oversikt over. Som standard vil OpenHAB bare vise gjeldende tilstand for noe; Hvis du vil spore denne verdien over tid, må du sette opp en persistensdefinisjon for den datakilden. I dette vil du spesifisere ting som hvor ofte et datapunkt skal måles, eller når du skal kaste gamle datapunkter - du må også fortelle det hva slags utholdenhetsmotor du skal bruke, for eksempel MySQL eller enkel logging til en fil .

Forvandle inneholder tilordninger for dataverdier til etiketter. For eksempel humidex.skala filen definerer en rekke fuktighetsindeksverdier og hvordan de skal vises på engelsk: 29-38 er 'noe ubehag'.

De nettstedskart og elementer filer er avgjørende for at OpenHAB skal kjøre; resten er valgfritt. Du kan ha flere nettstedskart og elementer, slik at du kan beholde demoinnholdet og referere til det når som helst, eller prøve et nytt oppsett for hjemmekontrollgrensesnittet. Ikke bekymre deg hvis alt virker litt overveldende akkurat nå. Vi vil dele det opp i håndterbare biter, og jeg lover at du ved slutten av denne guiden vil ha tillit til å lage ditt eget OpenHAB -oppsett.

Deretter går vi gjennom å legge til noen vanlige smarthjemsett, fra bunnen av i et nytt nettstedskart. Hver enkelt vil introdusere noen kjernekonsepter som hvordan du installerer bindinger og varedefinisjoner, så jeg vil sterkt oppfordre deg til å lese gjennom disse instruksjonene selv om du ikke eier de spesielle enhetene .

Start med å lage en ny (blank) hjem. varer fil og en ny hjem. nettstedskart fil i de relevante katalogene. Åpne opp hjem. nettstedskart og lim inn følgende kode. Dette fungerer bare som et grunnleggende skjelett som vi vil legge til biter til senere.

sitemap home label='My Home'
{

}

Du bør se en melding for å rapportere at OpenHAB har identifisert et nytt nettstedskart og elementfil.

aligncenter size-large wp-image-496593

Aktiver feilsøkingsmodus

Mens du fortsatt prøver å få OpenHAB til å fungere riktig, kan det være nyttig å aktivere en mer oversiktlig feilsøkingslogg som viser alt, og ikke bare de viktige tingene. For å aktivere denne modusen, åpne OpenHAB Config delte mappe og rediger logback.xml . På linje 40, endre følgende linje for å lese DEBUG i stedet for INFO. Du må starte på nytt etter at du har endret dette.

Dette er en global endring, så du får mye mer informasjon når du har logget filen.

Legger til Philips Hue

Jeg skal begynne med Philips Hue. Som de fleste tingene du vil samhandle med i OpenHAB, krever Hue -pærer at du installerer en bindende - tenk på bindinger som en enhetsdriver. I skrivende stund er det rundt 160 bindinger tilgjengelig for OpenHAB 1, og derfor er OpenHAB et så kraftig system - det kan grensesnittet med alt og kombinere alle de forskjellige kontrollsystemene til et enkelt enhetlig grensesnitt. Her er en demo og rask oversikt over trinnene som er involvert.

Bindinger må først lastes ned, og den enkleste måten å gjøre dette på Pi er å bruke apt-get , tving deretter eierskap til openhab -brukeren.

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

Deretter må du be OpenHAB om å laste inn bindingen, og konfigurere eventuelle variabler som trengs. Bla til konfigurasjonsmappen og lag en kopi av openhab-default.cfg , navngi den openhab.cfg . Åpne det, søk etter HUE og erstatt hele delen med følgende kode. Det eneste du trenger å endre er IP -verdien til broen din - hvis du ikke allerede vet det, kan du prøve det elektroniske oppdagelsesverktøyet. Den hemmelige verdien spiller egentlig ingen rolle, det er bare et slags brukernavn som OpenHAB vil bruke for å identifisere seg til broen.

Raskt tips : For å aktivere en linje, fjerner du bare # fra starten. Som standard er linjen som angir IP -adressen til broen deaktivert (eller teknisk sett 'kommentert'). Hvis du prøver en alternativ konfigurasjon, kan det også være nyttig å bare kopiere den eksisterende linjen og sette et # i begynnelsen for å merke den som en kommentar, slik at du enkelt kan gå tilbake hvis ting går galt.

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

Lagre og lukk. Som alle andre Hue -applikasjoner, må du godkjenne OpenHAB på Hue Bridge ved å trykke på knappen på forsiden - du trenger bare å gjøre dette én gang. Du får se en melding om venter på å bli paret hvis du bruker loggfilen, men hvis du har glemt eller gått glipp av nedtellingen, bare tilbakestill Pi - du får en timer på 100 sekunder fra når Hue -bindingen startes. Sørg for at du har parret før du fortsetter.

Deretter åpner du hjem. varer fil, som vi legger til noen Hue -pærer. Her er et eksempel på elementdefinisjon:

Color Bedroom_Hue 'Bedroom Hue' (Bedroom) {hue='1'}
  • De Farge word spesifiserer hva slags kontroll vi har over denne varen. RGB Hue -pærer er 'Color', siden vi har full fargekontroll av dem. Andre lys kan bare være en bryter.
  • Neste er kodenavnet til varen: Jeg valgte Soverom_Hue , men bokstavelig talt er alt bra - bare noe beskrivende som føles naturlig for deg, fordi du må huske det senere når du lager nettstedskartet. Kodenavnet skal ikke ha mellomrom.
  • Mellom anførselstegnene er etiketten. Vårt er enkelt i dette tilfellet, men for noen elementer som temperatur eller noe som rapporterer en verdi, legger du til en spesiell kode som forteller hvordan du viser den verdien eller bruker hva forvandle. Etiketten er for grensesnittet, og den kan ha mellomrom.
  • Mellom vinkelparentesene er navnet på ikonet. Du finner alle tilgjengelige ikoner i OpenHAB -aksjen, under webapps/bilder katalog. Det er faktisk en hel rekke nyanseikoner som representerer forskjellige lysstyrker eller av/på. Bare spesifiser navnet på basisikonet - OpenHAB vet at de automatisk skal se etter de forskjellige av/på -ikonene hvis dette er et byttet element. Dette er valgfritt.
  • I de runde parentesene forteller vi det hvilke grupper som skal være en del av - i dette tilfellet bare Soverom gruppe.
  • Til slutt og avgjørende, kobler vi varen til passende binding med eventuelle variabler som trengs. I dette tilfellet, fargetone bindende, og nummeret på pæren er 1. Du kan finne nummeret ved å åpne den offisielle Hue -applikasjonen og se på kategorien lys. Hver pære har et unikt nummer.

Jeg har lagt til totalt fire pærer, i tillegg til en enkel erklæring om gruppene som vi vil utvide senere. Her er min komplette hjem. varer På dette punktet:

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'}

De / * Lys */ tekst er bare en kommentar, den har ingen annen funksjon enn å hjelpe oss med å skanne filen senere når den blir større. Nå har vi lagt til enhetene, men åpner http: //raspberrypi.local: 8080/? Sitemap = home resulterer i et tomt grensesnitt - selvfølgelig fordi vi ikke har opprettet grensesnittelementer i nettstedskartet ennå. La oss begynne veldig enkelt for nå. Åpne opp hjem. nettstedskart .

Koden som brukes til å beskrive grensesnittet, er forskjellig fra elementer, men for nå lager vi en ny 'ramme' og legger til et par gruppekontroller sammen med noen 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 nyttig verktøy for rask testing, men i virkeligheten vil du ha mer kontroll over hvordan elementene vises. For nå vil dette være tilstrekkelig. Lagre og last inn ditt nettstedskart på nytt i nettleseren. Du bør se dette (eller, uansett hvilke grupper du har lagt til).

Klikk på All belysning for å se hvert Hue -lys, siden vi har definert dem alle som tilhørende den overordnede lysgruppen.

Legg merke til at Office Hue -elementet vises med et annet ikon - det er fordi kontorlampen min allerede er tent, og OpenHAB vet dette da den snakket til Hue -broen og var smart nok til å justere ikonet 'på' -versjonen av filen. Dessverre gjenspeiler det ikke fargen, men hvis du har en mobilapp installert, gjenspeiler den gjeldende farge.

Hvis du ser flere elementer enn du trodde du hadde definert eller mottok feil om flere definisjoner, vet du at selv om du bare kan laste inn ett nettstedskart om gangen på siden alle nettstedskart vil trekke elementer inn fra alle .item -filer , så hvis du har lagt igjen demoelementfilen der, kan det hende at du får opp noen flere elementer i gruppene dine også. Jeg vil foreslå at du på dette tidspunktet sikkerhetskopierer innholdet i demo -elementene og flytter det ut av mappen for å unngå dupliseringsfeil.

Ekstern tilgang, og IFTTT med My.OpenHAB

Akkurat nå må du være på det samme lokale nettverket for å få tilgang til OpenHAB-systemet, men hva om du vil kontrollere enhetene dine og sjekke om sensorer er utenfor rekkevidden til Wi-Fi? For det må vi konfigurere ekstern tilgang - og vi gjør det på den enkle måten, med My.OpenHAB -webtjenesten [Broken URL Removed], som omgår behovet for å rote rundt med portvideresending og ruterkonfigurasjoner. Som en bonus har My.OpenHAB -tjenesten også en IFTTT -kanal, som gir deg uendelige muligheter for fjernkontroll og automatisering.

Først: installer bindingen. Rask tips: hvis du ikke vet det eksakte navnet på en bestemt installasjonspakke, kan du prøve å søke etter 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 deg på My.OpenHAB -nettstedet, må du opprette en hemmelig nøkkel og finne UUID -en din, som identifiserer installasjonen din på en unik måte. Sjekk under OpenHAB Home -deling -> webapps -> statisk og du bør finne en UUID -fil som inneholder din unike identifikator. Det var på dette tidspunktet jeg oppdaget at Pi brukte en eldre versjon av Java som ikke opprettet den hemmelige nøkkelen på riktig måte. Type

java -version

å sjekke. Hvis det ikke står 1.7 eller høyere, har du feil versjon. Merkelig, den siste versjonen av Raspbian kommer med Oracle Java 8 installert, men ikke angitt som standard.

sudo update-alternativer --config java

hvordan slette dupliserte bilder på iphone

Velg alternativet som indikerer jdk-8-orakel , og start deretter OpenHAB på nytt. Bonus: Oracle Java 8 er raskere enn standard OpenJDK!

Nå bør du også finne en hemmelig fil i webapps/statisk mappe. Åpne begge hemmelig og uuid , og vær klar til å kopiere inn.

Gå nå, opprett en My.OpenHAB -konto, bruk disse detaljene, og kom tilbake - du må også bekrefte e -posten din før noe fungerer. Det er et par trinn til denne. Først må vi sette standard persistensmotoren til myopenhab (utholdenhet er noe for en senere guide, men uansett må vi sette opp noe grunnleggende for å 'eksportere' dataene våre til online -tjenesten og gjøre den synlig for IFTTT) . For å gjøre dette, åpne openhab.cfg, og finn variabelen som sier utholdenhet: standard = og endre det til utholdenhet: standard = myopenhab . Lagre.

Til slutt lager du en ny fil i konfigurasjoner/utholdenhet mappen heter myopenhab.persist og lim inn følgende regel.

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

Du trenger ikke å forstå dette for nå, men vet at det står 'lagre hver elementstatus når den endres'.

For å få kontakt med IFTTT, gå til OpenHAB -kanal - du må autentisere og gi den tilgang til MyOpenHAB -kontoen din. Vær også oppmerksom på at før elementene dine har endret seg minst én gang, vil de ikke være synlige i elementlisten på IFTTT, så hvis det ikke er synlig, slår du noe på og av og deretter laster det inn på nytt. Gratulerer, du har nå fullstendig IFTTT -tilgang til alt i OpenHAB -systemet!

Bluetooth -tilstedeværelsessensor ved bruk av REST

For kort tid siden viste jeg deg hvordan du lager en automatisk kontordørlås ved hjelp av Bluetooth -skanning for å oppdage brukerens tilstedeværelse - jeg ønsket å bringe noe slikt inn i OpenHAB.

På en hvilken som helst annen plattform enn Raspberry Pi ville dette være enkelt takket være en ferdig Bluetooth-binding; Dessverre fungerer det ikke på Pi på grunn av en avgjørende Java -fil som må kompileres på nytt for ARM -arkitekturen, legges til bindingen og deretter gjenoppbygge bindingen. Det er nok å si at jeg prøvde det, og det var fryktelig komplisert og fungerte ikke. Det er imidlertid en mye enklere løsning som også fungerer som en god introduksjon til den store utvidelsen av OpenHAB: vi vil ganske enkelt tilpasse vårt tidligere Python -skript for å få det til å rapportere direkte til OpenHAB RESTful -grensesnittet.

Bortsett: et RESTful -grensesnitt betyr at du kan samhandle med et system ved å bruke den innebygde webserveren, ganske enkelt ved å ringe URL -er og sende inn eller hente data. Du kan besøke denne URL -en for å se et enkelt eksempel på dette på din egen server: http: //raspberrypi.local: 8080/rest/items - som sender ut en kodet liste over alle de definerte elementene dine. Dette er utrolig kraftig, ettersom det avslører hele potensialet til OpenHAB og lar deg skrive tilpassede grensesnitt; eller i revers, for å rapportere status for sensorer uten å ha en spesifikk binding. Vi bruker denne muligheten til å rapportere tilstedeværelsen av en bestemt Bluetooth -enhet uten å bruke Bluetooth -bindingen.

Start med å legge til en ny Bytte om element til din hjem. varer fil. Jeg har kalt min 'JamesInOffice', og jeg har gjort det til en bryter i stedet for en enkel av/på -kontakt, slik at jeg kan kontrollere min tilstedeværelse manuelt hvis telefonen min dør.

Switch JamesInOffice 'James in Office' (Office)

Legg merke til at jeg ikke har definert et ikon eller tilknyttet en bestemt binding. Det er bare en generisk bryter.

Sett deretter inn en kompatibel USB Bluetooth -dongle, og installer noen grunnleggende verktøy for å samhandle med den.

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

Den siste kommandoen skal vise Bluetooth -adapteren din. Hvis ingenting er oppført, kan du prøve en annen adapter, din er ikke kompatibel med Linux. Det neste trinnet er å finne Bluetooth -maskinvareadressen til enheten din.

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

Sørg for at telefonen er åpen på siden for Bluetooth -innstillinger (som setter den i paring/offentlig modus), og åpenbart at Bluetooth er aktivert. Du bør finne en heksadesimal maskinvareadresse som er oppført.

Opprett et nytt Python -skript og lim inn denne koden .

Det er noen få ting du må redigere, og starter med din spesifikke enhetsadresse:

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

I tillegg til denne linjen, som er på to steder (ja, dette kan sannsynligvis være strukturert bedre). Endre JamesInOffice til kodenavnet til bryteren du definerte.

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

Det siste trinnet er å fortelle dette skriptet å starte ved oppstart.

sudo nano /etc/rc.local

Rull ned til bunnen og like før avkjørsel 0, legg til følgende linjer:

python /home/pi/detect.py &

& -Tegnet betyr 'gjør dette i bakgrunnen'. Kjør skriptet hvis du ikke allerede har gjort det, og åpne OpenHAB -grensesnittet. Hvis du har lagt den til i en gruppe, klikker du deg videre til den gruppen. Det tar omtrent 10 sekunder å oppdatere, men du ser standard lyspæreikonet slå på eller av avhengig av om telefonen din blir oppdaget eller ikke. Sjekk loggfilen hvis ingenting skjer, det kan være at du har brukt feil varenavn.

OpenHAB mobilapp

Selv om du selvfølgelig kan bruke webgrensesnittet fra en mobilenhet, har OpenHAB integrerte apper for begge ios og Android - og de ser ut mye bedre enn standard nettlesergrensesnitt. På innstillingsskjermen skriver du inn den lokale nettadressen som den interne IP -en du har brukt til nå, inkludert portnummeret. For ekstern URL, skriv inn https://my.openhab.org , og du brukernavn (e -post) og passord som du skrev inn da du registrerte deg. Hvis du ikke har registrert deg for MyOpenHAB ennå, bare la autentiseringen og den eksterne URL-en stå tom, men du får bare tilgang til systemet ditt fra din lokale Wi-Fi.

Gå videre og få hjelp

Mengden tilpasning og fine funksjoner du kan legge til i OpenHAB -kontrolleren din er virkelig episk. I tillegg til den store listen over støttede enheter med bindinger, kan du bruke RESTful -grensesnittet, HTTP -utvidelser og IFTTT til å lese fra eller kontrollere bokstavelig talt alle slags IoT -enheter, og deretter noen (prøv noen av våre kreative belysningsideer). Ja, det er en absolutt smerte å installere, men ikke et eneste kommersielt system kan komme nær kraften i et tilpasset OpenHAB -system.

Når det er sagt, var turen ikke lett for meg, og det er nettopp derfor jeg skrev denne guiden for å lette prosessen for deg. Og hvis du synes OpenHAB-systemet er overveldende, finnes det andre alternativer når det gjelder bringebær-hjemmeautomatisering --- som å bruke Raspberry Pi for å automatisere garasjeporten din.

Følg med på MakeUseOf for en avansert guide som dekker Z-Wave og andre kule triks du kan sette opp.

Hvis du trenger hjelp med en bestemt del av denne guiden, vennligst spør i kommentarfeltet. Hvis du vil ha hjelp med en annen binding eller noen avanserte emner vi ikke har dekket ennå, vil offisielle OpenHAB -fora er et innbydende sted.

Dele Dele kvitring E -post 5 tips for å overbelaste VirtualBox Linux -maskinene dine

Lei av den dårlige ytelsen som tilbys av virtuelle maskiner? Her er hva du bør gjøre for å øke VirtualBox -ytelsen.

Les neste
Relaterte temaer
  • DIY
  • Smart hjem
  • Hjemmeautomatisering
  • Langform
  • Longform Guide
  • Smart Hubs
Om forfatteren James Bruce(707 artikler publisert)

James har en BSc i kunstig intelligens og er CompTIA A+ og Network+ sertifisert. Når han ikke er opptatt som Hardware Reviews Editor, liker han LEGO, VR og brettspill. Før han begynte i MakeUseOf, var han belysningstekniker, engelsklærer og datasenteringeniør.

Mer fra James Bruce

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere