Iniziare con OpenHAB Home Automation su Raspberry Pi

Iniziare con OpenHAB Home Automation su Raspberry Pi
Questa guida è disponibile per il download come PDF gratuito. Scarica questo file ora . Sentiti libero di copiarlo e condividerlo con i tuoi amici e familiari.

OpenHAB è una piattaforma di automazione domestica matura e open source che funziona su una varietà di hardware ed è indipendente dal protocollo, il che significa che può connettersi a quasi tutti gli hardware di automazione domestica presenti oggi sul mercato. Se sei frustrato dal numero di app specifiche del produttore che devi eseguire solo per controllare le luci, allora ho ottime notizie per te: OpenHAB è la soluzione che stavi cercando: è la casa intelligente più flessibile hub che troverai mai.





Sfortunatamente, è quanto di più lontano puoi ottenere dal consumatore amichevole, ma come sempre, è qui che entra in gioco MakeUseOf: ti mostreremo come iniziare a funzionare con il sistema di casa intelligente definitivo che i soldi non devono comprare (perché OpenHAB è 100% gratuito – basta fornire l'hardware).





La prima parte di questa guida si concentra specificamente su come ottenere la configurazione di OpenHAB con a Raspberry Pi 2 , ma più avanti, i tutorial e i consigli possono essere applicati ovunque sia installato OpenHAB.





Questa guida copre tre argomenti introduttivi e uno leggermente più avanzato.

  • Ottenere OpenHAB attivo e funzionante sul Pi e installare la configurazione della demo house per verificare che i sistemi principali funzionino.
  • Come aggiungere associazioni e profili per i dispositivi. Lavorerò con Philips Hue.
  • Abilitazione dell'accesso remoto e connessione a IFTTT.
  • Aggiunta di un sensore di presenza fai da te tramite Bluetooth e introduzione all'interfaccia REST.
  • Configurazione dell'app mobile OpenHAB.

Cosa ti servirà

Per lo meno, avrai bisogno di un Raspberry Pi (v2, preferibilmente) e di un adattatore Ethernet o wireless (preferibilmente Ethernet, questa guida non includerà istruzioni su come far funzionare l'adattatore Wi-Fi). Tutto il resto è facoltativo. Nota che OpenHAB verrà eseguito anche sul Raspberry Pi originale, ma c'è un problema noto con l'elaborazione più lenta e i dispositivi Z-Wave. Se non hai bisogno di Z-Wave, puoi tranquillamente ignorare questo avviso e andare avanti con un Raspberry Pi modello B o B+, perché tutto il resto sembra funzionare bene. Puoi sempre aggiornare all'ultimo Pi se e quando aggiungi Z-Wave.



Questa piccola cosa può essere il miglior hub di casa intelligente che tu abbia mai avuto!

Al momento della stesura, l'ultima versione stabile di OpenHAB è la versione 1.71; la versione 1.8 è prevista a breve e tutto in questa guida dovrebbe essere ancora pertinente, anche se alcuni collegamenti potrebbero avere più funzionalità. La versione 2 è attualmente disponibile anche come anteprima alpha molto precoce, ma adotta un'architettura notevolmente diversa dalla serie OpenHAB 1: questa guida non è compatibile con la versione 2.





Ti consiglio caldamente di seguire questa guida lentamente e metodicamente – non tentare di saltare alla fine e aggiungere tutto in una volta. Sì, è una guida lunga: OpenHAB è un sistema difficile che spesso richiede modifiche per le tue esigenze e il modo migliore per garantire il successo è lavorare lentamente e completare un pezzo alla volta.

La buona notizia è che una volta che funziona, è un'esperienza solida come una roccia e incredibilmente gratificante.





Installazione di OpenHAB

Non esiste un'immagine preconfigurata per OpenHAB, quindi l'installazione viene eseguita alla vecchia maniera tramite una riga di comando. Ti suggerisco di lavorare senza testa sull'RPi: il sovraccarico di gestire una GUI che utilizzerai raramente non ne vale la pena.

Inizia con il immagine SD Raspbian più recente (completa) (non la versione 'lite', queste non includono la Java Virtual Machine). Collega il cavo di rete, quindi avvialo e naviga in SSH. Correre:

sudo raspi-config

Espandi il filesystem; e dal menu avanzato, modifica la suddivisione della memoria in 16. Al termine, riavvia e, come buona pratica, esegui un aggiornamento completo

sudo apt-get update
sudo apt-get upgrade

Il modo più semplice per installare il runtime OpenHAB è tramite apt-get , ma prima dobbiamo aggiungere una chiave sicura e il nuovo repository:

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

Curiosamente, tutto è stato installato come di proprietà di 'root'. Dobbiamo risolverlo con i seguenti comandi.

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

Successivamente, installeremo Samba e condivideremo la configurazione e le cartelle utente: questo renderà più semplice l'installazione dei componenti aggiuntivi e la modifica della mappa del sito in remoto.

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

Modificare il nome del gruppo di lavoro se necessario, ma altrimenti abilitare il supporto WINS:

wins support = yes

(dovrai decommentare la riga e cambiare no in sì)

quindi aggiungi quanto segue alla sezione delle definizioni di condivisione (scorri fino in fondo al file lungo):

[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

Ho anche commentato la sezione Stampanti. Ho creato due condivisioni, poiché i file di configurazione sono effettivamente archiviati separatamente nei componenti aggiuntivi.

Salva ed esci. Abbiamo infine bisogno di impostare una password Samba per l'utente openhab:

sudo smbpasswd -a openhab

Suggerirei 'openhab' come password solo per facilità d'uso, ma non importa.

Grazie al lettore David L - sembra che il metodo per riavviare Samba sia cambiato nell'ultimo Raspian. Ecco le istruzioni aggiornate:

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

Dopo aver riavviato Samba (utilizzare installazioni precedenti sudo service riavvio samba ), prova ad accedere al Drive condiviso. Potrebbe non essere rilevato automaticamente su un Mac; ma puoi usare il Finder -> andare -> Connetti al server e l'indirizzo

smb://openhab@raspberrypi.local

Autenticati con il nome utente openhab e la password scelta, quindi apri entrambe le condivisioni per dare un'occhiata in giro. Dovresti anche essere in grado di aprire http://raspberrypi.local:8080/ nel tuo browser web, ma incontrerai un errore perché non abbiamo ancora creato una mappa del sito. È normale.

Ora sarebbe un buon momento per imparare il comando per seguire il registro OpenHAB in modo da poter tenere d'occhio gli errori.

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

Tienilo sempre attivo e aprilo in una finestra SSH separata mentre continui con la guida.

Installa la Demo House

Prima di approfondire la complessità dei file di configurazione, l'aggiunta di dispositivi e associazioni, ecc; controlliamo che tutto funzioni aggiungendo il contenuto demo. Troverai 'Demo Setup' nella sezione download di OpenHAB.org.

Una volta decompresso, ci sono due cartelle: addon e configurazioni .

Usando le condivisioni di rete, copia configurazioni al Configurazione OpenHAB condividere e sovrascrivere la cartella esistente. copia addon all'altro OpenHAB Home condividere, ancora, sovrascrivendo le cartelle esistenti. Se non ti viene chiesto di sovrascrivere qualcosa, lo stai facendo male. Se tieni d'occhio il file di registro di debug, dovresti vedere un vortice di attività mentre nota i nuovi collegamenti e si mette in azione. Apri raspberrypi.local:8080/openhab.app?sitemap=demo per vedere la demo.

Al momento è un po' basilare, ma la natura aperta di OpenHAB significa che possiamo installare un nuovo tema adorabile in un secondo momento o un'interfaccia completamente alternativa. Per ora, abbiamo solo bisogno di sapere che funziona tutto. Nota che quello che stiamo guardando si chiama a Mappa del sito (niente a che vedere con la mappa del sito di un sito web). Una mappa del sito descrive l'interfaccia utente, non i dispositivi effettivi sulla rete o i sensori, ma solo l'interfaccia per visualizzarli. Ogni sua parte è completamente personalizzabile. Per dare un'occhiata a come è stato creato, apri il sitemaps/demo.sitemap file sulla condivisione OpenHAB Config.

È piuttosto scoraggiante, ma per la maggior parte dovrai copiare e incollare frammenti di codice da esempi altrove per creare la tua interfaccia personalizzata. Ecco il panoramica tecnica di tutti i possibili elementi della mappa del sito, ma per ora sarà sufficiente iniziare a pensare a quale tipo di interfaccia si desidera creare e quali informazioni si desidera visualizzare.

Già che ci sei, apri items/demo.items pure. Ancora una volta, sembra spaventoso, ma è qui che crei elementi per controllare e definire sensori da tracciare.

Quindi, come funziona OpenHAB?

Ora che hai dato una rapida occhiata alla mappa del sito e alla cartella degli elementi, analizziamo esattamente cosa sono questi file e gli altri componenti principali di OpenHAB che si combinano per creare la tua casa intelligente completa. Troverai le sottodirectory per ognuna di queste nella cartella condivisa di OpenHAB Config.

Elementi è un inventario di ogni dispositivo di controllo, sensore o elemento informativo che desideri nel tuo sistema. Non è nemmeno necessario che si tratti di un dispositivo fisico: potresti definire una fonte web come il meteo o i prezzi delle azioni. Ogni elemento può essere denominato, assegnato a più gruppi (o nessuno) e connesso a un'associazione specifica. (Suggerimento per principianti: le maiuscole sono importanti quando si tratta di associazioni. Ho passato molto tempo a cercare di capire perché le mie lampadine 'Hue' non funzionavano; era perché avrebbero dovuto essere 'hue' invece).

Sitemap riguarda solo l'interfaccia che vedrai quando apri l'app mobile o web di OpenHAB. Puoi controllare con precisione come vuoi che i pulsanti siano disposti e le informazioni presentate. Potresti definire gruppi di primo livello per ogni stanza della tua casa; facendo clic su ciascuno ti verrà mostrato un elenco di tutti i dispositivi in ​​quella stanza. Oppure potresti preferire mostrare i gruppi per ogni tipo di dispositivo: un pulsante per le luci, un altro per le prese elettriche. Potrebbero esserci alcuni dispositivi che usi così spesso che desideri semplicemente un interruttore per loro direttamente nella schermata principale.

Regole è qui che entra in gioco l'aspetto domotico, dove è possibile definire orari o condizioni affinché un'azione si realizzi. Eventi semplici come accendere le luci della camera da letto alle 22:00 in un caldo colore rosso; o logica più complessa come accendere una stufa se la temperatura è inferiore a 0 e qualcuno è presente in quella stanza. Troverai anche un script cartella, che offre funzionalità simili alle regole ma a un livello più complesso di logica programmabile.

Persistenza è un argomento avanzato che non tratteremo in questa guida, ma la persistenza definisce i dati di cui si desidera tenere traccia. Per impostazione predefinita, OpenHAB mostrerà solo lo stato corrente di qualcosa; se vuoi tenere traccia di quel valore nel tempo, devi impostare una definizione di persistenza per quell'origine dati. In questo specificherai cose come la frequenza con cui un punto dati dovrebbe essere misurato o quando scartare i vecchi punti dati - dovrai anche dirgli che tipo di motore di persistenza usare, come MySQL o la semplice registrazione su un file .

Trasformare contiene i mapping per i valori dei dati alle etichette. Ad esempio, il umidodex.scale file definisce un intervallo di valori dell'indice di umidità e come dovrebbero essere mostrati in inglese: 29-38 è 'qualche disagio'.

Il Mappa del sito e Oggetti i file sono essenziali per l'esecuzione di OpenHAB; il resto è facoltativo. Puoi avere più sitemap ed elementi, in modo da poter conservare il contenuto della demo e fare riferimento ad esso in qualsiasi momento, o provare un nuovo layout per l'interfaccia di controllo della tua casa. Non preoccuparti se tutto questo sembra un po' travolgente in questo momento, lo suddivideremo in parti gestibili e ti prometto che entro la fine di questa guida avrai fiducia nel creare la tua configurazione OpenHAB.

Successivamente, ti guideremo attraverso l'aggiunta di alcuni comuni kit per la casa intelligente, partendo da zero in una nuova mappa del sito. Ognuno introdurrà alcuni concetti fondamentali come come installare i collegamenti e le definizioni degli elementi, quindi ti incoraggio vivamente a leggere queste istruzioni anche se non possiedi quei particolari dispositivi .

Inizia creando un nuovo (vuoto) home.oggetti file e un nuovo home.sitemap file nelle directory pertinenti. Aprire home.sitemap e incollare il seguente codice. Questo funge solo da scheletro di base a cui aggiungeremo bit in seguito.

sitemap home label='My Home'
{

}

Dovresti vedere un avviso per segnalare che OpenHAB ha identificato una nuova mappa del sito e un nuovo file di elementi.

aligncenter size-large wp-image-496593

Abilita la modalità di debug

Mentre stai ancora cercando di far funzionare correttamente OpenHAB, può essere utile abilitare un registro di debug più dettagliato che elenchi tutto e non solo le cose importanti. Per abilitare questa modalità, apri la cartella condivisa OpenHAB Config e modifica il logback.xml . Alla riga 40, cambia la riga seguente per leggere DEBUG invece di INFO. Dovrai riavviare dopo aver modificato questo.

Questo è un cambiamento globale, quindi otterrai molte più informazioni una volta che avrai terminato il file di registro.

Aggiunta di Philips Hue

Inizierò con Philips Hue. Come la maggior parte delle cose con cui vorrai interagire in OpenHAB, le lampadine Hue richiedono l'installazione di a legame – pensa alle associazioni come a un driver di dispositivo. Al momento in cui scriviamo, sono disponibili circa 160 associazioni per OpenHAB 1, motivo per cui OpenHAB è un sistema così potente: può interfacciarsi con qualsiasi cosa, combinando tutti quei disparati sistemi di controllo in un'unica interfaccia unificata. Ecco una demo e una rapida panoramica dei passaggi coinvolti.

I collegamenti devono essere prima scaricati e il modo più semplice per farlo sul Pi è usare apt-get , quindi forza la proprietà all'utente openhab.

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

Successivamente è necessario dire a OpenHAB di caricare quell'associazione e configurare tutte le variabili necessarie. Sfoglia la cartella delle configurazioni e fai una copia di openhab-default.cfg , nominandolo openhab.cfg . Apri quello, cerca TINTA e sostituire l'intera sezione con il seguente codice. L'unica cosa che devi cambiare è il valore IP del tuo bridge: se non lo conosci già, prova lo strumento di rilevamento online. Il valore segreto non ha molta importanza, è solo un tipo di nome utente che OpenHAB utilizzerà per identificarsi nel bridge.

Consiglio rapido : per abilitare una riga, basta rimuovere il # dall'inizio. Per impostazione predefinita, la riga che specifica l'indirizzo IP del bridge è disabilitata (o tecnicamente 'commentata'). Inoltre, se stai provando una configurazione alternativa, può essere utile semplicemente copiare la riga esistente e mettere un # all'inizio per contrassegnarla come commento, in modo da poter ripristinare facilmente se le cose vanno male.

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

Salva ed esci. Come qualsiasi applicazione Hue di terze parti, dovrai approvare OpenHAB su Hue Bridge premendo il pulsante nella parte anteriore: devi farlo solo una volta. Vedrai un messaggio su in attesa di essere abbinati se stai seguendo il file di registro, ma se hai dimenticato o perso il conto alla rovescia, ripristina semplicemente il Pi: otterrai un timer di 100 secondi da quando viene avviata l'associazione di tonalità. Assicurati di aver eseguito correttamente l'associazione prima di continuare.

Quindi, apri il home.oggetti file, a cui aggiungeremo alcune lampadine Hue. Ecco una definizione di elemento di esempio:

Color Bedroom_Hue 'Bedroom Hue' (Bedroom) {hue='1'}
  • Il Colore word specifica che tipo di controllo abbiamo su questo elemento. Le lampadine RGB Hue sono 'Colore', poiché ne abbiamo il pieno controllo del colore. Altre luci potrebbero essere solo un interruttore.
  • Il prossimo è il nome in codice dell'articolo: ho scelto Camera_Tonalità , ma letteralmente tutto va bene, solo qualcosa di descrittivo che ti sembra naturale, perché dovrai ricordarlo in seguito quando crei la mappa del sito. Il nome in codice non deve contenere spazi.
  • Tra le virgolette c'è l'etichetta. Il nostro è semplice in questo caso, ma per alcuni elementi come la temperatura o qualcosa che riporta un valore, aggiungerai un codice speciale che gli dice come visualizzare quel valore o usando cosa trasformare. L'etichetta è per l'interfaccia e può contenere spazi.
  • Tra le parentesi angolari c'è il nome dell'icona. Troverai tutte le icone disponibili nella condivisione OpenHAB, sotto applicazioni web/immagini directory. In realtà c'è un'intera gamma di icone di tonalità che rappresentano diverse luminosità o on/off. Basta specificare il nome dell'icona di base: OpenHAB saprà cercare automaticamente le diverse icone di attivazione/disattivazione se si tratta di un elemento commutato. Questo è facoltativo.
  • Tra parentesi tonde, gli diciamo di quali gruppi far parte – in questo caso, solo il Camera da letto gruppo.
  • Infine e in modo cruciale, colleghiamo l'articolo all'associazione appropriata con tutte le variabili necessarie. In questo caso, il tinta vincolante e il numero della lampadina è 1. Puoi trovare il numero aprendo l'applicazione Hue ufficiale e guardando la scheda delle luci. Ogni lampadina ha un numero univoco.

Ho aggiunto un totale di quattro lampadine, oltre a una semplice dichiarazione dei gruppi che approfondiremo in seguito. Ecco il mio completo home.oggetti a questo punto:

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

Il /* Luci */ il testo è solo un commento, non ha altra funzione che aiutarci a scansionare il file in un secondo momento quando diventa più grande. Ora abbiamo aggiunto i dispositivi, ma l'apertura di http://raspberrypi.local:8080/?sitemap=home risulta in un'interfaccia vuota, ovviamente perché non abbiamo ancora creato elementi di interfaccia nella mappa del sito. Iniziamo in modo molto semplice per ora. Aprire home.sitemap .

Il codice utilizzato per descrivere l'interfaccia è diverso dagli elementi, ma per ora creeremo un nuovo 'frame' e aggiungeremo un paio di controlli di gruppo insieme ad alcune icone.

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

I gruppi sono uno strumento utile per i test rapidi, ma in realtà vorrai un maggiore controllo su come vengono visualizzati gli elementi. Per ora, questo sarà sufficiente. Salva e ricarica la tua home sitemap nel browser. Dovresti vedere questo (o qualunque gruppo tu abbia aggiunto).

Clicca su Tutta l'illuminazione per vedere ogni luce Hue, dal momento che le abbiamo definite tutte come appartenenti a quel gruppo di luci onnicomprensivo.

Nota che l'elemento Office Hue viene visualizzato con un'icona diversa, perché la luce del mio ufficio è già accesa e OpenHAB lo sa quando ha parlato con il bridge Hue ed è stato abbastanza intelligente da regolare l'icona sulla versione 'attiva' del file. Sfortunatamente, non riflette il colore, ma se hai un'app mobile installata, rifletterà il colore corrente.

Se visualizzi più elementi di quanto pensavi di aver definito o ricevi errori su più definizioni, sappi che, sebbene tu possa caricare solo una mappa del sito alla volta sulla pagina tutte le mappe del sito estrarranno elementi da tutti i file .item , quindi se hai lasciato lì il file degli elementi demo, potresti avere anche alcuni elementi aggiuntivi nei tuoi gruppi. Suggerirei a questo punto di eseguire il backup del contenuto degli elementi demo e di spostarlo fuori dalla cartella per evitare errori di duplicazione.

Accesso remoto e IFTTT con My.OpenHAB

In questo momento, devi essere sulla stessa rete locale per accedere al tuo sistema OpenHAB, ma cosa succede se vuoi controllare i tuoi dispositivi e controllare i sensori quando sei fuori dalla portata del tuo Wi-Fi? Per questo avremo bisogno di impostare l'accesso remoto - e lo faremo nel modo più semplice, con il servizio web My.OpenHAB [Broken URL Removed], che evita la necessità di pasticciare con il port forwarding e le configurazioni del router. Come bonus, il servizio My.OpenHAB ha anche un canale IFTTT, che ti offre infinite possibilità di controllo remoto e automazione.

Primo: installa la rilegatura. Suggerimento rapido: se non conosci il nome esatto di un particolare pacchetto di installazione, prova a cercarlo con apt-cache.

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

Prima di poterti registrare sul sito My.OpenHAB, dovrai creare una chiave segreta e trovare il tuo UUID, che identifica in modo univoco la tua installazione. Controlla sotto OpenHAB Home condividi -> applicazioni web -> statico e dovresti trovare un file UUID contenente il tuo identificatore univoco. È a questo punto che ho scoperto che il mio Pi utilizzava una versione precedente di Java che non crea correttamente la chiave segreta. Tipo

java -version

controllare. Se non dice 1.7 o superiore, hai la versione sbagliata. Stranamente, l'ultima versione di Raspbian viene fornita con Oracle Java 8 installato, ma non impostato come predefinito.

sudo update-alternatives --config java

che è meglio otf o ttf

Scegli l'opzione che indica jdk-8-oracle , quindi riavvia OpenHAB. Bonus: Oracle Java 8 è più veloce di OpenJDK predefinito!

Ora dovresti trovare anche un file segreto nel webapps/static cartella. Apri entrambi segreto e uuid e preparati a copiare e incollare.

Ora crea un account My.OpenHAB, utilizzando quei dettagli, quindi torna indietro: dovrai anche confermare la tua email prima che tutto funzioni. Ci sono ancora un paio di passaggi per questo. Innanzitutto, dobbiamo impostare il motore di persistenza predefinito su myopenhab (la persistenza è qualcosa per una guida successiva, ma a prescindere, dobbiamo impostare qualcosa di base per 'esportare' i nostri dati al servizio online e renderli visibili a IFTTT) . Per fare ciò, apri openhab.cfg e trova la variabile che dice persistenza:predefinito= e cambialo in persistence:default=myopenhab . Salva.

Infine, crea un nuovo file nel configurazioni/persistenza cartella chiamata myopenhab.persist e incollare la seguente regola.

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

Non è necessario capirlo per ora, ma sappi che dice 'salva lo stato di ogni elemento quando cambia'.

Per connetterti con IFTTT, vai su Canale OpenHAB – dovrai autenticarti e dargli accesso al tuo account MyOpenHAB. Tieni inoltre presente che fino a quando i tuoi elementi non saranno cambiati almeno una volta, non saranno visibili nell'elenco degli elementi su IFTTT, quindi se non è visibile, attiva e disattiva qualcosa, quindi ricarica. Congratulazioni, ora hai accesso IFTTT completo a tutto nel tuo sistema OpenHAB!

Sensore di presenza Bluetooth tramite REST

Poco tempo fa ti ho mostrato come realizzare una serratura automatica della porta dell'ufficio utilizzando la scansione Bluetooth per rilevare la presenza dell'utente: volevo portare qualcosa del genere in OpenHAB.

Su qualsiasi piattaforma diversa da Raspberry Pi, questo sarebbe semplice grazie a un collegamento Bluetooth già pronto; sfortunatamente, non funziona su Pi a causa di un file Java cruciale che dovrebbe essere ricompilato per l'architettura ARM, aggiunto all'associazione e quindi ricostruita l'associazione. Basti dire che ci ho provato, ed è stato orribilmente complicato e non ha funzionato. Esiste tuttavia una soluzione molto più semplice che funge anche da buona introduzione alla pura estendibilità di OpenHAB: adatteremo semplicemente il nostro precedente script Python per farlo riportare direttamente all'interfaccia RESTful di OpenHAB.

A parte: un'interfaccia RESTful significa che puoi interagire con un sistema utilizzando il server Web integrato, semplicemente chiamando URL e passando o recuperando dati. Puoi visitare questo URL per vedere un semplice esempio di ciò sul tuo server: http://raspberrypi.local:8080/rest/items – che genera un elenco codificato di tutti gli elementi definiti. Questo è incredibilmente potente, in quanto espone tutto il potenziale di OpenHAB e ti consente di scrivere interfacce personalizzate; oppure in usato reverse, per segnalare lo stato dei sensori senza avere un binding specifico. Utilizzeremo questa funzionalità per segnalare la presenza di un dispositivo Bluetooth specifico senza ricorrere all'associazione Bluetooth.

Inizia aggiungendo un nuovo Interruttore articolo per il tuo home.oggetti file. Ho chiamato il mio 'JamesInOffice' e l'ho trasformato in un interruttore anziché in un semplice contatto on/off in modo da poter controllare manualmente la mia presenza nel caso in cui il mio telefono muoia.

Switch JamesInOffice 'James in Office' (Office)

Notare che non ho definito un'icona o associato un'associazione specifica. È solo un interruttore generico.

Quindi, inserisci un dongle Bluetooth USB compatibile e installa alcuni strumenti di base per interagire con esso.

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

L'ultimo comando dovrebbe mostrare il tuo adattatore Bluetooth. Se non è elencato, prova un altro adattatore, il tuo non è compatibile con Linux. Il prossimo passo è trovare l'indirizzo hardware Bluetooth del tuo dispositivo.

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

Assicurati che il tuo telefono sia aperto nella pagina delle impostazioni Bluetooth (che lo mette in modalità di associazione/pubblica) e ovviamente che il Bluetooth sia attivato. Dovresti trovare un indirizzo hardware esadecimale elencato.

Dalla directory home dell'utente Pi, crea un nuovo script Python e incolla questo codice .

Ci sono alcune cose che dovrai modificare, a partire dal tuo particolare indirizzo del dispositivo:

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

Così come la linea this, che si trova in due punti (sì, probabilmente potrebbe essere strutturata meglio). Cambia JamesInOffice con il nome in codice dello switch che hai definito.

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

Il passaggio finale è dire a questo script di avviarsi all'avvio.

sudo nano /etc/rc.local

Scorri verso il basso e appena prima dell'uscita 0, aggiungi le seguenti righe:

python /home/pi/detect.py &

Il segno & significa 'fai questo in background'. Vai avanti ed esegui lo script se non l'hai già fatto e apri la tua interfaccia OpenHAB. Se lo hai aggiunto a un gruppo, fai clic su quel gruppo. L'aggiornamento richiede circa 10 secondi, ma vedrai accendersi o spegnersi l'icona predefinita della lampadina a seconda che il telefono venga rilevato o meno. Controlla il file di registro se non succede nulla, potrebbe essere che hai usato il nome dell'elemento sbagliato.

App mobile OpenHAB

Sebbene tu possa ovviamente utilizzare l'interfaccia web da un dispositivo mobile, OpenHAB ha app native per entrambi ios e Android - e sembrano un quantità più bello dell'interfaccia del browser predefinita. Nella schermata delle impostazioni, inserisci l'URL locale come IP interno che hai utilizzato fino ad ora, incluso il numero di porta. Per l'URL remoto, inserisci https://my.openhab.org e il nome utente (e-mail) e la password che hai inserito quando ti sei registrato. Se non ti sei ancora registrato a MyOpenHAB, lascia vuoti l'autenticazione e l'URL remoto, ma accederai al tuo sistema solo dal tuo Wi-Fi locale.

Andare avanti e ricevere aiuto

La quantità di personalizzazione e funzionalità ordinate che puoi aggiungere al tuo controller OpenHAB è davvero epica. Oltre al vasto elenco di dispositivi supportati con associazioni, puoi utilizzare l'interfaccia RESTful, le estensioni HTTP e IFTTT per leggere o controllare letteralmente qualsiasi tipo di dispositivo IoT, e poi alcuni (prova alcune delle nostre idee di illuminazione creative). Sì, è una vera seccatura da installare, ma nessun sistema commerciale può avvicinarsi alla potenza di un sistema OpenHAB personalizzato.

Detto questo, la corsa non è stata affatto facile per me, ed è proprio per questo che ho scritto questa guida, per facilitarti il ​​processo. E se trovi il sistema OpenHAB travolgente, ci sono altre opzioni quando si tratta di automazione domestica Raspberry, come l'utilizzo di Raspberry Pi per automatizzare la porta del tuo garage, ad esempio.

Resta sintonizzato su MakeUseOf per una guida avanzata che copre Z-Wave e altri fantastici trucchi che puoi impostare.

Se hai bisogno di aiuto con una parte specifica di questa guida, chiedi pure nei commenti. Se vuoi aiuto con un'altra associazione o alcuni argomenti avanzati che non abbiamo ancora trattato, il forum ufficiali OpenHAB sono un luogo accogliente.

Condividere Condividere Tweet E-mail 5 suggerimenti per potenziare le tue macchine Linux VirtualBox

Stanchi delle scarse prestazioni offerte dalle macchine virtuali? Ecco cosa dovresti fare per aumentare le prestazioni di VirtualBox.

Leggi Avanti
Argomenti correlati
  • Fai da te
  • Casa intelligente
  • Domotica
  • Forma lunga
  • Guida lunga
  • Hub intelligenti
Circa l'autore James Bruce(707 articoli pubblicati)

James ha una laurea in Intelligenza Artificiale ed è certificato CompTIA A+ e Network+. Quando non è impegnato come editor di recensioni hardware, gli piacciono i LEGO, la realtà virtuale e i giochi da tavolo. Prima di entrare a far parte di MakeUseOf, era un tecnico luci, insegnante di inglese e ingegnere di data center.

Altro da James Bruce

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti