Satura rādītājs:

IOT123 - ASIMILĒTAS SENSORA HUB: ICOS10 CORS TĪMEKĻA SASTĀVDAĻAS: 8 soļi
IOT123 - ASIMILĒTAS SENSORA HUB: ICOS10 CORS TĪMEKĻA SASTĀVDAĻAS: 8 soļi

Video: IOT123 - ASIMILĒTAS SENSORA HUB: ICOS10 CORS TĪMEKĻA SASTĀVDAĻAS: 8 soļi

Video: IOT123 - ASIMILĒTAS SENSORA HUB: ICOS10 CORS TĪMEKĻA SASTĀVDAĻAS: 8 soļi
Video: Indefinite Pitch PREMIERES. Mod.1 - Into The Circle [Linderluft Records] 2024, Novembris
Anonim
IOT123 - ASIMILĒTAS SENSORA HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - ASIMILĒTAS SENSORA HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - ASIMILĒTAS SENSORA HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - ASIMILĒTAS SENSORA HUB: ICOS10 CORS WEBCOMPONENTS

ASSIMILATE SENSOR/ACTOR Slaves iegulst metadatus, kas tiek izmantoti, lai noteiktu vizualizācijas Crouton. Šī konstrukcija nedaudz atšķiras no iepriekšējām; nav aparatūras izmaiņu. Programmatūra tagad atbalsta pielāgotu (bagātāku) redaktoru mitināšanu, kurus var integrēt jaunākajā AssimilateCrouton būvē. Šajā rakstā tiks pievērsta lielāka uzmanība programmaparatūras un MQTT informācijas paneļa izskaidrošanai.

Viena no priekšrocībām, ko sniedz Web komponentu apkalpošana no ierīces, kuru tās kontrolē, ir tā, ka ierīces uzlabotā vadība ir ierobežota līdz tīklam, ar kuru ierīce ir savienota: jūsu WiFi piekļuves punktam. Lai gan, lietojot MQTT serveri ar autentifikāciju, pastāv aizsardzības līdzība, publiskajos tīklos, ja uz brīdi pametat pārlūkprogrammu (AssimilateCrouton vietne), kāds var ieiet un vadīt jūsu automatizācijas ierīces. Šī CORS WebComponent funkcija ļauj publiski parādīt tikai rādījumus (temperatūra, gaismas līmenis, mitrums) un komandu funkcijas (ieslēgšana/izslēgšana, plānošana) tikai ierīces tīklā.

Ierīcē joprojām tiek atbalstītas visas tīmekļa servera funkcijas ar autentifikāciju un mitināšanu SPIFFS, taču īpaša uzmanība ir pievērsta CORS (Cross Origin Resource Sharing) atbalstam Polymer WebComponents (Crouton izmanto Polymer 1.4.0).

Programmā AssimilateCrouton (Crouton dakša, ko izmanto Assimilate IOT tīklam) izmaiņas ietver

  • atbalsts ierīces kartei (assim-device), kas cita starpā lietotājam parāda un slēpj atsevišķas ierīces kartes
  • informācijas rekvizīts visās kartītēs, kas parāda kartīti ar noderīgu kontekstuālu informāciju
  • atbalsts CORS tīmekļa komponentiem, kas šajā gadījumā tiek mitināti ierīces tīmekļa serverī (ESP8266).

1. darbība: KROUTONS

KROUTONS
KROUTONS
KROUTONS
KROUTONS

Croutonis informācijas panelis, kas ļauj vizualizēt un kontrolēt savas IOT ierīces ar minimālu iestatīšanu. Būtībā tas ir vienkāršākais informācijas panelis, ko uzstādīt jebkuram IOT aparatūras entuziastam, izmantojot tikai MQTT un JSON.

ASIMILĒTĀS VERGAS (sensori un aktieri) ir iegulti metadati un rekvizīti, ko kapteinis izmanto, lai izveidotu ierīciInfo json paketi, ko Crouton izmanto, lai izveidotu informācijas paneli. Starpnieks starp ASSIMILATE NODES un Crouton ir MQTT brokeris, kas ir draudzīgs tīmekļa ligzdām: demonstrācijai tiek izmantots moskītu.

Tā kā ASSIMILATE MASTER pieprasa rekvizītus, tas formatē atbildes vērtības vajadzīgajā formātā Crouton atjauninājumiem. AssimilateCrouton dakša pievieno dažas funkcijas, kas ļauj decentralizēt jūsu uzņēmuma darbības noteikumus, ti, IOT ierīcei nav nepieciešami nekādi iegulti uzņēmējdarbības noteikumi, tā ir tikai MQTT/I2C komunikācijas sistēma viedākiem (ATTINY kontrolētiem) vergu dalībniekiem un sensoriem.

2. darbība: asimilējiet KROUTONU

ASIMILĒT KROUTONU
ASIMILĒT KROUTONU

IZMAIŅAS KROUTONĀ

Izmaiņas no dakšveida versijas ietver:

  • ja galapunktam ir definēts ceļa rekvizīts, kartes WebComponent veiks HTMLImport CORS resursam (šīs būves ESP8266 tīmekļa serveris).
  • uz visiem resursiem, kas atrodas augšup no (atkarības) no CORS tīmekļa komponentes, atsaucas tā, it kā tie tiktu pasniegti no Crouton tīmekļa vietnes; kad viņiem neizdodas ielādēt izņēmumu apstrādātāju, pārceļ ceļus un ielādē, ja tie nāk no vietnes.
  • augšējā labajā stūrī tiek parādīts pašreizējais vietējais laiks, kas ir noderīgi, lai ieplānotu verifikāciju.

POLIMĒRU ATKARĪBAS UN CORS

Polimēru atkarības koka lapas var mitināt CORS. Tā kā saknes atkarības lietotnē var izmantot vairākas reizes, uz tām nevar atsaukties no divām atrašanās vietām (vietnē un ierīcē), jo polimēru moduļu ielādētājs tās uzskata par diviem atsevišķiem resursiem un vairākas reģistrācijas kļūdas ātri apgrūtina lietojumprogrammu.

Šī iemesla dēļ kartītes tīmekļa komponents (HTML fails 1.4.0 versijā) un ar to saistītais CSS fails ir vienīgie ierīcē mitinātie faili. Uz citām atkarībām ir atsauce tā, it kā WebComponent tiktu mitināts sākotnējās vietnes mapē "html", kas atvieglo WebComponents izstrādi no šīs mapes, līdz esat gatavs augšupielādēt SPIFFS, izmantojot ESP8266. AssimilateCrouton noteiks, kā iegūt pareizos failus.

IZVIETOŠANA

oriģinālā Crouton radītājs edfungus uzrakstīja avotu Mops/Less, un viņam bija rīku ķēde NPM/Grunt. Es atveidoju mopsi/mazāk kā HTML/css un vienkārši rediģēju/izplatīju atveidotos failus. Tas izjauca NPM/Grunt instrumentu ķēdi. To novēršana ir apskatīta sadaļā NĀKOTNE.

Informācijas paneli varat lokāli pārbaudīt savā DEV kastē:

  • No komandrindas saknes mapē
  • npm sākums
  • lite-serveris ir izveidots vietnei https:// localhost: 10001

Izvietot statiskā tīmekļa serverī:

  • kopējiet visas mapes, izņemot mezglu_moduļus
  • kopēt index.html (un, iespējams, web.config)

NĀKOTNE

Viens no galvenajiem mērķiem ir jaunināt uz Polymer3 un strādāt no Polymer CLI. Uzlabotu redaktoru un ietvara pievienošana IOT izstrādātājiem, lai tie izstrādātu savus, ir augsta prioritāte. Galu galā uzlabotā automatizētā sistēma tiks pilnībā palaista no atdalītiem MQTT klientiem, piemēram, AssimilateCrouton.

AssimilateCrouton izmantotās ierīces informācijas paketes piemērs:

{
"deviceInfo": {
"endPoints": {
"CC_ierīce": {
"device_name": "ash_mezz_A3",
"card-type": "assim-device",
"ssid": "Corelines_2",
"ip_addr": "192.168.8.104",
"galapunkti": [
{
"title": "Grow Lights",
"card-type": "crouton-simple-toggle",
"galapunkts": "slēdzis"
},
{
"title": "Stādītāju gaismas",
"kartes tips": "crouton-assim-weekview",
"endpoint": "CC_switch"
}
]
},
"CC_slēdzis": {
"kartes tips": "assim-weekview",
"info": "Ieslēdziet vai izslēdziet apgaismojumu 15 minūšu laika intervālos",
"ceļš": "https://192.168.8.104/cors",
"title": "Stādītāju gaismas",
"interval_mins": 15,
"vērtības": {
"vērtība": ""
}
},
"slēdzis": {
"title": "Grow Lights",
"card-type": "crouton-simple-toggle",
"info": "Īpaši ieslēdziet vai izslēdziet apgaismojumu",
"etiķetes": {
"false": "OFF",
"true": "ON"
},
"ikonas": {
"false": "sun-o",
"true": "sun-o"
},
"vērtības": {
"vērtība": 0
}
}
},
"statuss": "labs",
"nosaukums": "ash_mezz_A3",
"description": "Birojs Ashmore, Mezzanine, A2 apgabals",
"krāsa": "#4D90FE"
}
}

apskatīt rawdeviceInfo.json, kuru mitina GitHub ar ❤

3. darbība: IERĪCES MONTĀŽA

IERĪCES SALIKŠANA
IERĪCES SALIKŠANA
IERĪCES SALIKŠANA
IERĪCES SALIKŠANA
IERĪCES SALIKŠANA
IERĪCES SALIKŠANA

Tā kā nav aparatūras izmaiņu, šeit ir saites uz attiecīgo informāciju:

  • Korpusa montāža
  • Materiāli un instrumenti
  • MCU sagatavošana
  • MCU korpusa sagatavošana
  • Vergu zemas puses slēdža izveide/ATiestatīt meitas dēli
  • Galveno komponentu salikšana

4. solis: FIRMWARE

FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE

GALVENĀS IZMAIŅAS ŠAJĀ BŪVĒ

Lai lietojumprogramma AssimilateCrouton varētu izmantot ierīces CORS resursus, atbildes galvenes bija jākonfigurē noteiktā veidā. Tas tika ieviests šajā programmaparatūras laidienā (static_server.ino => server_file_read ()).

Arī galvenajam polimēru atkarības grafikam bija jābūt no vienas izcelsmes. Tika izmantota stratēģija, lai SPIFFS CORS failiem pievienotu kļūdu apstrādātāju (corsLinkOnError), lai atkārtoti ielādētu resursus no AssimilateCrouton vietnes, ja tie nav atrodami ierīcē.

SPIFFS failu sistēmai ir pievienotas 2 jaunas konvencijas, lai pielāgotu ierīcē Info izveidotos galapunktus, kurus AssimilateCrouton izmanto informācijas paneļa karšu izveidošanai:

  • /config/user_card_base.json Galapunkta definīcija, vispirms mainot izpildlaika mainīgos:,,. Parasti šajā vietā tiks pievienota assim ierīces ierīce. Tas nesazinās ar ierīci.
  • /config/user_card_#.json Galapunkta definīcija, vispirms mainot izpildlaika mainīgos:,,. Parasti šajā gadījumā bagātie redaktori, piemēram, assim-weekview karte, tiks pievienoti I2C vergam (aktierim/sensoram), kas attiecas uz #.

SKEJA/BIBLIOTĒKAS

Šajā posmā projekts ir iesaiņots kā piemērs AssimilateBus Arduino bibliotēkai. Tas galvenokārt ir paredzēts, lai visiem nepieciešamajiem failiem būtu viegli piekļūt no Arduino IDE. Galvenie koda artefakti ir:

  • mqtt_crouton_esp8266_cors_webcomponents.ino - galvenais ieejas punkts.
  • assimilate_bus.h/assimilate_bus.cpp - bibliotēka, kas apstrādā I2C sakarus ar vergu sensoru/aktieriem
  • VizJson.h/VizJson.cpp - bibliotēka, kas formatē/veido jebkuru JSON, kas publicēts, izmantojot MQTT
  • config.h/config.cpp - bibliotēka, kas lasa/ieraksta/raksta konfigurācijas failus SPIFFS
  • static_i2c_callbacks.ino - I2C atzvanīšana par saņemto īpašumu un vergu pieprasījumu cikls ir pilnīgs static_mqtt.ino - MQTT funkcijas
  • static_server.ino - tīmekļa servera funkcijas
  • static_utility.ino - palīga funkcijas

Statiskās INO funkcijas tika izmantotas (nevis bibliotēkas) dažādu iemeslu dēļ, bet galvenokārt tādēļ, lai tīmekļa servera un MQTT funkcijas varētu labi spēlēt kopā.

SPIFFU RESURSI

Detalizētus SPIFFS failu skaidrojumus var atrast šeit.

  • favicon.ico - resurss, ko izmanto Ace Editor
  • config

    • device.json - ierīces konfigurācija (Wifi, MQTT …)
    • slave_metas _#. json - ģenerēts izpildlaikā katram verga adreses numuram (#)
    • user_card _#. json - pielāgots galapunkts, kas jāintegrē ierīcēInfo katram verga adreses numuram (#)
    • user_card_base.json - pielāgots galapunkts, kas jāintegrē ierīces ierīcē
    • user_meta _#. json - pielāgoti metadati ignorē vergu datus par katru vergu adreses numuru (#)
    • user_props.json - pielāgoti rekvizītu nosaukumi, lai ignorētu vergu metadatos esošos
  • kors

    • card -webcomponent.css - dažādu pielāgotu karšu stila lapa
    • card -webcomponent.html - tīmekļa komponents dažādām pielāgotām kartēm
  • redaktors

    • assimilate -logo-p.webp" />
    • edit.htm.gz - Ace Editor HTML gzip
    • edit.htm.src - Ace redaktora oriģinālais HTML
    • favicon -32x32-p.webp" />

FIRMWAREAR augšupielāde

  • Kodu krātuvi var atrast šeit (momentuzņēmums).
  • Bibliotēkas ZIP var atrast šeit (momentuzņēmums).
  • Norādījumi par ZIP bibliotēkas importēšanu šeit.
  • Kad bibliotēka ir instalēta, varat atvērt piemēru "mqtt_crouton_esp8266_cors_webcomponents".
  • Norādījumi par Arduino iestatīšanu Wemos D1 Mini šeit.
  • Atkarības: ArduinoJson, TimeLib, PubSubClient, NeoTimer (skatiet pielikumus, ja tiek pārkāptas izmaiņas krātuvēs).

AUGŠUPIELĀDĒT SPIFFS

Kad kods ir ielādēts Arduino IDE, mapē data/config atveriet device.json:

  • Mainiet wifi_ssid vērtību, izmantojot savu WiFi SSID.
  • Mainiet wifi_key vērtību, izmantojot savu WiFi atslēgu.
  • Mainiet mqtt_device_name vērtību, izmantojot vēlamo ierīces identifikāciju (nav nepieciešama savienošana).
  • Mainiet mqtt_device_description vērtību, izmantojot vēlamo ierīces aprakstu (Crouton).
  • Saglabājiet device.json.
  • Augšupielādējiet datu failus SPIFFS.

AssimilateBus piemēra galvenais ieejas punkts:

/*
*
*JŪSU IERĪCES BIZNESA NOTEIKUMI Gaidāmi, KONTROLĒJAMI AR MQTT
*
* Izņemot iestatīšanu un cilpu šajā failā
* svarīgās kustīgās daļas ir
* on_bus_received un on_bus_complete vietnē static_i2c_callbacks.ino
* un
* mqtt_publish un mqtt_callback vietnē static_mqtt.ino
*
*/
#include "tips.h"
#ietver "VizJson.h"
#include "asimilēt_bus.h"
#include "debug.h"
#include "config.h"
#iekļaut

#iekļaut

// iestatiet MQTT_MAX_PACKET_SIZE uz ~ 3000 (vai jūsu vajadzībām pēc ierīcesInfo json)

#iekļaut
#iekļaut
#iekļaut
#iekļaut
#iekļaut
// --------------------------------- ATMIŅAS DEKLARĀCIJAS
// ------------------------------------------------ - nosaka
#defineDBG_OUTPUT_FLAG2 // 0, 1, 2 MINIMĀLAIS, ATLAIDES, PILNS
#define_mqtt_pub_topic "outbox" // KROUTONA KONVENCIJAS
#define_mqtt_sub_topic "iesūtne"
// ------------------------------------------------ - klases objekti
Atkļūdot _debug (DBG_OUTPUT_FLAG);
AssimilateBus _assimilate_bus;
VizJson _viz_json;
Config _config_data;
WiFiClient _esp_client;
PubSubClient _klients (_esp_client);
WiFiUDP Udp;
ESP8266WebServer _server (80);
Neotimer _timer_property_request = Neotimer (5000);
// ------------------------------------------------ - datu struktūras / mainīgais
RuntimeDeviceData _runtime_device_data;
PropertyDto _dto_props [50]; // max 10 vergi x max 5 rekvizīti
// ------------------------------------------------ - kontroles plūsma
volatilebool _sent_device_info = nepatiess;
baits _dto_props_index = 0;
bool _fatal_error = nepatiess;
// --------------------------------- DEKLARĀCIJAS PAR FUNKCIJAS JOMU
// ------------------------------------------------ - static_i2c_callbacks.ino
voidon_bus_received (baits vergu_adrese, baits prop_index, Lomas loma, simbola nosaukums [16], rakstzīmju vērtība [16]);
voidon_bus_complete ();
// ------------------------------------------------ - static_mqtt.ino
voidmqtt_callback (char* tēma, baits* lietderīgā slodze, neparakstīts garums);
voidmqtt_loop ();
int8_tmqtt_get_topic_index (char* tēma);
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 *galapunkts, constchar *lietderīgā slodze);
boolmqtt_ensure_connect ();
voidmqtt_subscribe (char *root_topic, char *deviceName, char *endpoint);
voidi2c_set_and_get (baitu adrese, baitu kods, constchar *param);
// ------------------------------------------------ - static_server.ino
String server_content_type_get (virknes faila nosaukums);
boolserver_path_in_auth_exclusion (virknes ceļš);
boolserver_authread (String ceļš);
boolserver_file_read (virknes ceļš);
voidserver_file_upload ();
voidserver_file_delete ();
voidserver_file_create ();
voidserver_file_list ();
voidserver_init ();
voidtime_services_init (char *ntp_server_name, baitu laika_zona);
time_tget_ntp_time ();
voidsend_ntp_packet (IPAddress & address);
char *laika_zīmoga_žogojums ();
// ------------------------------------------------ - static_utility.ino
String spiffs_file_list_build (Stīgu ceļš);
voidreport_deserialize_error ();
voidreport_spiffs_error ();
boolcheck_fatal_error ();
boolget_json_card_type (baits vergu_adrese, baits prop_index, char *kartes_tips);
boolget_struct_card_type (baits vergu_adrese, baits prop_index, char *kartes_tips);
boolget_json_is_series (baitu vergu_adrese, baitu prop_indekss);
voidstr_replace (char *src, constchar *oldchars, char *newchars);
baits get_prop_dto_idx (baits slave_address, baits prop_index);
// --------------------------------- GALVENAIS
voidsetup () {
DBG_OUTPUT_PORT.begin (115200);
SetupDeviceData device_data;
Sērijas.println (); Sērijas.println (); // rezerve konsoles atkritumiem
kavēšanās (5000);
ja (DBG_OUTPUT_FLAG == 2) DBG_OUTPUT_PORT.setDebugOutput (true);
_debug.out_fla (F ("iestatīšana"), taisnība, 2);
// iegūt nepieciešamo konfigurāciju
ja (SPIFFS.begin ()) {
_debug.out_str (spiffs_file_list_build ("/"), taisnība, 2);
ja (! _config_data.get_device_data (device_data, _runtime_device_data)) {
report_deserialize_error ();
atgriešanās;
}
} vēl {
report_spiffs_error ();
atgriešanās;
}
// izmantot ierīces vērtību, kas iestatīta ierīcē device.json
_timer_property_request.set (device_data.sensor_interval);
mqtt_init (device_data.wifi_ssid, device_data.wifi_key, device_data.mqtt_broker, device_data.mqtt_port);
time_services_init (ierīces_dati.ntp_servera_nosaukums, ierīces_dati.laika_zona);
servera_init ();
// sākt metadatu kolekciju
_asimilēt_bus.get_metadata ();
_assimilate_bus.print_metadata_details ();
mqtt_ensure_connect ();
// lai pabeigtu metadatu apkopošanu, nepieciešams sensora rekvizīts (vārdi)
_assimilate_bus.get_properties (on_bus_received, on_bus_complete);
_timer_property_request.reset (); // var paiet ievērojams laiks līdz šim brīdim, tāpēc sāciet to no jauna
}
voidloop () {
if (! check_fatal_error ()) return;
mqtt_loop ();
_server.handleClient ();
ja (_timer_property_request.repeat ()) {
_assimilate_bus.get_properties (on_bus_received, on_bus_complete);
}
}

apskatīt rawmqtt_crouton_esp8266_cors_webcomponents.ino, kuru mitina GitHub ar ❤

5. darbība: IERĪCES KARTE

IERĪCES KARTE
IERĪCES KARTE
IERĪCES KARTE
IERĪCES KARTE
IERĪCES KARTE
IERĪCES KARTE
IERĪCES KARTE
IERĪCES KARTE

Ierīces karte (kartes tips: assim-device) tiek mitināta vietnē, un tā nav jāapkalpo no ierīces (CORS).

Tās noklusējuma lapu saraksts:

  • MQTT tēmas lasīšanai un rakstīšanai ierīcē
  • Piekļuves punkts, ar kuru ierīce ir savienota
  • Saite uz SPIFFS failu redaktoru, kas tiek mitināts ierīcē, izmantojot ACE EDITOR
  • Acu ikona, kas atklāj lapu Rādīt/slēpt kartīti.

Rādīt/paslēpt kartīšu lapas:

  • Katra karte kā atsevišķs priekšmets
  • Rādīts treknrakstā zils fonts
  • Melns parasts fonts, kad tas ir paslēpts
  • Ikona, kas attēlo kartes veidu.

Karti var paslēpt, noklikšķinot uz kartīšu slēpšanas pogas vai sarakstā noklikšķinot uz vienuma ar zilu treknrakstu. Kartītes var parādīt, sarakstā noklikšķinot uz melnā parastā fonta vienuma.

Ar šo funkciju ir cieši saistīti informācijas grauzdiņi. Ja kādam no ierīcesInfo galapunktiem ir piešķirts informācijas rekvizīts, blakus kartes slēpšanas pogai tiks parādīta informācijas poga. Noklikšķinot uz galapunktā definētās kontekstuālās informācijas, logā tiks "grauzdēti".

Ja ierīces karte nav definēta, slēpšanas pogas uz kartēm netiks rādītas. Tas ir tāpēc, ka pēc paslēpšanas tos vairs nevar parādīt.

Lai uzzinātu, kā assim ierīces karti var pievienot, izmantojot SPIFFS failus ESP8266, skatiet sadaļu ENDPOINT CUSTOMIZATION.

AsimilētCrouton WebComponent

dzelzs signāli>
div>
RĀDĪT Slēpt ikonu
i> span>
IERĪCES FORMA
MQTT TOPICSdiv>
/outbox/{{endPointJson.device_name}}/*div>
/iesūtne/{{endPointJson.device_name}}/*div>
WIFI SSIDdiv>
{{endPointJson.ssid}} div>
IP ADDRESSdiv>
{{endPointJson.ip_addr}} a> div>
div>
RĀDĪT Slēpt sarakstu
elements>papīrs-item>
veidne>
papīra saraksta kastīte>
div>
crouton-card>
veidne>
dom-modulis>

skatiet rawassim-device.html, kuru mitina GitHub ar ❤

6. darbība: NEDĒĻAS SKAITA KARTE

NEDĒĻAS SKAITA KARTE
NEDĒĻAS SKAITA KARTE
NEDĒĻAS SKAITA KARTE
NEDĒĻAS SKAITA KARTE
NEDĒĻAS SKAITA KARTE
NEDĒĻAS SKAITA KARTE

Nedēļas attēla kartīte (kartes tips: assim-weekview) tiek mitināta ierīcē (mape cors). Tas tiek ievadīts ierīces informācijas paketē, kas publicēta AssimilateCrouton, SPIFFS (šajā gadījumā user_card_9.json) pievienojot failu config/user_card _#. Json.

PĀRSKATS

Darba dienas tiek parādītas kā laika intervālu saraksti. Laika spraugas precizitāte ir iestatīta ar rekvizītu "interval_mins" konfigurācijā/user_card _#. Json. Tam jābūt stundas daļai vai stundas daudzkārtnēm, piem. 10, 15, 20, 30, 60, 120, 360. Noklikšķinot uz laika nišas, tiek nodrošināts, ka šajā laikā saistītai ierīcei tiek komandēts ieslēgšanas stāvoklis. Ja laika niša tagad ir, ierīcei nekavējoties tiek nosūtīta (publicēta) komanda. Parasti stāvokli pārbauda/publicē katru minūti. Atlases tiek saglabātas LocalStorage, tāpēc laiki tiks atkārtoti ielādēti, atsvaidzinot pārlūkprogrammu.

LIETOT LIETAS

Pašreizējā stāvoklī nedēļas skats ir piemērots ierīcēm, kuras var izmantot pārslēgšanas slēdzi, lai vizualizētu savu stāvokli, t.i., tās ir ieslēgtas vai izslēgtas, un pēc iestatīšanas tās paliek šajā stāvoklī. Gaismas, ventilatori un ūdens sildītāji ir labi kandidāti.

IEROBEŽOJUMI/ATBILDĪBA

  • Intervālam_mins jābūt vienai no iepriekš minētajām vērtībām
  • Nedēļas skats neatbalsta arī īslaicīgas darbības, kas ir arī ieplānotas, piemēram, īsu brīdi (5 sekundes) divas reizes dienā ieslēgt pieskārienu.

NĀKOTNE

  • Paredzams, ka tiks atbalstītas mirkļa darbības.
  • Grafika izvēlei tiek apsvērta sinhronizēta krātuve dažādās ierīcēs.

7. solis: ENDPOINT CUSTOMIZATION

Kā īsumā minēts FIRMWARE, SPIFFS failu sistēmai ir pievienotas 2 jaunas konvencijas galapunktu pielāgošanai. JSON faili ir fragmenti, kas tiek pievienoti parametra devicepoint informācijas pakotnē, kas ievietota MQTT brokerī un kļūst par informācijas paneļa definīciju.

Galapunktu atslēgas tiek ģenerētas programmaparatūrā:

  • CC_device (pielāgota karte) lietotāja_kartei_base.json
  • CC_SLAVE_ENDPOINT NAME lietotāja kartei _#. Json (# ir verga adrese)

Kā minēts iepriekš, ir mainīgie, kas izpildes laikā aizstāj vērtības:

  • mqtt_ierīces_nosaukums
  • wifi_ssid
  • local_ip

user_card_base.json

Piemērs:

user_card _#. json

Piemērs:

8. solis: VIDEO

Ieteicams: