Lytko združuje

Pred časom smo vam predstavili pametni termostat. Ta članek je bil prvotno namenjen predstavitvi vdelane programske opreme in nadzornega sistema. Toda za razlago logike termostata in tega, kar smo implementirali, je treba orisati celoten koncept kot celoto.

Lytko združuje

O avtomatizaciji

Običajno lahko vso avtomatizacijo razdelimo v tri kategorije:
Kategorija 1 — ločene "pametne" naprave. Od različnih proizvajalcev kupujete žarnice, čajnike itd. Za: Vsaka naprava razširi zmogljivosti in poveča udobje. Proti: Vsak nov proizvajalec zahteva svojo aplikacijo. Protokoli naprav različnih proizvajalcev pogosto niso združljivi med seboj.

Kategorija 2 — namestitev računalnika z eno ploščo ali združljivega z x86. S tem se odpravijo omejitve glede računalniške moči, na ta stroj pa se namesti MajorDoMo ali katera koli druga strežniška distribucija za upravljanje pametnega doma. Tako so naprave večine proizvajalcev povezane v enoten informacijski prostor. Tisti. pojavi se vaš strežnik za pametni dom. Za: združljivost v enem samem centru, ki zagotavlja izboljšane zmogljivosti upravljanja. Proti: če strežnik odpove, se celoten sistem vrne v 1. stopnjo, tj. postane razdrobljen ali neuporaben.

Kategorija 3 - najbolj trda možnost. V fazi popravila so položene vse komunikacije in vsi sistemi podvojeni. Prednosti: vse je pripeljano do popolnosti in potem hiša postane res pametna. Slabosti: izjemno draga v primerjavi s kategorijama 1 in 2, potreba po premisleku o vsem vnaprej in upoštevanju vsake malenkosti.

Večina uporabnikov izbere možnost ena in nato gladko preide na možnost dve. In potem najbolj vztrajni dosežejo možnost 3.

Obstaja pa možnost, ki jo lahko imenujemo porazdeljeni sistem: vsaka posamezna naprava bo hkrati strežnik in odjemalec. V bistvu je to poskus vzeti in združiti možnost 1 in možnost 2. Vzemite vse njune prednosti in odpravite slabosti, da ujamete zlato sredino.

Morda bo kdo rekel, da je bila takšna možnost že razvita. Toda takšne odločitve so ozko usmerjene; za ljudi, vešče programiranja. Naš cilj je znižati oviro za vstop v tovrstne porazdeljene sisteme, tako v obliki končnih naprav kot v obliki integracije obstoječih naprav v naš sistem. Pri termostatu uporabnik preprosto odstrani svoj stari termostat, vgradi pametnega in nanj poveže svoje obstoječe senzorje. Brez dodatnih korakov.

Oglejmo si integracijo v naš sistem na primeru.

Predstavljajmo si, da imamo v našem omrežju 8 modulov Sonoff. Za nekatere uporabnike bo zadostoval nadzor prek oblaka Sonoff (kategorija 1). Nekateri bodo začeli uporabljati vdelano programsko opremo tretjih oseb in bodo gladko prešli v kategorijo 2. Večina vdelane programske opreme tretjih oseb deluje po istem principu: prenos podatkov na strežnik MQTT. OpenHub, Majordomo ali kateri koli drug služi enemu namenu - združiti različne naprave v en sam informacijski prostor, ki se nahaja bodisi v internetu bodisi v lokalnem omrežju. Zato je prisotnost strežnika obvezna. Tu nastopi glavni problem – če strežnik odpove, celoten sistem preneha delovati avtonomno. Da bi to preprečili, postanejo sistemi bolj zapleteni, dodane so ročne metode nadzora, ki podvajajo avtomatizacijo v primeru okvare strežnika.

Ubrali smo drugo pot, kjer je vsaka naprava samozadostna. Strežnik torej nima odločilne vloge, temveč le širi funkcionalnost.

Vrnimo se k miselnemu eksperimentu. Ponovno vzemimo istih 8 modulov Sonoff in vanje namestimo programsko opremo Lytko. Vsa vdelana programska oprema Lytko ima to funkcijo SSDP. SSDP je omrežni protokol, ki temelji na zbirki internetnih protokolov za oglaševanje in odkrivanje omrežnih storitev. Odgovor na zahtevo je lahko standarden ali razširjen. Poleg standardnih funkcij smo v ta odgovor vključili tudi izdelavo seznama naprav v omrežju. Tako se naprave same najdejo in vsaka od njih bo imela tak seznam. Primer lista SSDP:

"ssdpList": 
	{
		"id": 94967291,  
		"ip": "192.168.x.x",
                "type": "thermostat"
	}, 
	{
		"id": 94967282,
		"ip": "192.168.x.x",
                "type": "thermostat"
	}

Kot lahko vidite iz primera, seznam vključuje ID-je naprav, naslov IP v omrežju, vrsto enote (v našem primeru termostat, ki temelji na Sonoffu). Ta seznam se posodobi vsaki dve minuti (to obdobje zadostuje za odziv na dinamične spremembe števila naprav v omrežju). Na ta način sledimo dodanim, spremenjenim in onemogočenim napravam brez kakršnega koli dejanja uporabnika. Ta seznam se pošlje v brskalnik ali mobilno aplikacijo, skript pa sam ustvari stran z danim številom blokov. Vsak blok ustreza eni napravi/senzorju/krmilniku. Vizualno je seznam videti takole:

Lytko združuje

Kaj pa, če so drugi radijski senzorji povezani z esp8266/esp32 prek cc2530 (ZigBee) ali nrf24 (MySensors)?

O projektih

Na trgu obstajajo različni porazdeljeni sistemi. Naš sistem vam omogoča integracijo z najbolj priljubljenimi.

Spodaj so projekti, ki tako ali drugače poskušajo spremeniti situacijo z nezdružljivostjo različnih proizvajalcev med seboj. To je npr. Prehod SLS, MySensors ali ZESP32. ZigBee2MQTT je vezan na strežnik MQTT, zato ni primeren za primer.

Ena možnost za implementacijo MySensors je prehod, ki temelji na ESP8266. Ostali primeri so na ESP32. In v njih lahko implementirate naš princip delovanja zaznavanja in ustvarjanja seznama naprav.

Naredimo še en miselni eksperiment. Imamo prehod ZESP32 ali SLS Gateway ali MySensors. Kako jih združiti v en sam informacijski prostor? Standardnim funkcijam teh prehodov bomo dodali knjižnico protokola SSDP. Pri dostopu do tega krmilnika prek SSDP bo standardnemu odgovoru dodal seznam naprav, ki so z njim povezane. Na podlagi teh podatkov bo brskalnik ustvaril stran. Na splošno bo videti takole:

Lytko združuje
Spletni vmesnik

Lytko združuje
Aplikacija 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"
}

Primer prikazuje, da se naprave dodajajo neodvisno druga od druge. Povezani so 3 termostati z lastnimi IP naslovi in ​​5 različnih senzorjev z edinstvenimi ID-ji. Če je senzor povezan z omrežjem Wi-Fi, bo imel svoj IP; če je povezan s prehodom, bo naslov IP naprave enak naslovu IP prehoda.

Za komunikacijo z napravami uporabljamo WebSocket. To vam omogoča zmanjšanje stroškov virov v primerjavi z dinamičnim pridobivanjem zahtev in informacij ob povezovanju ali spreminjanju.

Podatki se vzamejo neposredno iz naprave, ki ji blok pripada, mimo strežnika. Če torej katera od naprav odpove, sistem deluje naprej. Spletni vmesnik preprosto ne prikaže manjkajoče naprave s seznama. Toda signal o izgubi, če bo potrebno, bo prišel v obliki obvestila v uporabniški aplikaciji.

Prvi poskus implementacije tega pristopa je bila aplikacija PWA. Ta omogoča shranjevanje baze podatkov blokov na uporabnikovi napravi in ​​zahtevanje le potrebnih podatkov. Vendar pa je zaradi specifične strukture aplikacije ta pristop nepopoln. Edina rešitev je nativna aplikacija. Android in iOS, ki je trenutno v aktivnem razvoju. Aplikacija bo privzeto delovala samo v notranjem omrežju. Po potrebi jo je mogoče preklopiti na zunanje upravljanje. Ko torej uporabnik zapusti lokalno omrežje, se aplikacija samodejno preklopi v oblak.

Zunanji nadzor - popolno podvajanje strani. Ko je stran aktivirana, se lahko uporabnik prijavi v strežnik in upravlja naprave preko osebnega računa. Tako strežnik razširi svojo funkcionalnost in vam omogoča upravljanje naprav, ko ste zunaj doma, in niste vezani na posredovanje vrat ali namenski IP.

Zgornja možnost torej nima slabosti strežniškega pristopa, ima pa tudi vrsto prednosti v obliki fleksibilnosti pri povezovanju novih naprav.

O termostatu

Oglejmo si krmilni sistem na primeru našega termostata.

Zagotovljeno:

  1. Nadzor temperature za vsak termostat (prikazano kot ločen blok);
  2. Nastavitev urnika delovanja termostata (zjutraj, popoldne, zvečer, ponoči);
  3. Izbira omrežja Wi-Fi in povezava naprave z njim;
  4. Posodabljanje naprave "po zraku";
  5. Nastavitev MQTT;
  6. Konfigurirajte omrežje, na katerega je naprava povezana.

Lytko združuje

Poleg upravljanja preko spletnega vmesnika smo omogočili klasično - s klikom na zaslon. Na krovu je 3224-palčni monitor Nextion NX024T2.4. Izbira je padla nanj zaradi enostavnosti dela z napravo. Toda razvijamo lasten monitor, ki temelji na STM32. Njegova funkcionalnost ni nič slabša od funkcionalnosti Nextiona, vendar bo stala manj, kar bo pozitivno vplivalo na končno ceno naprave.

Lytko združuje

Kot vsak termostatski zaslon, ki se spoštuje, lahko naš Nextion:

  • nastavite temperaturo, ki jo zahteva uporabnik (z gumbi na desni);
  • vklopite in izklopite načrtovani način delovanja (gumb H);
  • delovanje prikazovalnega releja (puščica na levi);
  • ima zaščito pred otroki (fizični kliki so blokirani, dokler se ključavnica ne odstrani);
  • prikazuje moč signala WiFi.

Poleg tega lahko z uporabo monitorja:

  • izberite vrsto senzorja, ki ga je namestil uporabnik;
  • upravljanje funkcije otroške ključavnice;
  • posodobite vdelano programsko opremo.

Lytko združuje

S klikom na vrstico WiFi bo uporabnik izvedel informacije o povezanem omrežju. Koda QR se uporablja za seznanjanje naprave v vdelani programski opremi HomeKit.

Lytko združuje

Demo dela z zaslonom:

Lytko združuje

Razvili smo se demo stran s tremi povezanimi termostati.

Morda boste vprašali: "Kaj je posebnega na vašem termostatu?" Zdaj je na trgu veliko termostatov s funkcijo Wi-Fi, urnikom delovanja in upravljanjem na dotik. In navdušenci so napisali module za interakcijo z najbolj priljubljenimi sistemi pametnega doma (Majordomo, HomeAssistant itd.).

Naš termostat je združljiv s takimi sistemi in ima vse našteto. Toda posebnost je, da se termostat nenehno izboljšuje, zahvaljujoč prilagodljivosti sistema. Z vsako posodobitvijo se bo funkcionalnost razširila. Standardnemu načinu vodenja sistema (po urniku) bomo dodali adaptivnega. Aplikacija omogoča pridobitev geolokacije uporabnika. Zahvaljujoč temu bo sistem dinamično spreminjal načine delovanja glede na svojo lokacijo. Vremenski modul pa vam bo omogočil prilagajanje vremenskim razmeram.

In razširljivost. Vsakdo lahko zamenja svoj obstoječi klasični termostat z našim. Z minimalnim naporom. Izbrali smo 5 najbolj priljubljenih senzorjev na trgu in jim dodali podporo. Toda tudi če ima senzor ekskluzivne lastnosti, ga bo uporabnik lahko povezal z našim termostatom. Če želite to narediti, boste morali umeriti termostat za delo z določenim senzorjem. Zagotovili bomo navodila.

Ko priključite termostat ali katero koli drugo napravo, se hkrati pojavi povsod: tako v spletnem vmesniku kot v aplikaciji PWA. Dodajanje naprave se zgodi samodejno: samo povezati jo morate z omrežjem Wi-Fi.

Naš sistem ne potrebuje strežnika in če ta odpove, se ne spremeni v bučo. Tudi če ena od komponent odpove, sistem ne začne delovati v nujnem primeru. Krmilniki, senzorji, naprave – vsak element je hkrati strežnik in odjemalec, torej popolnoma avtonomen.

Za vse zainteresirane naša socialna omrežja: Telegram, Instagram, Telegram novice, VK, Facebook .

E-pošta: shop@lytko.com

PS Ne spodbujamo vas, da opustite strežnik. Podpiramo tudi strežnik MQTT in imamo svoj oblak. Naš cilj je dvigniti stabilnost in zanesljivost sistema na povsem novo raven. Tako da strežnik ni šibka točka, ampak dopolnjuje funkcionalnost in naredi sistem bolj udoben.

Vir: www.habr.com

Kupite zanesljivo gostovanje za strani z DDoS zaščito, VPS VDS strežniki 🔥 Kupite zanesljivo spletno gostovanje z zaščito DDoS, VPS VDS strežniki | ProHoster