Před časem jsme vám představili
O automatizaci
Obvykle lze veškerou automatizaci rozdělit do tří kategorií:
Kategorie 1 — samostatná „chytrá“ zařízení. Nakupujete žárovky, čajové konvice atd. od různých výrobců. Klady: Každé zařízení rozšiřuje možnosti a zvyšuje pohodlí. Nevýhody: Každý nový výrobce vyžaduje vlastní aplikaci. Protokoly zařízení od různých výrobců často nejsou vzájemně kompatibilní.
Kategorie 2 — instalace jednodeskového PC nebo kompatibilního s x86. To odstraňuje omezení výpočetního výkonu a na tomto počítači je nainstalován MajorDoMo nebo jakákoli jiná serverová distribuce pro správu chytré domácnosti. Zařízení většiny výrobců jsou tak propojena v jediném informačním prostoru. Tito. objeví se váš vlastní Server pro chytrou domácnost. Výhody: kompatibilita v rámci jediného centra, což poskytuje rozšířené možnosti správy. Nevýhody: pokud selže server, celý systém se vrátí do fáze 1, tzn. se roztříští nebo se stane zbytečným.
Kategorie 3 - nejtvrdší možnost. Ve fázi opravy jsou položeny všechny komunikace a všechny systémy jsou duplikovány. Klady: vše je dovedeno k dokonalosti a dům se pak stává skutečně chytrým. Nevýhody: extrémně drahé oproti kategoriím 1 a 2, nutnost si vše předem promyslet a zohlednit každý malý detail.
Většina uživatelů si vybere možnost jedna a poté plynule přejde k možnosti dvě. A pak ti nejvytrvalejší dosáhnou možnosti 3.
Existuje však možnost, kterou lze nazvat distribuovaným systémem: každé jednotlivé zařízení bude serverem i klientem. V podstatě se jedná o pokus vzít a zkombinovat možnost 1 a možnost 2. Vezměte všechny jejich klady a eliminujte zápory, abyste chytili zlatou střední cestu.
Možná někdo řekne, že taková možnost již byla vyvinuta. Ale taková rozhodnutí jsou úzce zaměřena; pro lidi znalé programování. Naším cílem je snížit bariéru vstupu do takto distribuovaných systémů, a to jak v podobě koncových zařízení, tak v podobě integrace stávajících zařízení do našeho systému. V případě termostatu uživatel jednoduše vyjme svůj starý termostat, nainstaluje chytrý a připojí k němu svá stávající čidla. Bez dalších kroků.
Podívejme se na integraci do našeho systému na příkladu.
Představme si, že máme v síti 8 modulů Sonoff. Některým uživatelům bude stačit ovládání přes cloud Sonoff (kategorie 1). Někteří začnou používat firmware třetích stran a plynule přejdou do kategorie 2. Většina firmwaru třetích stran funguje na stejném principu: přenos dat na server MQTT. OpenHub, Majordomo nebo jakýkoli jiný slouží jedinému účelu – sjednotit nesourodá zařízení do jediného informačního prostoru umístěného buď na internetu, nebo v lokální síti. Proto je přítomnost serveru povinná. Zde nastává hlavní problém – pokud selže Server, celý systém přestane fungovat autonomně. Aby se tomu zabránilo, systémy se stávají složitějšími, přidávají se metody ručního ovládání, které v případě selhání serveru zdvojují automatizaci.
Šli jsme jinou cestou, kdy je každé zařízení soběstačné. Server tedy nehraje rozhodující roli, ale pouze rozšiřuje funkčnost.
Vraťme se k myšlenkovému experimentu. Vezmeme znovu stejných 8 modulů Sonoff a nainstalujeme do nich firmware Lytko. Všechny Lytko firmware mají tuto funkci
"ssdpList":
{
"id": 94967291,
"ip": "192.168.x.x",
"type": "thermostat"
},
{
"id": 94967282,
"ip": "192.168.x.x",
"type": "thermostat"
}
Jak můžete vidět z příkladu, seznam obsahuje ID zařízení, IP adresu v síti, typ jednotky (v našem případě termostat na bázi Sonoff). Tento seznam je aktualizován jednou za dvě minuty (tato doba je dostatečná pro reakci na dynamické změny v počtu zařízení v síti). Tímto způsobem sledujeme zařízení přidaná, změněná a deaktivovaná bez jakékoli akce uživatele. Tento seznam se odešle do prohlížeče nebo mobilní aplikace a skript sám vygeneruje stránku s daným počtem bloků. Každý blok odpovídá jednomu zařízení/senzoru/kontroléru. Vizuálně seznam vypadá takto:
Ale co když jsou k esp8266/esp32 připojeny další rádiové senzory přes cc2530 (ZigBee) nebo nrf24 (MySensors)?
O projektech
Na trhu jsou různé distribuované systémy. Náš systém vám umožňuje integraci s těmi nejoblíbenějšími.
Níže jsou uvedeny projekty, které se tak či onak snaží změnit situaci s nekompatibilitou různých výrobců mezi sebou. Jedná se např.
Jednou z možností implementace MySensors je brána založená na ESP8266. Zbytek příkladů je na ESP32. A v nich můžete implementovat náš princip fungování detekce a vytváření seznamu zařízení.
Udělejme další myšlenkový experiment. Máme bránu ZESP32 nebo bránu SLS nebo MySensors. Jak je lze kombinovat v jednom informačním prostoru? Ke standardním funkcím těchto bran přidáme knihovnu protokolu SSDP. Při přístupu k tomuto ovladači přes SSDP přidá do standardní odpovědi seznam zařízení, která jsou k němu připojena. Na základě těchto informací prohlížeč vygeneruje stránku. Obecně to bude vypadat takto:
webové rozhraní
aplikace PWA
"ssdpList":
{
"id": 94967291, // уникальный идентификатор устройства
"ip": "192.168.x.x", // ip адрес в сети
"type": "thermostat" // тип устройства
},
{
"id": 94967292,
"ip": "192.168.x.x",
"type": "thermostat"
},
{
"id": 94967293,
"ip": "192.168.x.x",
"type": "thermostat"
},
{
"id": 13587532,
"type": "switch"
},
{
"id": 98412557,
"type": "smoke"
},
{
"id": 57995113,
"type": "contact_sensor"
},
{
"id": 74123668,
"type": "temperature_humidity_pressure_sensor"
},
{
"id": 74621883,
"type": "temperature_humidity_sensor"
}
Příklad ukazuje, že zařízení se přidávají nezávisle na sobě. Jsou připojeny 3 termostaty s vlastními IP adresami a 5 různých senzorů s unikátními ID. Pokud je senzor připojen k síti Wi-Fi, bude mít svou vlastní IP; pokud je připojen k bráně, pak IP adresa zařízení bude IP adresou brány.
Ke komunikaci se zařízeními používáme WebSocket. To vám umožňuje minimalizovat náklady na zdroje ve srovnání s přijímáním požadavků a získávat informace dynamicky při připojování nebo změně.
Data jsou sbírána přímo ze zařízení, ke kterému blok patří, obchází server. Pokud tedy některé ze zařízení selže, systém pokračuje v provozu. Webové rozhraní pouze nezobrazí chybějící zařízení ze seznamu. Signál o ztrátě však v případě potřeby přijde ve formě upozornění v aplikaci uživatele.
Prvním pokusem o implementaci tohoto přístupu byla aplikace PWA. To umožňuje uložit blokovou základnu na zařízení uživatele a požadovat pouze nezbytná data. Ale kvůli zvláštnostem struktury je tato možnost neúplná. A existuje jen jedna cesta ven – nativní aplikace pro Android a IOS, která je v současné době v aktivním vývoji. Ve výchozím nastavení bude aplikace fungovat pouze v interní síti. V případě potřeby můžete vše převést na externí ovládání. Když tedy uživatel opustí místní síť, aplikace se automaticky přepne do cloudu.
Externí kontrola - úplné zdvojení stránky. Po aktivaci stránky se uživatel může přihlásit na server a spravovat zařízení prostřednictvím svého osobního účtu. Server tak rozšiřuje svou funkcionalitu a umožňuje vám spravovat zařízení mimo domov a nebýt vázán na přesměrování portů nebo vyhrazenou IP.
Výše uvedená možnost tedy nemá nevýhody serverového přístupu a má také řadu výhod v podobě flexibility při připojování nových zařízení.
O termostatu
Podívejme se jako příklad na řídicí systém pomocí našeho termostatu.
Pokud:
- Ovládání teploty pro každý termostat (zobrazeno jako samostatný blok);
- Nastavení pracovního plánu termostatu (ráno, odpoledne, večer, noc);
- Výběr sítě Wi-Fi a připojení zařízení k ní;
- Aktualizace zařízení „vzduchem“;
- Nastavení MQTT;
- Nakonfigurujte síť, ke které je zařízení připojeno.
Kromě ovládání přes webové rozhraní jsme zajistili to klasické – kliknutím na displej. Na desce je 3224palcový monitor Nextion NX024T2.4. Volba padla na něj kvůli snadné práci s přístrojem. Ale vyvíjíme vlastní monitor založený na STM32. Jeho funkčnost není o nic horší než u Nextionu, ale bude levnější, což bude mít pozitivní dopad na konečnou cenu zařízení.
Jako každá termostatická obrazovka, naše Nextion může:
- nastavit teplotu požadovanou uživatelem (pomocí tlačítek vpravo);
- zapnout a vypnout režim plánovaného provozu (tlačítko H);
- činnost relé displeje (šipka vlevo);
- má dětskou ochranu (fyzické cvaknutí jsou blokovány, dokud není zámek odstraněn);
- zobrazuje sílu signálu WiFi.
Kromě toho můžete pomocí monitoru:
- vyberte typ snímače nainstalovaného uživatelem;
- spravovat funkci dětského zámku;
- aktualizovat firmware.
Kliknutím na lištu WiFi uživatel zjistí informace o připojené síti. QR kód slouží ke spárování zařízení ve firmwaru HomeKit.
Ukázka práce s displejem:
Vyvinuli jsme se
Můžete se zeptat: „Co je zvláštního na vašem termostatu?“ Nyní je na trhu mnoho termostatů s funkcí Wi-Fi, plánovaným provozem a dotykovým ovládáním. A nadšenci napsali moduly pro interakci s nejoblíbenějšími systémy pro chytrou domácnost (Majordomo, HomeAssistant atd.).
Náš termostat je kompatibilní s takovými systémy a má vše výše uvedené. Ale charakteristickým rysem je, že termostat je neustále vylepšován díky flexibilitě systému. S každou aktualizací se funkce rozšíří. Ke standardnímu způsobu správy systému (podle harmonogramu) přidáme adaptivní. Aplikace umožňuje získat geolokaci uživatele. Díky tomu bude systém dynamicky měnit provozní režimy v závislosti na svém umístění. A modul počasí vám umožní přizpůsobit se povětrnostním podmínkám.
A rozšiřitelnost. Každý může vyměnit svůj stávající konvenční termostat za náš. S minimálním úsilím. Vybrali jsme 5 nejoblíbenějších senzorů na trhu a přidali pro ně podporu. Ale i když má senzor exkluzivní vlastnosti, uživatel jej bude moci připojit k našemu termostatu. Chcete-li to provést, budete muset zkalibrovat termostat pro práci s konkrétním senzorem. Poskytneme pokyny.
Při připojení termostatu nebo jakéhokoli jiného zařízení se současně objeví všude: jak ve webovém rozhraní, tak v aplikaci PWA. Přidání zařízení probíhá automaticky: stačí jej připojit k síti Wi-Fi.
Náš systém nepotřebuje server, a pokud selže, nepromění se v dýni. I když jedna z komponent selže, systém nezačne fungovat v nouzovém scénáři. Ovladače, senzory, zařízení – každý prvek je zároveň serverem i klientem, tudíž zcela autonomní.
Pro zájemce naše sociální sítě:
E-mail: [chráněno e-mailem]
PS Nedoporučujeme vám, abyste opustili Server. Podporujeme také server MQTT a máme vlastní cloud. Naším cílem je posunout stabilitu a spolehlivost systému na zcela novou úroveň. Aby Server nebyl slabinou, ale doplňoval funkcionalitu a dělal systém pohodlnějším.
Zdroj: www.habr.com