Manapság a mikroelektronika, a kommunikációs csatornák, az internetes technológiák és a mesterséges intelligencia rohamos fejlődésének köszönhetően az okosotthonok témája egyre aktuálisabb. Az emberi lakhatás a kőkorszak óta jelentős változásokon ment keresztül, és az ipari forradalom 4.0 és a tárgyak internete korszakában kényelmessé, működőképessé és biztonságossá vált. Olyan megoldások érkeznek a piacra, amelyek egy lakást vagy egy vidéki házat komplex információs rendszerré varázsolnak, amelyet a világ bármely pontjáról okostelefonnal vezérelnek. Ráadásul az ember-gép interakcióhoz már nincs szükség programozási nyelvek ismeretére – a beszédfelismerési és szintézis algoritmusoknak köszönhetően az ember anyanyelvén beszél egy okosotthonhoz.
A jelenleg piacon lévő okosotthon-rendszerek egy része logikus továbbfejlesztése a felhőalapú videófelügyeleti rendszereknek, amelyek fejlesztői felismerték, hogy nem csak a megfigyelésre, hanem a távoli objektumok kezelésére is átfogó megoldásra van szükség.
Egy három cikkből álló sorozatot mutatunk be, amely a szerző által személyesen kifejlesztett és üzembe helyezett felhőalapú intelligens otthoni rendszer összes fő összetevőjét ismerteti. Az első cikk az okosotthonba telepített terminál kliens berendezéssel foglalkozik, a második a felhőtároló és adatfeldolgozó rendszer architektúrájával, végül a harmadik a rendszert mobil és helyhez kötött eszközökön kezelő kliens alkalmazással.
Intelligens otthoni felszerelés
Először is beszéljünk arról, hogyan készítsünk intelligens otthont egy közönséges lakásból, dachából vagy nyaralóból. Ehhez általában a következő berendezéseket kell elhelyezni az otthonban:
- érzékelők, amelyek különféle környezeti paramétereket mérnek;
- Külső tárgyakra ható működtetők;
- egy vezérlő, amely az érzékelő méréseinek és a beágyazott logikának megfelelően számításokat végez, és parancsokat ad ki az aktuátoroknak.
Az alábbi ábrán egy okosotthon diagramja látható, amelyen a fürdőszobában vízszivárgást (1), a hálószobában a hőmérsékletet (2) és a világítást (3), a konyhában okos aljzatot (4) és a videó megfigyelő kamera (5) a folyosón.
Jelenleg széles körben használják az RF433, Z-Wave, ZigBee, Bluetooth és WiFi protokollokat használó vezeték nélküli érzékelőket. Fő előnyük a könnyű telepítés és használat, valamint az alacsony költség és a megbízhatóság, mert A gyártók arra törekednek, hogy eszközeiket a tömegpiacra vigyék, és az átlagfelhasználók számára is elérhetővé tegyék.
Az érzékelők és aktuátorok általában vezeték nélküli interfészen keresztül csatlakoznak egy intelligens otthoni vezérlőhöz (6) - egy speciális mikroszámítógéphez, amely ezeket az eszközöket egyetlen hálózatba egyesíti és vezérli.
Egyes megoldások azonban kombinálhatnak egy érzékelőt, egy aktuátort és egy vezérlőt egyidejűleg. Például egy intelligens csatlakozó programozható úgy, hogy ütemezetten be- vagy kikapcsoljon, a felhős videó megfigyelő kamera pedig mozgásérzékelő jele alapján tud videót rögzíteni. A legegyszerűbb esetekben külön vezérlő nélkül is megoldható, de egy rugalmas rendszer létrehozásához sok forgatókönyvvel ez szükséges.
Az intelligens otthoni vezérlő globális hálózathoz történő csatlakoztatásához egy szokásos internetes router (7) használható, amely már régóta minden otthon általános háztartási készülékévé vált. Itt van még egy érv az intelligens otthoni vezérlő mellett - ha megszakad az internetkapcsolat, az intelligens otthon a vezérlőben tárolt logikai blokknak köszönhetően továbbra is a megszokott módon fog működni, és nem a felhőszolgáltatásban.
Intelligens otthoni vezérlő
A cikkben tárgyalt felhőalapú intelligens otthoni rendszer vezérlője egylapos mikroszámítógépre épül
A vezérlő összeszerelése nagyon egyszerű - a mikroszámítógépet (1) egy műanyag házba (2), majd egy 8 GB-os microSD formátumú memóriakártyát szoftverrel (3) és egy USB Z-Wave hálózati vezérlőt (4) helyeznek be. a megfelelő nyílásokat. Az intelligens otthoni vezérlő egy 5 V-os, 2.1 A-es hálózati adapteren (5) és egy USB - micro-USB kábelen (6) keresztül csatlakozik a tápegységhez. Minden vezérlő egyedi azonosítószámmal rendelkezik, amely az első indításkor be van írva a konfigurációs fájlba, és szükséges az okosotthon felhőszolgáltatásaival való interakcióhoz.
Az intelligens otthonvezérlő szoftvert a cikk szerzője fejlesztette ki az operációs rendszer alapján Linux Raspbian Stretch. A következő fő alrendszerekből áll:
- szerverfolyamat az intelligens otthoni berendezésekkel és a felhővel való interakcióhoz;
- grafikus felhasználói felület a vezérlő konfigurációjának és működési paramétereinek beállításához;
- adatbázis a vezérlő konfigurációjának tárolására.
Adatbázis Az intelligens otthoni vezérlő egy beágyazott DBMS-en alapul
Grafikus felület intelligens otthoni vezérlő, amelyet PHP 7-ben fejlesztettek ki mikrokeretrendszer segítségével
(kattintson a képre a nagyobb felbontású megnyitáshoz)
A grafikus interfész fő funkciója az okosotthon berendezések (IP megfigyelő kamerák és érzékelők) vezérlőhöz való csatlakoztatása. A webalkalmazás az SQLite adatbázisból olvassa be a vezérlő és a hozzá kapcsolódó eszközök konfigurációját és aktuális állapotát. A vezérlő konfigurációjának megváltoztatásához a vezérlőparancsokat JSON formátumban küldi el a kiszolgálófolyamat RESTful API felületén keresztül.
Szerver folyamat
Szerver folyamat - kulcsfontosságú komponens, amely elvégzi az okosotthon alapját képező információs folyamatok automatizálásának minden fő munkáját: szenzoros adatok fogadását és feldolgozását, vezérlő műveletek kiadását a beágyazott logikától függően. A szerverfolyamat célja az intelligens otthoni berendezésekkel való interakció, termelési logikai szabályok végrehajtása, parancsok fogadása és feldolgozása a grafikus felületről és a felhőből. A szóban forgó intelligens otthon vezérlőben a szerverfolyamat egy többszálas alkalmazásként valósul meg, C++ nyelven fejlesztették és külön szolgáltatásként indultak el. systemd operációs rendszer Linux Raspbian.
A szerverfolyamat fő blokkjai a következők:
- Üzenetkezelő;
- IP kamera szerver;
- Z-Wave eszközszerver;
- Termelési logikai szabályok szervere;
- A vezérlő konfigurációs adatbázisa és a logikai szabályok blokkja;
- RESTful API szerver a grafikus felülettel való interakcióhoz;
- MQTT kliens a felhővel való interakcióhoz.
A szerver folyamatblokkjai külön szálakként valósulnak meg, amelyek között az információ JSON formátumú üzenetek formájában (vagy a folyamatmemóriában ezt a formátumot reprezentáló adatszerkezetek formájában) továbbítja.
A szerverfolyamat fő összetevője az üzenetkezelő, amely a JSON-üzeneteket az összes kiszolgáló folyamatblokkjához irányítja. A JSON-üzenetinformációs mezők típusait és az általuk elfogadható értékeket a táblázat tartalmazza:
eszköztípus
protokoll
üzenetTípus
deviceState
parancs
szoba
onvif
sensorData
on
streaming (be/ki)
érzékelő
zwave
parancs
kedvezmény
felvétel (be/ki)
effektor
mqtt
businessLogicRule
streaming (be/ki)
evice (Hozzáadás/eltávolítás)
üzleti logika
konfigurációs adatok
felvétel (be/ki)
Bluetooth
deviceState
hiba
wifi
rf
Például egy kamera mozgásérzékelő üzenete így néz ki:
{
"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"
}
Termelési logika
A diszpécsertől üzenet fogadásához vagy küldéséhez a kiszolgáló folyamatblokkja előfizet bizonyos típusú üzenetekre. Az előfizetés egy ilyen típusú termelési logikai szabály "Ha akkor...", JSON formátumban jelenik meg, és egy hivatkozás az üzenetkezelőre a kiszolgáló folyamatblokkjában. Például ahhoz, hogy az IP-kameraszerver parancsokat fogadhasson a grafikus felhasználói felületről és a felhőből, hozzá kell adnia a következő szabályt:
{
"if": {
"and": [{
"equal": {
"deviceId": "1616453d-30cd-44b7-9bf0-************"
}
},
{
"equal": {
"messageType": "command"
}
}
]
},
"then": {
"result": "true"
}
}
pontjában meghatározott feltételek esetén előzmény (bal oldal) a szabályok igazak, akkor teljesül következetes (jobb oldali) szabályokat, és a kezelő hozzáfér a JSON-üzenet törzséhez. Az előzmény támogatja a JSON kulcs-érték párokat összehasonlító logikai operátorokat:
- egyenlő "egyenlő";
- nem egyenlő a "nem_egyenlő"-vel;
- kevesebb „kevesebb”;
- "nagyobb";
- kisebb vagy egyenlő, mint "kevesebb_vagy_egyenlő";
- nagyobb vagy egyenlő, mint "nagyobb_vagy egyenlő".
Az összehasonlítási eredmények Boole-algebrai operátorok segítségével hozhatók kapcsolatba egymással:
- Ésés"
- Vagy vagy";
- Nem nem".
Így az operátorok és operandusok lengyel jelöléssel történő írásával meglehetősen összetett feltételeket hozhatunk létre nagyszámú paraméterrel.
Pontosan ugyanezt a JSON-üzeneteken és JSON-formátumú termelési szabályokon alapuló mechanizmust használják az éles logikai szerver blokkban a tudás megjelenítésére és az intelligens otthon érzékelőiből származó szenzoros adatok felhasználásával logikai következtetések levonására.
Egy mobilalkalmazás segítségével a felhasználó forgatókönyveket készít, amelyek szerint az okosotthonnak működnie kell. Például: "Ha a bejárati ajtó nyitására szolgáló érzékelő működésbe lép, kapcsolja be a lámpát a folyosón". Az alkalmazás beolvassa az érzékelők (nyitásérzékelő) és működtetők (okos aljzat vagy intelligens lámpa) azonosítóit az adatbázisból, és létrehoz egy logikai szabályt JSON formátumban, amelyet elküld az intelligens otthon vezérlőjének. Erről a mechanizmusról sorozatunk harmadik cikkében lesz szó részletesebben, ahol az okosotthon kezeléséhez szükséges kliens alkalmazásról lesz szó.
A fent tárgyalt termelési logikai mechanizmus a könyvtár segítségével valósul meg
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);
}
}
}
Itt pFact — egy JSON-üzenetből származó kulcs-érték párokat tartalmazó struktúra, m_Rules — termelési szabályok karakterlánc-tömbje. A bejövő üzenet és a termelési szabály összehasonlítása a függvényben történik Reader.Parse(ruleStream, ruleHandler)Ahol ruleHandler a logikai és összehasonlító operátorok logikáját tartalmazó objektum. sRuleId — Egyedi szabályazonosító, melynek köszönhetően az intelligens otthon vezérlő adatbázisában tárolhatók és szerkeszthetők a szabályok. m_pActions — egy tömb a logikai következtetések eredményeivel: JSON-üzenetek, amelyek a szabálybázis következményeit tartalmazzák, és továbbküldik az üzenetkezelőnek, hogy az előfizetői szálak feldolgozhassák azokat.
A RapidJSON teljesítménye összehasonlítható a funkcióval strlen(), és a minimális rendszererőforrás-követelmények lehetővé teszik a könyvtár használatát beágyazott eszközökön. A JSON formátumú üzenetek és logikai szabályok használata lehetővé teszi az intelligens otthoni vezérlő összes összetevője közötti rugalmas információcsere-rendszer megvalósítását.
Z-Wave érzékelők és működtetők
Az okosotthon fő előnye, hogy önállóan képes mérni a külső környezet különböző paramétereit, és a helyzettől függően hasznos funkciókat lát el. Ehhez érzékelőket és aktuátorokat kell csatlakoztatni az okosotthon vezérlőhöz. A jelenlegi verzióban ezek a protokollt használó vezeték nélküli eszközök
Ma már meglehetősen sok különböző Z-Wave készüléket találhat a piacon. Nézzünk néhány példát:
- A Zipato PAN16 intelligens aljzat a következő paramétereket tudja mérni: villamosenergia-fogyasztás (kWh), teljesítmény (W), feszültség (V) és áram (A) az elektromos hálózatban. Beépített kapcsolóval is rendelkezik, amellyel a csatlakoztatott elektromos készüléket vezérelheti;
- A Neo Coolcam szivárgásérzékelő a távoli szonda érintkezőinek lezárásával érzékeli a kiömlött folyadék jelenlétét;
- A Zipato PH-PSG01 füstérzékelő akkor aktiválódik, amikor füstrészecskék belépnek a gázelemző kamrájába;
- A Neo Coolcam mozgásérzékelő elemzi az emberi test infravörös sugárzását. Ezen kívül van egy fényérzékelő (Lx);
- Multiszenzor Philio PST02-A méri a hőmérsékletet (°C), a fényt (%), az ajtónyitást, egy személy jelenlétét a szobában;
- Z-Wave USB Stick ZME E UZB1 hálózati vezérlő, amelyhez érzékelők csatlakoznak.
Nagyon fontos, hogy az eszközök és a vezérlő azonos frekvencián működjenek, különben egyszerűen nem látják egymást a csatlakozás pillanatában. Egy Z-Wave hálózati vezérlőhöz akár 232 eszköz csatlakoztatható, ami elég egy lakáshoz vagy egy vidéki házhoz. A hálózati lefedettség beltéri bővítéséhez egy intelligens aljzat használható jelismétlőként.
Az előző bekezdésben tárgyalt intelligens otthonvezérlő szerver folyamatban a Z-Wave szerver felelős a Z-Wave eszközökkel való interakcióért. Egy könyvtárat használ az érzékelőktől származó információk fogadására
{
"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"
}
Ezt követően a kiszolgáló folyamat üzenetkezelőjébe továbbítják, hogy az előfizetői szálak fogadhassák. A fő előfizető a termelési logikai szerver, amely megegyezik a logikai szabályok előzményeiben szereplő üzenetmező értékekkel. A vezérlőparancsokat tartalmazó következtetési eredmények visszakerülnek az üzenetkezelőbe, és onnan a Z-Wave szerverre kerülnek, amely dekódolja és elküldi a Z-Wave hálózati USB vezérlőnek. Ezután belépnek az aktuátorba, amely megváltoztatja a környezeti objektumok állapotát, és az okosotthon így hasznos munkát végez.
(kattintson a képre a nagyobb felbontású megnyitáshoz)
A Z-Wave eszközök csatlakoztatása az okosotthon vezérlő grafikus felületén történik. Ehhez lépjen az eszközök listáját tartalmazó oldalra, és kattintson a „Hozzáadás” gombra. Az add parancs a RESTful API interfészen keresztül belép a szerver folyamatba, majd az üzenetkezelő elküldi a Z-Wave szervernek, amely a Z-Wave hálózati USB vezérlőt speciális módba helyezi az eszközök hozzáadásához. Ezután a Z-Wave készüléken gyorsan meg kell nyomnia a szerviz gombot (3 megnyomás 1,5 másodpercen belül). Az USB vezérlő csatlakoztatja az eszközt a hálózathoz, és információkat küld róla a Z-Wave szervernek. Ez viszont egy új bejegyzést hoz létre az SQLite adatbázisban az új eszköz paramétereivel. Egy meghatározott időintervallum elteltével a grafikus felület visszatér a Z-Wave eszközlista oldalára, kiolvassa az adatbázisból az információkat, és megjeleníti a listában az új eszközt. Minden eszköz saját egyedi azonosítót kap, amelyet a termelési következtetési szabályokban és a felhőben végzett munka során használnak. Ennek az algoritmusnak a működése az UML diagramon látható:
(kattintson a képre a nagyobb felbontású megnyitáshoz)
IP kamerák csatlakoztatása
Az ebben a cikkben tárgyalt felhőalapú intelligens otthoni rendszer a szintén a szerző által kifejlesztett felhőalapú videó megfigyelő rendszer frissítése, amely több éve van a piacon, és számos telepítéssel rendelkezik Oroszországban.
A felhőalapú videofelügyeleti rendszerek esetében az egyik akut probléma az integrált berendezések korlátozott választéka. A videókamera belsejébe telepítik a felhőhöz való csatlakozásért felelős szoftvert, amely azonnal komoly követelményeket támaszt annak hardverével - a processzorral és a szabad memória mennyiségével - szemben. Ez elsősorban a felhőalapú CCTV kamerák magasabb árát magyarázza a hagyományos IP-kamerákhoz képest. Ezenkívül a CCTV kamerákat gyártó cégekkel folytatott tárgyalások hosszas szakasza szükséges ahhoz, hogy hozzáférjenek a kamera fájlrendszeréhez és az összes szükséges fejlesztőeszközhöz.
Másrészt minden modern IP-kamerának szabványos protokollja van a többi berendezéssel (különösen a videorögzítőkkel) való interakcióhoz. Így egy különálló vezérlő használata, amely szabványos protokollon keresztül csatlakozik, és az IP-kamerákból a felhőbe sugározza a videofolyamokat, jelentős versenyelőnyt jelent a felhőalapú videófelügyeleti rendszerek számára. Sőt, ha az ügyfél már telepített egy egyszerű IP-kamerákon alapuló videó megfigyelő rendszert, akkor lehetővé válik annak bővítése és teljes értékű felhő intelligens otthonná alakítása.
Az IP videó megfigyelő rendszerek legnépszerűbb protokollja, amelyet ma már kivétel nélkül minden IP-kameragyártó támogat, az
$ 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
Ennek eredményeként egy „*.h” fejlécből és „*.cpp” forrásfájlból álló készletet kapunk C++ nyelven, amelyeket közvetlenül elhelyezhetünk egy alkalmazásba vagy külön könyvtárba, és a GCC fordító segítségével lefordíthatjuk. A sok funkció miatt a kód nagy és további optimalizálást igényel. A Raspberry Pi 3 B+ típusú mikroszámítógép elegendő teljesítménnyel rendelkezik ennek a kódnak a végrehajtásához, de ha a kódot másik platformra kell portolni, akkor ki kell választani a megfelelő processzorarchitektúrát és rendszererőforrásokat.
Az ONVIF szabványt támogató IP-kamerák helyi hálózaton működve egy speciális multicast csoporthoz csatlakoznak a címmel. 239.255.255.250. Van egy protokoll
Az intelligens otthoni vezérlő grafikus felülete az IP-kamerák keresési funkcióját valósítja meg PHP-ben, ami nagyon kényelmes a webszolgáltatásokkal való interakció során XML üzeneteken keresztül. A menüpontok kiválasztásakor Eszközök > IP-kamerák > Szkennelés Elindul az IP-kamerák keresésének algoritmusa, amely táblázat formájában jeleníti meg az eredményt:
(kattintson a képre a nagyobb felbontású megnyitáshoz)
Amikor kamerát ad a vezérlőhöz, megadhatja azokat a beállításokat, amelyek szerint az interakcióba lép a felhővel. Ebben a szakaszban is automatikusan hozzárendel egy egyedi eszközazonosítót, amellyel később könnyen azonosítható a felhőn belül.
Ezután JSON formátumban generál egy üzenetet, amely tartalmazza a hozzáadott kamera összes paraméterét, és elküldi az intelligens otthon vezérlő szerverfolyamatának a RESTful API paranccsal, ahol a kamera paraméterei dekódolódnak és elmentésre kerülnek a belső SQLite adatbázisba. a következő feldolgozási szálak indítására is szolgál:
- RTSP kapcsolat létrehozása video- és hangfolyamok fogadásához;
- hang átkódolása G.711 mu-Law, G.711 A-Law, G.723 stb. formátumokból. AAC formátumba;
- H.264 formátumú videofolyamok és AAC formátumú hangok átkódolása FLV tárolóba, és RTMP protokollon keresztül a felhőbe továbbítása;
- kapcsolat létrehozása az IP kamera mozgásérzékelő végpontjával az ONVIF protokollon keresztül és annak időszakos lekérdezése;
- időszakonként miniatűr előnézeti kép generálása és elküldése a felhőbe az MQTT protokollon keresztül;
- video- és hangfolyamok helyi rögzítése MP4 formátumú különálló fájlok formájában az intelligens otthon vezérlő SD vagy Flash kártyájára.
A kamerákkal való kapcsolat létrehozásához, a szerverfolyamatban a videofolyamok átkódolásához, feldolgozásához és rögzítéséhez a könyvtár funkcióit használják
A teljesítményteszt során 3 kamerát csatlakoztattak a vezérlőhöz:
- HiWatch DS-I114W (felbontás - 720p, tömörítési formátum - H.264, bitráta - 1 Mb/s, hang G.711 mu-Law);
- Mikrodigitális MDC-M6290FTD-1 (felbontás - 1080p, tömörítési formátum - H.264, bitráta - 1 Mb/s, nincs hang);
- Dahua DH-IPC-HDW4231EMP-AS-0360B (felbontás - 1080p, tömörítési formátum - H.264, bitráta - 1.5 Mb/s, AAC hang).
Mindhárom adatfolyam egyszerre került a felhőbe, a hangátkódolás csak egy kamerából történt, és a helyi archív felvétel le volt tiltva. A CPU-terhelés körülbelül 5%, a RAM-használat 32 MB (folyamatonként), 56 MB (összesen az operációs rendszerrel együtt).
Így hozzávetőlegesen 20-30 kamera csatlakoztatható az okosotthon vezérlőhöz (felbontástól és bitrátától függően), ami elegendő egy háromszintes nyaraló vagy egy kis raktár videó megfigyelő rendszeréhez. A nagyobb teljesítményt igénylő feladatokhoz használhat többmagos Intel processzorral és Linux Debian Sarge OS-sel ellátott nettopot. A vezérlő jelenleg próbaüzem alatt áll, a teljesítményére vonatkozó adatok frissülnek.
Kölcsönhatás a felhővel
A felhőalapú intelligens otthon a felhasználói adatokat (videó- és szenzorméréseket) a felhőben tárolja. A felhőalapú tárolás architektúrájáról sorozatunk következő cikkében lesz szó részletesebben. Most beszéljünk az információs üzenetek továbbítására szolgáló felületről az intelligens otthoni vezérlőről a felhőbe.
A protokollon keresztül továbbítják a csatlakoztatott eszközök állapotát és az érzékelő méréseit
- QoS 0 - maximum egyszer (nincs szállítási garancia);
- QoS 1 - legalább egyszer (szállítási visszaigazolással);
- QoS 2 - pontosan egyszer (további szállítási visszaigazolással).
A mi esetünkben használjuk
Az intelligens otthoni vezérlő állapotáról szóló üzenetek továbbításához a mentett üzenetek mechanizmusát használják
Az MQTT klienst a könyvtári megvalósítás alapján fejlesztettük ki
A H.264 + AAC médiafolyamok az RTMP protokollon keresztül kerülnek a felhőbe, ahol a médiaszerverek fürtje felelős azok feldolgozásáért és tárolásáért. A terhelés optimális elosztása a fürtben és a legkevésbé terhelt médiaszerver kiválasztásához az intelligens otthon vezérlő előzetes kérést küld a felhőterheléselosztónak, és csak ezután küldi el a médiafolyamot.
Következtetés
A cikk egy olyan Raspberry Pi 3 B+ mikroszámítógépre épülő intelligens otthoni vezérlő egy konkrét megvalósítását vizsgálta, amely a Z-Wave protokollon keresztül képes információkat fogadni, feldolgozni és berendezéseket vezérelni, az ONVIF protokollon keresztül IP-kamerákkal kommunikálni, valamint adatcserét, ill. parancsokat a felhő szolgáltatással MQTT és RTMP protokollokon keresztül. A termelési logikai motort a logikai szabályok és a JSON formátumban bemutatott tények összehasonlítása alapján fejlesztették ki.
Az intelligens otthoni vezérlő jelenleg próbaüzem alatt áll több moszkvai és moszkvai régióban.
A vezérlő következő verziója más típusú eszközök (RF, Bluetooth, WiFi, vezetékes) csatlakoztatását tervezi. A felhasználók kényelme érdekében az érzékelők és az IP-kamerák csatlakoztatásának eljárása átkerül a mobilalkalmazásba. Vannak ötletek a szerver folyamatkódjának optimalizálására és a szoftverek operációs rendszerre történő portolására is
Forrás: will.com