Danas, zahvaljujući brzom razvoju mikroelektronike, komunikacijskih kanala, internetskih tehnologija i umjetne inteligencije, tema pametnih domova postaje sve aktualnija. Ljudsko stanovanje doživjelo je značajne promjene od kamenog doba, au eri industrijske revolucije 4.0 i Interneta stvari postalo je udobno, funkcionalno i sigurno. Na tržište dolaze rješenja koja stan ili seosku kuću pretvaraju u složene informacijske sustave kojima se upravlja s bilo kojeg mjesta u svijetu pomoću pametnog telefona. Štoviše, interakcija čovjeka i stroja više ne zahtijeva poznavanje programskih jezika - zahvaljujući algoritmima za prepoznavanje govora i sintezu, osoba razgovara s pametnim domom na svom materinjem jeziku.
Neki sustavi pametnih kuća trenutno na tržištu logičan su razvoj sustava videonadzora u oblaku, čiji su programeri uvidjeli potrebu za sveobuhvatnim rješenjem ne samo za nadzor, već i za upravljanje udaljenim objektima.
Predstavljamo vam niz od tri članka koji će vam reći o svim glavnim komponentama sustava pametne kuće u oblaku, koji je autor osobno razvio i pustio u rad. Prvi članak posvećen je terminalskoj klijentskoj opremi instaliranoj unutar pametne kuće, drugi arhitekturi sustava za pohranu i obradu podataka u oblaku, a na kraju treći klijentskoj aplikaciji za upravljanje sustavom na mobilnim i stacionarnim uređajima.
Oprema za pametnu kuću
Prvo, razgovarajmo o tome kako napraviti pametnu kuću od običnog stana, vikendice ili vikendice. Da biste to učinili, u pravilu je potrebno u kući postaviti sljedeću opremu:
- senzori koji mjere razne parametre vanjske okoline;
- aktuatori koji djeluju na vanjske objekte;
- kontroler koji izvodi proračune u skladu s mjerenjima senzora i ugrađenom logikom te izdaje naredbe aktuatorima.
Sljedeća slika prikazuje dijagram pametne kuće na kojem se nalaze senzori curenja vode (1) u kupaonici, temperature (2) i osvjetljenja (3) u spavaćoj sobi, pametna utičnica (4) u kuhinji i videonadzorna kamera (5) u hodniku.
Trenutno se naširoko koriste bežični senzori koji rade pomoću protokola RF433, Z-Wave, ZigBee, Bluetooth i WiFi. Njihove glavne prednosti su jednostavnost ugradnje i korištenja, kao i niska cijena i pouzdanost, jer Proizvođači nastoje svoje uređaje dovesti na masovno tržište i učiniti ih dostupnima prosječnom korisniku.
Senzori i aktuatori, u pravilu, povezani su putem bežičnog sučelja na kontroler pametne kuće (6) - specijalizirano mikroračunalo koje spaja sve te uređaje u jedinstvenu mrežu i njima upravlja.
Međutim, neka rješenja mogu kombinirati senzor, aktuator i regulator u isto vrijeme. Na primjer, pametni utikač može se programirati da se uključuje ili isključuje prema rasporedu, a kamera za videonadzor u oblaku može snimati video na temelju signala detektora pokreta. U najjednostavnijim slučajevima možete bez zasebnog kontrolera, ali za stvaranje fleksibilnog sustava s mnogo scenarija potrebno je.
Za povezivanje kontrolera pametne kuće s globalnom mrežom može se koristiti obični internetski usmjerivač (7), koji je odavno postao uobičajeni kućanski aparat u svakom domu. Ovdje postoji još jedan argument u korist kontrolera pametne kuće - ako se veza s internetom prekine, pametna kuća nastavit će normalno raditi zahvaljujući logičkom bloku pohranjenom unutar kontrolera, a ne u usluzi u oblaku.
Upravljač za pametnu kuću
Kontroler za sustav pametne kuće u oblaku o kojem se raspravlja u ovom članku razvijen je na temelju mikroračunala s jednom pločom
Sastavljanje kontrolera je vrlo jednostavno - mikroračunalo (1) se ugradi u plastično kućište (2), zatim se ugradi memorijska kartica od 8 GB u microSD formatu sa softverom (3) i USB Z-Wave mrežni kontroler (4). odgovarajuće utore. Upravljač za pametnu kuću na napajanje se spaja preko strujnog adaptera 5V, 2.1A (5) i USB - micro-USB kabela (6). Svaki kontroler ima jedinstveni identifikacijski broj, koji je zapisan u konfiguracijskoj datoteci pri prvom pokretanju i neophodan je za interakciju s uslugama pametnog doma u oblaku.
Softver kontrolera pametne kuće razvio je autor ovog članka na temelju operativnog sustava Linux Raspbian Stretch. Sastoji se od sljedećih glavnih podsustava:
- poslužiteljski proces za interakciju s opremom pametnog doma i oblakom;
- grafičko korisničko sučelje za podešavanje konfiguracijskih i radnih parametara regulatora;
- baza podataka za pohranu konfiguracije kontrolera.
Baza podataka kontroler pametne kuće implementiran je na temelju ugrađenog DBMS-a
Grafičko sučelje kontroler pametne kuće razvijen u PHP-u 7 pomoću mikrookvira
(kliknite na sliku da je otvorite u većoj rezoluciji)
Glavna funkcija grafičkog sučelja je povezivanje pametne kućne opreme (IP nadzornih kamera i senzora) s upravljačem. Web aplikacija iz SQLite baze podataka čita konfiguraciju i trenutno stanje kontrolera i uređaja povezanih s njim. Za promjenu konfiguracije kontrolera, on šalje kontrolne naredbe u JSON formatu kroz RESTful API sučelje poslužiteljskog procesa.
Proces poslužitelja
Proces poslužitelja - ključna komponenta koja obavlja sve glavne radove na automatizaciji informacijskih procesa koji čine osnovu pametne kuće: primanje i obrada senzorskih podataka, izdavanje kontrolnih radnji ovisno o ugrađenoj logici. Svrha poslužiteljskog procesa je interakcija s opremom pametnog doma, izvršavanje proizvodnih logičkih pravila, primanje i obrada naredbi iz grafičkog sučelja i oblaka. Poslužiteljski proces u razmatranom kontroleru pametne kuće implementiran je kao višenitna aplikacija razvijena u C++ i pokrenuta kao zasebna usluga systemd operacijski sustav Linux Raspbian.
Glavni blokovi poslužiteljskog procesa su:
- Upravitelj poruka;
- poslužitelj IP kamere;
- Z-Wave poslužitelj uređaja;
- Poslužitelj proizvodnih logičkih pravila;
- Baza podataka konfiguracije kontrolera i bloka logičkih pravila;
- RESTful API poslužitelj za interakciju s grafičkim sučeljem;
- MQTT klijent za interakciju s oblakom.
Procesni blokovi poslužitelja implementirani su kao zasebne niti, informacije između kojih se prenose u obliku poruka u JSON formatu (ili podatkovnih struktura koje predstavljaju ovaj format u procesnoj memoriji).
Glavna komponenta poslužiteljskog procesa je upravitelj poruka, koji usmjerava JSON poruke u sve blokove procesa poslužitelja. Vrste informacijskih polja JSON poruke i vrijednosti koje mogu prihvatiti navedene su u tablici:
tip uređaja
protokol
messageType
stanje uređaja
naredba
soba
onvif
senzorData
on
strujanje (uključeno/isključeno)
senzor
zwave
naredba
s
snimanje (uključeno/isključeno)
sredstva za povećanje
mqtt
businessLogicRule
strujanje (uključeno/isključeno)
uređaj (dodaj/ukloni)
poslovnaLogika
konfiguracijski podaci
snimanje (uključeno/isključeno)
Bluetooth
stanje uređaja
pogreška
WiFi
rf
Na primjer, poruka detektora pokreta kamere izgleda ovako:
{
"vendor": "*****",
"version": "3.0.0",
"timestampMs": "1566293475475",
"clientType": "gateway",
"deviceId": "1616453d-30cd-44b7-9bf0-************",
"deviceType": "camera",
"protocol": "onvif",
"messageType": "sensorData",
"sensorType": "camera",
"label": "motionDetector",
"sensorData": "on"
}
Proizvodna logika
Za primanje ili slanje poruke od dispečera, blok procesa poslužitelja pretplaćuje se na poruke određene vrste. Pretplata je proizvodno logično pravilo tipa "Ako tada...", predstavljen u JSON formatu, i poveznica na rukovatelj porukama unutar bloka procesa poslužitelja. Na primjer, kako biste dopustili poslužitelju IP kamere da prima naredbe iz GUI-ja i oblaka, trebate dodati sljedeće pravilo:
{
"if": {
"and": [{
"equal": {
"deviceId": "1616453d-30cd-44b7-9bf0-************"
}
},
{
"equal": {
"messageType": "command"
}
}
]
},
"then": {
"result": "true"
}
}
Ako su ispunjeni uvjeti navedeni u prethodnik (lijeva strana) pravila su istinita, onda je zadovoljeno posljedično (desna strana) pravila, a rukovatelj dobiva pristup tijelu JSON poruke. Prethodnik podržava logičke operatore koji uspoređuju JSON parove ključ-vrijednost:
- jednako "jednako";
- nije jednako "nije_jednako";
- manje "manje";
- više "veći";
- manje od ili jednako "manje_ili_jednako";
- veće ili jednako "veće_ili_jednako".
Rezultati usporedbe mogu se međusobno povezati pomoću operatora Booleove algebre:
- i "i"
- OR "ili";
- NE "ne".
Dakle, pisanjem operatora i operanda u poljskoj notaciji, možete stvoriti prilično složene uvjete s velikim brojem parametara.
Potpuno isti mehanizam, temeljen na JSON porukama i produkcijskim pravilima u JSON formatu, koristi se u proizvodnom logičkom poslužiteljskom bloku za predstavljanje znanja i izvođenje logičkog zaključivanja korištenjem senzorskih podataka iz senzora pametne kuće.
Koristeći mobilnu aplikaciju, korisnik kreira scenarije prema kojima bi pametna kuća trebala funkcionirati. Na primjer: "Ako se aktivira senzor za otvaranje ulaznih vrata, onda upalite svjetlo u hodniku". Aplikacija čita identifikatore senzora (senzor otvaranja) i aktuatora (pametna utičnica ili pametna svjetiljka) iz baze podataka i generira logičko pravilo u JSON formatu koje se šalje kontroleru pametne kuće. O ovom mehanizmu ćemo detaljnije govoriti u trećem članku naše serije, gdje ćemo govoriti o klijentskoj aplikaciji za upravljanje pametnom kućom.
Mehanizam proizvodne logike koji je gore razmotren implementiran je pomoću knjižnice
void CRuleEngine::Process(PProperties pFact)
{
m_pActions->clear();
rapidjson::Reader reader;
for(TStringMap::value_type& rRule : m_Rules)
{
std::string sRuleId = rRule.first;
std::string sRuleBody = rRule.second;
CRuleHandler ruleHandler(pFact);
rapidjson::StringStream ruleStream(sRuleBody.c_str());
rapidjson::ParseResult parseResult = reader.Parse(ruleStream, ruleHandler);
if(!parseResult)
{
m_Logger.LogMessage(
NLogger2::ePriorityLevelError,
std::string("JSON parse error"),
"CRuleEngine::Process()",
std::string("RuleId: ") + sRuleId);
}
PProperties pAction = ruleHandler.GetAction();
if(pAction)
{
pAction->Set("ruleId", sRuleId);
m_pActions->push_back(pAction);
}
}
}
Ovdje pČinjenica — struktura koja sadrži parove ključ-vrijednost iz JSON poruke, m_Pravila — niz nizova pravila proizvodnje. Usporedba dolazne poruke i pravila proizvodnje provodi se u funkciji reader.Parse(ruleStream, ruleHandler)Gdje Rukovatelj pravilom je objekt koji sadrži logiku Booleovih i operatora usporedbe. sPraviloId — jedinstveni identifikator pravila, zahvaljujući kojem je moguće pohraniti i uređivati pravila unutar baze podataka kontrolera pametne kuće. m_pAkcije — niz s rezultatima logičkog zaključivanja: JSON poruke koje sadrže posljedice iz baze pravila i šalju se dalje upravitelju poruka kako bi ih niti pretplatnika mogle obraditi.
Izvedba RapidJSON-a usporediva je s funkcijom strlen(), a minimalni zahtjevi za sistemskim resursima dopuštaju korištenje ove biblioteke u ugrađenim uređajima. Korištenje poruka i logičkih pravila u JSON formatu omogućuje implementaciju fleksibilnog sustava razmjene informacija između svih komponenti kontrolera pametne kuće.
Z-Wave senzori i aktuatori
Glavna prednost pametne kuće je da može samostalno mjeriti različite parametre vanjskog okruženja i obavljati korisne funkcije ovisno o situaciji. Da biste to učinili, senzori i aktuatori povezani su s kontrolerom pametne kuće. U trenutnoj verziji, to su bežični uređaji koji rade pomoću protokola
Sada na tržištu možete pronaći prilično velik broj različitih Z-Wave uređaja. Pogledajmo nekoliko primjera:
- Pametna utičnica Zipato PAN16 može mjeriti sljedeće parametre: potrošnju električne energije (kWh), snagu (W), napon (V) i struju (A) u električnoj mreži. Također ima ugrađenu sklopku kojom upravljate priključenim električnim aparatom;
- Neo Coolcam senzor curenja detektira prisutnost prolivene tekućine zatvaranjem kontakata daljinske sonde;
- Senzor dima Zipato PH-PSG01 aktivira se kada čestice dima uđu u komoru analizatora plina;
- Senzor pokreta Neo Coolcam analizira infracrveno zračenje ljudskog tijela. Dodatno postoji svjetlosni senzor (Lx);
- Multisenzor Philio PST02-A mjeri temperaturu (°C), svjetlost (%), otvaranje vrata, prisutnost osobe u prostoriji;
- Z-Wave USB Stick ZME E UZB1 mrežni kontroler, na koji se spajaju senzori.
Vrlo je važno da uređaji i kontroler rade na istoj frekvenciji, inače se jednostavno neće vidjeti u trenutku spajanja. Na jedan Z-Wave mrežni kontroler moguće je spojiti do 232 uređaja, što je sasvim dovoljno za stan ili seosku kuću. Za proširenje područja pokrivenosti mrežom u zatvorenom prostoru, pametna utičnica može se koristiti kao repetitor signala.
U procesu poslužitelja kontrolera pametne kuće o kojem je bilo riječi u prethodnom odlomku, Z-Wave poslužitelj odgovoran je za interakciju sa Z-Wave uređajima. Koristi biblioteku za primanje informacija od senzora
{
"vendor": "*****",
"version": "3.0.0",
"timestampMs": "1566479791290",
"clientType": "gateway",
"deviceId": "20873eb0-dd5e-4213-a175-************",
"deviceType": "sensor",
"protocol": "zwave",
"messageType": "sensorData",
"homeId": "0xefa0cfa7",
"nodeId": "20",
"sensorType": "METER",
"label": "Voltage",
"sensorData": "229.3",
"units": "V"
}
Zatim se prosljeđuje upravitelju poruka poslužiteljskog procesa tako da ga niti pretplatnika mogu primiti. Glavni pretplatnik je proizvodni logički poslužitelj, koji odgovara vrijednostima polja poruke u prethodnicima logičkih pravila. Rezultati zaključivanja koji sadrže kontrolne naredbe šalju se natrag upravitelju poruka, a odatle idu na Z-Wave poslužitelj, koji ih dekodira i šalje Z-Wave mrežnom USB kontroleru. Zatim ulaze u aktuator koji mijenja stanje okolišnih objekata, a pametna kuća na taj način obavlja koristan rad.
(kliknite na sliku da je otvorite u većoj rezoluciji)
Povezivanje Z-Wave uređaja vrši se u grafičkom sučelju kontrolera pametne kuće. Da biste to učinili, idite na stranicu s popisom uređaja i kliknite gumb "Dodaj". Naredba add preko RESTful API sučelja ulazi u proces poslužitelja, a potom je upravitelj poruka šalje Z-Wave poslužitelju, koji Z-Wave mrežni USB kontroler stavlja u poseban mod za dodavanje uređaja. Zatim, na Z-Wave uređaju morate napraviti niz brzih pritisaka (3 pritiska unutar 1,5 sekundi) servisnog gumba. USB kontroler povezuje uređaj s mrežom i šalje podatke o njemu Z-Wave poslužitelju. To zauzvrat stvara novi unos u SQLite bazi podataka s parametrima novog uređaja. Nakon određenog vremenskog intervala, grafičko sučelje vraća se na stranicu popisa Z-Wave uređaja, čita informacije iz baze podataka i prikazuje novi uređaj na popisu. Svaki uređaj dobiva vlastiti jedinstveni identifikator koji se koristi u pravilima zaključivanja proizvodnje i pri radu u oblaku. Rad ovog algoritma prikazan je na UML dijagramu:
(kliknite na sliku da je otvorite u većoj rezoluciji)
Spajanje IP kamera
Sustav pametne kuće u oblaku o kojem se govori u ovom članku nadogradnja je sustava videonadzora u oblaku, koji je također razvio autor, a koji je na tržištu već nekoliko godina i ima mnogo instalacija u Rusiji.
Za sustave videonadzora u oblaku jedan od akutnih problema je ograničen izbor opreme s kojom se može izvršiti integracija. Softver zadužen za povezivanje s oblakom instaliran je unutar video kamere, što odmah postavlja ozbiljne zahtjeve na njen hardver - procesor i količinu slobodne memorije. To uglavnom objašnjava višu cijenu cloud CCTV kamera u usporedbi s običnim IP kamerama. Osim toga, potrebna je duga faza pregovora s tvrtkama koje proizvode CCTV kamere kako bi se dobio pristup sustavu datoteka kamere i svim potrebnim razvojnim alatima.
S druge strane, sve moderne IP kamere imaju standardne protokole za interakciju s drugom opremom (osobito videorekorderima). Dakle, upotreba zasebnog kontrolera koji se povezuje standardnim protokolom i emitira video streamove s IP kamera u oblak daje značajne konkurentske prednosti za videonadzorne sustave u oblaku. Štoviše, ako je klijent već instalirao sustav videonadzora temeljen na jednostavnim IP kamerama, tada ga je moguće proširiti i pretvoriti u punopravni pametni dom u oblaku.
Najpopularniji protokol za IP sustave videonadzora, koji sada podržavaju svi proizvođači IP kamera bez iznimke, je
$ wsdl2h -o onvif.h
https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl
https://www.onvif.org/ver10/events/wsdl/event.wsdl
https://www.onvif.org/ver10/media/wsdl/media.wsdl
https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl
$ soapcpp2 -Cwvbj -c++11 -d cpp_files/onvif -i onvif.h
Kao rezultat, dobivamo skup datoteka zaglavlja “*.h” i izvora “*.cpp” u C++, koje se mogu postaviti izravno u aplikaciju ili zasebnu biblioteku i kompajlirati pomoću GCC prevodioca. Zbog mnoštva funkcija kod je velik i zahtijeva dodatnu optimizaciju. Mikroračunalo Raspberry Pi 3 model B+ ima dovoljne performanse za izvršavanje ovog koda, no ako postoji potreba za prijenosom koda na drugu platformu, potrebno je odabrati ispravnu arhitekturu procesora i sistemske resurse.
IP kamere koje podržavaju ONVIF standard, kada rade na lokalnoj mreži, povezuju se u posebnu multicast grupu s adresom 239.255.255.250. Postoji protokol
Grafičko sučelje kontrolera pametne kuće implementira funkciju pretraživanja IP kamera u PHP-u, što je vrlo zgodno pri interakciji s web uslugama putem XML poruka. Prilikom odabira stavki izbornika Uređaji > IP kamere > Skeniranje Pokreće se algoritam za traženje IP kamera s prikazom rezultata u obliku tablice:
(kliknite na sliku da je otvorite u većoj rezoluciji)
Kada dodate kameru u kontroler, možete odrediti postavke prema kojima će ona komunicirati s oblakom. Također u ovoj fazi, automatski mu se dodjeljuje jedinstveni identifikator uređaja, po kojem se kasnije može lako identificirati unutar oblaka.
Zatim se generira poruka u JSON formatu koja sadrži sve parametre dodane kamere i šalje se serverskom procesu kontrolera pametne kuće putem RESTful API naredbe, gdje se parametri kamere dekodiraju i spremaju u internu SQLite bazu podataka, te se također se koristi za pokretanje sljedećih niti obrade:
- uspostavljanje RTSP veze za primanje video i audio tokova;
- transkodiranje zvuka iz G.711 mu-Law, G.711 A-Law, G.723 itd. formata. u AAC format;
- transkodiranje video tokova u H.264 formatu i zvuka u AAC formatu u FLV spremnik i prijenos u oblak putem RTMP protokola;
- uspostavljanje veze s krajnjom točkom detektora pokreta IP kamere putem ONVIF protokola i povremeno prozivanje iste;
- povremeno generiranje minijaturne slike za pregled i slanje u oblak putem MQTT protokola;
- lokalno snimanje video i audio streamova u obliku zasebnih datoteka u MP4 formatu na SD ili Flash karticu pametnog kućnog kontrolera.
Za uspostavljanje veze s kamerama, transkodiranje, obradu i snimanje video streamova u serverskom procesu koriste se funkcije iz biblioteke
U eksperimentu testiranja performansi, 3 kamere bile su spojene na upravljač:
- HiWatch DS-I114W (rezolucija - 720p, format kompresije - H.264, bitrate - 1 Mb/s, zvuk G.711 mu-Law);
- Microdigital MDC-M6290FTD-1 (rezolucija - 1080p, format kompresije - H.264, bitrate - 1 Mb/s, bez zvuka);
- Dahua DH-IPC-HDW4231EMP-AS-0360B (rezolucija - 1080p, format kompresije - H.264, bitrate - 1.5 Mb/s, AAC audio).
Sva tri streama bila su istovremeno izlazna u oblak, audio transkodiranje je izvršeno sa samo jedne kamere, a lokalno arhivsko snimanje je bilo onemogućeno. Opterećenje CPU-a bilo je približno 5%, upotreba RAM-a bila je 32 MB (po procesu), 56 MB (ukupno uključujući OS).
Tako se na kontroler pametne kuće može spojiti otprilike 20 - 30 kamera (ovisno o rezoluciji i bitrateu), što je dovoljno za sustav videonadzora trokatnice ili manjeg skladišta. Za zadatke koji zahtijevaju veće performanse, možete koristiti nettop s višejezgrenim Intelovim procesorom i Linux Debian Sarge OS-om. Kontroler je trenutno u probnom radu, a podaci o njegovom radu bit će ažurirani.
Interakcija s oblakom
Pametna kuća temeljena na oblaku pohranjuje korisničke podatke (video i senzorska mjerenja) u oblaku. O arhitekturi pohrane u oblaku detaljnije ćemo govoriti u sljedećem članku iz naše serije. Razgovarajmo sada o sučelju za prijenos informacijskih poruka s kontrolera pametne kuće u oblak.
Protokolom se prenose stanja povezanih uređaja i mjerenja senzora
- QoS 0 - maksimalno jednom (bez jamstva isporuke);
- QoS 1 - najmanje jednom (uz potvrdu isporuke);
- QoS 2 - točno jednom (uz dodatnu potvrdu isporuke).
U našem slučaju koristimo
Za prijenos poruka o statusu kontrolera pametne kuće koristi se mehanizam spremljenih poruka
MQTT klijent razvijen je na temelju implementacije knjižnice
H.264 + AAC streamovi medija šalju se u oblak putem RTMP protokola, gdje je klaster medijskih poslužitelja odgovoran za njihovu obradu i pohranu. Za optimalnu raspodjelu opterećenja u klasteru i odabir najmanje opterećenog medijskog poslužitelja, kontroler pametne kuće postavlja preliminarni zahtjev balanseru opterećenja u oblaku i tek nakon toga šalje medijski tok.
Zaključak
U članku je ispitana jedna specifična implementacija kontrolera za pametnu kuću temeljenog na mikroračunalu Raspberry Pi 3 B+, koji može primati, obrađivati informacije i upravljati opremom putem Z-Wave protokola, komunicirati s IP kamerama putem ONVIF protokola, te razmjenjivati podatke i naredbe s oblakom.servis putem MQTT i RTMP protokola. Proizvodni logički mehanizam razvijen je na temelju usporedbe logičkih pravila i činjenica prikazanih u JSON formatu.
Kontroler pametne kuće trenutno je u probnom radu na nekoliko lokacija u Moskvi i Moskovskoj regiji.
Sljedeća verzija kontrolera planira povezivanje drugih vrsta uređaja (RF, Bluetooth, WiFi, žičane). Radi praktičnosti korisnika, postupak povezivanja senzora i IP kamera bit će prebačen u mobilnu aplikaciju. Postoje i ideje za optimizaciju procesnog koda poslužitelja i prijenos softvera na operativni sustav
Izvor: www.habr.com