Sopstveni server za pametnu kuću
Raznovrsnost softvera za upravljanje i automatizaciju rada uređaja u kući podseća na stanje sa operativnim sistemima za mobilne telefone pre pojave Android‑a. Jedno od upotrebljivih rešenja dolazi iz open‑source zajednice i zove se Home Assistant
Kontrola i automatizacija rada uređaja u kući je korisna mogućnost koja može uštedeti vreme, novac i energiju i olakšati život. Ekonomski je isplativo odrediti vreme uključivanja bojlera u satima jeftinije struje ili uključiti grejalicu ili kotao sat vremena pre povratka kući.
Na tržištu postoje gotova rešenja za automatizaciju, poput LED reflektora sa senzorom pokreta ili kontaktor‑releja za bojler koji pobuđuje lampa za indikaciju jeftine tarife struje. Takvi uređaji su zatvorenog tipa, ne sarađuju međusobno i moguće je kontrolisati ih samo u kući. Proizvođači uređaja u svojoj ponudi imaju i modele s podrškom za mrežno Wi‑Fi povezivanje i Internet konekciju, pa se njima može upravljati mobilnim telefonom i s daljine, s lokacija van kuće.
Integrisana pamet
Iako je za takve uređaje prikladniji opis IoT (Internet stvari), proizvođači ističu atraktivni prefiks smart, mada nikako ne znači da je samo dodavanje mogućnosti povezivanja „opametilo“ uređaj. Dodavanje opcija poput uključivanja u određeno vreme, a naročito u zavisnosti od promene stanja (detekcija pokreta, otvaranje vrata, promena temperature…) već bi se nekako moglo nazvati „pametnim“. Takvom logikom, nameće se zaključak da će se upotrebom više „pametnih“ uređaja opametiti i kuća ili stan, koji onda dobijaju naziv Smart home.
Aplikaciju koja kontroliše uređaj obezbeđuje proizvođač (ako ju je individualno razvijao), što može predstavljati problem u saradnji s „pametnim stvarima“ drugih brendova. Iako aplikacija može biti atraktivna i funkcionalna u iskorišćavanju mogućnosti i programiranju uređaja, uglavnom će sarađivati sa određenim brojem uređaja. Primer je eWeLink aplikacija koja kontroliše Sonoff uređaje, ali ne očitava D‑Link‑ov senzor pokreta koji će samo preko mydlink Home softvera kontrolisati prekidače i kamere istog brenda. Veći broj aplikacija u mobilnom telefonu ne mora da utiče na korišćenje, ali saradnja tih aplikacija i integracija u jedan sistem zavisi od slučaja do slučaja.
Za pristup sa udaljene lokacije svakom uređaju u lokalnoj Wi‑Fi mreži potrebno je preusmeravanje portova u ruteru, a za međusobnu interakciju elemenata pametne kuće potreban je server s programom. Proizvođači su te zahteve rešili cloud opcijom koja se koristi u aplikacijama s mobilnih telefona (Android ili iOS), pa se, na primer, za uključivanje i programiranje svetla koristi udaljeni server. Prilikom postavljanja Wi‑Fi prekidača ili senzora treba napraviti nalog i registrovati uređaj na cloud serveru pomoću aplikacije za kontrolu uređaja. Takav koncept je održiv samo ukoliko se koriste podržani uređaji određenih proizvođača. Određena kompatibilnost se može postići korišćenjem online platformi, kao što su Google Home, Google Nest, Amazon Alexa ili IFTTT, što opet zavisi od toga s kojim servisom aplikacija proizvođača sarađuje.
Android u centru
Jednostavno, robusno, ali funkcionalno rešenje jeste automatizacija više aplikacija na Android uređaju u kući. Set‑top box je Android uređaj koji može neprekidno da radi, a na kome se osim aplikacija za kontrolu uređaja instalira softver za automatizaciju (Tasker, AutomateIt, MacroDroid…). Tako se može podesiti da softver za automatizaciju kao okidač (trigger) koristi obaveštenje jedne aplikacije o promeni stanja, a onda izvrši akciju (action) na drugoj aplikaciji. Čak je i aplikacijom koja nema saradnju sa softverom za automatizaciju moguće upravljati na „grub“ način određivanjem akcije pritiska na taster po koordinatama.
U realizaciji ovog rešenja mora se paziti na niz (ne)predvidivih poteškoća, poput izvršavanja aplikacije u prvom planu kako bi se izvršila akcija na određenoj koordinati, ili blokiranje neželjenih pop‑up obaveštenja koji će poremetiti „pritisak“ na taster. Iako naizgled nepouzdano, ovo rešenje nakon dužeg podešavanja i testiranja može biti funkcionalno.
Server u centru
Prvi razlog za razmatranje opcije postavljanja sopstvenog servera jeste integracija uređaja različitih proizvođača. Drugi adut koncepta je zapisana istorija urađenih akcija. Mogući prekidi Internet konekcije, iako retki, još su jedan razlog odabira lokalnog servera. Mada naizgled paranoično, nepoverenje u dalekoistočne cloud servere je ustaljeno na zapadnim YouTube kanalima i blogovima.
Pomisao na server u kući asocira na PC koji će raditi bez prestanka, što se u poslednje vreme znatno promenilo. Pojava malih računara solidnih karakteristika, kao što su Raspberry Pi, Intel NUC, Tinker board ili Odroid smanjuje potrošnju i zahtevnost za prostorom. Home Assistant je besplatno, open‑source rešenje za automatizaciju uređaja u kući. Softver je napisan u Python‑u, a dostupan je u distribucijama za nabrojane male računare. Iako open‑source rešenje, Home Assistant ima više od 1600 dodataka za različite IoT uređaje, sisteme i servise koji se dodaju kao komponente za integraciju, u čijem razvoju učestvuje preko 1900 developera.
Prema autorima, minimalni zahtevi za računar koji će pokretati Home Assistant nisu skromni. Ne preporučuju se Raspberry Pi, Pi Zero‑W i Pi 2 modeli, već Raspberry Pi 3 verzije B i B+ i Pi 4 model B ili NUC. Osim verzije koja je samostalni operativni sistem, dostupna je i Core verzija u Python‑u pa je moguće instalirati je na postojećem OS‑u. Jedna od dostupnih distribucija, koja se može naći na zvaničnoj Home Assistant Web stranici, služi za virtuelne mašine u formatima VMDK, VHDX, VDI, QCOW2 i OVA, pa je softver moguće isprobati pre odluke o nabavci mini‑računara koji će obavljati serversku funkciju. Instalacija u nekim slučajevima može biti komplikovana, pa su se autori potrudili da na zvaničnoj prezentaciji opišu postupak za više platformi.
Kako upravljati
Nakon instalacije, softverom se upravlja preko Web interfejsa iz browser‑a ili aplikacijom za mobilne Android i iOS telefone. Upravljanje preko browser‑a se obavlja unosom adrese u obliku a.b.c.d:8123, gde je a.b.c.d IP adresa servera u lokalnoj mreži. Prilikom prvog otvaranja Web interfejsa potrebno je uneti korisničko ime i šifru, lokaciju i sistem mernih jedinica. Kartica vremenske prognoze je podrazumevana kartica na prikazu „komandne table“ (dashboard). Prikaz koji se ovde naziva Lovelace UI može da se menja na ikoni menija u gornjem desnom uglu, kao i da se dodaju kartice Alarm Panel, Calendar, Shopping List, Webpage (za prikaz omiljene Web stranice) ili Picture elements (za prikaz mape objekta).
Po konceptu prikaza, očigledno je da komandna tabla, osim što upravlja uređajima, može biti i svojevrsni info‑centar. Home Assistant sam pretražuje podržane uređaje i nudi podešavanja. Uređaje koje softver ne prepozna treba podesiti ili potražiti podršku na GitHub Web stranicama, što prevazilazi okvire plug and play koncepcije i zahteva ispravljanje konfiguracionog fajla. Za uređaje koji su podržani na generičkom nivou potrebno je u configuration.yaml fajlu uneti određene parametre.
Nejasno je zašto editor fajlova nije integrisan, već ga je potrebno dodati preko Add‑on store kartice koja se nalazi u Supervisor meniju. Primer je Vivotek IP kamera za koju u configuration.yaml fajlu treba dodati:
camera:
platform: vivotek
ip_address: IP_ADRESA
username: KORISNIČKO_IME
password: ŠIFRA
Za integraciju popularne Android aplikacije IP Webcam u configuration.yaml fajlu treba dodati:
android_ip_webcam:
host: IP_ADRESA
Nakon toga treba restartovati Home Assistant (Configuration/Server Controls) i u Lovelace UI dodati kameru preko BY ENTITY opcije.
Ukoliko neki uređaj (poput Sonoff‑ove serije Wi‑Fi prekidača) nije podržan u platformi, potrebno je pretražiti forume i GitHub. U slučaju pronalaženja podrške, treba postupiti po uputstvu, a najčešće je dovoljno iskopirati preuzete fajlove u Home Assistant‑ov folder custom_components i dodati parametre u configuration.yaml fajl. Za jednostavnije kopiranje fajlova moguće je koristiti Samba share dodatak iz Add‑on store‑a.
Automatizovane procedure
Automatizacija se može podešavati editovanjem automations.yaml fajla ili korišćenjem opcije Automation u stavci menija Configuration. Najjednostavniji primer je detekcija pokreta na senzoru, koja će uključiti svetlo. Na stranici Automation treba odabrati ikonu „+“ i na ponuđenom prozoru izbeći (skip) ponuđene opcije, nakon čega se prikazuje stranica za kreiranje automatizacije. Nakon imenovanja automatizacije, za tip okidača (trigger) treba odabrati State, a za Entity ime senzora. Za akciju (Action type) treba odabrati Call service, za servis switch.turn_on, a u opciji Names of entities to turn on odabrati prekidač. Automatizaciju treba snimiti klikom na taster u donjem desnom uglu, nakon čega će se sama izvršavati.
Primamljiva, ali i izazovna, opcija je instaliranje Home Assistant Core verzije na dostupnom i ne tako skupom Android set‑top box‑u. Potrebno je instalirati Termux terminal emulator (zahteva verzije Android‑a 7.0 ili novije), Python, Mosquitto, Node‑RED i Home Assistant, sve to pokrenuti i podesiti.
Home Assistant je funkcionalno rešenje s logičnim prikazom (Lovelace UI), što je jedan od uslova za približavanje većem broju korisnika, dok relativna komplikovanost u dodavanju uređaja koji nisu direktno podržani može otežati instalaciju. Pre nego što se upustite u avanturu potrage za serverom, prekidačima i senzorima koji su kompatibilni sa Home Assistent‑om, treba imati u vidu da je za pravljenje pametne kuće potrebno dosta kreativnosti i maštovitosti u kombinovanju i primeni. A i dosta slobodnog vremena…
Autor: Jovan Mirović