Aan de slag met OpenHAB Home Automation op Raspberry Pi

OpenHAB is een volwassen, open source domotica-platform dat op verschillende hardware draait en is protocol agnostisch, wat betekent dat het verbinding kan maken met bijna elke huisautomatiseringshardware die tegenwoordig op de markt is.

OpenHAB is een volwassen, open source domotica-platform dat op verschillende hardware draait en is protocol agnostisch, wat betekent dat het verbinding kan maken met bijna elke huisautomatiseringshardware die tegenwoordig op de markt is.
Advertentie

OpenHAB is een volwassen, open source domotica-platform dat op verschillende hardware draait en is protocol agnostisch, wat betekent dat het verbinding kan maken met bijna elke huisautomatiseringshardware die tegenwoordig op de markt is. Als je gefrustreerd bent over het aantal fabrikantspecifieke apps dat je nodig hebt om alleen je lampen te besturen, heb ik goed nieuws voor je: OpenHAB is de oplossing waar je naar op zoek was: het is het meest flexibele slimme huis hub Welke slimme hub voor domotica is het beste voor u? Welke slimme hub voor domotica is het beste voor u? Een tijdlang dachten mensen dat het idee niets meer was dan een gimmick, maar recente productreleases hebben aangetoond dat slimme huisautomatisering zijn beloftes waarmaakt. Meer lezen dat je ooit zult vinden.

Deze handleiding kan als gratis PDF worden gedownload. Download nu Getting Started met OpenHAB Home Automation op Raspberry Pi . U kunt dit kopiëren en delen met uw vrienden en familie.

Helaas is het zo ver als je kunt krijgen van consumentenvriendelijk - maar zoals altijd komt daar MakeUseOf om de hoek kijken: we laten je zien hoe je aan de slag kunt met het ultieme slimme thuissysteem dat geld niet hoeft te kopen (omdat OpenHAB is 100% gratis - bezorg gewoon de hardware).

Het eerste deel van deze gids richt zich specifiek op het verkrijgen van OpenHAB setup met een Raspberry Pi 2, maar verder kunnen de tutorials en adviezen overal waar OpenHAB is geïnstalleerd worden toegepast.

Deze gids behandelt drie inleidende onderwerpen en één iets geavanceerder.

  • OpenHAB op de Pi opstarten en de configuratie van het demo-huis installeren om na te gaan of de kernsystemen werken.
  • Bindingen en profielen voor apparaten toevoegen. Ik zal werken met Philips Hue.
  • RAS-toegang inschakelen en verbinden met IFTTT.
  • Een DHZ-aanwezigheidssensor toevoegen via Bluetooth en een inleiding tot de REST-interface.
  • De OpenHAB mobiele app configureren.

Wat je nodig hebt

Op zijn minst heb je een Raspberry Pi (v2, bij voorkeur) en een Ethernet- of draadloze adapter nodig (Ethernet heeft de voorkeur, deze handleiding bevat geen instructies om je wifi-adapter te laten werken. Draadloos netwerken opzetten op je Raspberry Pi Opzetten van draadloze netwerken op uw Raspberry Pi Vrijwel elk Raspberry Pi-project vereist een netwerkverbinding en er kan aanzienlijke flexibiliteit worden verkregen door de Ethernet-poort te negeren in het voordeel van een draadloze USB-dongle Lees meer). Al het andere is optioneel. Merk op dat OpenHAB ook op de originele Raspberry Pi zal draaien, maar er is een bekend probleem met tragere verwerking en Z-Wave-apparaten. Als je Z-Wave niet nodig hebt, kun je deze waarschuwing negeren en doorgaan met een Raspberry Pi-model B of B +, omdat al het andere prima lijkt te werken. Je kunt altijd upgraden naar de nieuwste Pi als en wanneer je Z-Wave toevoegt.

Photo of Raspberry Pi 2 being used as OpenHAB controller
Dit kleine ding kan de beste slimme thuisbasis zijn die je ooit hebt gehad!

Op het moment van schrijven is de nieuwste stabiele versie van OpenHAB versie 1.71; versie 1.8 wordt binnenkort verwacht en alles in deze handleiding moet nog steeds relevant zijn, hoewel bepaalde bindingen mogelijk meer functies hebben. Versie 2 is momenteel ook beschikbaar als een zeer vroege alfavoorbeeld, maar heeft een dramatisch andere architectuur dan de OpenHAB 1-serie: deze handleiding is niet compatibel met versie 2.

Ik raad je ten sterkste aan om deze gids langzaam en methodisch te volgen - probeer niet in het diepe te springen en alles tegelijk toe te voegen. Ja, het is een lange handleiding - OpenHAB is een moeilijk systeem dat vaak moet worden aangepast aan uw behoeften, en de beste manier om succes te garanderen is om langzaam te werken en één stuk tegelijk te voltooien.

Het goede nieuws is dat als het eenmaal werkt, het een rotsvaste ervaring is en ongelooflijk lonend.

Installeren van OpenHAB

Er is geen vooraf geconfigureerde afbeelding voor OpenHAB, dus de installatie gebeurt op de ouderwetse manier via een opdrachtregel. Ik stel voor dat je zonder hoofd werkt op de RPi - de overhead van het beheren van een GUI die je zelden zult gebruiken, is het niet waard.

Begin met de nieuwste (volledige) Raspbian SD-afbeelding (niet de "lite" -versie, deze bevat geen Java Virtual Machine). Zorg dat je netwerkkabel is aangesloten, start dan op en navigeer door SSH. Rennen:

sudo raspi-config 

Vouw het bestandssysteem uit; en stel in het geavanceerde menu de geheugensplitsing in op 16. Als u klaar bent, start u opnieuw op en voert u een goede update uit

 sudo apt-get update sudo apt-get upgrade 

De eenvoudigste manier om de OpenHAB runtime te installeren is via apt-get, maar eerst moeten we een beveiligde sleutel en de nieuwe repository toevoegen:

 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 

Vreemd genoeg is alles geïnstalleerd als eigendom van "root". We moeten dit oplossen met de volgende opdrachten.

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

Vervolgens zullen we Samba installeren en de configuratie- en gebruikersmappen delen - dit maakt het gemakkelijker om add-ons te installeren en de sitemap op afstand te wijzigen.

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

Wijzig de werkgroepnaam indien nodig, maar schakel anders WINS-ondersteuning in:

 wins support = yes 

(je moet de regel verwijderen en nee veranderen in ja)

voeg vervolgens het volgende toe aan de sectie met deeldefinities (scrol helemaal omlaag naar de onderkant van het lange bestand):

 [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 

Ik heb ook een opmerking gemaakt bij de afdeling Printers. Ik heb twee gedeelde mappen gemaakt, omdat de configuratiebestanden afzonderlijk worden opgeslagen in de add-ons.

Opslaan en afsluiten. We moeten eindelijk een Samba-wachtwoord instellen voor de openhab-gebruiker:

 sudo smbpasswd -a openhab 

Ik zou "openhab" als het wachtwoord voorstellen, alleen voor gebruiksgemak, maar het maakt niet echt uit.

Dank aan lezer David L - het lijkt erop dat de herstartmethode van Samba is veranderd in de nieuwste Raspian. Hier zijn de bijgewerkte instructies:

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

Na het herstarten van Samba (oudere installaties gebruiken sudo service samba opnieuw opstarten ), test u toegang tot de gedeelde schijf. Het is misschien niet automatisch ontdekt op een Mac; maar u kunt de Finder -> Go -> Connect to Server en het adres gebruiken

 smb://[email protected] 

Verifieer met gebruikersnaam openhab en het wachtwoord dat je hebt gekozen, open vervolgens je beide shares om rond te kijken. U moet zelfs http: //raspberrypi.local: 8080 / in uw webbrowser kunnen openen, maar er is een fout opgetreden omdat we nog geen sitemap hebben gemaakt. Dat is normaal.

error on first launch openhab

Het is nu een goed moment om de opdracht om het OpenHAB-log na te klussen te leren, zodat u fouten in de gaten kunt houden.

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

Houd dat altijd actief en open in een apart SSH-venster terwijl u doorgaat met de gids.

Installeer het demohuis

Voordat we ingaan op de fijne kneepjes van configuratiebestanden, apparaten en bindingen toevoegen etc; laten we controleren of alles werkt door de demo-inhoud toe te voegen. Je vindt "Demo-instellingen" onder de downloadsectie van OpenHAB.org.

Nadat je het hebt uitgepakt, zijn er twee mappen: add-ons en configuraties .

openhab demo-inhoud

Gebruik de netwerkshares, kopieer configuraties naar de OpenHAB Config- share en overschrijf de bestaande map. Kopieer add-ons naar de andere OpenHAB Home share en overschrijf de bestaande mappen opnieuw. Als u niet wordt gevraagd om iets te overschrijven, doet u het verkeerd. Als u het logbestand voor foutopsporing in de gaten hebt gehouden, ziet u een golf van activiteit terwijl de nieuwe bindingen en wervelingen in actie komen. Open raspberrypi.local: 8080 / openhab.app? Sitemap = demo om de demo te zien.

OpenHAB demo house web interface screenshot

Het is een beetje standaard kijkend naar het moment, maar de open aard van OpenHAB betekent dat we later een mooi nieuw thema of een alternatieve interface helemaal kunnen installeren. Voor nu moesten we weten dat alles werkt. Merk op dat wat we bekijken een sitemap wordt genoemd (niets te maken met een website-sitekaart). Een sitemap beschrijft de gebruikersinterface - niet de daadwerkelijke apparaten op uw netwerk of sensoren - alleen de interface om ze te bekijken. Elk onderdeel ervan is volledig aanpasbaar. Als u wilt weten hoe deze is gemaakt, opent u het bestand sitemaps / demo.sitemap op de OpenHAB Config-share.

sitemap voorbeeldbestand

Het is behoorlijk ontmoedigend, maar voor het grootste deel kopieer je het kopiëren van fragmenten uit voorbeelden elders om je eigen aangepaste interface te maken. Dit is het technische overzicht van alle mogelijke sitemapelementen, maar voorlopig is het voldoende om te beginnen nadenken over wat voor soort interface u wilt bouwen en welke informatie u wilt weergeven.

Terwijl je daarbinnen bent, open dan ook items / demo.items . Nogmaals, ziet er eng uit, maar hier maak je items om sensoren te besturen en te definiëren om te volgen.

Dus hoe werkt OpenHAB?

Nu u de map sitemap en items snel heeft bekeken, laten we precies weergeven wat deze bestanden zijn en de andere hoofdcomponenten van OpenHAB die samen uw complete slimme huis vormen. U vindt submappen voor elk van deze in de gedeelde map OpenHAB Config.

Items is een inventaris van elk besturingselement, sensor of informatie-element dat u in uw systeem wilt hebben. Het hoeft ook geen fysiek apparaat te zijn - je zou een webbron kunnen definiëren zoals het weer of aandelenkoersen. Elk item kan een naam krijgen, meerdere groepen toegewezen krijgen (of geen) en verbonden zijn met specifieke binding. (Beginnertip: hoofdlettergebruik is belangrijk als het gaat om koppelingen. Ik heb lang geprobeerd uit te zoeken waarom mijn "Hue" -bollen niet werkten, omdat ze in plaats daarvan "hue" hadden moeten zijn).

Sitemaps heeft alleen betrekking op de interface die u ziet wanneer u de OpenHAB-mobiel of web-app opent. U kunt precies regelen hoe u wilt dat de knoppen zijn ingedeeld en de informatie die wordt gepresenteerd. U kunt groepen op het hoogste niveau definiëren voor elke kamer van uw huis; als u op elk van deze knoppen klikt, ziet u een lijst van elk apparaat in die kamer. Of misschien geeft u er de voorkeur aan groepen voor elk type apparaat weer te geven: een knop voor lichten, een andere voor stopcontacten. Er zijn mogelijk apparaten die u zo vaak gebruikt dat u gewoon een schakelaar voor hen wilt op het startscherm.

Regels is waar het huisautomatiseringsaspect in het spel komt, waar u planningen of voorwaarden kunt definiëren om een ​​actie te laten gebeuren. Simpele evenementen zoals het aansteken van de verlichting in de slaapkamer om 22.00 uur tot een warme rode kleur; of complexere logica zoals het inschakelen van een ruimteverwarmingstoestel als de temperatuur lager is dan 0 en iemand in die ruimte aanwezig is. U zult ook een map met scripts vinden, die dezelfde functionaliteit biedt als regels, maar op een meer complex niveau van programmeerbare logica.

Persistentie is een geavanceerd onderwerp dat we in deze handleiding niet zullen behandelen, maar persistentie definieert gegevens waarvan u een record wilt bijhouden. OpenHAB laat standaard alleen de huidige status van iets zien; Als u die waarde in de loop van de tijd wilt bijhouden, moet u een persistentiedefinitie voor die gegevensbron instellen. Hierin geeft u aan hoe vaak een gegevenspunt moet worden gemeten of wanneer oude gegevenspunten moeten worden verwijderd. U moet ook aangeven welk type persistentiemachine u moet gebruiken, zoals MySQL of eenvoudige logboeken naar een bestand. .

Transform bevat toewijzingen voor gegevenswaarden aan labels. Het bestand humidex.scale definieert bijvoorbeeld een bereik van vochtigheidsindexwaarden en hoe deze in het Engels moeten worden weergegeven: 29-38 is "some discomfort".

De sitemap- en itemsbestanden zijn essentieel voor OpenHAB om te worden uitgevoerd; de rest is optioneel. U kunt meerdere sitemaps en items gebruiken, zodat u de demo-inhoud kunt behouden en er op elk gewenst moment naar kunt verwijzen, of een nieuwe lay-out kunt proberen voor uw home control-interface. Maakt u zich geen zorgen als dit nu allemaal een beetje overweldigend lijkt, we zullen het opsplitsen in bruikbare stukjes en ik beloof dat u aan het einde van deze handleiding vertrouwen zult hebben om uw eigen OpenHAB-installatie te maken.

Vervolgens zullen we u begeleiden bij het toevoegen van een aantal veelgebruikte smart home-kits, die helemaal opnieuw beginnen in een nieuwe sitemap. Elk zal enkele kernconcepten introduceren, zoals het installeren van bindingen en artikeldefinities, dus ik raad u aan deze instructies te lezen, ook als u niet de eigenaar bent van die specifieke apparaten .

Begin met het maken van een nieuw (leeg) home.items- bestand en een nieuw home.sitemap- bestand in de relevante directory's. Open home.sitemap en plak in de volgende code. Dit fungeert gewoon als een basisskelet waaraan we later bits zullen toevoegen.

 sitemap home label="My Home" { } 

U zou een melding moeten zien dat meldt dat OpenHAB een nieuw sitemap- en itemsbestand heeft geïdentificeerd.

openhabieuwe sitemap en items

Schakel de Debug-modus in

Terwijl u nog steeds probeert om OpenHAB goed te laten werken, kan het handig zijn om een ​​meer uitgebreid logboek voor foutopsporing in te schakelen dat alles weergeeft, en niet alleen de belangrijke dingen. Als u deze modus wilt inschakelen, opent u de gedeelde map OpenHAB Config en bewerkt u de logback.xml . Wijzig op regel 40 de volgende regel om DEBUG te lezen in plaats van INFO. U moet opnieuw opstarten nadat u dit hebt gewijzigd.

Dit is een algemene wijziging, dus u krijgt veel meer informatie zodra u het logbestand volgt.

Philips Hue toevoegen

Ik begin met Philips Hue Philips Hue starterskit Review en give-away Philips Hue starterskit beoordeling en give-away De markt wordt overspoeld met gloeilampen met wifi, allemaal met hun eigen onnozele mobiele app die je nodig hebt om op te staan ​​en ze aan te zetten . Is de Hue anders? We komen er achter. Lees verder . Zoals de meeste dingen waar je in OpenHAB mee wilt communiceren, hebben hue-lampen de jij nodig om een binding te installeren - denk aan bindingen als een apparaatstuurprogramma. Op het moment van schrijven zijn er ongeveer 160 bindingen beschikbaar voor OpenHAB 1, wat de reden is dat OpenHAB zo'n krachtig systeem is - het kan met alles in verbinding staan ​​en al die verschillende besturingssystemen combineren in één enkele interface. Hier is een demo en een snel overzicht van de stappen die zijn ondernomen.

Bindingen moeten eerst worden gedownload en de eenvoudigste manier om dit op de Pi te doen is apt-get gebruiken en dan het eigendom afdwingen bij de openhab-gebruiker.

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

Vervolgens moet u OpenHAB opdracht geven om die binding in te laden en eventuele variabelen te configureren. Blader naar de configuratiemap en maak een kopie van openhab-default.cfg, noem het openhab.cfg . Open dat, zoek naar HUE en vervang de hele sectie door de volgende code. Het enige dat u moet wijzigen, is de IP-waarde van uw bridge. Als u dit nog niet weet, probeert u de online discovery-tool. De geheime waarde doet er niet echt toe, het is gewoon een soort gebruikersnaam die OpenHAB zal gebruiken om zichzelf te identificeren aan de brug.

Snelle tip : om een ​​regel in te schakelen, verwijdert u de # vanaf het begin. Standaard is de regel die het IP-adres van de bridge opgeeft uitgeschakeld (of technisch gezien "uitgezet"). Als u een alternatieve configuratie probeert, kan het handig zijn om gewoon de bestaande regel te kopiëren en een # aan het begin te plaatsen om het als een opmerking te markeren, zodat u eenvoudig kunt terugkeren als er iets misgaat.

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

openhab binding config

Opslaan en afsluiten. Net als elke andere Hue-applicatie van derden, moet je OpenHAB op de Hue Bridge goedkeuren door op de knop op de voorkant te drukken - je hoeft dit maar één keer te doen. Je ziet een bericht over wachten om te worden gekoppeld als je het logbestand volgt, maar als je het aftellen hebt vergeten of gemist, reset je gewoon de Pi - je krijgt een timer van 100 seconden vanaf wanneer de Hue-binding is geïnitieerd. Zorg ervoor dat je succesvol hebt gepaarde voordat je verder gaat.

Open vervolgens het bestand home.items, waaraan we enkele Hue-lampen toevoegen. Hier is een definitie van een voorbeelditem:

 Color Bedroom_Hue "Bedroom Hue" (Bedroom) {hue="1"} 
  • Het kleurwoord geeft aan wat voor besturingselement we hebben over dit item. RGB-tintlampen zijn "Kleur", omdat we ze volledig kunnen bedienen. Andere lampen kunnen slechts een schakelaar zijn.
  • Vervolgens staat de codenaam van het item: ik koos voor Bedroom_Hue, maar letterlijk alles is in orde - alleen iets dat beschrijvend voor u aanvoelt, omdat u het later moet onthouden bij het maken van de sitemap. De codenaam mag geen spaties bevatten.
  • Tussen de aanhalingstekens staat het label. De onze is eenvoudig in dit geval, maar voor sommige items, zoals temperatuur of iets dat een waarde rapporteert, voegt u een speciale code toe die vertelt hoe deze waarde moet worden weergegeven of welke transformatie wordt gebruikt. Het label is voor de interface en kan spaties bevatten.
  • Tussen de punthaken staat de naam van het pictogram. Je vindt alle beschikbare pictogrammen in de OpenHAB-share, onder de map webapps / images . Er is eigenlijk een hele reeks tintpictogrammen die verschillende helderheden voorstellen of aan / uit. Geef gewoon de naam van het basispictogram op - OpenHAB weet dat automatisch naar de verschillende aan / uit-pictogrammen moet worden gezocht als dit een geschakeld item is. Dit is optioneel.
  • In de ronde haakjes vertellen we aan welke groepen een deel van is - in dit geval alleen de slaapkamergroep .
  • Uiteindelijk en cruciaal verbinden we het artikel met de juiste binding met alle benodigde variabelen. In dit geval is de tint bindend, en het nummer van de lamp is 1. U kunt het nummer vinden door de officiële Hue-toepassing te openen en naar het tabblad Verlichting te kijken. Elke lamp heeft een uniek nummer.

Ik heb in totaal vier lampen toegevoegd, evenals een eenvoudige verklaring van de groepen die we later zullen uitbreiden. Hier zijn mijn complete home.items op dit punt:

 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 / * Lights * / text is slechts een opmerking, deze heeft geen andere functie dan ons te helpen het bestand later te scannen wanneer het groter wordt. Nu hebben we de apparaten toegevoegd, maar opent http: //raspberrypi.local: 8080 /? Sitemap = home resultaten in een lege interface - natuurlijk, omdat we nog geen interface-elementen in de sitemap hebben aangemaakt. Laten we voor nu heel eenvoudig beginnen. Open home.sitemap .

De code die wordt gebruikt om de interface te beschrijven, verschilt van items, maar voor nu maken we een nieuw 'frame' en voegen we een aantal groepscontroles samen met enkele pictogrammen toe.

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

Groepen zijn een handig hulpmiddel voor snel testen, maar in werkelijkheid wilt u meer controle over hoe de items worden weergegeven. Voor nu is dit voldoende. Sla uw startpagina in de browser op en laad hem opnieuw. Je zou dit moeten zien (of welke groep je ook hebt toegevoegd).

openhab eerste sitemap

Klik op All lighting om elk Hue-licht te zien, omdat we ze allemaal hebben gedefinieerd als behorende tot die overkoepelende lichtgroep.

openhab lights group Hue demo

Merk op dat het Office Hue-item wordt weergegeven met een ander pictogram - dat is omdat mijn kantoorlamp al aan is en OpenHAB weet dit wanneer het tegen de Hue-bridge sprak en slim genoeg was om het pictogram aan te passen als de "aan" -versie van het bestand. Helaas geeft het niet de kleur weer, maar als je een mobiele app hebt geïnstalleerd, geeft dat de huidige kleur weer.

Als u meer items ziet dan u dacht dat u fouten over meerdere definities had gedefinieerd of ontvangen, weet dan dat hoewel u slechts één sitemap tegelijk op de pagina kunt laden, alle sitemaps items van alle .item-bestanden binnenhalen, dus als je hebt het demo-itemsbestand daar achtergelaten, je hebt misschien nog wat extra items in je groepen te zien. Ik zou op dit moment willen suggereren een back-up te maken van de inhoud van de demo-items en deze uit de map te verwijderen om dubbelfouten te voorkomen.

Externe toegang en IFTTT met My.OpenHAB

Op dit moment moet je op hetzelfde lokale netwerk zijn om toegang te krijgen tot je OpenHAB-systeem, maar wat als je je apparaten wilt besturen en de sensoren wilt controleren buiten het bereik van je wifi? Daarvoor moeten we externe toegang instellen - en dat doen we op de eenvoudige manier, met de My.OpenHAB webservice, die de noodzaak om te rotzooien met poortdoorschakeling en routerconfiguraties omzeilt. Als een bonus heeft de My.OpenHAB-service ook een IFTTT-kanaal, waardoor je oneindig veel mogelijkheden hebt voor afstandsbediening en automatisering.

Ten eerste: installeer de binding. Snelle tip: als u de exacte naam van een bepaald installatiepakket niet weet, kunt u ernaar zoeken met apt-cache.

apt-cache zoeken

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

Voordat u zich kunt registreren op de My.OpenHAB-site, moet u een geheime sleutel maken en uw UUID vinden, die uw installatie op unieke wijze identificeert. Vink onder de OpenHAB Home share -> webapps -> static aan en u zou een UUID-bestand met uw unieke identifier moeten vinden. Op dit punt ontdekte ik dat mijn Pi een oudere versie van Java gebruikte die de geheime sleutel niet correct maakt. Type

 java -version 

controleren. Als er geen 1.7 of hoger staat, hebt u de verkeerde versie. Vreemd genoeg komt de laatste versie van Raspbian wel met Oracle Java 8 geïnstalleerd, maar niet als standaard ingesteld.

 sudo update-alternatives --config java 

update java-versie

Kies de optie die jdk-8-oracle aangeeft en start OpenHAB opnieuw. Bonus: Oracle Java 8 is sneller dan de standaard OpenJDK!

Nu zou u ook een geheim bestand moeten vinden in de webapps / static map. Open zowel het geheime als het uuidige en wees klaar om te kopiëren.

uuid en geheim

Ga nu een My.OpenHAB-account maken, gebruik deze gegevens en kom daarna terug - u moet ook uw e-mailadres bevestigen voordat iets werkt. Er zijn nog een paar stappen naar deze. Ten eerste moeten we de standaard persistentiemachine instellen op myopenhab (persistentie is iets voor een latere gids, maar we moeten hoe dan ook iets basaal instellen om onze gegevens te "exporteren" naar de online service en zichtbaar te maken voor IFTTT) . Open hiervoor openhab.cfg en zoek de variabele persistence: default = en verander deze naar persistence: default = myopenhab . Opslaan.

Maak ten slotte een nieuw bestand aan in de map configuration / persistence met de naam myopenhab.persist en plak de volgende regel.

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

U hoeft dit voor nu niet te begrijpen, maar weet dat het zegt "bewaar elke itemstatus wanneer deze verandert".

mijn openhab items

Om verbinding te maken met IFTTT, ga je naar het OpenHAB-kanaal - je moet je authenticeren en het toegang geven tot je MyOpenHAB-account. Houd er ook rekening mee dat totdat uw items ten minste één keer zijn gewijzigd, ze niet zichtbaar zijn in de itemslijst op IFTTT, dus als deze niet zichtbaar is, schakelt u iets aan en uit en laadt u vervolgens opnieuw. Gefeliciteerd, je hebt nu volledige IFTTT-toegang tot alles in je OpenHAB-systeem!

openhab ifttt kanaal

Bluetooth-aanwezigheidssensor met REST

Enige tijd geleden heb ik je laten zien hoe je een automatisch deurslot kunt maken met behulp van Bluetooth. Maak een automatisch vergrendelende kantoordeur met smartphone. Nabijheidssensor Maak een automatisch vergrendelde kantoordeur met smartphoneproximiteitssensor. We zullen een Raspberry Pi opzetten met een Bluetooth-adapter om op te letten wanneer uw smartphone buiten bereik is en een relais in actie te brengen om de deur te vergrendelen. Meer scannen om de aanwezigheid van de gebruiker te detecteren - Ik wilde zoiets meenemen naar OpenHAB.

Op elk platform anders dan Raspberry Pi zou dit eenvoudig zijn dankzij een kant-en-klare Bluetooth-binding; helaas werkt het niet op Pi vanwege een cruciaal Java-bestand dat opnieuw moet worden gecompileerd voor de ARM-architectuur, aan de binding moet worden toegevoegd en vervolgens de binding opnieuw moet worden opgebouwd. Het volstaat te zeggen dat ik dat heb geprobeerd en het was vreselijk gecompliceerd en werkte niet. Er is echter een veel eenvoudigere oplossing die ook dient als een goede introductie tot de enorme uitbreidbaarheid van OpenHAB: we zullen ons vorige Python-script eenvoudig aanpassen om het rechtstreeks te rapporteren aan de OpenHAB RESTful-interface.

Terzijde: een RESTful interface betekent dat je kunt communiceren met een systeem met behulp van zijn ingebouwde webserver, gewoon door URL's op te roepen en gegevens in of door te geven. U kunt deze URL bezoeken om een ​​eenvoudig voorbeeld hiervan op uw eigen server te zien: http: //raspberrypi.local: 8080 / rest / items - die een gecodeerde lijst met al uw gedefinieerde items uitvoert. Dit is ongelooflijk krachtig, omdat het het volledige potentieel van OpenHAB blootlegt en u in staat bent om aangepaste interfaces te schrijven; of in omgekeerde volgorde, om de status van sensoren te rapporteren zonder een specifieke binding te hebben. We zullen deze mogelijkheid gebruiken om de aanwezigheid van een specifiek Bluetooth-apparaat te rapporteren zonder gebruik te maken van de Bluetooth-binding.

Begin met het toevoegen van een nieuw schakelitem aan je home.items- bestand. Ik heb de mijne "JamesInOffice" genoemd, en ik heb er een schakelaar van gemaakt in plaats van een eenvoudig aan / uit-contact, zodat ik mijn aanwezigheid handmatig kan regelen voor het geval mijn telefoon sterft.

 Switch JamesInOffice "James in Office" (Office) 

Merk op dat ik geen pictogram heb gedefinieerd of een specifieke binding heb gekoppeld. Het is gewoon een generieke schakelaar.

Plaats vervolgens een compatibele USB Bluetooth-dongle en installeer enkele basishulpmiddelen om ermee te werken.

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

De laatste opdracht zou uw Bluetooth-adapter moeten tonen. Als niets wordt vermeld, probeer dan een andere adapter, de jouwe is niet compatibel met Linux. De volgende stap is om het Bluetooth-hardwareadres van uw apparaat te vinden.

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

Zorg ervoor dat je telefoon open staat op de pagina met Bluetooth-instellingen (waardoor deze wordt gekoppeld / openbare modus) en dat Bluetooth uiteraard is geactiveerd. U zou een hexadecimaal hardware-adres moeten vinden.

bluetooth geïdentificeerd

Maak vanuit de Pi-gebruikershomepage een nieuw Python-script en plak deze in deze code.
Er zijn een paar dingen die u moet bewerken, te beginnen met uw specifieke apparaatadres:

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

Evenals de deze regel, die op twee plaatsen ligt (ja, dit zou waarschijnlijk beter kunnen worden gestructureerd). Wijzig JamesInOffice in de codenaam van de switch die u hebt gedefinieerd.

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

De laatste stap is om dit script te laten starten tijdens het opstarten.

 sudo nano /etc/rc.local 

Blader naar beneden en voeg net voor de uitgang 0 de volgende regels toe:

 python /home/pi/detect.py & 

Het & teken betekent "doe dit op de achtergrond". Ga je gang en voer het script uit als je dat nog niet hebt gedaan en open je OpenHAB-interface. Als je het aan een groep hebt toegevoegd, klik je door naar die groep. Het duurt ongeveer 10 seconden om bij te werken, maar je ziet het standaard gloeilampje aan of uit gaan, afhankelijk van of je telefoon is gedetecteerd of niet. Controleer het logbestand als er niets gebeurt, kan het zijn dat u de verkeerde itemnaam hebt gebruikt.

OpenHAB mobiele app

Hoewel je de webinterface natuurlijk van een mobiel apparaat kunt gebruiken, heeft OpenHAB native apps voor zowel iOS als Android - en ze zien er veel leuker uit dan de standaardbrowserinterface. Voer in het instellingenscherm de lokale URL in als het interne IP-adres dat u tot nu toe hebt gebruikt, inclusief het poortnummer. Voer voor externe URL https://my.openhab.org in en uw gebruikersnaam (e-mailadres) en wachtwoord die u hebt ingevoerd toen u zich aanmeldde. Als u nog niet bent aangemeld voor MyOpenHAB, laat u de verificatie- en externe URL leeg, maar krijgt u alleen toegang tot uw systeem via uw lokale Wi-Fi.

openhab-mobile

Vooruit bewegen en hulp krijgen

De hoeveelheid maatwerk en handige functies die u aan uw OpenHAB-controller kunt toevoegen, is echt een beetje episch. Naast de uitgebreide lijst met ondersteunde apparaten met bindingen, kunt u de RESTful-interface, HTTP-uitbreidingen en IFTTT gebruiken om letterlijk elk type IoT-apparaat te lezen of beheren (en enkele van onze creatieve verlichtingsideeën te gebruiken) 7 Creatief gebruik voor gekleurde LED-huisautomatiseringsverlichting 7 Creatief gebruik voor gekleurde LED-huisautomatiseringsverlichting Het automatisch inschakelen van uw lichten is zeker gaaf, maar profiteert niet van het volledige spectrum aan kleuren dat beschikbaar is met RGB-verlichting. Daarvoor moeten we creatief zijn . Lees verder ). Ja, het is een absolute pijn om te installeren, maar geen enkel commercieel systeem kan dicht bij de kracht van een aangepast OpenHAB-systeem komen.

Dat gezegd hebbende, de rit was helemaal niet gemakkelijk voor mij, en daarom heb ik deze handleiding geschreven, om het proces voor jou te vergemakkelijken. Blijf op de hoogte met MakeUseOf voor een geavanceerd handboek over Z-Wave en andere coole tricks die je kunt instellen.

Als je hulp nodig hebt met een specifiek deel van deze gids, vraag het dan in de comments. Als je hulp wilt bij een andere bindende of geavanceerde onderwerpen die we nog niet hebben besproken, zijn de officiële OpenHAB-forums een gastvrije plek.

In this article