Tänapäeval on tänu mikroelektroonika, sidekanalite, Interneti-tehnoloogiate ja tehisintellekti kiirele arengule nutika kodu teema muutumas üha aktuaalsemaks. Inimeste kodu on pärast kiviajast läbi teinud olulisi muutusi ning tööstusrevolutsiooni 4.0 ja asjade interneti ajastul on see muutunud mugavaks, funktsionaalseks ja turvaliseks. Turule on tulemas lahendused, mis muudavad korteri või maamaja keerukateks infosüsteemideks, mida juhitakse kõikjalt maailmast nutitelefoni abil. Pealegi pole inimese ja masina suhtluseks enam programmeerimiskeelte tundmine vajalik – tänu kõnetuvastus- ja sünteesialgoritmidele räägib inimene nutikoduga oma emakeeles.
Mõned praegu turul olevad targa kodu süsteemid on loogiline edasiarendus pilvvideovalvesüsteemidest, mille arendajad on mõistnud vajadust tervikliku lahenduse järele mitte ainult jälgimiseks, vaid ka kaugobjektide haldamiseks.
Teie tähelepanu on oodatud kolmest artiklist koosnevale sarjale, mis räägib kõigist autori isiklikult välja töötatud ja kasutusele võetud pilve nutikodu süsteemi põhikomponentidest. Esimene artikkel on pühendatud targa kodu sisse paigaldatud terminalkliendi seadmetele, teine pilvesalvestus- ja andmetöötlussüsteemi arhitektuurist ning lõpuks kolmas kliendirakendusest süsteemi haldamiseks mobiilis. ja statsionaarsed seadmed.
Targa kodu varustus
Kõigepealt räägime sellest, kuidas teha tavalisest korterist, suvilast või suvilast nutikodu. Selleks on reeglina vaja eluruumi paigutada järgmised seadmed:
- väliskeskkonna erinevaid parameetreid mõõtvad andurid;
- Välistele objektidele mõjuvad ajamid;
- kontroller, mis teostab arvutusi vastavalt andurite mõõtmistele ja nende aluseks olevale loogikale ning annab täiturmehhanismidele käske.
Järgmisel joonisel on targa kodu skeem, mis sisaldab veelekke andureid (1) vannitoas, temperatuuri (2) ja valgustuse (3) andureid magamistoas, nutipistikupesa (4) köögis ja videovalvet. kaamera (5) koridoris.
Praegu on laialdaselt kasutusel RF433, Z-Wave, ZigBee, Bluetooth ja WiFi protokollidel töötavad juhtmevabad andurid. Nende peamised eelised on paigaldamise ja kasutamise lihtsus, samuti madal hind ja töökindlus. tootjad püüavad tuua oma seadmed massiturule ja teha need tavakasutajale kättesaadavaks.
Andurid ja täiturmehhanismid on reeglina ühendatud juhtmevaba liidese kaudu nutika kodu kontrolleriga (6) - spetsiaalse mikroarvutiga, mis ühendab kõik need seadmed ühte võrku ja juhib neid.
Mõned lahendused võivad aga kombineerida anduri, täiturmehhanismi ja kontrolleri korraga. Näiteks saab nutipistiku programmeerida graafiku alusel sisse või välja lülituma ning pilvevideovalvekaamera saab salvestada videot liikumisanduri signaalile. Lihtsaimatel juhtudel saate ilma eraldi kontrollerita hakkama, kuid paljude stsenaariumitega paindliku süsteemi loomiseks on see vajalik.
Nutika kodu kontrolleri ühendamiseks ülemaailmsesse võrku saab kasutada tavalist Interneti-ruuterit (7), millest on ammu saanud tuttav kodumasin igas kodus. Targa kodu kontrolleri kasuks on veel üks argument – kui internetiühendus katkeb, siis tänu kontrolleri sisse salvestatud loogikaplokile, mitte pilveteenusesse, töötab tark kodu normaalselt edasi.
nutika kodu kontroller
Selles artiklis käsitletav pilve nutika kodu süsteemi kontroller on välja töötatud ühe plaadiga mikroarvuti baasil
Kontrolleri kokkupanek on väga lihtne - mikroarvuti (1) paigaldatakse plastikust korpusesse (2), seejärel paigaldatakse 8 GB microSD mälukaart koos tarkvaraga (3) ja USB Z-Wave võrgukontroller (4). vastavad pesad. Nutika kodu kontroller on ühendatud vooluvõrku 5V, 2.1A toiteadapteri (5) ja USB-mikro-USB kaabli (6) kaudu. Igal kontrolleril on kordumatu identifitseerimisnumber, mis kirjutatakse konfiguratsioonifaili esimesel käivitamisel ja mis on vajalik pilve nutikodu teenustega suhtlemiseks.
Nutika kodu kontrolleri tarkvara töötas selle artikli autor välja operatsioonisüsteemi põhjal Linux Raspbian Stretch. See koosneb järgmistest peamistest alamsüsteemidest:
- serveriprotsess nutikodu seadmete ja pilvega suhtlemiseks;
- graafiline kasutajaliides kontrolleri konfiguratsiooni ja tööparameetrite seadistamiseks;
- andmebaas kontrolleri konfiguratsiooni salvestamiseks.
Andmebaas nutika kodu kontroller on rakendatud manustatud DBMS-i alusel
Graafiline liides nutika kodu kontroller on välja töötatud PHP 7-s, kasutades mikroraamistikku
(suurema eraldusvõimega avamiseks klõpsake pildil)
GUI põhifunktsioon on nutika kodu seadmete (IP-kaamerad ja andurid) ühendamine kontrolleriga. Veebirakendus loeb SQLite andmebaasist kontrolleri ja sellega ühendatud seadmete konfiguratsiooni ja hetkeseisu. Kontrolleri konfiguratsiooni muutmiseks saadab see JSON-vormingus juhtkäsud serveriprotsessi RESTful API kaudu.
Serveri protsess
Serveri protsess - võtmekomponent, mis teeb kogu põhitööd targa kodu aluseks olevate infoprotsesside automatiseerimisel: sensoorsete andmete vastuvõtmine ja töötlemine, juhttoimingute väljastamine sõltuvalt aluseks olevast loogikast. Serveriprotsessi eesmärk on suhelda nutikodu seadmetega, täita tootmisloogika reegleid, vastu võtta ja töödelda käske graafilisest liidesest ja pilvest. Serveriprotsess vaadeldavas targa kodu kontrolleris on rakendatud mitme lõimega rakendusena, mis on arendatud C ++ keeles ja käivitatakse eraldi teenusena systemd operatsioonisüsteem Linux Raspbian.
Serveriprotsessi peamised plokid on järgmised:
- Sõnumihaldur;
- IP-kaamera server;
- Z-Wave seadme server;
- Tootmisloogiliste reeglite server;
- Kontrolleri konfiguratsiooni andmebaas ja loogiliste reeglite plokk;
- RESTful API server graafilise liidesega suhtlemiseks;
- MQTT klient pilvega suhtlemiseks.
Serveri protsessiplokid on realiseeritud eraldi voogudena, mille vahel edastatakse teave JSON-vormingus sõnumite kujul (või seda vormingut esindavate andmestruktuuride kujul protsessimälus).
Serveriprotsessi põhikomponent on sõnumihaldur, mis suunab JSON-sõnumid serveriprotsessi kõikidesse plokkidesse. JSON-sõnumi teabeväljade tüübid ja väärtused, mida need võivad võtta, on loetletud tabelis:
seadme tüüp
protokoll
sõnumi tüüp
seadme olek
käsk
kaamera
onvif
sensorData
on
voogesitus (sees/väljas)
andur
zwave
käsk
maha
salvestamine (sees/väljas)
efektor
mqtt
BusinessLogicRule
voogesitus (sees/väljas)
seade (lisa/eemalda)
äriloogika
konfiguratsiooniandmed
salvestamine (sees/väljas)
Bluetooth
seadme olek
viga
wifi
rf
Näiteks näeb kaamera liikumisanduri teade välja selline:
{
"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"
}
Tootmisloogika
Dispetšerilt sõnumi vastuvõtmiseks või saatmiseks tellib serveri protsessiplokk teatud tüüpi sõnumid. Tellimus on seda tüüpi tootmise loogiline reegel "Kui siis...", mis on esindatud JSON-vormingus, ja link sõnumitöötlejale serveri protsessiplokis. Näiteks selleks, et IP-kaamera server saaks GUI-lt ja pilvest käske, peate lisama järgmise reegli:
{
"if": {
"and": [{
"equal": {
"deviceId": "1616453d-30cd-44b7-9bf0-************"
}
},
{
"equal": {
"messageType": "command"
}
}
]
},
"then": {
"result": "true"
}
}
Kui punktis nimetatud tingimused eelnev (vasakpoolsed) reeglid on siis tõesed tagajärg (parempoolsed) reeglid ja töötleja saab juurdepääsu JSON-sõnumi sisule. Eelkäija toetab loogilisi operaatoreid, mis võrdlevad JSON-i võtme-väärtuste paare:
- on võrdne "võrdne";
- ei ole võrdne "mitte_võrdne";
- vähem kui "vähem";
- rohkem "suurem";
- väiksem kui "vähem_või_võrdne" või sellega võrdne;
- suurem kui "suurem_või_võrdne" või sellega võrdne.
Võrdluse tulemusi saab omavahel ühendada Boole'i algebra operaatorite abil:
- Ja "ja";
- VÕI "või";
- EI "mitte".
Seega, kirjutades operaatoreid ja operande poola noodikirjas, saab moodustada üsna keerukaid tingimusi suure hulga parameetritega.
Täpselt sama mehhanismi, mis põhineb JSON-sõnumitel ja JSON-vormingus tootmisreeglitel, kasutatakse tootmisloogika serveriplokis teadmiste esitamiseks ja järelduste tegemiseks nutika kodu andurite andurite andmete põhjal.
Kasutaja koostab mobiilirakenduse abil stsenaariumid, mille järgi tark kodu peaks toimima. Näiteks: "Kui välisukse avamise andur rakendub, lülitage koridoris valgus sisse". Rakendus loeb andmebaasist välja andurite (avamisandur) ja täiturite (nutipesa või nutilamp) identifikaatorid ning genereerib JSON formaadis loogilise reegli, mis saadetakse targa kodu kontrollerile. Sellest mehhanismist tuleb lähemalt juttu meie tsükli kolmandas artiklis, kus räägime targa kodu haldamise kliendirakendusest.
Eespool käsitletud tootmisloogika mehhanismi rakendatakse raamatukogu abil
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);
}
}
}
see on pFact - struktuur, mis sisaldab JSON-sõnumi võtme-väärtuse paare, m_Reeglid — tootmisreeglite stringi massiiv. Sissetuleva sõnumi ja tootmisreegli sobitamine toimub funktsioonis reader.Parse(ruleStream, ruleHandler)Kus reegliHandler on objekt, mis sisaldab tõeväärtuste ja võrdlusoperaatorite loogikat. sRuleId - unikaalne reegliidentifikaator, tänu millele on võimalik reegleid salvestada ja redigeerida targa kodu kontrolleri andmebaasis. m_pActions - massiiv järelduste tulemustega: JSON-sõnumid, mis sisaldavad reeglibaasist tulenevaid tagajärgi ja saadetakse edasi sõnumihaldurisse, et abonendi lõimed saaksid neid töödelda.
RapidJSONi jõudlus on funktsiooniga võrreldav strlen()ja minimaalsed süsteemiressursinõuded võimaldavad seda teeki kasutada manustatud seadmetes. Sõnumite ja loogiliste reeglite kasutamine JSON-vormingus võimaldab teil rakendada paindlikku teabevahetussüsteemi nutika kodu kontrolleri kõigi komponentide vahel.
Andurid ja ajamid Z-Wave
Targa kodu peamiseks eeliseks on see, et see suudab iseseisvalt mõõta erinevaid väliskeskkonna parameetreid ja täita olenevalt olukorrast kasulikke funktsioone. Selleks ühendatakse targa kodu kontrolleriga andurid ja ajamid. Praeguses versioonis on need traadita seadmed, mis töötavad protokolli alusel
Tänapäeval on turul üsna palju erinevaid Z-Wave seadmeid. Näiteks kaaluge mõnda:
- Nutipesaga Zipato PAN16 saab mõõta järgmisi parameetreid: elektrikulu (kWh), võimsus (W), pinge (V) ja voolutugevus (A) võrgus. Sellel on ka sisseehitatud lüliti, millega saate ühendatud elektriseadet juhtida;
- Lekkeandur Neo Coolcam tuvastab mahaloksunud vedeliku olemasolu, sulgedes kaugsondi kontaktid;
- Zipato PH-PSG01 suitsuandur käivitub, kui suitsuosakesed sisenevad gaasianalüsaatori kambrisse;
- Neo Coolcam liikumisandur analüüsib inimkeha infrapunakiirgust. Lisaks on valgusandur (Lx);
- Multisensor Philio PST02-A mõõdab temperatuuri (°C), valgustust (%), ukse avanemist, inimese viibimist ruumis;
- Võrgukontroller Z-Wave USB Stick ZME E UZB1, mille külge on ühendatud andurid.
On väga oluline, et seadmed ja kontroller töötaksid samal sagedusel, vastasel juhul ei näe nad ühenduse ajal üksteist lihtsal viisil. Ühe Z-Wave võrgukontrolleri külge saab ühendada kuni 232 seadet, mis on korteri või maamaja jaoks täiesti piisav. Siseruumides võrgu leviala laiendamiseks saab signaali repiiterina kasutada nutipesa.
Eelmises lõigus käsitletud nutika kodu kontrolleri serveri protsessis vastutab Z-Wave'i server Z-Wave'i seadmetega suhtlemise eest. Anduritelt teabe saamiseks kasutab see raamatukogu
{
"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"
}
Seejärel saadetakse see serveriprotsessi sõnumihaldurisse, et abonendi lõimed saaksid selle vastu võtta. Peamine tellija on tootmisloogikaserver, mis ühtib loogikareeglite eelmistes sõnumivälja väärtustega. Juhtkäske sisaldavad järeldustulemused saadetakse tagasi sõnumihaldurisse ja sealt edasi Z-Wave serverisse, mis need dekodeerib ja saadab Z-Wave võrgu USB-kontrollerile. Seejärel satuvad nad täitevseadmesse, mis muudab objektide olekut väliskeskkonnas ja tark kodu teeb seega kasulikku tööd.
(suurema eraldusvõimega avamiseks klõpsake pildil)
Z-Wave seadmete ühendamine toimub targa kodu kontrolleri graafilises liideses. Selleks minge seadmete loendiga lehele ja klõpsake nuppu "Lisa". Lisakäsk RESTful API liidese kaudu siseneb serveri protsessi ja seejärel saadab sõnumihaldur selle Z-Wave serverisse, mis seab Z-Wave USB võrgukontrolleri seadmete lisamiseks spetsiaalsesse režiimi. Järgmisena peate Z-Wave seadmel tegema hooldusnupule mitu kiirvajutust (3 vajutust 1,5 sekundi jooksul). USB-kontroller ühendab seadme võrku ja saadab selle kohta info Z-Wave serverisse. See omakorda loob SQLite'i andmebaasis uue kirje koos uue seadme parameetritega. Graafiline liides naaseb pärast määratud ajavahemikku Z-Wave'i seadmete loendi lehele, loeb teavet andmebaasist ja kuvab loendis uue seadme. Samas saab iga seade oma kordumatu identifikaatori, mida kasutatakse tootmise järeldamise reeglites ja pilves töötamisel. Selle algoritmi toimimine on näidatud UML diagrammil:
(suurema eraldusvõimega avamiseks klõpsake pildil)
IP-kaamerate ühendamine
Käesolevas artiklis käsitletav pilve nutikodu süsteem on samuti autori poolt välja töötatud pilvevideovalvesüsteemi uuendus, mis on olnud turul juba mitu aastat ja millel on Venemaal palju installatsioone.
Pilvevideovalvesüsteemide puhul on üheks teravaks probleemiks piiratud seadmete valik, millega saab integreerida. Pilvega ühenduse loomise eest vastutav tarkvara on installitud videokaamera sisse, mis seab selle riistvaralisele täidisele - protsessorile ja vaba mälu hulgale - kohe tõsised nõuded. See seletab peamiselt pilvevalvekaamerate kõrgemat hinda võrreldes tavaliste IP-kaameratega. Lisaks on kaamera failisüsteemile ja kõikidele vajalikele arendusvahenditele ligipääsemiseks vajalik pikk läbirääkimiste etapp CCTV kaamerafirmadega.
Teisest küljest on kõigil kaasaegsetel IP-kaameratel standardprotokollid muude seadmetega (eriti videosalvestitega) suhtlemiseks. Seega annab standardprotokolli kaudu ühenduse loova ja IP-kaameratest videovooge pilve edastava eraldi kontrolleri kasutamine pilvevideovalvesüsteemidele märkimisväärse konkurentsieelise. Veelgi enam, kui klient on juba installinud lihtsatel IP-kaameratel põhineva videovalvesüsteemi, on võimalik seda laiendada ja muuta see täisväärtuslikuks pilve nutikaks koduks.
Kõige populaarsem IP-videovalvesüsteemide protokoll, mida toetavad nüüd eranditult kõik IP-kaamerate tootjad, on
$ 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
Selle tulemusena saame C ++ keeles päise "*.h" ja lähtefailide "*.cpp" komplekti, mille saab paigutada otse rakendusse või eraldi teeki ja kompileerida GCC kompilaatori abil. Tänu paljudele funktsioonidele on kood suur ja vajab täiendavat optimeerimist. Raspberry Pi 3 mudel B+ mikroarvutil on selle koodi täitmiseks piisavalt jõudlust, kuid juhul, kui tekib vajadus koodi portimiseks teisele platvormile, on vaja valida õige protsessori arhitektuur ja süsteemiressursid.
ONVIF-standardit toetavad IP-kaamerad on kohalikus võrgus töötades ühendatud spetsiaalse multisaaterühmaga, millel on aadress 239.255.255.250. Protokoll on olemas
Targa kodu kontrolleri graafilises liideses on realiseeritud PHP-keeles IP-kaamerate otsimise funktsioon, mis on väga mugav XML-sõnumite kaudu veebiteenustega suhtlemisel. Menüüelementide valimisel Seadmed > IP-kaamerad > Skannimine käivitatakse IP-kaamerate otsimise algoritm, mis kuvab tulemuse tabeli kujul:
(suurema eraldusvõimega avamiseks klõpsake pildil)
Kaamerat kontrollerile lisades saab määrata seaded, mille järgi see pilvega suhtlema hakkab. Ka selles etapis määratakse sellele automaatselt unikaalne seadme identifikaator, mille järgi saab seda edaspidi pilves hõlpsalt tuvastada.
Järgmisena genereeritakse JSON-vormingus teade, mis sisaldab kõiki lisatud kaamera parameetreid ja saadetakse RESTful API käsu kaudu targa kodu kontrolleri serveriprotsessi, kus kaamera parameetrid dekodeeritakse ja salvestatakse sisemisse SQLite andmebaasi ning kasutatakse ka järgmiste töötlemislõimede käivitamiseks:
- RTSP-ühenduse loomine video- ja helivoogude vastuvõtmiseks;
- heli ümberkodeerimine G.711 mu-Law, G.711 A-Law, G.723 jne. AAC-vormingusse;
- H.264-vormingus videovoogude ja AAC-vormingus heli ümberkodeerimine FLV-konteinerisse ja pilve edastamine RTMP-protokolli kaudu;
- IP-kaamera liikumisanduri lõpp-punktiga ühenduse loomine ONVIF-protokolli abil ja selle perioodiline pollimine;
- perioodiliselt pisipildi eelvaate pildi (eelvaate) genereerimine ja MQTT protokolli abil pilve saatmine;
- video- ja helivoogude lokaalne salvestamine eraldi failidena MP4-vormingus nutika kodu kontrolleri SD- või Flash-kaardile.
Kaameratega ühenduse loomiseks, serveriprotsessis videovoogude ümberkodeerimiseks, töötlemiseks ja salvestamiseks kasutatakse raamatukogu funktsioone
Jõudluse testimise katses ühendati kontrolleriga 3 kaamerat:
- HiWatch DS-I114W (eraldusvõime - 720p, tihendusvorming - H.264, bitikiirus - 1 Mb / s, heli G.711 mu-Law);
- Mikrodigitaalne MDC-M6290FTD-1 (eraldusvõime - 1080p, tihendusvorming - H.264, bitikiirus - 1 Mb / s, heli puudub);
- Dahua DH-IPC-HDW4231EMP-AS-0360B (eraldusvõime - 1080p, tihendusvorming - H.264, bitikiirus - 1.5 Mb/s, AAC heli).
Kõik kolm voogu väljastati samaaegselt pilve, heli transkodeeriti ainult ühest kaamerast ja kohaliku arhiivi salvestamine keelati. Protsessori koormus oli umbes 5%, RAM-i kasutus oli 32 MB (protsessi kohta), 56 MB (kokku OS-iga).
Nii saab targa kodu kontrolleriga ühendada umbes 20-30 kaamerat (olenevalt resolutsioonist ja bitikiirusest), millest piisab kolmekorruselise suvila või väikese lao videovalvesüsteemi jaoks. Ülesannetes, kus on vaja suurt jõudlust, saate kasutada mitmetuumalise Inteli protsessori ja Linux Debian Sarge'iga nettopi. Praegu on kontrolleril proovitöö ning andmed selle töö toimimise kohta täpsustuvad.
Suhtlemine pilvega
Pilvetark kodu salvestab kasutajaandmed (video- ja andurite mõõtmised) pilve. Pilvesalvestuse arhitektuurist räägitakse üksikasjalikumalt meie sarja järgmises artiklis. Nüüd räägime liidesest infosõnumite edastamiseks targa kodu kontrollerist pilve.
Protokolli kaudu edastatakse ühendatud seadmete olekud ja andurite mõõtmised
- QoS 0 - maksimaalselt üks kord (tarne garantii puudub);
- QoS 1 - vähemalt üks kord (koos kohaletoimetamise kinnitusega);
- QoS 2 - täpselt üks kord (täiendava kohaletoimetamise kinnitusega).
Meie puhul on MQTT maakler
Targa kodu kontrolleri oleku kohta teadete saatmiseks kasutatakse salvestatud sõnumite mehhanismi.
MQTT klient töötati välja raamatukogu juurutamise põhjal
H.264 + AAC meediavood saadetakse RTMP-protokolli kaudu pilve, kus meediumiserverite klaster vastutab nende töötlemise ja salvestamise eest. Koormuse optimaalseks jaotamiseks klastris ja kõige vähem koormatud meediumiserveri valimiseks teeb nutikodu kontroller eelpäringu pilvekoormuse tasakaalustajale ja saadab alles seejärel meediavoo.
Järeldus
Artiklis käsitleti üht konkreetset Raspberry Pi 3 B+ mikroarvutil põhineva nutika kodu kontrolleri teostust, mis suudab vastu võtta, töödelda teavet ja juhtida Z-Wave protokolli kasutavaid seadmeid, suhelda ONVIF-protokolli kasutades IP-kaameratega ning vahetada andmeid ja käske pilveteenusega MQTT ja RTMP protokollide kaudu. Tootmisloogikamootor on välja töötatud JSON-vormingus esitatud loogiliste reeglite ja faktide võrdluse põhjal.
Nüüd on targa kodu kontroller proovitöös mitmes Moskva ja Moskva piirkonna rajatises.
Kontrolleri järgmises versioonis on plaanis ühendada muud tüüpi seadmeid (RF, Bluetooth, WiFi, juhtmega). Kasutajate mugavuse huvides viiakse andurite ja IP-kaamerate ühendamise protseduur üle mobiilirakendusse. Ideid on ka serveri protsessikoodi optimeerimiseks ja tarkvara portimiseks operatsioonisüsteemi
Allikas: www.habr.com