Realizarea unui sistem de tip Home Automation (Partea a IV-a)

Instalarea și configurarea platformei OpenHab pe un sistem Raspberry Pi

 

Platforma OpenHab este compatibilă cu sistemele de operare Linux și poate fi instalată pe un sistem de tip Raspberry Pi. Avantajul instalării platformei OpenHab pe un dispozitiv integrat, precum Raspberry Pi, este înlocuirea unui sistem de calcul de uz general (desktop, server) ce consumă mai mult și are necesități specifice de funcționare (alimentare, climatizare, spațiu etc.).

1

Raspberry Pi 2 Model B

https://www.robofun.ro/raspberry-pi-si-componente/raspberry-pi-v2

 2

Raspberry Pi 3 Model B

https://www.robofun.ro/raspberry-pi-si-componente/raspberry-pi-v3

 

O altă posibilitate interesantă oferită de instalarea platformei OpenHab pe un sistem Raspberry Pi este construirea unui centru de control al unei case inteligente complet autonom adăugând plăcii de dezvoltare Raspberry Pi un ecran tactil – rezultatul va putea forma o consolă de comandă a întregii case.

3

Display 7” Raspberry Pi – Touch Screen Capacitive Touch

https://www.robofun.ro/raspberry-pi-si-componente/raspberry-pi-lcd/raspberry_pi_7_display_touch

 

Explicațiile următoare au fost testate pe o placă Raspberry Pi 2 Model B rulând Raspbian 4.1.17 cu toate update-urile la zi (java 1.8.0_65-b17) dar nu ar trebui să existe probleme cu modelul Raspberry Pi 3 Model B sau cu alte versiuni mai noi ale sistemului de operare Raspbian.

https://www.raspberrypi.org/downloads/raspbian/

Primul pas este importul cheii repositorului OpenHab:

wget -qO – ‘https://bintray.com/user/downloadSubjectPublicKey?username=openhab’ | sudo apt-key add –

și adăugarea acestuia la lista de surse de instalare:

echo “deb http://dl.bintray.com/openhab/apt-repo stable main” | sudo tee /etc/apt/sources.list.d/openhab.list

Pentru a putea vedea pachetele de instalare vom face un update la lista de pachete:

sudo apt-get update

și vom instala nucleul platformei OpenHab:

sudo apt-get install openhab-runtime

Pentru pornirea/oprirea/repornirea platformei avem la dispoziție următoarele comenzi:

sudo systemctl start openhab

sudo systemctl stop openhab

sudo systemctl restart openhab

La rularea următoarei instrucțiuni ar trebui să vedem platforma OpenHab pornită:

ps axf

4

Pentru configurarea pornirii automate a platformei OpenHab vom da următoarele comenzi:

sudo systemctl daemon-reload

sudo systemctl enable openhab

Pentru instalarea de componente suplimentare (add-ons / bindings) vom utiliza comanda:

sudo apt-get install openhab-addon-${addon-type}-${addon-name}

de exemplu (pentru extensia NTP):

sudo apt-get install openhab-addon-binding-ntp

Pentru instalarea unor componente ce nu fac parte din platformă (precum componenta de legătură cu MySensors) vom naviga în directorul de instalare /usr/share/openhab/addons/ și vom copia manual componenta:

cd /usr/share/openhab/addons/

sudo wget http://bkl.linux.dk/org.openhab.binding.mysensors-1.8.0-SPANSHOT.jar

Pașii următori sunt similari cu pașii de configurare efectuați sub sistemul de operare Microsoft Windows.

Mergem în directorul de configurare a platformei /etc/openhab/configurations și redenumim fișierul openhab_default.cfg în openhab.cfg :

cd /etc/openhab/configurations/

sudo mv openhab_default.cfg openhab.cfg

Adăugăm la sfărșitul fișierului openhab.cfg:

################### MySensors ######################

mysensors:port=/dev/ttyUSB0

pentru un sistem gateway conectat pe portul USB (ttyUSB0) sau pentru un gateway ethernet:

################### MySensors ######################

mysensors:type=ethernet

mysensors:host=192.168.100.7

mysensors:port=5003

unde host este adresa IP a sistemului gateway.

În directorul /etc/openhab/configurations/sitemaps/ creăm fișierul casamea.sitemap cu următorul conținut (în cazul în care nu sunteți familiari cu editoare specifice mediului Linux gen vi puteți folosi mcedit – sudo mcedit casamea.sitemap):

sitemap casamea label=”Meniu Principal” {

    Frame label=”Senzori de temperatura”  {

                Text item=Temperature0 icon=”temperature”

                 Text item=Temperature1 icon=”temperature”

    }

    Frame label=”Lumina”  {

                Switch item=Relay icon=”switch”

    }

    Frame label=”Data calendaristica” {

                 Text item=Date icon=”calendar”

    }

}

Iar în directorul /etc/openhab/configurations/items/ creăm fișierul casamea.items cu următorul conținut:

Number            Temperature0      “Temperatura interioara [%s °C]”  

<temperature>   {mysensors=”10;0;V_TEMP”}

Number            Temperature1     “Temperatura exterioara [%s °C]”    

<temperature>   {mysensors=”10;1;V_TEMP”}

Switch            Relay             “Lampa”                           

    {mysensors=”20;0;V_STATUS”}

DateTime          Date              “Date [%1$tA, %1$td.%1$tm.%1$tY]” 

<calendar> 

Repornim platforma OpenHab:

sudo systemctl restart openhab

și putem accesa interfața definită la adresa:

http://192.168.100.9:8080/openhab.app?sitemap=casamea

unde 192.168.100.9 este adresa sistemului pe care s-a efectuat instalarea dacă se accesează după un alt sistem .

5

sau dacă se accesează din interfața locală (de pe ecranul tactil al sistemului):

6

http://localhost:8080/openhab.app?sitemap=casamea

Sistemul este instalat și configurat și poate fi folosit de sine stătător sau ca server pentru alți clienți (sisteme desktop, telefoane mobile sau tablete).

 

Configurarea de operații automate – automatizarea platformei OpenHab

 

Cel mai simplu mod de a defini operații automate este definirea de scripturi (Scripts). Să presupunem că sistemul de acționare construit în lecția anterioară nu comandă un bec ci un ventilator pe care dorim să îl pornim când temperatura interioară depășește o anumită valoare. Vom crea în directorul /etc/openhab/configurations/scripts/ un fișier casamea.script cu următorul conținut:

if (Temperature0.state > 30) {

    sendCommand(Relay,ON)

}

Pentru a rula acest script este necesar să definim un fișier de reguli (Rules). În directorul /etc/openhab/configurations/rules/ creăm fișierul casamea.rules cu următorul conținut:

rule overheat

when

    Item Temperature0 changed

then

    callScript(“casamea”)

end

Astfel la fiecare modificare de temperatură trimisă de senzorul interior de temperatură se va executa scriptul definit anterior ce va verifica dacă temperatura a depășit pragul de 30 de grade Celsius și în caz afirmativ va trimite comandă de deschidere către elementul de acționare de tip releu.

Ca acțiuni în cadrul unei reguli se mai pot defini, pe lângă scripturi, și acțiuni (Actions) – programe scrise în Java și care pot fi apelate din fișierele de reguli și chiar din fișierele de scripturi.

Pentru mai multe detalii legate de funcționarea mecanismelor de automatizare în platforma OpenHab puteți consulta:

Automation · openhab/openhab Wiki

https://github.com/openhab/openhab/wiki/Automation

Un instrument important în configurarea platformei OpenHab îl reprezintă openHAB Designer – program ce permite editarea centralizată a fișierelor de configurare ale unui site OpenHab. Există versiuni atât pentru sistemul de operare Microsoft Windows cât și pentru OS X și Linux.

http://www.openhab.org/getting-started/downloads.html

7

O facilitate extrem de ”prețioasă” a acestui program este partea de ”autocomplete” și verificare sintactică în partea de scriere a fișierelor de configurare și a fișierelor de acțiuni automate.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s