Литко се уједињује

Пре неког времена смо вас упознали паметни термостат. Овај чланак је првобитно замишљен као демонстрација његовог фирмвера и контролног система. Али да бисмо објаснили логику термостата и шта смо имплементирали, потребно је оцртати цео концепт у целини.

Литко се уједињује

О аутоматизацији

Уобичајено, сва аутоматизација се може поделити у три категорије:
Kategorija 1 — одвојени „паметни“ уређаји. Набављате сијалице, чајнике и сл. од различитих произвођача. Предности: Сваки уређај проширује могућности и повећава удобност. Против: Сваки нови произвођач захтева сопствену апликацију. Протоколи уређаја различитих произвођача често нису међусобно компатибилни.

Kategorija 2 — инсталација рачунара са једном плочом или компатибилног са к86. Ово уклања ограничења рачунарске снаге, а МајорДоМо или било која друга серверска дистрибуција за управљање паметним домом је инсталирана на овој машини. Тако су уређаји већине произвођача повезани у јединствен информациони простор. Оне. појављује се ваш сервер за паметни дом. Предности: компатибилност у оквиру једног центра, који пружа побољшане могућности управљања. Против: ако сервер откаже, цео систем се враћа у фазу 1, тј. постаје фрагментиран или постаје бескорисан.

Kategorija 3 - најтврдокорнија опција. У фази поправке, све комуникације су постављене и сви системи су дуплирани. Предности: све је доведено до савршенства и тада кућа постаје заиста паметна. Недостаци: изузетно скупо у поређењу са категоријама 1 и 2, потреба да се све унапред размисли и узме у обзир сваки мали детаљ.

Већина корисника бира опцију један, а затим глатко прелази на опцију два. А онда најупорнији стижу до опције 3.

Али постоји опција која се може назвати дистрибуираним системом: сваки појединачни уређај ће бити и сервер и клијент. У суштини, ово је покушај да се узму и комбинују опција 1 и опција 2. Узмите све њихове предности и елиминишете недостатке, да бисте ухватили златну средину.

Можда ће неко рећи да је таква опција већ развијена. Али такве одлуке су уско фокусиране; за људе који су паметни у програмирању. Наш циљ је да смањимо баријеру за улазак у овакве дистрибуиране системе, како у виду крајњих уређаја тако и у виду интеграције постојећих уређаја у наш систем. У случају термостата, корисник једноставно уклања свој стари термостат, инсталира паметни и на њега повезује своје постојеће сензоре. Без икаквих додатних корака.

Погледајмо интеграцију у наш систем користећи пример.

Замислимо да имамо 8 Сонофф модула на нашој мрежи. Неким корисницима ће бити довољна контрола преко Сонофф облака (категорија 1). Неки ће почети да користе фирмвер треће стране и глатко ће прећи у категорију 2. Већина фирмвера независних произвођача ради на истом принципу: пренос података на МКТТ сервер. ОпенХуб, Мајордомо или било који други служе једној сврси - да уједине различите уређаје у јединствени информациони простор који се налази или на Интернету или на локалној мрежи. Због тога је присуство сервера обавезно. Ту настаје главни проблем – ако сервер откаже, цео систем престаје да ради аутономно. Да би се ово спречило, системи постају сложенији, додају се методе ручне контроле које дуплирају аутоматизацију у случају квара на серверу.

Ишли смо другим путем, где је сваки уређај сам себи довољан. Дакле, сервер не игра одлучујућу улогу, већ само проширује функционалност.

Вратимо се мисаоном експерименту. Узмимо поново истих 8 Сонофф модула и инсталирамо фирмвер Литко у њих. Сви фирмвери Литко имају функцију ССДП. ССДП је мрежни протокол заснован на пакету Интернет протокола за оглашавање и откривање мрежних услуга. Одговор на захтев може бити стандардни или проширен. Поред стандардних функција, у овај одговор смо укључили и креирање листе уређаја на мрежи. Дакле, сами уређаји проналазе једни друге и сваки од њих ће имати такву листу. Пример ССДП листа:

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

Као што можете видети из примера, листа укључује ИД-ове уређаја, ИП адресу на мрежи, тип јединице (у нашем случају термостат заснован на Сонофф-у). Ова листа се ажурира једном на свака два минута (овај период је довољан да одговори на динамичке промене у броју уређаја на мрежи). На овај начин пратимо додане, промењене и онемогућене уређаје без икаквих радњи корисника. Ова листа се шаље у претраживач или мобилну апликацију, а сама скрипта генерише страницу са задатим бројем блокова. Сваки блок одговара једном уређају/сензору/контролеру. Визуелно листа изгледа овако:

Литко се уједињује

Али шта ако су други радио сензори повезани на есп8266/есп32 преко цц2530 (ЗигБее) или нрф24 (МиСенсорс)?

О пројектима

На тржишту постоје различити дистрибуирани системи. Наш систем вам омогућава да се интегришете са најпопуларнијим.

Испод су пројекти који на овај или онај начин покушавају да промене ситуацију са некомпатибилношћу различитих произвођача једни с другима. Ово је, на пример, СЛС Гатеваи, МиСенсорс или ЗЕСП32. ЗигБее2МКТТ је везан за МКТТ сервер, тако да није погодан за пример.

Једна опција за имплементацију МиСенсорс-а је мрежни пролаз заснован на ЕСП8266. Остали примери су на ЕСП32. И у њима можете имплементирати наш принцип рада откривања и креирања листе уређаја.

Хајде да урадимо још један мисаони експеримент. Имамо ЗЕСП32 гатеваи или СЛС Гатеваи, или МиСенсорс. Како се могу комбиновати у јединствен информациони простор? Стандардним функцијама ових мрежних пролаза ћемо додати библиотеку ССДП протокола. Када приступате овом контролеру преко ССДП-а, он ће стандардном одговору додати листу уређаја који су на њега повезани. На основу ових информација, претраживач ће генерисати страницу. Генерално ће изгледати овако:

Литко се уједињује
Веб интерфејс

Литко се уједињује
ПВА апликација

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

Пример показује да се уређаји додају независно један од другог. Повезана су 3 термостата са сопственим ИП адресама и 5 различитих сензора са јединственим ИД-овима. Ако је сензор повезан на Ви-Фи мрежу, он ће имати сопствену ИП адресу; ако је повезан на мрежни пролаз, онда ће ИП адреса уређаја бити ИП адреса мрежног пролаза.

Користимо ВебСоцкет за комуникацију са уређајима. Ово вам омогућава да минимизирате трошкове ресурса у поређењу са добијањем захтева и динамичким добијањем информација приликом повезивања или промене.

Подаци се преузимају директно са уређаја коме блок припада, заобилазећи сервер. Дакле, ако неки од уређаја поквари, систем наставља да ради. Веб интерфејс једноставно не приказује уређај који недостаје са листе. Али сигнал о губитку, ако је потребно, долази у облику обавештења у апликацији корисника.

Први покушај имплементације овог приступа била је ПВА апликација. Ово вам омогућава да сачувате базу блокова на уређају корисника и захтевате само неопходне податке. Али због специфичности структуре, ова опција је непотпуна. И постоји само један излаз - матична апликација за Андроид и ИОС, која је тренутно у активном развоју. Подразумевано, апликација ће радити само на интерној мрежи. Ако је потребно, све можете пренети на спољну контролу. Дакле, када корисник напусти локалну мрежу, апликација се аутоматски пребацује на облак.

Екстерна контрола - потпуно умножавање странице. Када је страница активирана, корисник се може пријавити на сервер и управљати уређајима преко свог личног налога. Дакле, сервер проширује своју функционалност, омогућавајући вам да управљате уређајима док сте ван куће, а не да будете везан за прослеђивање портова или наменску ИП адресу.

Дакле, горња опција нема недостатке серверског приступа, а има и низ предности у виду флексибилности у повезивању нових уређаја.

О термостату

Погледајмо контролни систем користећи наш термостат као пример.

Под условом:

  1. Контрола температуре за сваки термостат (приказује се као посебан блок);
  2. Подешавање распореда рада термостата (јутро, поподне, вече, ноћ);
  3. Избор Ви-Фи мреже и повезивање уређаја са њом;
  4. Ажурирање уређаја "преко ваздуха";
  5. Подешавање МКТТ;
  6. Конфигуришите мрежу на коју је уређај повезан.

Литко се уједињује

Поред контроле преко веб интерфејса, обезбедили смо и класичну – кликом на дисплеј. Постоји Нектион НКС3224Т024 монитор од 2.4 инча. Избор је пао на њега због лакоће рада са уређајем. Али ми развијамо сопствени монитор заснован на СТМ32. Његова функционалност није ништа лошија од Нектион-а, али ће коштати мање, што ће се позитивно одразити на коначну цену уређаја.

Литко се уједињује

Као и сваки термостатски екран који поштује себе, наш Нектион може:

  • подесите температуру коју захтева корисник (помоћу дугмади са десне стране);
  • укључите и искључите планирани режим рада (дугме Х);
  • рад дисплеја релеја (стрелица лево);
  • има заштиту за децу (физички кликови су блокирани док се брава не уклони);
  • приказује јачину ВиФи сигнала.

Поред тога, помоћу монитора можете:

  • изаберите тип сензора који је инсталирао корисник;
  • управљајте функцијом закључавања за децу;
  • ажурирајте фирмвер.

Литко се уједињује

Кликом на ВиФи траку корисник ће сазнати информације о повезаној мрежи. КР код се користи за упаривање уређаја у ХомеКит фирмверу.

Литко се уједињује

Демо рада са екраном:

Литко се уједињује

Развили смо се демо страница са три повезана термостата.

Можете питати: "Шта је посебно у вези са вашим термостатом?" Сада на тржишту постоји много термостата са Ви-Фи функцијом, планираним радом и контролом додиром. И ентузијасти су написали модуле за интеракцију са најпопуларнијим системима паметних кућа (Мајордомо, ХомеАссистант, итд.).

Наш термостат је компатибилан са таквим системима и има све наведено. Али карактеристична карактеристика је да се термостат стално побољшава, захваљујући флексибилности система. Са сваким ажурирањем функционалност ће се проширити. Стандардном начину управљања системом (према распореду) додаћемо и адаптивни. Апликација вам омогућава да добијете геолокацију корисника. Захваљујући томе, систем ће динамички мењати режиме рада у зависности од локације. А временски модул ће вам омогућити да се прилагодите временским условима.

И проширивост. Свако може да замени свој постојећи конвенционални термостат нашим. Уз минималан напор. Одабрали смо 5 најпопуларнијих сензора на тржишту и додали подршку за њих. Али чак и ако сензор има ексклузивне карактеристике, корисник ће моћи да га повеже са нашим термостатом. Да бисте то урадили, мораћете да калибришете термостат да ради са одређеним сензором. Ми ћемо дати упутства.

Када повежете термостат или било који други уређај, он се истовремено појављује свуда: и у веб интерфејсу и у ПВА апликацији. Додавање уређаја се дешава аутоматски: потребно је само да га повежете на Ви-Фи мрежу.

Наш систем не треба Сервер, а ако закаже, не претвара се у бундеву. Чак и ако једна од компоненти поквари, систем не почиње да ради у хитном случају. Контролори, сензори, уређаји - сваки елемент је и сервер и клијент, дакле потпуно аутономан.

За заинтересоване наше друштвене мреже: Telegram, инстаграм, Телеграм вести, VK, фацебоок.

Пошта: [емаил заштићен]

ПС Не подстичемо вас да напустите сервер. Такође подржавамо МКТТ сервер и имамо сопствени облак. Наш циљ је да доведемо стабилност и поузданост система на потпуно нови ниво. Тако да сервер није слаба тачка, већ допуњује функционалност и чини систем практичнијим.

Извор: ввв.хабр.цом

Додај коментар