Turinys:

IOT123 - ASIMILIUOTOJO JUTIKLIO HUB: ICOS10 CORS TINKLAKOMPONENTAI: 8 žingsniai
IOT123 - ASIMILIUOTOJO JUTIKLIO HUB: ICOS10 CORS TINKLAKOMPONENTAI: 8 žingsniai

Video: IOT123 - ASIMILIUOTOJO JUTIKLIO HUB: ICOS10 CORS TINKLAKOMPONENTAI: 8 žingsniai

Video: IOT123 - ASIMILIUOTOJO JUTIKLIO HUB: ICOS10 CORS TINKLAKOMPONENTAI: 8 žingsniai
Video: IOT123 - BYKO LIVE RIDE 2024, Liepa
Anonim
IOT123 - ASIMILIUOTI JUTIKLIO HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - ASIMILIUOTI JUTIKLIO HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - ASIMILIUOTI JUTIKLIO HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - ASIMILIUOTI JUTIKLIO HUB: ICOS10 CORS WEBCOMPONENTS

ASSIMILATE SENSOR/ACTOR Slaves įterpia metaduomenis, kurie naudojami apibrėžiant vizualizacijas Crouton. Ši konstrukcija šiek tiek skiriasi nuo ankstesnių; aparatūros pakeitimų nėra. Programinė įranga dabar palaiko pritaikytų (turtingesnių) redaktorių, kuriuos galima integruoti į naujausią „AssimilateCrouton“versiją, prieglobą. Šiame straipsnyje daugiau dėmesio bus skirta programinės įrangos ir MQTT prietaisų skydelio paaiškinimui.

Vienas iš žiniatinklio komponentų aptarnavimo iš valdomo įrenginio pranašumų yra tas, kad pažangesnis įrenginio valdymas galimas tik tinkle, prie kurio įrenginys prijungtas: jūsų „WiFi“prieigos taške. Nors kai naudojate MQTT serverį su autentifikavimu, apsauga yra panaši, tačiau viešuosiuose tinkluose, jei akimirksniu paliksite naršyklę („AssimilateCrouton“svetainė), kažkas gali prisijungti ir valdyti jūsų automatikos įrenginius. Ši CORS žiniatinklio komponento funkcija leidžia rodmenis (temperatūra, apšvietimo lygis, drėgmė) rodyti viešai ir komandų funkcijas (įjungti/išjungti, planavimą) tik prietaisu tinkle.

Įrenginyje vis dar palaikomos visos žiniatinklio serverio funkcijos su autentifikavimu ir priegloba SPIFFS, tačiau ypatingas dėmesys buvo skiriamas CORS (Cross Origin Resource Sharing) palaikymui, skirtam „Polymer WebComponents“(„Crouton“naudoja „Polymer 1.4.0“).

„AssimilateCrouton“(„Crouton“šakutė, naudojama „Assimilate IOT Network“) pakeitimai apima

  • įrenginio kortelės („assim-device“) palaikymas, kuris, be kita ko, parodo ir slepia vartotojui atskiras įrenginio korteles
  • informacijos ypatybė visose kortelėse, kurioje rodoma toste naudingos kortelės kontekstinės informacijos
  • CORS žiniatinklio komponentų palaikymas, šiuo atveju priglobtas įrenginio žiniatinklio serveryje (ESP8266).

1 žingsnis: KROUTONAS

KROUTONAS
KROUTONAS
KROUTONAS
KROUTONAS

„Croutonis“prietaisų skydelis, leidžiantis vizualizuoti ir valdyti savo IOT įrenginius su minimalia sąranka. Iš esmės tai yra paprasčiausias prietaisų skydelis, kurį gali nustatyti bet kuris IOT aparatūros entuziastas, naudodamas tik MQTT ir JSON.

ASSIMILATINIAI VERGIAI (jutikliai ir veikėjai) turi įterptus metaduomenis ir savybes, kurias meistras naudoja kurdamas įrenginio informaciją „infos json“, kurią „Crouton“naudoja kurdamas prietaisų skydelį. Tarpininkas tarp ASSIMILATE NODES ir „Crouton“yra MQTT brokeris, kuris yra draugiškas interneto lizdams: demonstravimui naudojamas Mosquito.

Kadangi ASSIMILATE MASTER prašo ypatybių, jis formuoja atsakymo reikšmes reikiamu formatu, kad atnaujintų „Crouton“. „AssimilateCrouton“šakutė papildo kai kurias funkcijas, leidžiančias decentralizuoti jūsų įrenginį veikiančias verslo taisykles, ty IOT įrenginiui nereikia jokių įterptųjų verslo taisyklių, tai tik MQTT/I2C ryšio kanalas protingesniems (ATTINY valdomiems) vergams ir jutikliams.

2 žingsnis: ASIMILIUOKITE KROUTONĄ

ASIMILIUOTI KROUTONAS
ASIMILIUOTI KROUTONAS

KROUTONO PAKEITIMAI

Šakinės versijos pakeitimai apima:

  • jei galutiniame taške yra apibrėžta kelio ypatybė, kortelės žiniatinklio komponentas atliks HTMLImport CORS ištekliui (šio komponavimo ESP8266 žiniatinklio serveris).
  • visi ištekliai, esantys prieš CORS žiniatinklio komponentą (priklausomybę), yra nurodomi taip, tarsi jie būtų teikiami iš „Crouton“svetainės; kai jiems nepavyksta įkelti išimčių tvarkytojo, jis perkelia kelius ir įkelia iš svetainės.
  • dabartinis vietos laikas rodomas viršuje dešinėje, tai naudinga planuojant patvirtinimą.

POLIMERINĖS PRIKLAUSOMYBĖS IR CORS

Polimerų priklausomybės medžio lapai gali būti priglobti CORS. Kadangi pagrindinės priklausomybės programoje gali būti naudojamos kelis kartus, jų negalima nurodyti iš dviejų vietų (svetainės ir įrenginio), nes „Polymer Module Loader“jas laiko dviem atskirais ištekliais ir daugybe registracijos klaidų greitai užklumpa programą.

Dėl šios priežasties kortelės žiniatinklio komponentas (HTML failas 1.4.0) ir susijęs CSS failas yra vieninteliai įrenginyje priglobti failai. Kitos priklausomybės nurodomos taip, tarsi žiniatinklio komponentas būtų priglobtas kilmės svetainės aplanke „html“, o tai leidžia lengvai kurti to aplanko žiniatinklio komponentus, kol jie nebus paruošti įkelti į SPIFFS naudojant ESP8266. „AssimilateCrouton“išsiaiškins, kaip gauti teisingus failus.

PLĖTIMAS

„Edfungus“originalaus „Crouton“kūrėjas parašė šaltinį „Pug/Less“ir turėjo „NPM/Grunt“įrankių grandinę. Aš padariau „Pug/Less“kaip HTML/css ir tiesiog redagavau/platinau pateiktus failus. Tai sulaužė NPM/Grunt įrankių grandinę. Tai ištaisoma skyriuje ATEITIS.

Prietaisų skydelį galite išbandyti savo DEV dėžutėje:

  • Iš komandinės eilutės šakniniame aplanke
  • npm pradžia
  • „Lite-server“yra sukurtas https:// localhost: 10001

Diegti į statinį žiniatinklio serverį:

  • nukopijuokite visus aplankus, išskyrus node_modules
  • kopijuoti index.html (ir galbūt web.config)

ATEITIS

Vienas iš pagrindinių tikslų yra atnaujinti į „Polymer3“ir dirbti iš „Polymer CLI“. Didelis prioritetas yra pridėti pažangių redaktorių ir sistemą, kad IOT kūrėjai galėtų kurti savo. Galų gale pažangi automatinė sistema bus visiškai paleista iš atsietų MQTT klientų, tokių kaip „AssimilateCrouton“.

„AssimilateCrouton“naudojamo „deviceInfo“paketo pavyzdys:

{
"deviceInfo": {
"endPoints": {
"CC_ prietaisas": {
"device_name": "ash_mezz_A3",
"card-type": "assim-device",
"ssid": "Corelines_2",
"ip_addr": "192.168.8.104",
"baigtys": [
{
"title": "Grow Lights",
"card-type": "crouton-simple-toggle",
"galutinis taškas": "jungiklis"
},
{
"title": "Sodinamosios lemputės",
"kortelės tipas": "crouton-assim-weekview",
"endpoint": "CC_switch"
}
]
},
"CC_jungiklis": {
"card-type": "assim-weekview",
"info": "Įjunkite arba išjunkite šviesą per 15 minučių laiko tarpą",
"kelias": "https://192.168.8.104/cors",
"title": "Sodinamosios lemputės",
"interval_mins": 15,
"vertės": {
"vertė": ""
}
},
"jungiklis": {
"title": "Grow Lights",
"card-type": "crouton-simple-toggle",
"info": "Ad hoc įjunkite arba išjunkite šviesas",
"etiketės": {
"false": "OFF",
"tiesa": "ĮJUNGTA"
},
"piktogramos": {
"false": "sun-o",
"tiesa": "saulė"
},
"vertės": {
„vertė“: 0
}
}
},
"statusas": "geras",
"pavadinimas": "ash_mezz_A3",
"description": "Biuras Ashmore, Mezzanine, A2 zona",
"spalva": "#4D90FE"
}
}

peržiūrėkite „rawdeviceInfo.json“, kurį su „❤“priglobia „GitHub“

3 žingsnis: ĮRENGINIO SURINKIMAS

ĮRENGINIŲ SURINKIMAS
ĮRENGINIŲ SURINKIMAS
ĮRENGINIŲ SURINKIMAS
ĮRENGINIŲ SURINKIMAS
ĮRENGINIŲ SURINKIMAS
ĮRENGINIŲ SURINKIMAS

Kadangi nėra techninės įrangos pakeitimų, čia yra nuorodos į atitinkamą informaciją:

  • Korpuso surinkimas
  • Medžiagos ir įrankiai
  • MCU paruošimas
  • MCU būsto paruošimas
  • Slave žemos pusės jungiklio/RESET dukterinės plokštės kūrimas
  • Pagrindinių komponentų surinkimas

4 žingsnis: FIRMWARE

FIRMO ĮRANGA
FIRMO ĮRANGA
FIRMO ĮRANGA
FIRMO ĮRANGA
FIRMO ĮRANGA
FIRMO ĮRANGA
FIRMO ĮRANGA
FIRMO ĮRANGA

PAGRINDINIAI ŠIO PASTATO PAKEITIMAI

Kad programa „AssimilateCrouton“galėtų naudoti CORS išteklius iš įrenginio, atsakymų antraštes reikėjo sukonfigūruoti tam tikru būdu. Tai buvo įgyvendinta šioje programinės įrangos versijoje (static_server.ino => server_file_read ()).

Taip pat pagrindinė polimero priklausomybės diagrama turėjo būti iš vienos kilmės. Buvo naudojama strategija, skirta pridėti klaidų tvarkyklę (corsLinkOnError) prie SPIFFS CORS failų, kad būtų galima iš naujo įkelti išteklius iš „AssimilateCrouton“svetainės, kai jie nerandami įrenginyje.

Į SPIFFS failų sistemą įtrauktos 2 naujos konvencijos, skirtos pritaikyti „deviceInfo“sukurtus galinius taškus, kuriuos „AssimilateCrouton“naudoja kuriant prietaisų skydelio korteles:

  • /config/user_card_base.json Galinio taško apibrėžimas, pirmiausia pakeitus vykdymo laiko kintamuosius:,,. Paprastai čia bus pridėta įrenginio kortelė. Tai nebendrauja su įrenginiu.
  • /config/user_card_#.json Galinio taško apibrėžimas, pirmiausia pakeitus vykdymo laiko kintamuosius:,,. Paprastai tokie turtingi redaktoriai, kaip antai savaitės peržiūros kortelė, bus prijungti prie „I2C“vergo (aktoriaus/jutiklio), susijusio su #.

ESKYBAS/BIBLIOTEKOS

Šiame etape projektas buvo supakuotas kaip „AssimilateBus Arduino“bibliotekos pavyzdys. Tai daugiausia skirta tam, kad visi reikalingi failai būtų lengvai prieinami iš „Arduino IDE“. Pagrindiniai kodo artefaktai yra šie:

  • mqtt_crouton_esp8266_cors_webcomponents.ino - pagrindinis įėjimo taškas.
  • assimilate_bus.h/assimilate_bus.cpp - biblioteka, kuri tvarko I2C ryšį su Slave Sensor/Actors
  • VizJson.h/VizJson.cpp - biblioteka, kuri formuoja/kuria bet kurį JSON, paskelbtą per MQTT
  • config.h/config.cpp - biblioteka, kuri skaito/dėžutes/rašo konfigūracijos failus SPIFFS
  • static_i2c_callbacks.ino - gaunamo turto I2C skambučiai, o vergų užklausų ciklas baigtas static_mqtt.ino - MQTT funkcijos
  • static_server.ino - žiniatinklio serverio funkcijos
  • static_utility.ino - pagalbinės funkcijos

Statinės INO funkcijos buvo naudojamos (vietoj bibliotekų) dėl įvairių priežasčių, bet daugiausia tam, kad žiniatinklio serverio ir MQTT funkcijos galėtų gerai veikti kartu.

SPIFFŲ IŠTEKLIAI

Išsamius SPIFFS failų paaiškinimus rasite čia.

  • favicon.ico - „Ace Editor“naudojamas šaltinis
  • konfig

    • device.json - įrenginio konfigūracija („Wifi“, MQTT …)
    • slave_metas _#. json - generuojamas vykdant kiekvieną vergo adreso numerį (#)
    • user_card _#. json - pasirinktinis galinis taškas, kuris turi būti integruotas į „DeviceInfo“kiekvienam vergo adreso numeriui (#)
    • user_card_base.json - pasirinktinis galinis taškas, kuris turi būti integruotas į įrenginio „deviceInfo“
    • user_meta _#. json - pasirinktiniai metaduomenys pakeičia kiekvieno vergo adreso numerio vergų duomenis (#)
    • user_props.json - pasirinktiniai nuosavybės pavadinimai, norintys nepaisyti vergų metaduomenų pavadinimų
  • šerdys

    • card -webcomponent.css - įvairių pasirinktinių kortelių stilių lapas
    • card -webcomponent.html - įvairių pasirinktinių kortelių žiniatinklio komponentas
  • redaktorius

    • assimilate -logo-p.webp" />
    • edit.htm.gz - „Ace Editor HTML“gzip
    • edit.htm.src - originalus „Ace Editor“HTML
    • favicon -32x32-p.webp" />

FIRMO ĮRANGOS ĮKELIMAS

  • Kodo saugyklą rasite čia (momentinė nuotrauka).
  • Bibliotekos pašto adresą rasite čia (momentinė nuotrauka).
  • „ZIP bibliotekos importavimo“instrukcijos čia.
  • Įdiegę biblioteką, galite atidaryti pavyzdį „mqtt_crouton_esp8266_cors_webcomponents“.
  • „Arduino“nustatymo „Wemos D1 Mini“instrukcijos čia.
  • Priklausomybės: „ArduinoJson“, „TimeLib“, „PubSubClient“, „NeoTimer“(žr. Priedus, jei pažeidžiami saugyklų pakeitimai).

ĮKELTI Į SPIFFS

Kai kodas bus įkeltas į „Arduino IDE“, duomenų/konfigūracijos aplanke atidarykite device.json:

  • Pakeiskite „wifi_ssid“vertę naudodami „WiFi“SSID.
  • Pakeiskite „wifi_key“vertę naudodami „WiFi“raktą.
  • Pakeiskite „mqtt_device_name“reikšmę naudodami pageidaujamą įrenginio identifikavimą (nereikia prisijungti).
  • Pakeiskite „mqtt_device_description“vertę naudodami pageidaujamą įrenginio aprašą („Crouton“).
  • Išsaugoti device.json.
  • Įkelkite duomenų failus į SPIFFS.

Pagrindinis „AssimilateBus“pavyzdžio įėjimo taškas:

/*
*
*JŪSŲ ĮRENGINIO VERSLO TAISYKLĖS TIKĖTIS BŪTI KONTROLIUJAMOS MQTT - NEPRIKLAUSOMA Į ŠIĄ FIRMO ĮRANGĄ
*
* Išskyrus sąranką ir kilpą šiame faile
* svarbios judančios dalys
* on_bus_received ir on_bus_complete į static_i2c_callbacks.ino
* ir
* „mqtt_publish“ir „mqtt_callback“static_mqtt.ino
*
*/
#include "types.h"
#įtraukti „VizJson.h“
#include "asimiliuoti_bus.h"
#include "debug.h"
#include "config.h"
#įtraukti

#įtraukti

// nustatykite MQTT_MAX_PACKET_SIZE į ~ 3000 (arba jūsų poreikius įrenginiui informacija)

#įtraukti
#įtraukti
#įtraukti
#įtraukti
#įtraukti
// -------------------------------- ATMINTIES DEKLARACIJOS
// ------------------------------------------------ - apibrėžia
#defineDBG_OUTPUT_FLAG2 // 0, 1, 2 MINIMALUM, IŠLEISTI, PILNAS
#define_mqtt_pub_topic "siunčiamieji" // KROUTONO SUSITARIMAI
#define_mqtt_sub_topic „gautieji“
// ------------------------------------------------ - klasės objektai
Derinti _debug (DBG_OUTPUT_FLAG);
AssimilateBus _asimilate_bus;
VizJson _viz_json;
Config _config_data;
„WiFiClient“_esp_client;
PubSubClient _client (_esp_client);
„WiFiUDP Udp“;
ESP8266WebServer _server (80);
Neotimer _timer_property_request = Neotimer (5000);
// ------------------------------------------------ - duomenų struktūros / kintamasis
RuntimeDeviceData _runtime_device_data;
PropertyDto _dto_props [50]; // maks. 10 vergų x maks. 5 savybės
// ------------------------------------------------ - kontroliuoti srautą
volatilebool _sent_device_info = klaidinga;
baitas _dto_props_index = 0;
bool _fatal_error = klaidinga;
// -------------------------------- FUNKCIJŲ APIMTIS DEKLARACIJOS
// ------------------------------------------------ - static_i2c_callbacks.ino
voidon_bus_received (baitas slave_address, byte prop_index, Vaidmens vaidmuo, char name [16], char value [16]);
voidon_bus_complete ();
// ------------------------------------------------ - static_mqtt.ino
voidmqtt_callback (char* tema, baitas* naudingoji apkrova, unsignedint ilgis);
voidmqtt_loop ();
int8_tmqtt_get_topic_index (char* tema);
voidmqtt_init (constchar* wifi_ssid, constchar* wifi_password, constchar* mqtt_broker, int mqtt_port);
voidmqtt_create_subscriptions ();
voidmqtt_publish (char *root_topic, char *deviceName, char *galinis taškas, constchar *naudingoji apkrova);
boolmqtt_ensure_connect ();
voidmqtt_subscribe (char *root_topic, char *deviceName, char *endpoint);
voidi2c_set_and_get (baitų adresas, baitų kodas, constchar *param);
// ------------------------------------------------ - static_server.ino
Styginių serverio_turinio_tipo_getas (eilutės failo pavadinimas);
boolserver_path_in_auth_exclusion (eilutės kelias);
boolserver_auth_read (eilutės kelias);
boolserver_file_read (eilutės kelias);
voidserver_file_upload ();
voidserver_file_delete ();
voidserver_file_create ();
voidserver_file_list ();
voidserver_init ();
voidtime_services_init (char *ntp_server_name, byte time_zone);
time_tget_ntp_time ();
voidsend_ntp_packet (IPAddress & address);
char *time_stamp_get ();
// ------------------------------------------------ - static_utility.ino
Styginių spiffs_file_list_build (eilutės kelias);
voidreport_deserialize_error ();
voidreport_spiffs_error ();
boolcheck_fatal_error ();
boolget_json_card_type (baitas slave_address, byte prop_index, char *card_type);
boolget_struct_card_type (baitų vergo_adresas, baitų prop_indeksas, char *kortelės tipas);
boolget_json_is_series (baitas slave_address, baitas prop_index);
voidstr_replace (char *src, constchar *oldchars, char *newchars);
baitas get_prop_dto_idx (baitas slave_address, baitas prop_index);
// --------------------------------- PAGRINDINIS
voidsetup () {
DBG_OUTPUT_PORT.begin (115200);
SetupDeviceData device_data;
Serial.println (); Serial.println (); // marža konsolės šiukšlėms
vėlavimas (5000);
jei (DBG_OUTPUT_FLAG == 2) DBG_OUTPUT_PORT.setDebugOutput (tiesa);
_debug.out_fla (F („sąranka“), tiesa, 2);
// gauti reikiamą konfigūraciją
if (SPIFFS.begin ()) {
_debug.out_str (spiffs_file_list_build ("/"), tiesa, 2);
if (! _config_data.get_device_data (įrenginio_datai, _runtime_device_data)) {
report_deserialize_error ();
grįžti;
}
}Kitas{
report_spiffs_error ();
grįžti;
}
// naudoti įrenginyje device.json nustatytą laikmačio reikšmę
_timer_property_request.set (device_data.sensor_interval);
„mqtt_init“(įrenginio_datai.wifi_sid, įrenginio_datai.wifi_raktas, įrenginio_data.mqtt_broker, įrenginio_datai.mqtt_portas);
time_services_init (prietaiso_datos.ntp_serverio_pavadinimas, prietaiso_datos.laiko_zona);
server_init ();
// pradėti metaduomenų rinkinį
_asimiliuoti_bus.get_metadata ();
_assimilate_bus.print_metadata_details ();
mqtt_ensure_connect ();
// reikalinga jutiklio ypatybė (pavadinimai), kad būtų galima surinkti metaduomenis
_assimilate_bus.get_properties (on_bus_received, on_bus_complete);
_timer_property_request.reset (); // gali praleisti pastebimą laiką iki šio momento, todėl pradėkite jį iš naujo
}
voidloop () {
if (! check_fatal_error ()) return;
mqtt_loop ();
_server.handleClient ();
if (_timer_property_request.repeat ()) {
_assimilate_bus.get_properties (on_bus_received, on_bus_complete);
}
}

peržiūrėkite rawmqtt_crouton_esp8266_cors_webcomponents.ino, kurį „GitHub“priglobia kartu su ❤

5 veiksmas: ĮRENGINIO KORTELĖ

ĮRENGINIO KORTELĖ
ĮRENGINIO KORTELĖ
ĮRENGINIO KORTELĖ
ĮRENGINIO KORTELĖ
ĮRENGINIO KORTELĖ
ĮRENGINIO KORTELĖ
ĮRENGINIO KORTELĖ
ĮRENGINIO KORTELĖ

Įrenginio kortelė (kortelės tipas: assim-device) yra priglobta svetainėje ir nebūtina jos pateikti iš įrenginio (CORS).

Jo numatytieji puslapių sąrašai:

  • MQTT temos skaitymui ir rašymui įrenginyje
  • Prieigos taškas, prie kurio prijungtas įrenginys
  • Nuoroda į SPIFFS failų redaktorių, priglobtą įrenginyje naudojant ACE EDITOR
  • Akies piktograma, rodanti puslapį Rodyti/slėpti kortelę.

Rodyti/slėpti kortelės puslapių sąrašus:

  • Kiekviena kortelė kaip atskiras elementas
  • Parodomas paryškintas mėlynas šriftas
  • Paslėptas juodas įprastas šriftas
  • Piktograma, vaizduojanti kortelės tipą.

Kortelę galima paslėpti spustelėjus kortelių mygtuką „Slėpti“arba sąraše spustelėjus mėlynai paryškintą šriftą. Kortelės gali būti parodytos spustelėjus juodo įprasto šrifto elementą sąraše.

Su šia funkcija laisvai susijęs informacinis tostas. Jei bet kuriam „deviceInfo“galutiniam taškui priskirta informacijos ypatybė, informacijos mygtukas bus rodomas šalia kortelės paslėpimo mygtuko. Spustelėjus galinėje dalyje apibrėžtą kontekstinę informaciją, ji bus „paskrudinta“į langą.

Jei įrenginio kortelė nėra apibrėžta, slėpimo mygtukai nebus rodomi kortelėse. Taip yra todėl, kad vieną kartą paslėpus nėra galimybės jų parodyti.

Žiūrėkite ENDPOINT CUSTOMIZATION, kad sužinotumėte, kaip įrenginio kortelę galima pridėti naudojant SPIFFS failus, esančius ESP8266.

„AssimilateCrouton“žiniatinklio komponentas

geležies signalai>
div>
RODYTI SLĖPTĄ PIKRONĄ
i> span>
ĮRENGINIO FORMA
MQTT TEMOSdiv>
/outbox/{{endPointJson.device_name}}/*div>
/inbox/{{endPointJson.device_name}}/*div>
WIFI SSIDdiv>
{{endPointJson.ssid}} div>
IP ADDRESSdiv>
{{endPointJson.ip_addr}} a> div>
div>
RODYTI SLĖPTŲ SĄRAŠĄ
elementas>popierinis elementas>
šablonas>
popierinis sąrašas>
div>
crouton-card>
šablonas>
dom-modulis>

Peržiūrėkite rawassim-device.html, kurį priglobė „GitHub“❤

6 veiksmas: SAVAITGALIO KORTELĖ

SAVAITGALIO KORTELĖ
SAVAITGALIO KORTELĖ
SAVAITGALIO KORTELĖ
SAVAITGALIO KORTELĖ
SAVAITGALIO KORTELĖ
SAVAITGALIO KORTELĖ

Savaitės peržiūros kortelė (kortelės tipas: assim-weekview) priglobta įrenginyje (aplankas cors). Jis suleidžiamas į „deviceInfo“paketą, paskelbtą „AssimilateCrouton“, prie SPIFFS pridėjus failą config/user_card _#. Json (šiuo atveju user_card_9.json).

APŽVALGA

Darbo dienos pateikiamos kaip laiko tarpsnių sąrašai. Laiko laiko tarpsnio detalumas nustatomas naudojant ypatybę „interval_mins“konfigūracijoje/user_card _#. Json. Tai turi būti valandos dalis arba valandos kartotiniai, pvz. 10, 15, 20, 30, 60, 120, 360. Spustelėję laiko tarpą įsitikinkite, kad per tą laiką susietam įrenginiui įsakoma įjungti būsena. Jei laiko tarpas dabar yra, įrenginiui nedelsiant siunčiama (paskelbiama) komanda. Paprastai būsena tikrinama/skelbiama kiekvieną minutę. Pasirinkimai išsaugomi „LocalStorage“, todėl laikas bus įkeliamas atnaujinus naršyklę.

NAUDOJIMO ATVEJAI

Esant dabartinei būsenai, savaitės vaizdas tinka įrenginiams, kurie gali naudoti perjungimo jungiklį savo būsenai vizualizuoti, t. Y. Jie yra įjungti arba išjungti, o po nustatymo jie lieka toje būsenoje. Žibintai, ventiliatoriai ir vandens šildytuvai yra geri kandidatai.

APRIBOJIMAI/APGYVENDINIMAI

  • Intervalas_mins turi būti viena iš aukščiau paminėtų verčių
  • Savaitės peržiūra nepalaiko momentinių veiksmų, kurie taip pat yra suplanuoti, pvz., Trumpai (5 sekundes) dukart per dieną paspausti čiaupą.

ATEITIS

  • Tikimasi, kad trumpalaikiai veiksmai bus remiami.
  • Svarstomas planavimo pasirinkimo sinchronizavimas įrenginiuose.

7 veiksmas: ENDPOINT CUSTOMIZATION

Kaip trumpai paminėta FIRMWARE, SPIFFS failų sistemoje yra 2 naujos konvencijos, skirtos pritaikyti galinius taškus. JSON failai yra fragmentai, kurie pridedami prie „deviceInfo“paketo, paskelbto MQTT tarpininkui, savybės, kuri tampa prietaisų skydelio apibrėžimu.

Galinių taškų raktai generuojami programinėje įrangoje:

  • CC_device (pasirinktinė kortelė), skirta user_card_base.json
  • CC_SLAVE_ENDPOINT NAME for user_card _#. Json (# yra vergo adresas)

Kaip minėta anksčiau, yra kintamųjų, kurie vykdymo metu pakeičia reikšmes:

  • mqtt_ prietaiso_pavadinimas
  • wifi_ssid
  • local_ip

user_card_base.json

Pavyzdys:

user_card _#. json

Pavyzdys:

8 žingsnis: VIDEO

Rekomenduojamas: