Lytko vereenegt

Virun enger Zäit hu mir Iech virgestallt Smart Thermostat. Dësen Artikel war ursprénglech als Demonstratioun vu senger Firmware a Kontrollsystem geduecht. Awer fir d'Logik vum Thermostat z'erklären a wat mir ëmgesat hunn, ass et néideg dat ganzt Konzept als Ganzt ze skizzéieren.

Lytko vereenegt

Iwwer Automatisatioun

Konventionell kann all Automatisatioun an dräi Kategorien opgedeelt ginn:
Kategorie 1 - separat "Smart" Apparater. Dir kaaft Glühbirnen, Teapotten, asw vu verschiddene Hiersteller. Virdeeler: All Apparat erweidert d'Fäegkeeten a erhéicht de Komfort. Nodeeler: All neien Hiersteller erfuerdert seng eege Applikatioun. Protokoller vun Apparater vu verschiddene Hiersteller sinn dacks net mateneen kompatibel.

Kategorie 2 - Installatioun vun engem Single-Board PC oder x86 kompatibel. Dëst läscht Restriktiounen op Rechenkraaft, a MajorDoMo oder all aner Serververdeelung fir e Smart Doheem ze managen ass op dëser Maschinn installéiert. Sou sinn Apparater vun de meescht Hiersteller an engem eenzegen Informatiounsraum ugeschloss. Déi. Ären eegene Server fir e Smart Doheem erschéngt. Virdeeler: Kompatibilitéit ënner engem eenzegen Zentrum, wat verstäerkte Gestiounsfäegkeeten ubitt. Nodeeler: wann de Server klappt, geet de ganze System zréck op d'Bühn 1, d.h. gëtt fragmentaresch oder nëtzlos.

Kategorie 3 - déi meescht Hardcore Optioun. An der Reparaturstadium ginn all Kommunikatioun geluecht an all Systemer ginn duplizéiert. Virdeeler: alles gëtt zu Perfektioun bruecht an da gëtt d'Haus wierklech schlau. Nodeeler: extrem deier par rapport zu Kategorien 1 an 2, de Besoin fir alles am Viraus ze iwwerdenken an all klengen Detail ze berücksichtegen.

Déi meescht Benotzer wielen d'Optioun eent an réckelen dann glat op d'Optioun zwee. An dann erreechen déi persistentst Optioun 3.

Awer et gëtt eng Optioun, déi als verdeelt System bezeechent ka ginn: all eenzel Apparat gëtt souwuel e Server wéi och e Client. Wesentlech ass dëst e Versuch d'Optioun 1 an d'Optioun 2 ze huelen an ze kombinéieren. Huelt all hir Virdeeler an eliminéiert d'Nodeeler, fir de gëllene Mëttel ze fänken.

Vläicht wäert een soen datt esou eng Optioun scho entwéckelt gouf. Awer esou Entscheedunge si schmuel konzentréiert; fir Leit, déi am Programméiere sinn. Eist Zil ass et d'Barriär fir d'Entrée an esou verdeelt Systemer ze senken, souwuel a Form vun Enngeräter wéi a Form vun der Integratioun vun existente Geräter an eise System. Am Fall vun engem Thermostat läscht de Benotzer einfach säin alen Thermostat, installéiert e Smart, a verbënnt seng existent Sensoren domat. Ouni zousätzlech Schrëtt.

Loosst eis d'Integratioun an eise System mat engem Beispill kucken.

Loosst eis virstellen datt mir 8 Sonoff Moduler op eisem Netz hunn. Fir e puer Benotzer ass d'Kontroll iwwer d'Sonoff Cloud (Kategorie 1) genuch. E puer fänken un Drëtt-Partei Firmware ze benotzen a wäerte glat an d'Kategorie réckelen 2. De gréissten Deel vun Drëtt-Partei Firmware funktionnéiert um selwechte Prinzip: Daten op en MQTT Server transferéieren. OpenHub, Majordomo oder all aner déngen een Zweck - fir disparate Geräter an engem eenzegen Informatiounsraum ze verbannen, deen entweder um Internet oder op engem lokalen Netzwierk läit. Dofir ass d'Präsenz vun engem Server obligatoresch. Dëst ass wou den Haaptproblem entsteet - wann de Server klappt, stoppt de ganze System autonom ze schaffen. Fir dëst ze verhënneren, ginn d'Systeme méi komplex, manuell Kontrollmethoden ginn derbäigesat, déi d'Automatisatioun duplizéieren am Fall vun engem Serverfehler.

Mir hunn en anere Wee gemaach, wou all Apparat selbstänneg ass. De Server spillt also keng entscheedend Roll, mee erweidert nëmmen d'Funktionalitéit.

Komme mer zréck op d'Gedankenexperiment. Loosst eis déi selwecht 8 Sonoff Moduler erëm huelen an d'Lytko Firmware an hinnen installéieren. All Lytko Firmware hunn d'Funktioun SSDP. SSDP ass en Netzwierkprotokoll baséiert op der Internet Protokoll Suite fir Reklammen an Entdeckung vun Netzwierkservicer. D'Äntwert op eng Ufro kann entweder Standard oder verlängert ginn. Zousätzlech zu Standardfunktiounen hu mir an dëser Äntwert d'Schafung vun enger Lëscht vun Apparater am Netz abegraff. Also, d'Apparater selwer fannen all aner, a jidderee vun hinnen wäert esou eng Lëscht hunn. Beispill SSDP Blat:

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

Wéi Dir aus dem Beispill kënnt gesinn, enthält d'Lëscht Apparat IDen, IP Adress am Netz, Eenheetstyp (an eisem Fall e Sonoff-baséierten Thermostat). Dës Lëscht gëtt eemol all zwou Minutten aktualiséiert (dës Period ass genuch fir op dynamesch Ännerungen an der Unzuel vun Apparater am Netz ze reagéieren). Op dës Manéier verfollege mir Geräter déi bäigefüügt, geännert a behënnert sinn ouni Benotzeraktioun. Dës Lëscht gëtt un de Browser oder mobil Applikatioun geschéckt, an de Skript selwer generéiert eng Säit mat enger bestëmmter Unzuel vu Blocken. All Block entsprécht engem Apparat / Sensor / Controller. Visuell gesäit d'Lëscht esou aus:

Lytko vereenegt

Awer wat wann aner Radiosensoren mat dem esp8266 / esp32 iwwer cc2530 (ZigBee) oder nrf24 (MySensors) verbonne sinn?

Iwwer Projeten

Et gi verschidde verdeelt Systemer um Maart. Eise System erlaabt Iech mat de beléifsten ze integréieren.

Drënner sinn Projeten déi eng oder aner Manéier probéieren d'Situatioun mat der Inkompatibilitéit vu verschiddene Hiersteller mateneen ze änneren. Dëst ass z.B. SLS Gateway, MySensoren oder ZESP 32. ZigBee2MQTT ass un engem MQTT Server gebonnen, also ass et net gëeegent fir d'Beispill.

Eng Optioun fir MySensors ëmzesetzen ass e Paart baséiert op der ESP8266. De Rescht vun de Beispiller sinn op ESP32. An an hinnen kënnt Dir eise Betribsprinzip implementéieren fir eng Lëscht vun Apparater z'entdecken an ze kreéieren.

Loosst eis en anert Gedankenexperiment maachen. Mir hunn en ZESP32 Gateway oder SLS Gateway, oder MySensors. Wéi kënne se an engem eenzegen Informatiounsraum kombinéiert ginn? Mir addéieren d'SSDP Protokollbibliothéik un d'Standardfunktiounen vun dëse Paarte. Wann Dir Zougang zu dësem Controller iwwer SSDP kritt, füügt et eng Lëscht vun Apparater un, déi mat der Standardreaktioun verbonne sinn. Baséierend op dës Informatioun generéiert de Browser eng Säit. Am Allgemengen wäert et esou ausgesinn:

Lytko vereenegt
Web Interface

Lytko vereenegt
PWA Applikatioun

"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'Beispill weist datt Geräter onofhängeg vunenee bäigefüügt ginn. 3 Thermostate mat hiren eegene IP Adressen a 5 verschidde Sensoren mat eenzegaartegen IDen sinn ugeschloss. Wann de Sensor mat engem Wi-Fi Netz ugeschloss ass, huet en säin eegene IP; wann et mat engem Paart verbonnen ass, da wäert d'IP Adress vum Apparat d'IP Adress vum Paart sinn.

Mir benotzen WebSocket fir mat Apparater ze kommunizéieren. Dëst erlaabt Iech Ressourcekäschten ze minimiséieren am Verglach fir Ufroen ze kréien an dynamesch Informatioun ze kréien wann Dir verbënnt oder ännert.

D'Donnéeë ginn direkt vum Apparat geholl, op deem de Block gehéiert, andeems de Server ëmgeet. Also, wann ee vun den Apparater klappt, fiert de System weider. D'Web-Interface weist just net de fehlend Apparat aus der Lëscht. Awer e Signal iwwer de Verloscht, wann néideg, kënnt a Form vun enger Notifikatioun an der Applikatioun vum Benotzer.

Den éischte Versuch fir dës Approche ëmzesetzen war eng PWA Applikatioun. Dëst erlaabt Iech eng Blockbasis um Apparat vum Benotzer ze späicheren an nëmmen déi néideg Donnéeën ze froen. Awer wéinst de Besonderheeten vun der Struktur ass dës Optioun onkomplett. An et gëtt nëmmen ee Wee eraus - eng gebierteg Applikatioun fir Android an IOS, déi am Moment ënner aktiv Entwécklung ass. Par défaut funktionnéiert d'Applikatioun nëmmen am internen Netzwierk. Wann néideg, kënnt Dir alles op extern Kontroll iwwerdroen. Also, wann de Benotzer de lokalen Netzwierk verléisst, wiesselt d'Applikatioun automatesch op d'Wollek.

Extern Kontroll - komplett Duplikatioun vun der Säit. Wann d'Säit aktivéiert ass, kann de Benotzer op de Server aloggen an Apparater iwwer säi perséinleche Kont verwalten. Also erweidert de Server seng Funktionalitéit, wat Iech erlaabt Geräter ausserhalb vum Heem ze verwalten an net un Port Forwarding oder eng speziell IP gebonnen ze sinn.

Also huet déi uewe genannte Optioun net d'Nodeeler vun der Server Approche, an huet och eng Rei vu Virdeeler a Form vu Flexibilitéit bei der Verbindung vun neien Apparater.

Iwwer den Thermostat

Loosst eis de Kontrollsystem kucken mat eisem Thermostat als Beispill.

Virgesinn:

  1. Temperaturkontrolle fir all Thermostat (als separat Block ugewisen);
  2. Astellung vum Thermostat Operatiounsplang (Moien, Nomëtteg, Owend, Nuecht);
  3. Wielt e Wi-Fi Netzwierk an verbënnt en Apparat domat;
  4. Aktualiséierung vum Apparat "iwwer der Loft";
  5. Ariichten MQTT;
  6. Konfiguréiert de Reseau mat deem den Apparat ugeschloss ass.

Lytko vereenegt

Zousätzlech fir iwwer d'Webinterface ze kontrolléieren, hu mir de klassesche geliwwert - andeems Dir op den Ecran klickt. Et gëtt en Nextion NX3224T024 2.4-Zoll Monitor u Bord. De Choix ass op him gefall wéinst der Liichtegkeet mam Apparat ze schaffen. Awer mir entwéckelen eisen eegene Monitor baséiert op STM32. Seng Funktionalitéit ass net méi schlëmm wéi déi vun Nextion, awer et wäert manner kaschten, wat e positiven Impakt op den definitiven Präis vum Apparat wäert hunn.

Lytko vereenegt

Wéi all selbst respektéierend Thermostatbildschierm, kann eis Nextion:

  • Setzt d'Temperatur erfuerderlech vum Benotzer (mat de Knäppercher op der rietser Säit);
  • de geplangten Operatiounsmodus un an ausschalten (Knäppchen H);
  • Display Relais Operatioun (Pfeil op der lénker Säit);
  • huet Kannerschutz (kierperlech Klicks si blockéiert bis d'Spär ewechgeholl gëtt);
  • weist WiFi Signal Kraaft.

Zousätzlech, mat dem Monitor kënnt Dir:

  • wielt den Typ vum Sensor installéiert vum Benotzer;
  • d'Kand Spär Fonktioun managen;
  • update der Firmware.

Lytko vereenegt

Andeems Dir op d'WiFi Bar klickt, fënnt de Benotzer Informatiounen iwwer de verbonne Netzwierk. De QR Code gëtt benotzt fir den Apparat an der HomeKit Firmware ze koppelen.

Lytko vereenegt

Demo fir mam Display ze schaffen:

Lytko vereenegt

Mir hunn entwéckelt Demo Säit mat dräi verbonne thermostats.

Dir kënnt froen: "Wat ass speziell un Ären Thermostat?" Elo um Maart ginn et vill Thermostate mat Wi-Fi Funktioun, geplangten Operatioun, an Touch Kontroll. An Enthusiaster hunn Moduler geschriwwen fir mat de populärste Smart Home Systemer ze interagéieren (Majordomo, HomeAssistant, etc.).

Eis Thermostat ass kompatibel mat esou Systemer an huet all déi uewe genannten. Awer déi ënnerschiddlech Feature ass datt den Thermostat stänneg verbessert gëtt, duerch d'Flexibilitéit vum System. Mat all Update gëtt d'Funktionalitéit erweidert. Fir d'Standardmethod vum Systemmanagement (no engem Zäitplang), addéiere mir eng adaptiv. D'Applikatioun erlaabt Iech d'Geolocatioun vum Benotzer ze kréien. Dank dësem wäert de System dynamesch Operatiounsmodi änneren jee no senger Positioun. An de Wiedermodul erlaabt Iech un d'Wiederkonditiounen unzepassen.

An expandability. Jidderee kann hiren existente konventionellen Thermostat duerch eis ersetzen. Mat minimalem Effort. Mir hunn 5 vun de populäersten Sensoren um Maart ausgewielt an Ënnerstëtzung fir si bäigefüügt. Awer och wann de Sensor exklusiv Charakteristiken huet, kann de Benotzer et mat eisem Thermostat verbannen. Fir dëst ze maachen, musst Dir den Thermostat kalibréieren fir mat engem spezifesche Sensor ze schaffen. Mir ginn Instruktioune.

Wann Dir en Thermostat oder all aner Apparat verbënnt, erschéngt et gläichzäiteg iwwerall: souwuel am Webinterface wéi an der PWA Applikatioun. En Apparat bäizefügen geschitt automatesch: Dir musst et just mam Wi-Fi Netzwierk verbannen.

Eise System brauch keen Server, a wann et klappt, gëtt et net zu engem Kürbis. Och wann ee vun de Komponente feelt, fänkt de System net an engem Noutfallszenario un. Controller, Sensoren, Apparater - all Element ass souwuel e Server wéi och e Client, also komplett autonom.

Fir déi interesséiert, eis sozial Netzwierker: Hëllefe profitéieren, Instagram, Telegram Neiegkeeten, VK, Facebook.

Postbüro: [Email geschützt]

PS Mir encouragéieren Iech net de Server opzeginn. Mir ënnerstëtzen och en MQTT Server an hunn eis eege Wollek. Eist Zil ass d'Stabilitéit an Zouverlässegkeet vum System op e ganz neien Niveau ze bréngen. Also datt de Server net e schwaache Punkt ass, awer d'Funktionalitéit ergänzt an de System méi bequem mécht.

Source: will.com

Setzt e Commentaire