**OpenHAB** on avatud lähtekoodiga automatiseerimisplatvorm, mis on loodud eri seadmete integreerimiseks ühte lahendusse. OpenHAB on kasutatav seadmetes, mis on võimelised käitama Java virtuaalmasinat ning on loodud tootjatest sõltumatuna. Seega on võimalik integreerida väga suur hulk erinevaid seadmeid eri tootjatelt.

Arhitektuur ja struktuur
------------------------

### Arhitektuur

OpenHAB on süsteem, mis koosneb alamsüsteemidest. Seega on OpenHAB-i kasutamise eelduseks, et alamsüsteemid on OpenHAB-ist sõltumatult üles seatud ja konfigureeritud. OpenHAB-i arhitektuuri mõistmiseks tuleb sellele mõelda kui kahest komponendist koosnevale tervikule.

Esimene osa hõlmab süsteemi lisatud seadmeid, nendevahelisi ühendusi ja teisi süsteemi füüsilisi aspekte.

Teine osa OpenHAB-ist keskendub sellele, kuidas informatsioon seadmete ja ühenduste vahel kasutajaliideses on esitatud, kuidas kasutaja seatud reeglid mõjutavad seadmete kujutamist tarkvaras. Lisaks sellele on selle osa ülesanne ka kasutajaliideses läbi viidud tegevustele vastavad muudatused sisse viia ka valitud seadme tarkvaras.

### Struktuur

OpenHAB on arendatud Javat kasutades ning suures osas Eclipse Smarthome'i raamistikul põhinev. Tegemist on modulaarse tarkvaraga, mis on lisade kaudu laiendatav. Lisade abil on OpenHAB-il lai valik funktsioone, alustades kasutajaliidestega ning lõpetades suure hulga ühendatavate seadmetega.

Komponendid
-----------

Joonisel 1 on kujutatud täitur (asi), mis konfigureeritud läbi kahe kanali kontrollima lambipirne (kirjed). Kanalid on kirjetega seotud läbi lülide
Asjad (ingl k. *things*) on OpenHAB-i kontekstis üksused, mida saab süsteemile lisada. Need võivad olla füüsilised seadmed, kuid võivad olla ka mingi muu hallatava informatsiooni või funktsiooni allikad. Asjadel võib olla rohkem kui üks funktsioon.

Asjad täidavad oma funktsiooni läbi kanalite (ingl k. *channels*). Asjadel on iga rolli jaoks kanal ning ainult juhul, kui asi on seadistatud vastavat rolli kasutama, on selle rolli kohta käiv kanal aktiivne. Kasutaja ei ole kohustatud kasutama asja kõiki funktsioone.

Köited (ingl k. *bindings*) on lisad, mis võimaldavad siduda kirjed (ingl k. *items*) füüsiliste seadmetega.

Kirjed on rakenduse võimalused, mida on võimalik kasutada kasutajaliideses või automatiseerimises. Igal kirjel on määratud seisund ning neile on võimalik käske anda.

Lülid (ingl k. *links*) on seotud täpselt ühe kanali ja ühe kirjega. Kui kanal on kirjega seotud, siis on võimalik kasutada vastava kirje võimalusi läbi kanali asjaga suhtlemiseks. Igal kirjel võib olla mitu kanalit ning igal kanalil võib olla mitu kirjet.

Lisad
-----

OpenHAB-i süsteemi muudavad täielikuks mitut liiki lisad. Välja on töötatud eri liiki kasutajaliideseid, näiteks nutitelefoni või siis arvuti jaoks. OpenHAB-i on ka integreeritud võimalus andmeid üle aja salvestada. Selleks on võimalik kasutada püsivusteenuseid. Lisaks sellele on kasutajatele saadaval veel ka palju spetsiifilisi teenuseid nagu hääljuhtimine ning suur hulk reegleid ja skripte, mida on seadmete juhtimiseks võimalik kasutada.

Vaata ka
--------

* Nutikodu
* Nutistu

Viited
------

1. ↑  "Sissejuhatus". Originaali arhiivikoopia seisuga 28. märts 2018.
2. ↑  "OpenSource".
3. ↑  "Arhitektuur". Originaali arhiivikoopia seisuga 28. märts 2018.
4. ↑  "Struktuur". Originaali arhiivikoopia seisuga 14. märts 2018.
5. ↑  "Komponendid". Originaali arhiivikoopia seisuga 14. märts 2018.
6. ↑  "Lisad". Originaali arhiivikoopia seisuga 27. veebruar 2018.