Pred časom sme vám predstavili
O automatizácii
Bežne možno všetku automatizáciu rozdeliť do troch kategórií:
Kategória 1 — samostatné „inteligentné“ zariadenia. Kupujete žiarovky, čajníky atď. od rôznych výrobcov. Výhody: Každé zariadenie rozširuje možnosti a zvyšuje komfort. Nevýhody: Každý nový výrobca vyžaduje vlastnú aplikáciu. Protokoly zariadení od rôznych výrobcov často nie sú navzájom kompatibilné.
Kategória 2 — inštalácia jednodoskového PC alebo kompatibilného s x86. Tým sa odstránia obmedzenia výpočtového výkonu a na tomto počítači je nainštalovaný MajorDoMo alebo akákoľvek iná serverová distribúcia na správu inteligentnej domácnosti. Zariadenia väčšiny výrobcov sú tak prepojené v jedinom informačnom priestore. Tie. zobrazí sa váš vlastný Server pre inteligentnú domácnosť. Výhody: kompatibilita v rámci jedného centra, ktoré poskytuje rozšírené možnosti správy. Nevýhody: ak zlyhá server, celý systém sa vráti do fázy 1, t.j. sa roztriešti alebo sa stane zbytočným.
Kategória 3 - najtvrdšia možnosť. Vo fáze opravy sú všetky komunikácie položené a všetky systémy sú duplikované. Plusy: všetko je dovedené k dokonalosti a potom sa dom stáva skutočne inteligentným. Nevýhody: extrémne drahé v porovnaní s kategóriou 1 a 2, nutnosť si všetko dopredu premyslieť a zohľadniť každý malý detail.
Väčšina používateľov si vyberie možnosť jedna a potom plynulo prejde na možnosť dva. A potom tí najvytrvalejší dosiahnu možnosť 3.
Existuje však možnosť, ktorú možno nazvať distribuovaným systémom: každé jednotlivé zariadenie bude serverom aj klientom. V podstate ide o pokus vziať a skombinovať možnosť 1 a možnosť 2. Zoberte všetky ich klady a eliminujte zápory, aby ste dosiahli zlatú strednú cestu.
Možno niekto povie, že takáto možnosť už bola vyvinutá. Takéto rozhodnutia sú však úzko zamerané; pre ľudí so znalosťou programovania. Naším cieľom je znižovať bariéru vstupu do takto distribuovaných systémov, a to ako vo forme koncových zariadení, tak aj vo forme integrácie existujúcich zariadení do nášho systému. V prípade termostatu používateľ jednoducho odstráni svoj starý termostat, nainštaluje inteligentný a pripojí k nemu svoje existujúce senzory. Bez akýchkoľvek dodatočných krokov.
Pozrime sa na integráciu do nášho systému na príklade.
Predstavme si, že máme v sieti 8 modulov Sonoff. Niektorým používateľom postačí ovládanie cez cloud Sonoff (kategória 1). Niektorí začnú používať firmvér tretích strán a plynule prejdú do kategórie 2. Väčšina firmvéru tretích strán funguje na rovnakom princípe: prenos dát na server MQTT. OpenHub, Majordomo alebo akékoľvek iné slúžia jedinému účelu – zjednotiť rôznorodé zariadenia do jedného informačného priestoru umiestneného buď na internete alebo v lokálnej sieti. Preto je prítomnosť servera povinná. Tu vzniká hlavný problém – ak zlyhá Server, celý systém prestane fungovať autonómne. Aby sa tomu zabránilo, systémy sa stávajú zložitejšími, pridávajú sa metódy manuálneho ovládania, ktoré v prípade zlyhania servera zdvojujú automatizáciu.
Išli sme inou cestou, kde je každé zariadenie sebestačné. Server teda nehrá rozhodujúcu úlohu, ale iba rozširuje funkcionalitu.
Vráťme sa k myšlienkovému experimentu. Vezmime si opäť tých istých 8 modulov Sonoff a nainštalujeme do nich firmvér Lytko. Všetky firmvéry Lytko majú túto funkciu
"ssdpList":
{
"id": 94967291,
"ip": "192.168.x.x",
"type": "thermostat"
},
{
"id": 94967282,
"ip": "192.168.x.x",
"type": "thermostat"
}
Ako vidíte z príkladu, zoznam obsahuje ID zariadení, IP adresu v sieti, typ jednotky (v našom prípade termostat založený na Sonoff). Tento zoznam sa aktualizuje každé dve minúty (toto obdobie je dostatočné na to, aby reagovalo na dynamické zmeny v počte zariadení v sieti). Týmto spôsobom sledujeme pridané, zmenené a deaktivované zariadenia bez akejkoľvek akcie používateľa. Tento zoznam sa odošle do prehliadača alebo mobilnej aplikácie a skript sám vygeneruje stránku s daným počtom blokov. Každý blok zodpovedá jednému zariadeniu/senzoru/ovládaču. Vizuálne zoznam vyzerá takto:
Ale čo ak sú k esp8266/esp32 pripojené ďalšie rádiové senzory cez cc2530 (ZigBee) alebo nrf24 (MySensors)?
O projektoch
Na trhu sú rôzne distribuované systémy. Náš systém vám umožňuje integráciu s tými najpopulárnejšími.
Nižšie sú uvedené projekty, ktoré sa tak či onak snažia zmeniť situáciu s nekompatibilitou rôznych výrobcov medzi sebou. Toto je napr.
Jednou z možností implementácie MySensors je brána založená na ESP8266. Ostatné príklady sú na ESP32. A v nich môžete implementovať náš princíp fungovania detekcie a vytvárania zoznamu zariadení.
Urobme ďalší myšlienkový experiment. Máme bránu ZESP32 alebo bránu SLS alebo MySensors. Ako ich možno kombinovať v jednom informačnom priestore? K štandardným funkciám týchto brán pridáme knižnicu protokolu SSDP. Pri prístupe k tomuto ovládaču cez SSDP pridá do štandardnej odpovede zoznam zariadení, ktoré sú k nemu pripojené. Na základe týchto informácií prehliadač vygeneruje stránku. Vo všeobecnosti to bude vyzerať takto:
webové rozhranie
Aplikácia 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"
}
Príklad ukazuje, že zariadenia sa pridávajú nezávisle od seba. Sú pripojené 3 termostaty s vlastnými IP adresami a 5 rôznych senzorov s jedinečnými ID. Ak je senzor pripojený k sieti Wi-Fi, bude mať svoju vlastnú IP; ak je pripojený k bráne, potom IP adresa zariadenia bude IP adresou brány.
Na komunikáciu so zariadeniami používame WebSocket. To vám umožňuje minimalizovať náklady na zdroje v porovnaní so získavaním požiadaviek a získavať informácie dynamicky pri pripájaní alebo zmene.
Údaje sa získavajú priamo zo zariadenia, ktorému blok patrí, pričom sa obchádza server. Ak teda niektoré zo zariadení zlyhá, systém pokračuje v prevádzke. Webové rozhranie len nezobrazuje chýbajúce zariadenie zo zoznamu. Signál o strate však v prípade potreby príde vo forme upozornenia v aplikácii používateľa.
Prvým pokusom o implementáciu tohto prístupu bola aplikácia PWA. To vám umožní uložiť blokovú základňu na zariadení používateľa a vyžiadať si len potrebné údaje. Ale vzhľadom na zvláštnosti štruktúry je táto možnosť neúplná. A existuje len jedna cesta von - natívna aplikácia pre Android a IOS, ktorá je momentálne v aktívnom vývoji. V predvolenom nastavení bude aplikácia fungovať iba vo vnútornej sieti. V prípade potreby môžete všetko preniesť na externú kontrolu. Keď teda používateľ opustí lokálnu sieť, aplikácia sa automaticky prepne do cloudu.
Externá kontrola – úplná duplikácia stránky. Keď je stránka aktivovaná, používateľ sa môže prihlásiť na server a spravovať zariadenia prostredníctvom svojho osobného účtu. Server tak rozširuje svoju funkčnosť a umožňuje vám spravovať zariadenia, keď ste mimo domova, a nie byť viazaný na presmerovanie portov alebo vyhradenú IP.
Vyššie uvedená možnosť teda nemá nevýhody serverového prístupu a má aj množstvo výhod v podobe flexibility pri pripájaní nových zariadení.
O termostate
Pozrime sa ako príklad na riadiaci systém pomocou nášho termostatu.
Poskytnuté:
- Regulácia teploty pre každý termostat (zobrazuje sa ako samostatný blok);
- Nastavenie pracovného plánu termostatu (ráno, poobede, večer, noc);
- Výber siete Wi-Fi a pripojenie zariadenia k nej;
- Aktualizácia zariadenia „vzduchom“;
- Nastavenie MQTT;
- Nakonfigurujte sieť, ku ktorej je zariadenie pripojené.
Okrem ovládania cez webové rozhranie sme poskytli klasické – klikaním na displej. Na doske je 3224-palcový monitor Nextion NX024T2.4. Voľba padla na neho kvôli jednoduchosti práce so zariadením. Vyvíjame však vlastný monitor založený na STM32. Jeho funkčnosť nie je o nič horšia ako u Nextionu, ale bude stáť menej, čo bude mať pozitívny vplyv na konečnú cenu zariadenia.
Ako každá obrazovka termostatu, aj naša Nextion dokáže:
- nastaviť teplotu požadovanú používateľom (pomocou tlačidiel vpravo);
- zapnutie a vypnutie režimu plánovanej prevádzky (tlačidlo H);
- činnosť relé displeja (šípka vľavo);
- má detskú ochranu (fyzické kliknutia sú zablokované, kým sa zámok neodstráni);
- zobrazuje silu signálu WiFi.
Okrem toho pomocou monitora môžete:
- vyberte typ snímača nainštalovaného používateľom;
- spravovať funkciu detskej zámky;
- aktualizovať firmvér.
Kliknutím na lištu WiFi používateľ zistí informácie o pripojenej sieti. QR kód sa používa na spárovanie zariadenia vo firmvéri HomeKit.
Ukážka práce s displejom:
Vyvinuli sme sa
Môžete sa opýtať: „Čo je zvláštne na vašom termostate?“ Teraz je na trhu veľa termostatov s funkciou Wi-Fi, plánovanou prevádzkou a dotykovým ovládaním. A nadšenci napísali moduly na interakciu s najpopulárnejšími inteligentnými domácimi systémami (Majordomo, HomeAssistant atď.).
Náš termostat je kompatibilný s takýmito systémami a má všetko vyššie uvedené. Charakteristickým rysom je však to, že termostat sa neustále zlepšuje vďaka flexibilite systému. S každou aktualizáciou sa funkčnosť rozšíri. K štandardnému spôsobu riadenia systému (podľa harmonogramu) pridáme adaptívny. Aplikácia umožňuje získať geolokáciu používateľa. Vďaka tomu bude systém dynamicky meniť prevádzkové režimy v závislosti od svojej polohy. A meteorologický modul vám umožní prispôsobiť sa poveternostným podmienkam.
A rozšíriteľnosť. Každý môže vymeniť svoj existujúci bežný termostat za náš. S minimálnym úsilím. Vybrali sme 5 najobľúbenejších senzorov na trhu a pridali sme pre ne podporu. Ale aj keď má senzor exkluzívne vlastnosti, používateľ ho bude môcť pripojiť k nášmu termostatu. Aby ste to dosiahli, budete musieť kalibrovať termostat, aby pracoval s konkrétnym snímačom. Poskytneme pokyny.
Pri pripojení termostatu alebo akéhokoľvek iného zariadenia sa súčasne objaví všade: vo webovom rozhraní aj v aplikácii PWA. Zariadenie sa pridáva automaticky: stačí ho pripojiť k sieti Wi-Fi.
Náš systém nepotrebuje server a ak zlyhá, nezmení sa na tekvicu. Aj keď jeden z komponentov zlyhá, systém nezačne fungovať v núdzovom scenári. Ovládače, senzory, zariadenia – každý prvok je zároveň serverom aj klientom, preto je úplne autonómny.
Pre záujemcov naše sociálne siete:
E-mail: [chránené e-mailom]
PS Nenabádame vás, aby ste opustili Server. Podporujeme aj server MQTT a máme vlastný cloud. Naším cieľom je posunúť stabilitu a spoľahlivosť systému na úplne novú úroveň. Aby Server nebol slabou stránkou, ale dopĺňal funkčnosť a spríjemňoval systém.
Zdroj: hab.com