Komme i gang med OpenHAB Home Automation på Raspberry Pi

Komme i gang med OpenHAB Home Automation på Raspberry Pi / Smart Hjem

OpenHAB er en moden, åpen kildekode-hjemmeautomatiseringsplattform som kjører på en rekke maskinvare og er protokollabnostisk, noe som betyr at den kan koble til nesten hvilken som helst hjemmevirksomhets maskinvare på markedet i dag. Hvis du har blitt frustrert med antall produsent-spesifikke apper du trenger å kjøre bare for å kontrollere lysene dine, så har jeg gode nyheter for deg: OpenHAB er løsningen du leter etter - det er det mest fleksible smarte hjemmet hub Hvilken Smart Hub for Home Automation er best for deg? Hvilken Smart Hub for Home Automation er best for deg? For en stund tenkte folk på ideen som ingenting annet enn en gimmick, men nylige produktutgivelser har vist at smart hjemmeautomatisering begynner å leve opp til sine løfter. Les mer du vil finne.

Denne veiledningen er tilgjengelig for nedlasting som en gratis PDF. Last ned Komme i gang med OpenHAB Home Automation på Raspberry Pi nå. Du er velkommen til å kopiere og dele dette med venner og familie.

Dessverre handler det om så langt du kan få fra forbruksvennlig - men som alltid, det er der MakeUseOf kommer inn: vi skal vise deg hvordan du går opp og går med det ultimate smarte hjemmet pengene trenger ikke å kjøpe (fordi OpenHAB er 100% gratis - bare leverer 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 veiledningene og rådene brukes til hvor som helst OpenHAB er installert.

Denne veiledningen dekker tre innledende emner, og en litt mer avansert.

  • Å få OpenHAB opp og kjører på Pi, og å installere demohuskonfigurasjonen for å sjekke kjernesystemer, virker.
  • Hvordan legge til bindinger og profiler for enheter. Jeg jobber med Philips Hue.
  • Aktiverer ekstern tilgang og tilkobling til IFTTT.
  • Legge til en DIY-nærværsensor ved hjelp av Bluetooth, og en introduksjon til REST-grensesnittet.
  • Konfigurere OpenHAB mobilappen.

Hva du trenger

I det minste trenger du en Raspberry Pi (v2, helst), og en Ethernet eller trådløs adapter (Ethernet-foretrukket, denne veiledningen inneholder ikke instruksjoner om hvordan du gjør Wi-Fi-adapter-arbeidet. Sette opp trådløst nettverk på din hindbær Pi Sette opp trådløst nettverk på din Raspberry Pi Nesten hvert Hindbær Pi-prosjekt vil kreve en nettverkstilkobling, og stor fleksibilitet kan oppnås ved å ignorere Ethernet-porten til fordel for en trådløs USB-dongle. Les mer). Alt annet er valgfritt. Legg merke til at OpenHAB vil kjøre på den opprinnelige Raspberry Pi, men det er et kjent problem med langsommere prosessering og Z-Wave-enheter. Hvis du ikke har behov for Z-Wave, kan du sikkert ignorere denne advarselen og fortsette med en Raspberry Pi-modell B eller B +, fordi alt annet ser ut til å fungere bra. Du kan alltid oppgradere til den siste Pi hvis og når du legger til Z-Wave.

Denne lille tingen kan være det beste smarte hjemnavet du noen gang har hatt!

I skrivende stund er den nyeste 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 også tilgjengelig for øyeblikket som en veldig tidlig alfaforhåndsvisning, men adopterer en dramatisk annerledes arkitektur til OpenHAB 1-serien: denne guiden er ikke kompatibel med versjon 2.

Jeg anbefaler sterkt at du følger denne veiledningen gjennom sakte og metodisk - Ikke prøv å hoppe inn i den dype enden og legge alt på en gang. Ja, det er en lang guide. OpenHAB er et vanskelig system som ofte krever tweaking for dine behov, og den beste måten å sikre suksess på er å jobbe sakte og fullføre ett stykke av gangen..

Den gode nyheten er at når det virker, er det en solid erfaring og utrolig givende.

Installere OpenHAB

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

Start med det nyeste (fullstendige) Raspbian SD-bildet (ikke “lite” versjon, disse inkluderer ikke Java Virtual Machine). Få nettverkskabelen din tilkoblet, start opp og navigere gjennom SSH. Løpe:

sudo raspi-config

Utvid filsystemet; og fra den avanserte menyen, skift minnesplassen til 16. Når du er ferdig, start på nytt og, som god praksis, kjøre en full oppdatering

sudo apt-get oppdatering sudo apt-get oppgradering

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 oppdatering sudo apt-get install openhab-runtime sudo oppdatering-rc.d openhab defaults

Merkelig, alt ble installert som eid av “rot”. Vi må fikse det med følgende kommandoer.

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

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

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

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

vinner støtte = ja

(du må uncomment linjen, og endre nei til ja)

Legg deretter til følgende i delen Definisjoner (bla helt ned til bunnen av den lange filen):

[OpenHAB Home] kommentar = OpenHAB Home path = / usr / share / openhab browseable = Ja skrivebar = Ja bare gjest = nei opprett maske = 0777 katalogmaske = 0777 offentlig = nei [OpenHAB Config] kommentar = OpenHAB Site Config path = / etc / openhab browseable = Ja writeable = Ja bare gjest = nei opprett maske = 0777 katalogmaske = 0777 offentlig = nei

Jeg har også kommentert avsnittet Skrivere. Jeg har laget to aksjer, siden konfigurasjonsfilene faktisk lagres separat til 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 ingen rolle.

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

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

Etter at du har startet Samba (bruk eldre installasjoner sudo service samba restart), test at du har tilgang til den delte stasjonen. Det kan ikke bli automatisk oppdaget på en Mac; men du kan bruke Finder -> -> Koble til server og adressen

smb: //[email protected]

Godkjen med brukernavnet openhab og ditt valgte passord, og åpne begge delene dine for å se deg om. Du bør til og med kunne åpne http: //raspberrypi.local: 8080 / i nettleseren din, men du vil bli møtt av en feil fordi vi ikke har opprettet et nettstedkart ennå. Det er normalt.

Nå vil det være en god tid å lære kommandoen å hale OpenHAB-loggen, slik at du kan holde øye med feil.

hale -f /var/log/openhab/openhab.log

Hold det løpende og åpne i et separat SSH-vindu hele tiden mens du fortsetter med guiden.

Installer Demo House

Før vi dykker inn i intricacies av konfigurasjonsfiler, legger til enheter og bindinger etc; la oss sjekke alt som fungerer ved å legge til demoinnholdet. Du vil finne “Demo Setup” under nedlastingsdelen av OpenHAB.org.

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

Bruk nettverksaksjene, kopier konfigurasjoner til OpenHAB Config dele og overskrive den eksisterende mappen. Kopiere addons 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 på feilsøkingsloggfilen, bør du se en fladder av aktivitet som det legger merke til de nye bindingene og hvirvene til handling. Åpne raspberrypi.local: 8080 / openhab.app? Sitemap = demo for å se demoen.

Det er litt grunnleggende å se i øyeblikket, men OpenHABs åpenhet betyr at vi kan installere et nydelig nytt tema senere eller et alternativt grensesnitt helt. For nå har vi bare trengte å vite at det hele fungerer. Vær oppmerksom på at det vi ser på kalles a sitemap (ingenting å gjøre med et nettstedssidekart). En sitemap beskriver brukergrensesnittet - ikke de faktiske enhetene på nettverket eller sensorer - bare grensesnittet for å vise dem. Hver del av den er helt tilpassbar. For å se hvordan denne er blitt opprettet, åpne den Sitemaps / demo.sitemap fil på OpenHAB Config-delen.

Det er ganske skremmende, men for det meste vil du kopiere klistrekodefragmenter fra eksempler andre steder for å lage ditt eget tilpassede grensesnitt. Her er den tekniske oversikten over alle mulige sitemapelementer, 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, åpne opp varer / demo.items også. Igjen ser det skummelt ut, men det er her du lager elementer for å kontrollere og definere sensorer for å spore.

Så hvordan fungerer OpenHAB?

Nå som du har hatt en rask oversikt over mappeoversikten og elementene, la oss slå ned nøyaktig hva disse filene er og de andre hovedkomponentene i OpenHAB som kombinerer for å lage ditt komplette, smarte hjem. Du finner underkataloger for hver av disse i OpenHAB Config-delt mappe.

elementer er en oversikt over hver kontrollenhet, sensor eller informasjonselement du vil ha i systemet ditt. Det trenger heller ikke være en fysisk enhet - du kan definere en nettkilde som vær eller aksjekurser. Hvert element kan bli navngitt, tildelt flere grupper (eller ingen), og knyttet til bestemt binding. (Nybegynner tips: Kapitalisering er viktig når det gjelder bindinger. Jeg brukte lang tid på å prøve å finne ut hvorfor min “Hue” pærer arbeidet ikke; det var fordi de burde vært “hue” i stedet).

Sitemaps er bare opptatt av grensesnittet du vil se når du åpner OpenHAB mobil eller web app. Du kan kontrollere nøyaktig hvordan du vil at knappene legges ut og informasjon som presenteres. Du kan definere toppnivågrupper for hvert rom i huset ditt; Ved å klikke på hver, vil du vise en liste over alle enheter i det rommet. Eller du kan foretrekke å vise grupper for hver type enhet: en knapp for lys, en annen for strømuttak. Det kan være noen enheter du bruker så ofte at du bare vil ha en bytte for dem rett på startskjermbildet.

regler er der hjemmeautomatiseringsaspektet kommer inn i spill, hvor du kan definere planer eller vilkår for en handling som skal skje. Enkle hendelser som å slå på soverommet lyser klokken 22.00 til en varm rød farge; eller mer komplisert logikk som å slå på en romvarmer hvis temperaturen er mindre enn 0 og noen er til stede i det rommet. Du finner også en skript mappe, som gir lignende funksjonalitet til regler, men på et mer komplekst nivå av programmerbar logikk.

Standhaftighet er et avansert emne som vi ikke vil dekke i denne veiledningen, men utholdenhet definerer data du vil beholde oversikt over. Som standard vil OpenHAB bare vise den nåværende tilstanden til noe; Hvis du vil spore den verdien over tid, må du sette opp en utholdenhetsdefinisjon for datakilden. Her spesifiserer du ting som hvor ofte et datapunkt skal måles, eller når du skal kaste bort gamle datapunkter. Du må også fortelle hva slags persistensmotor du skal bruke, for eksempel MySQL eller enkelt logging til en fil.

Forvandle inneholder mappings for dataverdier til etiketter. For eksempel, humidex.scale fil definerer en rekke fuktighetsindeksverdier og hvordan de skal vises på engelsk: 29-38 er “noe ubehag”.

De sitemap og elementer filer er avgjørende for OpenHAB å kjøre; resten er valgfritt. Du kan ha flere nettstedskart og elementer, slik at du kan holde demoinnholdet og henvise til det til enhver tid, eller prøve en ny layout for ditt hjemgrensesnitt. Ikke bekymre deg om alt dette virker litt overveldende akkurat nå, vi brer det ned i håndterbare stykker, og jeg lover ved slutten av denne veiledningen at du får tillit til å lage ditt eget OpenHAB-oppsett.

Neste opp, vi går deg gjennom å legge til noen vanlige smarte hjemmekitprogrammer, fra begynnelsen på nytt i et nytt nettstedskart. Hver enkelt vil introdusere noen kjernekonsepter, for eksempel hvordan du installerer bindinger og elementdefinisjoner, så jeg vil sterkt oppfordre deg til å lese gjennom disse instruksjonene selv om du ikke eier disse bestemte enhetene.

Begynn med å opprette en ny (tom) home.items fil og en ny home.sitemap fil i de relevante katalogene. Åpne opp home.sitemap og lim inn i følgende kode. Dette virker bare som et grunnleggende skjelett som vi legger til biter senere.

sitemap home label = "Mitt hjem"  

Du bør se et varsel for å rapportere at OpenHAB har identifisert en ny sitemap og elementfil.

Aktiver feilsøkingsmodus

Mens du fremdeles prøver å få OpenHAB til å fungere på riktig måte, kan det være nyttig å aktivere en mer omfattende feilsøkingslogg som viser alt, og ikke bare de viktige tingene. Hvis du vil aktivere denne modusen, åpner du OpenHAB Config-delt mappe, og redigerer 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, slik at du får mye mer informasjon når du haler loggfilen.

Legge til Philips Hue

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

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

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

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

Raskt tips: For å aktivere en linje, bare fjern # fra starten. Som standard er linjen som angir broens IP-adresse, deaktivert (eller teknisk, “kommentert”). Også, hvis du prøver en alternativ konfigurasjon, kan det være nyttig å bare kopiere den eksisterende linjen og sette en # i starten for å markere den som en kommentar, slik at du kan komme tilbake lett hvis ting går galt.

############### HUE Binding ####################################################### #########################
# IP av Hue broen nyanse: ip = 192.168.1.216 nyanse: hemmelig = makeuseofdotcom nyanse: refresh = 10000

Lagre og lukk. Som en tredjeparts Hue-applikasjon, må du godkjenne OpenHAB på Hue Bridge ved å trykke på knappen på forsiden - du trenger bare å gjøre dette en gang. Du vil se en melding om venter på å være parret hvis du taler loggfilen, men hvis du har glemt eller savnet tellingen ned, bare tilbakestill Pi - du får 100 sekunders timer fra når Hue-bindingen påbegynnes. Pass på at du har parret før du fortsetter.

Deretter åpner du home.items fil, som vi vil legge til noen Hue pærer. Her er et eksempel på elementdefinisjon:

Farge Bedroom_Hue "Bedroom Hue"  (Soverom) hue = "1"
  • De Farge ordet angir hva slags kontroll vi har over dette elementet. RGB Hue pærer er “Farge”, siden vi har full fargekontroll av dem. Andre lys kan bare være en bryter.
  • Neste er kodenavnet til elementet: Jeg valgte Bedroom_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 gjør sitemap. Kodenavnet skal ikke ha noen mellomrom.
  • Mellom sitatmerket er merket. Vårt er enkelt i dette tilfellet, men for noen ting som temperatur eller noe som rapporterer en verdi, legger du til noen spesiell kode som forteller det hvordan du viser den verdien eller bruker hva forvandle. Etiketten er for grensesnittet, og det kan ha mellomrom.
  • Mellom vinkelbeslagene er ikonets navn. Du finner alle tilgjengelige ikoner i OpenHAB-delen, under webapps / bilder katalogen. Det er faktisk et helt utvalg av fargetoner som representerer forskjellige lysstyrker eller på / av. Bare spesifiser basikonikonet - OpenHAB vet at du automatisk skal se etter de forskjellige på / av-ikonene hvis dette er et byttet element. Dette er valgfritt.
  • I runde parentes forteller vi det hvilke grupper som skal være en del av - i dette tilfellet, bare Soverom gruppe.
  • Til slutt, sammenkaller vi varen til riktig binding med eventuelle variabler som trengs. I dette tilfellet er det hue bindende, og nummeret på pæren er 1. Du kan finne nummeret ved å åpne den offisielle Hue-applikasjonen og se på lysfliken. Hver pære har et unikt nummer.

Jeg har lagt til totalt fire pærer, samt en enkel deklarasjon av gruppene som vi vil utvide senere. Her er min fullstendige home.items På dette punktet:

Group Bedroom Group Kontor Gruppe Kai Group Living_Room Group Cinema Group Secret
Gruppelys
/ * Lys * / Farge Bedroom_Hue "Bedroom Hue"  (Soverom, lys) hue = "1" Color Office_Hue "Office Hue"  (Office, Lights) hue = "2" Farge Secret_Hue "Secret Hue"  (Hemmelig, lys) hue = "3" Farge 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 faktisk opprettet grensesnittelementer i sitemapet ennå. La oss begynne veldig enkelt for nå. Åpne opp home.sitemap.

Koden som brukes til å beskrive grensesnittet, er forskjellig fra elementer, men for nå skal vi opprette en ny “ramme” og legg til et par gruppekontroller sammen med noen ikoner.

sitemap home label = "My Home" Ramme Gruppepost = Lights label = "All lighting" icon = "hue" Gruppeobjekt = Bedroom label = "Bedroom" icon = "bedroom" Gruppe element = Office label = "Office" ikon = "skrivebord"

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 hjemmesiden din 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ører den overordnede lysgruppen.

Legg merke til at Office Hue-elementet vises med et annet ikon - det er fordi mitt kontorlys er allerede på, og OpenHAB vet dette når det snakket til Hue-broen og var smart nok til å justere ikonet “på” versjon av filen. Dessverre reflekterer det ikke fargen, men hvis du har mobilapp installert, gjenspeiler den gjeldende fargen.

Hvis du ser flere elementer enn du trodde du hadde definert eller mottatt feil om flere definisjoner, vet du at selv om du bare kan laste inn ett nettstedkart av gangen på siden Alle nettstedkart vil trekke elementer inn fra alle .item-filer, så hvis du har forlatt demo-elementfilen der, kan det hende du har noen ekstra elementer dukker opp i gruppene dine også. Jeg foreslår at du sikkerhetskopierer innholdet på demoelementene og flytter det ut av mappen for å unngå dupliseringsfeil.

Fjerntilgang, og IFTTT med My.OpenHAB

For øyeblikket trenger du å være på samme lokale nettverk for å få tilgang til OpenHAB-systemet, men hva hvis du vil styre enhetene dine og sjekke på sensorer når det er utenfor Wi-Fi-området? For det må vi sette opp ekstern tilgang - og vi gjør det på den enkle måten, med My.OpenHAB webtjenesten, som omgår behovet for å rote rundt med port videresending og rutekonfigurasjoner. Som en bonus har My.OpenHAB-tjenesten også en IFTTT-kanal, noe som gir deg uendelige muligheter for fjernkontroll og automatisering.

Først: installer bindingen. Hurtig tips: Hvis du ikke vet nøyaktig 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-siden, må du opprette en hemmelig nøkkel, og finn din UUID, som unikt identifiserer installasjonen din. Sjekk under OpenHAB Home share -> webapps -> statisk og du bør finne en UUID-fil som inneholder din unike identifikator. Det er på dette tidspunktet at jeg oppdaget at min Pi brukte en eldre versjon av Java som ikke riktig lager den hemmelige nøkkelen. Type

java-versjon

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

sudo oppdateringsalternativer --config java

Velg alternativet som indikerer jdk-8-kor, 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 lim inn.

Nå skal du lage en My.OpenHAB-konto, bruke disse detaljene, så 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 persistensmotor til myopenhab (utholdenhet er noe for en senere guide, men uansett må vi sette opp noe grunnleggende for å kunne “eksport” våre data til onlinetjenesten og gjør den synlig for IFTTT). For å gjøre dette åpner du openhab.cfg, og finner variabelen som sier utholdenhet: default = og endre den til utholdenhet: default = myopenhab. Lagre.

Til slutt, opprett en ny fil i konfigurasjoner / utholdenhet mappe kalt myopenhab.persist, og lim inn i følgende regel.

Strategier default = everyChange Elementer *: strategy = everyChange 

Du trenger ikke å forstå dette for nå, men vet at det står “lagre hvert element når det endres”.

For å koble til IFTTT, gå over til OpenHAB-kanalen - du må godkjenne og gi den tilgang til MyOpenHAB-kontoen din. Vær også oppmerksom på at inntil varene dine har endret seg minst en gang, vil de ikke være synlige i elementlisten på IFTTT, så hvis det ikke er synlig, bytt til noe av og på, og last deretter på nytt. Gratulerer, du har fullstendig IFTTT-tilgang til alt i OpenHAB-systemet!

Bluetooth Presence Sensor bruker REST

For kort tid siden viste jeg deg hvordan du lager et automatisk kontor dørlås ved hjelp av Bluetooth Lag en automatisk låsende kontordør med Smartphone Proximity Sensor Lag en automatisk låsende kontordør med Smartphone Proximity Sensor Vi skal sette opp en Raspberry Pi med en Bluetooth-adapter for å være på utkikk etter når smarttelefonen er utenfor rekkevidde, og koble et relé til handling for å låse døren. Les Mer skanning for å oppdage tilstedeværelsen av brukeren - Jeg ville bringe noe slikt inn i OpenHAB.

På noen annen plattform enn Raspberry Pi, ville dette være enkelt takket være en ferdig Bluetooth-binding; dessverre virker det ikke på Pi på grunn av en avgjørende Java-fil som må kompileres for ARM-arkitekturen, legges til bindingen, og deretter gjenoppbygger bindingen. Tilstrekkelig å si, jeg prøvde det, og det var skjult komplisert og fungerte ikke. Det er imidlertid en mye enklere løsning som også fungerer som en god introduksjon til OpenHABs uttrekkbarhet: Vi vil ganske enkelt tilpasse vårt tidligere Python-skript for å få det til å rapporteres direkte til OpenHAB RESTful-grensesnittet.

Bortsett: et RESTful grensesnitt betyr at du kan samhandle med et system ved hjelp av det er innebygd i webserver, ved å ringe nettadresser og sende inn eller hente data. Du kan besøke denne nettadressen for å se et enkelt eksempel på dette på din egen server: http: //raspberrypi.local: 8080 / rest / items - som gir en kodet liste over alle dine definerte elementer. Dette er utrolig kraftig, da det avslører fullt mulig potensial for OpenHAB og lar deg skrive egendefinerte grensesnitt; eller i brukt revers, for å rapportere status for sensorer uten å ha en bestemt binding. Vi bruker denne muligheten til å rapportere tilstedeværelsen av en bestemt Bluetooth-enhet uten å ty til Bluetooth-bindingen.

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

Bytt JamesInOffice "James in Office" (Office)

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

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

sudo apt-get install bluez python-bluez python-pip sudo pip installasjonsforespørsler hcitool dev

Den siste kommandoen skal vise Bluetooth-adapteren. Hvis ingenting er oppført, prøv 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

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

Fra Pi-brukerens hjemmekatalog, opprett et nytt Python-skript og lim inn i denne koden.
Det er noen ting du må redigere, med utgangspunkt i din bestemte 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 bli strukturert bedre). Endre JamesInOffice til kodenavnet til bryteren du definerte.

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

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

sudo nano /etc/rc.local

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

python /home/pi/detect.py &

The & sign betyr “gjør dette i bakgrunnen”. Gå videre og kjør skriptet hvis du ikke allerede har åpnet OpenHAB-grensesnittet. Hvis du har lagt den til i en gruppe, klikker du gjennom til den gruppen. Det tar ca. 10 sekunder å oppdatere, men du vil se standard lampeikonet bli slått av, avhengig av om telefonen din oppdages eller ikke. Kontroller loggfilen hvis ingenting skjer, det kan være at du har brukt feil artikkelnavn.

OpenHAB Mobile App

Selv om du selvsagt kan bruke webgrensesnittet fra en mobil enhet, har OpenHAB innfødte apper for både iOS og Android - og de ser en mye hyggeligere 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 nettadresse, 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å, må du bare gi autentisering og ekstern nettadresse tomt, men du får bare tilgang til systemet fra din lokale Wi-Fi.

Flytter fremover og får hjelp

Mengden tilpasning og ryddige funksjoner du kan legge til i OpenHAB-kontrolleren din, er veldig 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 noen form for IoT-enhet, og deretter noen (prøv noen av våre kreative belysningsideer 7 Kreative bruksområder for Colored LED Home Automation Lighting 7 Kreative bruksområder for Colored LED Home Automation Lighting Det er sikkert kult å slå på lysene dine, men det utnytter ikke det fulle spekteret av farger som er tilgjengelige med RGB-belysning. For det må vi bli kreative . Les mer ). Ja, det er en absolutt smerte å installere, men ikke et eneste kommersielt system kan komme nær kraften til et tilpasset OpenHAB-system.

Når det er sagt, var turen ikke lett for meg, det er nettopp hvorfor jeg skrev denne veiledningen for å lette prosessen for deg. Og hvis du finner OpenHAB-systemet overveldende, er det andre alternativer når det gjelder Raspberry hjemmeautomatisering - som å bruke Raspberry Pi for å automatisere garasjeporten. Slik automatiserer du garasjeporten med IFTTT og Raspberry Pi. Slik automatiserer du garasjeporten med IFTTT og Raspberry Pi I denne veiledningen viser vi deg hvordan du automatiserer garasjedøren din, og bruker ikke noe mer enn en Raspberry Pi og IFTTT. Les mer for eksempel.

Hold deg oppdatert 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 veiledningen, vennligst spør deg bort i kommentarene. Hvis du vil ha hjelp med en annen bindende eller noen avanserte emner vi ikke har dekket ennå, er de offisielle OpenHAB-forumene et innbydende sted.

Utforsk mer om: Hjemmautomatikk, Longform Guide, Smart Hubs.