Aan de slag met OpenHAB Home Automation op Raspberry Pi

Aan de slag met OpenHAB Home Automation op Raspberry Pi
Deze handleiding is als gratis pdf te downloaden. Download dit bestand nu . Voel je vrij om dit te kopiëren en te delen met je vrienden en familie.

OpenHAB is een volwassen, open source domotica-platform dat op verschillende hardware draait en protocol-onafhankelijk is, wat betekent dat het verbinding kan maken met bijna alle domotica-hardware die momenteel op de markt is. Als je gefrustreerd bent geraakt door het aantal fabrikantspecifieke apps dat je nodig hebt om je lampen te bedienen, dan heb ik goed nieuws voor je: OpenHAB is de oplossing waar je naar op zoek was - het is de meest flexibele slimme woning hub die je ooit zult vinden.





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





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





Deze gids behandelt drie inleidende onderwerpen en één iets meer geavanceerd.

  • OpenHAB in gebruik nemen op de Pi en de configuratie van het demohuis installeren om te controleren of de kernsystemen werken.
  • Hoe u bindingen en profielen voor apparaten kunt toevoegen. Ik ga werken met Philips Hue.
  • Externe toegang inschakelen en verbinding maken met IFTTT.
  • Een doe-het-zelf-aanwezigheidssensor toevoegen via Bluetooth en een inleiding tot de REST-interface.
  • De mobiele OpenHAB-app configureren.

Wat je nodig hebt

Je hebt op zijn minst een Raspberry Pi (v2, bij voorkeur) en een Ethernet- of draadloze adapter nodig (bij voorkeur Ethernet, deze handleiding bevat geen instructies om je wifi-adapter te laten werken). 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 veilig negeren en doorgaan met een Raspberry Pi-model B of B+, omdat al het andere goed lijkt te werken. Je kunt altijd upgraden naar de nieuwste Pi als en wanneer je Z-Wave toevoegt.



Dit kleine ding kan de beste slimme thuishub 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 zou nog steeds relevant moeten zijn, hoewel bepaalde bindingen mogelijk meer functies hebben. Versie 2 is momenteel ook beschikbaar als een zeer vroege alfa-preview, maar heeft een drastisch andere architectuur dan de OpenHAB 1-serie: deze handleiding is niet compatibel met versie 2.





Ik raad je ten zeerste aan deze gids langzaam en methodisch te volgen – probeer niet in het diepe te springen en alles in één keer 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 door langzaam te werken en stuk voor stuk af te werken.

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





Installing 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 aan de RPi werkt - 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 bevatten niet de Java Virtual Machine). Sluit uw netwerkkabel aan, start op en navigeer door SSH. Loop:

sudo raspi-config

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

sudo apt-get update
sudo apt-get upgrade

De eenvoudigere 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 werd alles geïnstalleerd als eigendom van 'root'. We moeten dat 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 indien nodig de werkgroepnaam, maar schakel anders WINS-ondersteuning in:

wins support = yes

(u moet de regel verwijderen en nee wijzigen in ja)

voeg vervolgens het volgende toe aan het gedeelte Definities van delen (scroll helemaal naar beneden 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 commentaar gegeven op de sectie Printers. Ik heb twee shares gemaakt, omdat de configuratiebestanden eigenlijk afzonderlijk van de add-ons worden opgeslagen.

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

sudo smbpasswd -a openhab

Ik zou 'openhab' als wachtwoord aanraden, alleen voor het gebruiksgemak, maar dat maakt niet echt uit.

Dankzij de lezer David L - het lijkt erop dat de methode om Samba opnieuw op te starten is veranderd in de nieuwste Raspian. Dit 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 Drive. Het wordt misschien niet automatisch ontdekt op een Mac; maar je kunt de Vinder -> Gaan -> Connecteer met de server en het adres

smb://openhab@raspberrypi.local

Authenticeer met gebruikersnaam openhab en het door u gekozen wachtwoord, open vervolgens beide shares om rond te kijken. U zou zelfs http://raspberrypi.local:8080/ in uw webbrowser moeten kunnen openen, maar u krijgt een foutmelding omdat we nog geen sitemap hebben gemaakt. Dat is normaal.

Dit zou een goed moment zijn om het commando te leren om het OpenHAB-logboek te volgen, zodat u fouten in de gaten kunt houden.

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

Houd dat actief en open te allen tijde in een apart SSH-venster terwijl u doorgaat met de handleiding.

Installeer het demohuis

Voordat we ingaan op de fijne kneepjes van configuratiebestanden, het toevoegen van apparaten en bindingen enz; laten we controleren of alles werkt door de demo-inhoud toe te voegen. U vindt 'Demo Setup' onder de downloadsectie van OpenHAB.org.

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

Gebruik de netwerkshares, kopieer configuraties naar de OpenHAB Config deel en overschrijf de bestaande map. Kopiëren add-ons naar de ander OpenHAB Home deel, nogmaals, de bestaande mappen overschrijven. Als u niet wordt gevraagd iets te overschrijven, doet u het verkeerd. Als je het debug-logbestand in de gaten hebt, zou je een golf van activiteit moeten zien als het de nieuwe bindingen opmerkt en in actie komt. Open raspberrypi.local:8080/openhab.app?sitemap=demo om de demo te zien.

Het is op dit moment een beetje standaard, maar het open karakter van OpenHAB betekent dat we later een mooi nieuw thema of een geheel alternatieve interface kunnen installeren. Voor nu moesten we gewoon weten dat het allemaal werkt. Merk op dat waar we naar kijken heet a sitemap (niets te maken met een website-sitemap). Een sitemap beschrijft de gebruikersinterface - niet de daadwerkelijke apparaten in uw netwerk of sensoren - alleen de interface om ze te bekijken. Elk onderdeel ervan is volledig aanpasbaar. Om te zien hoe deze is gemaakt, opent u de sitemaps/demo.sitemap bestand op de OpenHAB Config-share.

Het is behoorlijk ontmoedigend, maar voor het grootste deel kopieer je codefragmenten uit voorbeelden elders om je eigen aangepaste interface te maken. Hier is de technisch overzicht van alle mogelijke sitemap-elementen, maar voor nu is het voldoende om na te denken over wat voor soort interface je wilt bouwen en welke informatie je wilt weergeven.

Terwijl je daarbinnen bent, doe je open items/demo.items te. Nogmaals, het ziet er eng uit, maar hier maak je items om te besturen en definieer je sensoren om te volgen.

Dus hoe werkt OpenHAB?

Nu u de sitemap en de map met items snel hebt doorgenomen, gaan we eens kijken wat deze bestanden precies zijn en de andere hoofdcomponenten van OpenHAB die samen uw complete slimme huis vormen. U vindt voor elk van deze submappen in de gedeelde map OpenHAB Config.

Artikelen is een inventarisatie van elk besturingsapparaat, sensor of informatie-element dat u in uw systeem wilt hebben. Het hoeft ook geen fysiek apparaat te zijn - u kunt een webbron definiëren, zoals het weer of aandelenkoersen. Elk item kan een naam krijgen, meerdere groepen (of geen) toegewezen krijgen en verbonden worden met een specifieke binding. (Beginnerstip: hoofdlettergebruik is belangrijk als het op bindingen aankomt. Ik heb lang geprobeerd uit te zoeken waarom mijn 'Hue'-lampen niet werkten; het was omdat ze in plaats daarvan 'hue' hadden moeten zijn).

Sitemaps heeft alleen betrekking op de interface die u ziet wanneer u de OpenHAB mobiele of web-app opent. U kunt precies bepalen hoe u de knoppen wilt laten opmaken en de informatie wilt presenteren. U kunt groepen op het hoogste niveau definiëren voor elke kamer van uw huis; door op elk te klikken, krijgt u een lijst met elk apparaat in die kamer. Of misschien geeft u er de voorkeur aan groepen voor elk type apparaat weer te geven: een knop voor verlichting, een andere voor stopcontacten. Er zijn misschien apparaten die u zo vaak gebruikt dat u er gewoon een schakelaar voor wilt hebben, direct op het startscherm.

Reglement hier komt het domotica-aspect om de hoek kijken, waar u schema's of voorwaarden kunt definiëren voor een actie. Eenvoudige gebeurtenissen zoals het inschakelen van de slaapkamerverlichting om 22.00 uur voor een warme rode kleur; of meer complexe logica zoals het inschakelen van een kachel als de temperatuur lager is dan 0 en er iemand in die kamer aanwezig is. Je vindt er ook een scripts map, die vergelijkbare functionaliteit biedt als regels, maar op een complexer niveau van programmeerbare logica.

Vasthoudendheid is een geavanceerd onderwerp dat we in deze handleiding niet zullen behandelen, maar persistentie definieert gegevens die u wilt bijhouden. Standaard laat OpenHAB alleen de huidige staat van iets zien; als u die waarde in de loop van de tijd wilt volgen, moet u een persistentiedefinitie instellen voor die gegevensbron. Hierin specificeer je dingen zoals hoe vaak een datapunt moet worden gemeten, of wanneer oude datapunten moeten worden weggegooid - je moet het ook vertellen wat voor soort persistentie-engine moet worden gebruikt, zoals MySQL of eenvoudig loggen naar een bestand .

Transformeren bevat toewijzingen voor gegevenswaarden aan labels. Bijvoorbeeld de hygrodex.schaal bestand definieert een reeks vochtigheidsindexwaarden en hoe deze in het Engels moeten worden weergegeven: 29-38 is 'sommige ongemak'.

De sitemap en artikelen bestanden zijn essentieel om OpenHAB te laten draaien; de rest is optioneel. U kunt meerdere sitemaps en items hebben, zodat u de demo-inhoud kunt behouden en er op elk moment naar terug kunt verwijzen, of een nieuwe lay-out voor uw huisbedieningsinterface kunt uitproberen. Maak je geen zorgen als dit nu allemaal een beetje overweldigend lijkt, we zullen het opsplitsen in hanteerbare stukken en ik beloof je dat je aan het einde van deze gids het vertrouwen zult hebben om je eigen OpenHAB-configuratie te maken.

Vervolgens zullen we u helpen bij het toevoegen van een aantal veelvoorkomende smart home-kits, helemaal opnieuw beginnend in een nieuwe sitemap. Elk zal enkele kernconcepten introduceren, zoals het installeren van bindingen en itemdefinities, dus ik raad u ten zeerste aan om deze instructies door te lezen zelfs als je die specifieke apparaten niet hebt .

Begin met het maken van een nieuwe (leeg) home.items bestand, en een nieuwe home.sitemap bestand in de relevante mappen. open doen home.sitemap en plak de volgende code in. Dit fungeert gewoon als een basisskelet waaraan we later bits zullen toevoegen.

sitemap home label='My Home'
{

}

U zou een melding moeten zien om te melden dat OpenHAB een nieuwe sitemap en itemsbestand heeft geïdentificeerd.

aligncenter size-large wp-image-496593

Foutopsporingsmodus inschakelen

Terwijl je nog steeds probeert om OpenHAB correct te laten werken, kan het handig zijn om een ​​meer uitgebreid debug-logboek in te schakelen waarin alles wordt vermeld, en niet alleen de belangrijke dingen. Om deze modus in te schakelen, 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 globale verandering, dus je krijgt veel meer informatie zodra je het logbestand volgt.

Philips Hue toevoegen

Ik ga beginnen met Philips Hue. Zoals de meeste dingen waarmee u in OpenHAB wilt communiceren, vereisen Hue-lampen dat u een verbindend – beschouw bindingen als een apparaatstuurprogramma. Op het moment van schrijven zijn er ongeveer 160 bindingen beschikbaar voor OpenHAB 1, en daarom is OpenHAB zo'n krachtig systeem - het kan met alles communiceren en al die ongelijksoortige controlesystemen combineren in een enkele uniforme interface. Hier is een demo en een snel overzicht van de betrokken stappen.

Bindingen moeten eerst worden gedownload, en de gemakkelijkste manier om dit op de Pi te doen, is door gebruik te maken van apt-get , dwing dan het eigendom af aan de openhab-gebruiker.

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

Vervolgens moet u OpenHAB vertellen om die binding in te laden en alle benodigde variabelen te configureren. Blader naar de configuratiemap en maak een kopie van openhab-default.cfg , het een naam geven openhab.cfg . Open dat, zoek naar TINT en vervang de hele sectie door de volgende code. Het enige dat u hoeft te wijzigen, is de IP-waarde van uw bridge - probeer de online discovery-tool als u deze nog niet weet. De geheime waarde doet er niet echt toe, het is gewoon een soort gebruikersnaam die OpenHAB zal gebruiken om zichzelf bij de bridge te identificeren.

Snelle tip : om een ​​regel in te schakelen, verwijdert u gewoon de # vanaf het begin. Standaard is de regel die het IP-adres van de bridge aangeeft uitgeschakeld (of technisch gezien 'opgemerkt'). Als je een alternatieve configuratie probeert, kan het ook handig zijn om gewoon de bestaande regel te kopiëren en een # aan het begin te zetten om het als commentaar te markeren, zodat je gemakkelijk 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

Opslaan en afsluiten. Zoals elke Hue-applicatie van derden, moet je OpenHAB op de Hue Bridge goedkeuren door op de knop aan 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 bent vergeten of gemist, reset je de Pi gewoon - je krijgt een timer van 100 seconden vanaf het moment dat de Hue-binding wordt gestart. Zorg ervoor dat je succesvol bent gekoppeld voordat je doorgaat.

Open vervolgens de home.items bestand, waaraan we enkele Hue-lampen zullen toevoegen. Hier is een voorbeeld van een itemdefinitie:

Color Bedroom_Hue 'Bedroom Hue' (Bedroom) {hue='1'}
  • De Kleur woord specificeert wat voor soort controle we hebben over dit item. RGB Hue-lampen zijn 'Kleur', omdat we er volledige kleurcontrole over hebben. Andere lampen kunnen gewoon een schakelaar zijn.
  • Het volgende is de codenaam van het item: ik koos Slaapkamer_Hue , maar letterlijk alles is in orde - gewoon iets beschrijvends dat voor jou natuurlijk aanvoelt, omdat je 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 in dit geval eenvoudig, maar voor sommige items zoals temperatuur of iets dat een waarde meldt, voegt u een speciale code toe die aangeeft hoe die waarde moet worden weergegeven of met wat transformeren. Het label is voor de interface en kan spaties bevatten.
  • Tussen de punthaken staat de naam van het pictogram. U vindt alle beschikbare pictogrammen in de OpenHAB-share, onder de webapps/afbeeldingen map. Er is eigenlijk een hele reeks tintpictogrammen die verschillende helderheid of aan/uit vertegenwoordigen. Geef gewoon de naam van het basispictogram op - OpenHAB weet automatisch naar de verschillende aan/uit-pictogrammen te zoeken als dit een geschakeld item is. Dit is optioneel.
  • Tussen de ronde haakjes vertellen we van welke groepen we deel moeten uitmaken – in dit geval alleen de Slaapkamer groep.
  • Ten slotte en cruciaal, verbinden we het item met de juiste binding met alle benodigde variabelen. In dit geval is de tint binding en het nummer van de lamp is 1. Je kunt het nummer vinden door de officiële Hue-applicatie te openen en naar het tabblad met lampen te kijken. Elke lamp heeft een uniek nummer.

Ik heb in totaal vier bollen toegevoegd, evenals een eenvoudige verklaring van de groepen die we later zullen uitbreiden. Hier is mijn volledige 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 /* Lichten */ tekst is slechts een opmerking, het heeft geen andere functie dan ons te helpen het bestand later te scannen wanneer het groter wordt. Nu hebben we de apparaten toegevoegd, maar het openen van http://raspberrypi.local:8080/?sitemap=home resulteert in een lege interface – natuurlijk, omdat we nog geen interface-elementen in de sitemap hebben gemaakt. Laten we voor nu heel simpel beginnen. open doen home.sitemap .

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

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 om snel te testen, maar in werkelijkheid wilt u meer controle over hoe de items worden weergegeven. Voor nu zal dit voldoende zijn. Sla uw home-sitemap op en laad deze opnieuw in de browser. Je zou dit moeten zien (of welke groepen je ook hebt toegevoegd).

Klik op Alle verlichting om elk Hue-licht te zien, aangezien we ze allemaal hebben gedefinieerd als behorend tot die overkoepelende lampengroep.

Merk op dat het Office Hue-item wordt weergegeven met een ander pictogram - dat komt omdat mijn kantoorlicht al aan is, en OpenHAB weet dit wanneer het met de Hue-bridge sprak en was slim genoeg om het pictogram aan te passen aan 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 te hebben gedefinieerd of als u fouten ontvangt over meerdere definities, moet u weten dat hoewel u slechts één sitemap tegelijk op de pagina kunt laden alle sitemaps halen items uit alle .item-bestanden , dus als je het bestand met demo-items daar hebt achtergelaten, kunnen er ook enkele extra items in je groepen verschijnen. Ik raad u aan om op dit moment een back-up te maken van de inhoud van de demo-items en deze uit de map te verwijderen om duplicatiefouten te voorkomen.

Toegang op afstand en IFTTT met My.OpenHAB

Op dit moment moet u zich op hetzelfde lokale netwerk bevinden om toegang te krijgen tot uw OpenHAB-systeem, maar wat als u uw apparaten wilt bedienen en sensoren wilt controleren wanneer u zich buiten het bereik van uw wifi-netwerk bevindt? Daarvoor moeten we externe toegang instellen - en we zullen het op de gemakkelijke manier doen, met de My.OpenHAB-webservice [Broken URL Removed], die de noodzaak om te rommelen met port forwarding en routerconfiguraties omzeilt. Als 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 je de exacte naam van een bepaald installatiepakket niet weet, probeer er dan naar te zoeken met apt-cache.

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. Kijk onder de OpenHAB Home-aandeel -> webapps -> statisch en u zou een UUID-bestand moeten vinden met uw unieke identificatiecode. Op dit punt ontdekte ik dat mijn Pi een oudere versie van Java gebruikte die de geheime sleutel niet correct aanmaakt. Type

java -version

controleren. Als er geen 1.7 of hoger staat, heb je de verkeerde versie. Vreemd genoeg wordt de nieuwste versie van Raspbian geleverd met Oracle Java 8 geïnstalleerd, maar niet als standaard ingesteld.

sudo update-alternatives --config java

imessage op mac verzendt geen berichten

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

Nu zou je ook een geheim bestand moeten vinden in de webapps/statisch map. Open zowel de geheim en uuid en wees klaar om te kopiëren en plakken.

Ga nu een My.OpenHAB-account maken, gebruik die gegevens en kom dan terug - je moet ook je e-mail bevestigen voordat iets werkt. Er zijn nog een paar stappen bij deze. Eerst moeten we de standaard persistentie-engine instellen op myopenhab (persistentie is iets voor een latere gids, maar hoe dan ook, we moeten iets eenvoudigs instellen om onze gegevens naar de online service te 'exporteren' en zichtbaar te maken voor IFTTT) . Om dit te doen, open je openhab.cfg en zoek je de variabele die zegt: volharding:default= en verander het in volharding:default=myopenhab . Opslaan.

Maak ten slotte een nieuw bestand in de configuraties/persistentie map genaamd myopenhab.persist en plak de volgende regel.

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

U hoeft dit voorlopig niet te begrijpen, maar weet dat er staat 'elke itemstatus opslaan wanneer deze verandert'.

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

Bluetooth-aanwezigheidssensor met REST

Een tijdje geleden liet ik je zien hoe je een automatisch kantoordeurslot maakt met behulp van Bluetooth-scanning om de aanwezigheid van de gebruiker te detecteren - ik wilde zoiets in OpenHAB brengen.

Op elk ander platform 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 opbouwen. Het volstaat te zeggen dat ik dat geprobeerd heb, en het was verschrikkelijk ingewikkeld en werkte niet. Er is echter een veel eenvoudigere oplossing die ook dient als een goede introductie tot de enorme uitbreidbaarheid van OpenHAB: we passen gewoon ons vorige Python-script aan zodat het rechtstreeks rapporteert aan de OpenHAB RESTful-interface.

Terzijde: een RESTful-interface betekent dat u kunt communiceren met een systeem met behulp van de ingebouwde webserver, simpelweg door URL's aan te roepen en gegevens door te geven of op te halen. 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 van al uw gedefinieerde items uitvoert. Dit is ongelooflijk krachtig, omdat het het volledige potentieel van OpenHAB blootlegt en je in staat stelt om aangepaste interfaces te schrijven; of omgekeerd gebruikt, om de status van sensoren te rapporteren zonder een specifieke binding. We gebruiken deze mogelijkheid om de aanwezigheid van een specifiek Bluetooth-apparaat te melden zonder toevlucht te nemen tot de Bluetooth-binding.

Begin met het toevoegen van een nieuwe Schakelaar item naar uw home.items het dossier. 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 uitvalt.

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 communiceren.

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 er niets wordt vermeld, probeer dan een andere adapter, die van jou 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 uw telefoon is geopend op de Bluetooth-instellingenpagina (waardoor deze in de koppelings-/openbare modus wordt gezet), en dat Bluetooth uiteraard is geactiveerd. U zou een hexadecimaal hardware-adres moeten vinden.

Maak vanuit uw Pi-gebruikersmap een nieuw Python-script en plak 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 staat (ja, dit kan waarschijnlijk beter 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

Scroll naar beneden en voeg net voor afrit 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 dan door naar die groep. Het duurt ongeveer 10 seconden om te updaten, maar je ziet dat het standaard gloeilamppictogram aan of uit gaat, afhankelijk van of je telefoon wordt gedetecteerd of niet. Controleer het logbestand als er niets gebeurt, het kan zijn dat je de verkeerde itemnaam hebt gebruikt.

OpenHAB Mobile App

Hoewel je de webinterface natuurlijk vanaf een mobiel apparaat kunt gebruiken, heeft OpenHAB voor beide native apps ios en Android - en ze zien er zo uit kavel mooier dan de standaard browserinterface. 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 in https://my.openhab.org , en je gebruikersnaam (e-mail) en wachtwoord die je hebt ingevoerd toen je je aanmeldde. Als je je nog niet hebt aangemeld voor MyOpenHAB, laat dan de authenticatie en externe URL leeg, maar je hebt alleen toegang tot je systeem via je lokale wifi.

Vooruitgaan en hulp krijgen

De hoeveelheid aanpassingen en handige functies die je aan je OpenHAB-controller kunt toevoegen, is echt episch. Naast de uitgebreide lijst met ondersteunde apparaten met bindingen, kunt u de RESTful-interface, HTTP-extensies en IFTTT gebruiken om letterlijk elk soort IoT-apparaat te lezen of te bedienen, en nog wat (probeer enkele van onze creatieve verlichtingsideeën). Ja, het is absoluut lastig om te installeren, maar geen enkel commercieel systeem kan in de buurt komen van de kracht van een op maat gemaakt OpenHAB-systeem.

Dat gezegd hebbende, de rit was helemaal niet gemakkelijk voor mij, en dat is precies waarom ik deze gids heb geschreven, om het proces voor jou te vergemakkelijken. En als je het OpenHAB-systeem overweldigend vindt, zijn er andere opties als het gaat om Raspberry-huisautomatisering --- zoals het gebruik van Raspberry Pi om bijvoorbeeld je garagedeur te automatiseren.

Blijf op de hoogte van MakeUseOf voor een geavanceerde gids over Z-Wave en andere coole trucs die je kunt instellen.

Als je hulp nodig hebt bij een specifiek onderdeel van deze handleiding, vraag het dan in de comments. Als je hulp wilt bij een andere binding of een aantal geavanceerde onderwerpen die we nog niet hebben behandeld, de officiële OpenHAB-forums zijn een gastvrije plek.

Deel Deel Tweeten E-mail 5 tips om uw VirtualBox Linux-machines een boost te geven

Moe van de slechte prestaties van virtuele machines? Dit is wat u moet doen om uw VirtualBox-prestaties te verbeteren.

Lees volgende
Gerelateerde onderwerpen
  • doe-het-zelf
  • Slimme woning
  • Domotica
  • lange vorm
  • Longform-gids
  • Slimme hubs
Over de auteur James Bruce(707 artikelen gepubliceerd)

James heeft een BSc in Artificial Intelligence en is CompTIA A+ en Network+ gecertificeerd. Als hij het niet druk heeft als redacteur van hardwarerecensies, geniet hij van LEGO, VR en bordspellen. Voordat hij bij MakeUseOf kwam, was hij lichttechnicus, leraar Engels en datacenteringenieur.

Meer van James Bruce

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren