Lytko yhdistää

Jokin aika sitten esittelimme sinut älykäs termostaatti. Tämä artikkeli oli alun perin tarkoitettu esittelyksi sen laiteohjelmistosta ja ohjausjärjestelmästä. Mutta jotta voidaan selittää termostaatin logiikka ja se, mitä toteutimme, on välttämätöntä hahmotella koko konsepti kokonaisuutena.

Lytko yhdistää

Tietoja automaatiosta

Perinteisesti kaikki automaatio voidaan jakaa kolmeen luokkaan:
KATALOGIA 1 — erilliset "älylaitteet". Ostat hehkulamppuja, teekannuja jne. eri valmistajilta. Plussat: Jokainen laite laajentaa ominaisuuksia ja lisää mukavuutta. Miinukset: Jokainen uusi valmistaja vaatii oman sovelluksensa. Eri valmistajien laitteiden protokollat ​​eivät usein ole yhteensopivia keskenään.

KATALOGIA 2 — yksilevyisen PC:n tai x86-yhteensopivan tietokoneen asennus. Tämä poistaa laskentatehon rajoitukset, ja MajorDoMo tai mikä tahansa muu älykkään kodin hallintaan tarkoitettu palvelinjakelu on asennettu tälle koneelle. Siten useimpien valmistajien laitteet on yhdistetty yhteen tietotilaan. Nuo. oma Palvelimesi älykkään kotiin tulee näkyviin. Plussat: yhteensopivuus yhden keskuksen alla, mikä tarjoaa paremmat hallintaominaisuudet. Miinukset: jos palvelin epäonnistuu, koko järjestelmä palaa vaiheeseen 1, ts. pirstoutuu tai muuttuu hyödyttömäksi.

KATALOGIA 3 - vakaviin vaihtoehto. Korjausvaiheessa kaikki viestintä on asennettu ja kaikki järjestelmät kopioidaan. Plussat: kaikki saatetaan täydellisyyteen ja sitten talosta tulee todella älykäs. Miinukset: erittäin kallis verrattuna luokkiin 1 ja 2, tarve miettiä kaikki etukäteen ja ottaa huomioon jokainen pieni yksityiskohta.

Useimmat käyttäjät valitsevat vaihtoehdon yksi ja siirtyvät sitten sujuvasti vaihtoehtoon kaksi. Ja sitten sitkeimmät saavuttavat vaihtoehdon 3.

Mutta on olemassa vaihtoehto, jota voidaan kutsua hajautetuksi järjestelmäksi: jokainen yksittäinen laite on sekä palvelin että asiakas. Pohjimmiltaan tämä on yritys ottaa ja yhdistää vaihtoehto 1 ja vaihtoehto 2. Ota kaikki niiden edut ja eliminoi haitat saadaksesi kiinni kultaisesta keskiarvosta.

Ehkä joku sanoo, että tällainen vaihtoehto on jo kehitetty. Mutta tällaiset päätökset ovat kapea-alaisia; ohjelmointitaitoja varten. Tavoitteemme on alentaa pääsyn esteitä tällaisiin hajautettuihin järjestelmiin sekä loppulaitteiden muodossa että integroimalla olemassa olevia laitteita järjestelmäämme. Termostaatin tapauksessa käyttäjä yksinkertaisesti poistaa vanhan termostaattinsa, asentaa älykkään ja yhdistää olemassa olevat anturinsa siihen. Ilman lisätoimenpiteitä.

Katsotaanpa integraatiota järjestelmäämme esimerkin avulla.

Kuvitellaan, että verkossamme on 8 Sonoff-moduulia. Joillekin käyttäjille riittää ohjaus Sonoff-pilven kautta (luokka 1). Jotkut alkavat käyttää kolmannen osapuolen laiteohjelmistoa ja siirtyvät sujuvasti luokkaan 2. Suurin osa kolmannen osapuolen laiteohjelmistoista toimii samalla periaatteella: tietojen siirtäminen MQTT-palvelimelle. OpenHub, Majordomo tai mikä tahansa muu palvelee yhtä tarkoitusta - yhdistää eri laitteet yhdeksi tietoalueeksi, joka sijaitsee joko Internetissä tai paikallisessa verkossa. Siksi palvelimen läsnäolo on pakollista. Tässä syntyy suurin ongelma - jos palvelin epäonnistuu, koko järjestelmä lakkaa toimimasta itsenäisesti. Tämän estämiseksi järjestelmistä tulee monimutkaisempia, ja niihin lisätään manuaalisia ohjausmenetelmiä, jotka toistavat automaation palvelinvian sattuessa.

Valitsimme eri polun, jossa jokainen laite on omavarainen. Palvelimella ei siis ole ratkaisevaa roolia, vaan se vain laajentaa toiminnallisuutta.

Palataan ajatuskokeeseen. Otetaan uudestaan ​​samat 8 Sonoff-moduulia ja asennetaan niihin Lytko firmware. Kaikilla Lytko firmwareilla on toiminto SSDP. SSDP on Internet-protokollasarjaan perustuva verkkoprotokolla mainontaan ja verkkopalvelujen löytämiseen. Vastaus pyyntöön voi olla joko vakio tai laajennettu. Vakiotoimintojen lisäksi sisällytimme tähän vastaukseen luettelon luomisesta verkon laitteista. Siten laitteet itse löytävät toisensa, ja jokaisella niistä on tällainen luettelo. Esimerkki SSDP-arkista:

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

Kuten esimerkistä näkyy, luettelo sisältää laitetunnukset, IP-osoitteen verkossa, yksikön tyypin (tapauksessamme Sonoff-pohjainen termostaatti). Tämä luettelo päivitetään kahden minuutin välein (tämä aika riittää vastaamaan verkon laitteiden määrän dynaamisiin muutoksiin). Tällä tavalla seuraamme lisättyjä, muutettuja ja käytöstä poistettuja laitteita ilman käyttäjän toimia. Tämä luettelo lähetetään selaimeen tai mobiilisovellukseen, ja skripti itse luo sivun tietyllä määrällä lohkoja. Jokainen lohko vastaa yhtä laitetta/anturia/ohjainta. Visuaalisesti lista näyttää tältä:

Lytko yhdistää

Mutta entä jos muut radioanturit on kytketty esp8266/esp32:een cc2530:n (ZigBee) tai nrf24:n (MySensors) kautta?

Tietoja projekteista

Markkinoilla on erilaisia ​​hajautettuja järjestelmiä. Järjestelmämme avulla voit integroida suosituimpien kanssa.

Alla on projekteja, jotka tavalla tai toisella yrittävät muuttaa tilannetta eri valmistajien yhteensopimattomuudella. Tämä on esim. SLS-yhdyskäytävä, Omat Sensorit tai ZESP32. ZigBee2MQTT on sidottu MQTT-palvelimeen, joten se ei sovellu esimerkkiin.

Yksi vaihtoehto MySensorsin toteuttamiseen on ESP8266:een perustuva yhdyskäytävä. Loput esimerkit ovat ESP32:ssa. Ja niissä voit toteuttaa toimintaperiaatteemme havaita ja luoda laiteluettelo.

Tehdään toinen ajatuskoe. Meillä on ZESP32-yhdyskäytävä tai SLS-yhdyskäytävä tai MySensors. Miten ne voidaan yhdistää yhdeksi tietoalueeksi? Lisäämme SSDP-protokollakirjaston näiden yhdyskäytävien vakiotoimintoihin. Kun tätä ohjainta käytetään SSDP:n kautta, se lisää luettelon siihen liitetyistä laitteista vakiovastaukseen. Näiden tietojen perusteella selain luo sivun. Yleisesti se näyttää tältä:

Lytko yhdistää
Web-käyttöliittymä

Lytko yhdistää
PWA-sovellus

"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"
}

Esimerkki osoittaa, että laitteet lisätään toisistaan ​​riippumatta. 3 termostaattia omilla IP-osoitteillaan ja 5 eri tunnistinta yksilöllisillä tunnuksilla on kytketty. Jos anturi on kytketty Wi-Fi-verkkoon, sillä on oma IP-osoite; jos se on yhdistetty yhdyskäytävään, laitteen IP-osoite on yhdyskäytävän IP-osoite.

Käytämme WebSocket-yhteyttä kommunikoimaan laitteiden kanssa. Tämän avulla voit minimoida resurssikustannukset verrattuna pyyntöjen saamiseen ja tiedon hankkimiseen dynaamisesti yhdistäessäsi tai vaihtaessasi.

Tiedot otetaan suoraan laitteelta, johon lohko kuuluu, ohittaen palvelimen. Siten, jos jokin laitteista epäonnistuu, järjestelmä jatkaa toimintaansa. Verkkokäyttöliittymä ei vain näytä puuttuvaa laitetta luettelosta. Mutta signaali katoamisesta tulee tarvittaessa ilmoituksen muodossa käyttäjän sovelluksessa.

Ensimmäinen yritys toteuttaa tämä lähestymistapa oli PWA-sovellus. Näin voit tallentaa lohkokannan käyttäjän laitteelle ja pyytää vain tarvittavat tiedot. Mutta rakenteen erityispiirteiden vuoksi tämä vaihtoehto on epätäydellinen. Ja sieltä on vain yksi ulospääsy - natiivi sovellus Androidille ja IOS:lle, jota kehitetään parhaillaan aktiivisesti. Oletusarvon mukaan sovellus toimii vain sisäisessä verkossa. Tarvittaessa voit siirtää kaiken ulkoiseen ohjaukseen. Joten kun käyttäjä poistuu paikallisverkosta, sovellus vaihtaa automaattisesti pilveen.

Ulkoinen ohjaus - sivun täydellinen kopiointi. Kun sivu on aktivoitu, käyttäjä voi kirjautua sisään palvelimelle ja hallita laitteita henkilökohtaisen tilinsä kautta. Siten palvelin laajentaa toiminnallisuuttaan, jolloin voit hallita laitteita kodin ulkopuolella, etkä ole sidottu portin edelleenlähetykseen tai omistettuun IP-osoitteeseen.

Siten yllä olevalla vaihtoehdolla ei ole palvelinlähestymistavan haittoja, ja sillä on myös useita etuja joustavuuden muodossa uusien laitteiden liittämisessä.

Tietoja termostaatista

Tarkastellaan ohjausjärjestelmää käyttämällä esimerkkinä termostaattiamme.

Edellyttäen:

  1. Jokaisen termostaatin lämpötilan säätö (näytetään erillisenä lohkona);
  2. Termostaatin toiminta-aikataulun asettaminen (aamu, iltapäivä, ilta, yö);
  3. Wi-Fi-verkon valitseminen ja laitteen yhdistäminen siihen;
  4. Laitteen päivittäminen "over the air";
  5. MQTT:n asettaminen;
  6. Määritä verkko, johon laite on yhdistetty.

Lytko yhdistää

Verkkokäyttöliittymän kautta tapahtuvan ohjauksen lisäksi tarjosimme klassisen - napsauttamalla näyttöä. Laitteessa on 3224 tuuman Nextion NX024T2.4 -näyttö. Valinta lankesi hänelle laitteen kanssa työskentelyn helppouden vuoksi. Mutta kehitämme omaa näyttöämme, joka perustuu STM32:een. Sen toiminnallisuus ei ole huonompi kuin Nextionin, mutta se maksaa vähemmän, mikä vaikuttaa positiivisesti laitteen lopulliseen hintaan.

Lytko yhdistää

Kuten mikä tahansa itseään kunnioittava termostaattinäyttö, Nextionimme voi:

  • aseta käyttäjän tarvitsema lämpötila (oikealla olevien painikkeiden avulla);
  • kytke päälle ja pois ajastettu toimintatila (painike H);
  • näytön releen toiminta (nuoli vasemmalla);
  • on lapsisuojaus (fyysiset napsautukset estetään, kunnes lukko poistetaan);
  • näyttää WiFi-signaalin voimakkuuden.

Lisäksi monitoria käyttämällä voit:

  • valitse käyttäjän asentaman anturin tyyppi;
  • hallita lapsilukkoominaisuutta;
  • päivitä laiteohjelmisto.

Lytko yhdistää

Napsauttamalla WiFi-palkkia käyttäjä saa tietoja yhdistetystä verkosta. QR-koodia käytetään laitteen yhdistämiseen HomeKit-laiteohjelmistossa.

Lytko yhdistää

Näytön kanssa työskentelyn esittely:

Lytko yhdistää

Olemme kehittyneet esittelysivu kolmella kytketyllä termostaatilla.

Saatat kysyä: "Mitä erikoista termostaatissasi on?" Nyt markkinoilla on monia termostaatteja, joissa on Wi-Fi-toiminto, ajastettu toiminta ja kosketusohjaus. Ja harrastajat ovat kirjoittaneet moduuleja vuorovaikutukseen suosituimpien älykotijärjestelmien kanssa (Majordomo, HomeAssistant jne.).

Termostaattimme on yhteensopiva tällaisten järjestelmien kanssa ja sisältää kaikki edellä mainitut. Mutta erottuva piirre on, että termostaattia parannetaan jatkuvasti järjestelmän joustavuuden ansiosta. Jokaisen päivityksen myötä toiminnallisuus laajenee. Vakiojärjestelmän hallintamenetelmään (aikataulun mukaan) lisäämme mukautuvan. Sovelluksen avulla voit saada käyttäjän maantieteellisen sijainnin. Tämän ansiosta järjestelmä vaihtaa dynaamisesti toimintatiloja sijainnistaan ​​riippuen. Ja säämoduulin avulla voit mukautua sääolosuhteisiin.

Ja laajennettavuus. Kuka tahansa voi vaihtaa olemassa olevan perinteisen termostaatin meidän omaan. Vähimmällä vaivalla. Olemme valinneet 5 markkinoiden suosituinta anturia ja lisänneet niille tuen. Mutta vaikka anturilla olisikin ainutlaatuisia ominaisuuksia, käyttäjä voi liittää sen termostaattiin. Tätä varten sinun on kalibroitava termostaatti toimimaan tietyn anturin kanssa. Annamme ohjeita.

Kun kytket termostaatin tai minkä tahansa muun laitteen, se näkyy samanaikaisesti kaikkialla: sekä verkkoliittymässä että PWA-sovelluksessa. Laitteen lisääminen tapahtuu automaattisesti: sinun tarvitsee vain yhdistää se Wi-Fi-verkkoon.

Järjestelmämme ei tarvitse palvelinta, ja jos se epäonnistuu, se ei muutu kurpitsaksi. Vaikka jokin komponenteista epäonnistuisi, järjestelmä ei ala toimimaan hätätilanteessa. Ohjaimet, anturit, laitteet - jokainen elementti on sekä palvelin että asiakas, joten täysin itsenäinen.

Kiinnostuneille sosiaaliset verkostomme: Telegram, Instagram, Telegram-uutiset, VK, Facebook.

Почта: [sähköposti suojattu]

PS Emme rohkaise sinua hylkäämään Palvelinta. Tuemme myös MQTT-palvelinta ja meillä on oma pilvi. Tavoitteenamme on nostaa järjestelmän vakaus ja luotettavuus aivan uudelle tasolle. Jotta palvelin ei ole heikko kohta, vaan täydentää toiminnallisuutta ja tekee järjestelmästä mukavamman.

Lähde: will.com

Lisää kommentti