Lytko sameinar

Fyrir nokkru síðan kynntum við þig snjall hitastillir. Þessi grein var upphaflega hugsuð sem sýnikennsla á fastbúnaðar- og stjórnkerfi þess. En til að útskýra rökfræði hitastillisins og það sem við útfærðum, er nauðsynlegt að útlista hugmyndina í heild sinni.

Lytko sameinar

Um sjálfvirkni

Venjulega er hægt að skipta allri sjálfvirkni í þrjá flokka:
Flokkur 1 — aðskilin „snjall“ tæki. Þú kaupir ljósaperur, tekatla o.fl. frá mismunandi framleiðendum. Kostir: Hvert tæki eykur getu og eykur þægindi. Gallar: Hver nýr framleiðandi krefst eigin umsóknar. Samskiptareglur tækja frá mismunandi framleiðendum eru oft ekki samhæfðar hver öðrum.

Flokkur 2 — uppsetning á eins borðs tölvu eða x86 samhæfri. Þetta fjarlægir takmarkanir á tölvuorku og MajorDoMo eða önnur miðlaradreifing til að stjórna snjallheimili er sett upp á þessari vél. Þannig eru tæki frá flestum framleiðendum tengd í einu upplýsingarými. Þeir. þinn eigin þjónn fyrir snjallt heimili birtist. Kostir: eindrægni undir einni miðstöð, sem veitir aukna stjórnunargetu. Gallar: ef þjónninn bilar fer allt kerfið aftur á stig 1, þ.e. sundrast eða verða gagnslaus.

Flokkur 3 - harðkjarnavalkosturinn. Á viðgerðarstigi eru öll fjarskipti lögð og öll kerfi afrituð. Kostir: allt er fullkomnað og þá verður húsið sannarlega snjallt. Ókostir: afar dýrt miðað við flokk 1 og 2, þörf á að hugsa allt fyrirfram og taka tillit til allra smáatriða.

Flestir notendur velja valmöguleika eitt og fara síðan vel yfir í valmöguleika tvö. Og þá ná þeir þrálátustu valkosti 3.

En það er valkostur sem hægt er að kalla dreift kerfi: hvert einstakt tæki verður bæði þjónn og viðskiptavinur. Í meginatriðum er þetta tilraun til að taka og sameina valmöguleika 1 og valkost 2. Taktu alla kosti þeirra og útrýmdu göllunum, til að ná hinn gullna meðalveg.

Kannski mun einhver segja að slíkur valkostur hafi þegar verið þróaður. En slíkar ákvarðanir beinast þröngt; fyrir fólk með kunnáttu í forritun. Markmið okkar er að lækka aðgangshindrun inn í slík dreifð kerfi, bæði í formi endatækja og í formi þess að samþætta núverandi tæki inn í kerfið okkar. Þegar um hitastilli er að ræða, fjarlægir notandinn einfaldlega gamla hitastillinn sinn, setur upp snjalla og tengir núverandi skynjara við hann. Án frekari skrefa.

Við skulum skoða samþættingu inn í kerfið okkar með því að nota dæmi.

Ímyndum okkur að við höfum 8 Sonoff einingar á netinu okkar. Fyrir suma notendur mun stjórn í gegnum Sonoff skýið (flokkur 1) nægja. Sumir munu byrja að nota vélbúnað frá þriðja aðila og fara vel yfir í flokk 2. Megnið af fastbúnaði þriðja aðila virkar á sömu reglu: að flytja gögn yfir á MQTT netþjón. OpenHub, Majordomo eða önnur þjóna einum tilgangi - að sameina ólík tæki í eitt upplýsingarými sem er annaðhvort á internetinu eða á staðarneti. Þess vegna er tilvist netþjóns skylda. Þetta er þar sem aðalvandamálið kemur upp - ef þjónninn bilar hættir allt kerfið að virka sjálfstætt. Til að koma í veg fyrir þetta verða kerfin flóknari, handvirkum stjórnunaraðferðum er bætt við sem afrita sjálfvirkni ef þjónn bilar.

Við fórum aðra leið þar sem hvert tæki er sjálfbært. Þannig gegnir þjónninn ekki afgerandi hlutverki heldur stækkar aðeins virknina.

Snúum okkur aftur að hugsunartilrauninni. Tökum aftur sömu 8 Sonoff einingar og setjum Lytko fastbúnað í þær. Allar Lytko vélbúnaðar hafa virknina SSDP. SSDP er netsamskiptareglur byggðar á netsamskiptareglum fyrir auglýsingar og uppgötvun netþjónustu. Svarið við beiðni getur verið annað hvort staðlað eða útvíkkað. Til viðbótar við staðlaðar aðgerðir innihéldu við í þessu svari að búa til lista yfir tæki á netinu. Þannig finna tækin sjálf hvert annað og hvert þeirra mun hafa slíkan lista. Dæmi um SSDP blaði:

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

Eins og þú sérð í dæminu inniheldur listinn auðkenni tækis, IP-tölu á netinu, gerð eininga (í okkar tilfelli, Sonoff-hitastillir). Þessi listi er uppfærður á tveggja mínútna fresti (þetta tímabil nægir til að bregðast við kraftmiklum breytingum á fjölda tækja á netinu). Þannig fylgjumst við með tækjum sem bætt er við, breytt og gerð óvirk án nokkurra notendaaðgerða. Þessi listi er sendur í vafrann eða farsímaforritið og handritið sjálft býr til síðu með tilteknum fjölda blokka. Hver blokk samsvarar einu tæki/skynjara/stýringu. Sjónrænt lítur listinn svona út:

Lytko sameinar

En hvað ef aðrir útvarpsskynjarar eru tengdir við esp8266/esp32 í gegnum cc2530 (ZigBee) eða nrf24 (MySensors)?

Um verkefni

Það eru ýmis dreifð kerfi á markaðnum. Kerfið okkar gerir þér kleift að samþætta þeim vinsælustu.

Hér að neðan eru verkefni sem eru á einn eða annan hátt að reyna að breyta ástandinu með ósamrýmanleika mismunandi framleiðenda við hvert annað. Þetta er td. SLS hlið, MySensors eða ZESP32. ZigBee2MQTT er tengt við MQTT netþjón, svo það hentar ekki fyrir dæmið.

Einn valkostur til að innleiða MySensors er gátt byggð á ESP8266. Restin af dæmunum eru á ESP32. Og í þeim geturðu innleitt rekstrarreglu okkar um að greina og búa til lista yfir tæki.

Gerum aðra hugsunartilraun. Við erum með ZESP32 gátt eða SLS gátt, eða MySensors. Hvernig er hægt að sameina þær í einu upplýsingarými? Við munum bæta SSDP samskiptabókasafninu við staðlaðar aðgerðir þessara gátta. Þegar aðgangur er að þessum stjórnanda í gegnum SSDP mun hann bæta lista yfir tæki sem eru tengd honum við staðlað svar. Byggt á þessum upplýsingum mun vafrinn búa til síðu. Almennt séð mun það líta svona út:

Lytko sameinar
Vefviðmót

Lytko sameinar
PWA umsókn

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

Dæmið sýnir að tækjum er bætt við óháð hvort öðru. 3 hitastillar með eigin IP tölur og 5 mismunandi skynjarar með einstök auðkenni eru tengdir. Ef skynjarinn er tengdur við Wi-Fi net mun hann hafa sitt eigið IP; ef hann er tengdur við gátt, þá er IP vistfang tækisins IP vistfang gáttarinnar.

Við notum WebSocket til að hafa samskipti við tæki. Þetta gerir þér kleift að lágmarka auðlindakostnað samanborið við að fá beiðnir og fá upplýsingar á kraftmikinn hátt þegar þú tengir eða breytir.

Gögnin eru tekin beint úr tækinu sem blokkin tilheyrir, framhjá netþjóninum. Þannig að ef eitthvað af tækjunum bilar heldur kerfið áfram að starfa. Vefviðmótið sýnir bara ekki tækið sem vantar af listanum. En merki um tapið, ef nauðsyn krefur, mun koma í formi tilkynningar í forriti notandans.

Fyrsta tilraunin til að innleiða þessa nálgun var PWA forrit. Þetta gerir þér kleift að geyma blokkagrunn á tæki notandans og biðja aðeins um nauðsynleg gögn. En vegna sérkenni uppbyggingarinnar er þessi valkostur ófullnægjandi. Og það er aðeins ein leið út - innbyggt forrit fyrir Android og IOS, sem er nú í virkri þróun. Sjálfgefið er að forritið virkar aðeins á innra neti. Ef nauðsyn krefur geturðu flutt allt yfir á ytri stjórn. Svo þegar notandinn yfirgefur staðarnetið skiptir forritið sjálfkrafa yfir í skýið.

Ytri stjórn - algjör fjölföldun á síðunni. Þegar síðan er virkjuð getur notandinn skráð sig inn á netþjóninn og stjórnað tækjum í gegnum persónulegan reikning sinn. Þannig stækkar þjónninn virkni sína, sem gerir þér kleift að stjórna tækjum á meðan þú ert utan heimilis, og er ekki bundinn við framsendingu hafna eða sérstaka IP.

Þannig hefur ofangreindur valkostur ekki ókostina við netþjónnálgunina og hefur einnig ýmsa kosti í formi sveigjanleika við að tengja ný tæki.

Um hitastillinn

Við skulum skoða stjórnkerfið með hitastillinum okkar sem dæmi.

Veitt:

  1. Hitastýring fyrir hvern hitastilli (birtur sem sérstakt blokk);
  2. Stilla rekstraráætlun hitastillisins (morgun, síðdegi, kvöld, nótt);
  3. Að velja Wi-Fi net og tengja tæki við það;
  4. Uppfærsla tækisins „í loftinu“;
  5. Setja upp MQTT;
  6. Stilltu netið sem tækið er tengt við.

Lytko sameinar

Auk þess að stjórna í gegnum vefviðmótið, útvegum við hið klassíska - með því að smella á skjáinn. Það er Nextion NX3224T024 2.4 tommu skjár um borð. Valið féll á hann vegna þess hve auðvelt var að vinna með tækið. En við erum að þróa okkar eigin skjá byggt á STM32. Virkni þess er ekkert verri en Nextion, en hún mun kosta minna sem mun hafa jákvæð áhrif á lokaverð tækisins.

Lytko sameinar

Eins og allir hitastillirskjár með sjálfsvirðingu getur Nextion okkar:

  • stilltu hitastigið sem notandinn þarfnast (með því að nota hnappana til hægri);
  • kveikja og slökkva á áætlaðri notkunarstillingu (hnappur H);
  • birta gengisaðgerð (örin til vinstri);
  • er með barnavernd (líkamlegir smellir eru læstir þar til læsingin er fjarlægð);
  • sýnir styrkleika WiFi merki.

Að auki, með því að nota skjáinn geturðu:

  • veldu tegund skynjara sem notandinn setur upp;
  • stjórna barnalæsingaraðgerðinni;
  • uppfærðu vélbúnaðinn.

Lytko sameinar

Með því að smella á WiFi stikuna finnur notandinn upplýsingar um tengda netið. QR kóðinn er notaður til að para tækið í HomeKit vélbúnaðinum.

Lytko sameinar

Kynning á því að vinna með skjáinn:

Lytko sameinar

Við höfum þróað kynningarsíðu með þremur tengdum hitastillum.

Þú gætir spurt: "Hvað er sérstakt við hitastillinn þinn?" Nú á markaðnum eru margir hitastillar með Wi-Fi virkni, áætlaðri notkun og snertistýringu. Og áhugamenn hafa skrifað einingar til að hafa samskipti við vinsælustu snjallheimakerfin (Majordomo, HomeAssistant osfrv.).

Hitastillirinn okkar er samhæfður slíkum kerfum og hefur allt ofangreint. En það sem er sérstakt er að hitastillirinn er stöðugt að bæta, þökk sé sveigjanleika kerfisins. Með hverri uppfærslu mun virknin stækka. Við staðlaða kerfisstjórnunaraðferð (samkvæmt áætlun) munum við bæta við aðlögunaraðferð. Forritið gerir þér kleift að fá landfræðilega staðsetningu notandans. Þökk sé þessu mun kerfið breyta um vinnuham á virkan hátt eftir staðsetningu þess. Og veðureiningin gerir þér kleift að laga sig að veðri.

Og stækkanleiki. Hver sem er getur skipt út núverandi hefðbundnum hitastilli fyrir okkar. Með lágmarks fyrirhöfn. Við höfum valið 5 af vinsælustu skynjurunum á markaðnum og bætt við stuðningi við þá. En jafnvel þótt skynjarinn hafi einkaeiginleika, mun notandinn geta tengt hann við hitastillinn okkar. Til að gera þetta þarftu að kvarða hitastillinn til að vinna með tilteknum skynjara. Við munum veita leiðbeiningar.

Þegar hitastillir eða önnur tæki eru tengd birtist hann samtímis alls staðar: bæði í vefviðmótinu og í PWA forritinu. Að bæta við tæki á sér stað sjálfkrafa: þú þarft bara að tengja það við Wi-Fi netið.

Kerfið okkar þarf ekki netþjón og ef það mistekst breytist það ekki í grasker. Jafnvel þótt einn af íhlutunum bili, byrjar kerfið ekki að starfa í neyðartilvikum. Stýringar, skynjarar, tæki - hver þáttur er bæði þjónn og viðskiptavinur, því algjörlega sjálfstæður.

Fyrir áhugasama, samfélagsmiðlar okkar: Telegram, Instagram, Telegram fréttir, VK, Facebook.

Póstur: [netvarið]

PS Við hvetjum þig ekki til að yfirgefa netþjóninn. Við styðjum einnig MQTT netþjón og höfum okkar eigið ský. Markmið okkar er að koma stöðugleika og áreiðanleika kerfisins á nýtt stig. Þannig að þjónninn er ekki veikur punktur heldur bætir við virknina og gerir kerfið þægilegra.

Heimild: www.habr.com

Bæta við athugasemd