Tartalomjegyzék:

IOT123 - ASSZIMILÁCIÓS ÉRZÉKELŐGOMB: ICOS10 CORS WEBKOMPONENTEK: 8 lépés
IOT123 - ASSZIMILÁCIÓS ÉRZÉKELŐGOMB: ICOS10 CORS WEBKOMPONENTEK: 8 lépés

Videó: IOT123 - ASSZIMILÁCIÓS ÉRZÉKELŐGOMB: ICOS10 CORS WEBKOMPONENTEK: 8 lépés

Videó: IOT123 - ASSZIMILÁCIÓS ÉRZÉKELŐGOMB: ICOS10 CORS WEBKOMPONENTEK: 8 lépés
Videó: 🟡 POCO X5 PRO - САМЫЙ ДЕТАЛЬНЫЙ ОБЗОР и ТЕСТЫ 2024, Július
Anonim
IOT123 - ASSZIMILÁCIÓS ÉRZÉKELŐGOMB: ICOS10 CORS WEBCOMPONENTS
IOT123 - ASSZIMILÁCIÓS ÉRZÉKELŐGOMB: ICOS10 CORS WEBCOMPONENTS
IOT123 - ASSZIMILÁCIÓS ÉRZÉKELŐGOMB: ICOS10 CORS WEBCOMPONENTS
IOT123 - ASSZIMILÁCIÓS ÉRZÉKELŐGOMB: ICOS10 CORS WEBCOMPONENTS

Az ASSIMILATE SENSOR/ACTOR Slaves metaadatokat ágyaz be, amelyeket a Crouton meghatározó vizualizációihoz használnak. Ez a felépítés kissé eltér a korábbiaktól; hardveres változások nincsenek. A firmware most támogatja az egyedi (gazdagabb) szerkesztők tárolását, amelyek beépíthetők az AssimilateCrouton legújabb verziójába. Ebben a cikkben nagyobb figyelmet fordítunk a firmware és az MQTT műszerfal magyarázatára.

A webkomponensek kiszolgálásának egyik előnye az általuk irányított eszközről az, hogy az eszköz fejlettebb vezérlése csak arra a hálózatra korlátozódik, amelyhez az eszköz csatlakozik: a WiFi hozzáférési ponthoz. Bár ha az MQTT szervert hitelesítéssel használja, a védelem hasonlóságot mutat, a nyilvános hálózatokon, ha pillanatnyilag elhagyja a böngészőt (AssimilateCrouton webhely), valaki beugorhat, és irányíthatja az automatizálási eszközeit. Ez a CORS WebComponent szolgáltatás lehetővé teszi, hogy csak az értékek (hőmérséklet, fényszintek, nedvesség) jelenjenek meg nyilvánosan, és a parancsfunkciók (be/ki, ütemezés) csak az eszközhálózaton érhetők el.

A készüléken az összes webszerver -szolgáltatás, amely hitelesítéssel és tárolással rendelkezik a SPIFFS -ben, továbbra is támogatott, de különös hangsúlyt fektettek a CORS (Cross Origin Resource Sharing) támogatására a Polymer WebComponents számára (a Crouton Polymer 1.4.0 -t használ).

Az AssimilateCrouton -ban (a Crouton villa az Assimilate IOT Network -hez) használt változások

  • olyan eszközkártya (assim-device) támogatása, amely többek között egy felhasználó egyedi kártyáit mutatja és elrejti
  • info tulajdonság minden kártyán, amely a kártya hasznos kontextuális információit mutatja be
  • a CORS webkomponensek támogatása, ebben az esetben az eszköz webszerverén (ESP8266).

1. lépés: CROUTON

KROUTON
KROUTON
KROUTON
KROUTON

A Croutonis egy műszerfal, amely lehetővé teszi az IOT -eszközök megjelenítését és vezérlését minimális beállítással. Lényegében ez a legegyszerűbben beállítható műszerfal bármely IOT hardverrajongó számára, csak MQTT és JSON használatával.

Az ASSIMILATE SLAVES (érzékelők és szereplők) beágyazott metaadatokat és tulajdonságokat tartalmaz, amelyeket a mester használ az eszközInfo json csomag létrehozásához, amelyet a Crouton használ a műszerfal építéséhez. Az ASSIMILATE NODES és a Crouton közötti közvetítő egy MQTT -bróker, amely barátságos a webes aljzatokban: a szúnyogot használják a bemutatóhoz.

Mivel az ASSIMILATE MASTER tulajdonságokat kér, a válaszértékeket a Crouton frissítésekhez szükséges formátumban formázza. Az AssimilateCrouton villa hozzáad néhány olyan funkciót, amelyek lehetővé teszik az eszközt futtató üzleti szabályok decentralizálását, azaz az IOT -eszköznek nincs szüksége beágyazott üzleti szabályokra, ez csak egy csatorna az MQTT/I2C kommunikációhoz az okosabb (ATTINY vezérelt) szolgaszereplők és érzékelők számára.

2. lépés: ASSZIMILÁCIÓS KROUTON

ASSZIMILÁT KROUTON
ASSZIMILÁT KROUTON

VÁLTOZÁSOK A KROUTONBAN

A villás verzióhoz képest a következők a következők:

  • ha egy végpontnak útvonaltulajdonsága van megadva, akkor a kártya webkomponense HTMLImportot végez egy CORS erőforráshoz (az ESP8266 webszervere ebben a buildben).
  • a CORS webkomponensből (annak függőségeiből) származó erőforrásokra úgy hivatkoznak, mintha a Crouton weboldalról szolgálnának ki; amikor nem sikerül betölteniük egy kivételkezelőt, újratervezi az útvonalakat és a betöltéseket, ha a webhelyről származnak.
  • az aktuális helyi idő jelenik meg a jobb felső sarokban, ami hasznos az ellenőrzés ütemezéséhez.

POLIMER FÜGGETLENSÉGEK ÉS CORS

A polimer függőségi fa levelei a CORS -ban tárolhatók. Mivel a gyökérfüggőségek többször is használhatók egy alkalmazásban, nem lehet két helyről (a webhelyről és az eszközről) hivatkozni rájuk, mert a polimer modul betöltő két külön erőforrásként kezeli őket, és több regisztrációs hiba gyorsan lebeg egy alkalmazásban.

Emiatt a kártya webkomponense (HTML fájl az 1.4.0 verzióban) és a hozzá tartozó CSS fájl az egyetlen fájl, amelyet az eszköz tárol. A többi függőségre úgy hivatkoznak, mintha a webkomponens a kezdő webhely "html" mappájában lenne tárolva, ami megkönnyíti a webkomponensek fejlesztését az adott mappából addig, amíg készen áll a feltöltésre az ESP8266 SPIFFS rendszerébe. Az AssimilateCrouton kitalálja, hogyan szerezheti be a megfelelő fájlokat.

FELHASZNÁLÁS

Az eredeti Crouton edfungus készítője a forrást a Pug/Less -ben írta, és volt egy NPM/Grunt szerszámlánca. A Pug/Less -t HTML/css -ként rendereltem, és csak szerkesztettem/terjesztettem a renderelt fájlokat. Ez megtörte az NPM/Grunt szerszámláncot. Ennek javításáról a JÖVŐ szakasz foglalkozik.

A műszerfalat helyben tesztelheti a DEV dobozán:

  • A gyökérmappában található parancssorból
  • npm kezdés
  • a lite-szerver felpörög a https:// localhost: 10001 fájlra

Telepítés statikus webszerverre:

  • másolja az összes mappát a node_modules kivételével
  • az index.html (és esetleg a web.config) másolása

JÖVŐ

Az egyik fő cél a Polymer3 -ra frissítés és a Polymer CLI -ből való munkavégzés. A fejlett szerkesztők és keretrendszer hozzáadása az IOT -fejlesztők számára saját fejlesztéséhez kiemelt fontosságú. Végül a fejlett automatizált rendszert teljesen olyan független MQTT ügyfelektől futtatják, mint az AssimilateCrouton.

Példa az AssimilateCroutonhoz használt deviceInfo csomagra:

{
"eszköz információ": {
"endPoints": {
"CC_eszköz": {
"device_name": "ash_mezz_A3",
"card-type": "assim-device",
"ssid": "Corelines_2",
"ip_addr": "192.168.8.104",
"végpontok": [
{
"title": "Grow Lights",
"card-type": "crouton-simple-toggle",
"végpont": "kapcsoló"
},
{
"title": "Ültető lámpák",
"card-type": "crouton-assim-weekview",
"endpoint": "CC_switch"
}
]
},
"CC_kapcsoló": {
"card-type": "assim-weekview",
"info": "Kapcsolja be vagy ki a lámpákat 15 perces időintervallumokban",
"elérési út": "https://192.168.8.104/cors",
"title": "Ültető lámpák",
"interval_mins": 15,
"értékek": {
"value": ""
}
},
"kapcsoló": {
"title": "Grow Lights",
"card-type": "crouton-simple-toggle",
"info": "Ad hoc módon kapcsolja be vagy ki a lámpákat",
"címkék": {
"false": "OFF",
"igaz": "BE"
},
"ikonok": {
"false": "sun-o",
"igaz": "sun-o"
},
"értékek": {
"érték": 0
}
}
},
"állapot": "jó",
"name": "ash_mezz_A3",
"description": "Iroda Ashmore -ban, Mezzanine, A2 -es terület",
"color": "#4D90FE"
}
}

Tekintse meg a rawdeviceInfo.json webhelyet, amelyet a GitHub ❤ üzemeltet

3. lépés: KÉSZÜLÉKSZERELÉS

KÉSZÜLÉKSZERELÉS
KÉSZÜLÉKSZERELÉS
KÉSZÜLÉKSZERELÉS
KÉSZÜLÉKSZERELÉS
KÉSZÜLÉKSZERELÉS
KÉSZÜLÉKSZERELÉS

Mivel nincsenek hardveres változások, itt vannak a releváns információk linkjei:

  • Shell összeszerelés
  • Anyagok és eszközök
  • MCU előkészítés
  • MCU ház előkészítése
  • Slaves alacsony oldali kapcsoló építése/RESET leánytábla
  • A fő alkatrészek összeszerelése

4. lépés: FIRMWARE

FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE

FŐ VÁLTOZÁSOK EZT AZ ÉPÜLETET

Annak érdekében, hogy az AssimilateCrouton alkalmazás képes legyen használni az eszköz CORS -erőforrásait, a válaszfejléceket meghatározott módon kellett konfigurálni. Ez a firmware (static_server.ino => server_file_read ()) kiadásában valósult meg.

A polimer fő függőségi grafikonjának is egyetlen forrásból kellett származnia. Stratégiát alkalmaztak egy hibakezelő (corsLinkOnError) hozzáadásához a SPIFFS CORS fájlokhoz az erőforrások újratöltéséhez az AssimilateCrouton webhelyről, amikor azok nem találhatók az eszközön.

A SPIFFS fájlrendszerhez 2 új konvenciót adtak hozzá, amelyek testreszabhatják a deviceInfo -ban létrehozott végpontokat, amelyeket az AssimilateCrouton használ az irányítópult -kártyák létrehozásához:

  • /config/user_card_base.json Végpont definíció a futásidejű változók cseréjével először:,,. Jellemzően itt kerül hozzá az assim-eszköz kártya. Ez nem kommunikál vissza a készülékkel.
  • /config/user_card_#.json Végpont definíció a futásidejű változók cseréjével először:,,. Ez az a tipikus hely, ahol a gazdag szerkesztőket, például az assim-weekview kártyát hozzáadják a #-hoz kapcsolódó I2C slave-hez (színész/érzékelő).

A Vázlat/KÖNYVTÁRAK

Ebben a szakaszban a projektet példaként csomagoltuk az AssimilateBus Arduino könyvtárhoz. Ez elsősorban azért van, hogy az összes szükséges fájl könnyen hozzáférhető legyen az Arduino IDE -ből. A fő kódtárgyak a következők:

  • mqtt_crouton_esp8266_cors_webcomponents.ino - a fő belépési pont.
  • assimilate_bus.h/assimilate_bus.cpp - a könyvtár, amely kezeli az I2C kommunikációt a slave szenzorral/szereplőkkel
  • VizJson.h/VizJson.cpp - az MQTT -n keresztül közzétett JSON -t formázó/felépítő könyvtár
  • config.h/config.cpp - az a könyvtár, amely a konfigurációs fájlokat olvassa/dobozolja/írja SPIFFS -re
  • static_i2c_callbacks.ino - a fogadott ingatlan I2C visszahívása és a szolgakérések ciklusa teljes static_mqtt.ino - az MQTT függvények
  • static_server.ino - a webszerver funkciói
  • static_utility.ino - segítő funkciók

A statikus INO függvényeket különböző okokból (könyvtárak helyett) használták, de elsősorban azért, hogy a Webszerver és az MQTT funkciók jól játszhassanak együtt.

A SPIFFS FORRÁSOK

A SPIFFS fájlok részletes magyarázata itt található.

  • favicon.ico - az Ace Editor által használt erőforrás
  • config

    • device.json - az eszköz konfigurációja (Wifi, MQTT …)
    • slave_metas _#. json - futás közben generálva minden slave címszámhoz (#)
    • user_card _#. json - egyéni végpont, amelyet be kell illeszteni az eszközinformációba minden slave címszámhoz (#)
    • user_card_base.json - egyéni végpont, amelyet az eszköz DeviceInfo -ba kell integrálni
    • user_meta _#. json - az egyéni metaadatok felülbírálják a rabszolgákét minden egyes szolga címszámnál (#)
    • user_props.json - egyéni tulajdonságnevek, amelyek felülírják a rabszolgák metaadataiban szereplőket
  • cors

    • card -webcomponent.css - stíluslap különböző egyedi kártyákhoz
    • card -webcomponent.html - webkomponens különféle egyedi kártyákhoz
  • szerkesztő

    • assimilate -logo-p.webp" />
    • edit.htm.gz - gzip az Ace Editor HTML -ből
    • edit.htm.src - az Ace Editor eredeti HTML -kódja
    • favicon -32x32-p.webp" />

A FIRMWARE FELTÖLTÉSE

  • A kódtár itt található (pillanatkép).
  • A könyvtár ZIP -címe itt található (pillanatkép).
  • Utasítások a "ZIP könyvtár importálásához" itt.
  • A könyvtár telepítése után megnyithatja az "mqtt_crouton_esp8266_cors_webcomponents" példát.
  • Utasítások az Arduino beállításához a Wemos D1 Mini számára itt.
  • Függőségek: ArduinoJson, TimeLib, PubSubClient, NeoTimer (lásd a mellékleteket, ha megszakítják a tárolók változásait).

Feltöltés SPIFF -re

Miután betöltötte a kódot az Arduino IDE -be, nyissa meg az device.json fájlt az adat/config mappában:

  • Módosítsa a wifi_ssid értékét a WiFi SSID azonosítójával.
  • Módosítsa a wifi_key értékét a WiFi kulccsal.
  • Módosítsa az mqtt_device_name értékét a kívánt eszközazonosítóval (nincs szükség csatlakozásra).
  • Módosítsa az mqtt_device_description értékét a kívánt eszközleírással (Crouton nyelven).
  • Device.json mentése.
  • Töltse fel az adatfájlokat a SPIFFS fájlba.

Az AssimilateBus példa fő belépési pontja:

/*
*
*A KÉSZÜLÉKRE VONATKOZÓ ÜZLETI SZABÁLYOK VÁRHATÓK, hogy MQTT -vel vezéreljék - NEM KEMÉNYEZETT E FIRMWARE
*
* A beállítás és a hurok kivételével ebben a fájlban
* a fontos mozgó alkatrészek
* on_bus_received és on_bus_complete itt: static_i2c_callbacks.ino
* és
* mqtt_publish és mqtt_callback a static_mqtt.ino fájlban
*
*/
#include "types.h"
#include "VizJson.h"
#include "assimilate_bus.h"
#include "debug.h"
#include "config.h"
#befoglalni

#befoglalni

// állítsa az MQTT_MAX_PACKET_SIZE értéket ~ 3000 -re (vagy az eszközigényeire vonatkozóan)

#befoglalni
#befoglalni
#befoglalni
#befoglalni
#befoglalni
// --------------------------------- EMLÉK NYILATKOZAT
// ------------------------------------------------ - határozza meg
#defineDBG_OUTPUT_FLAG2 // 0, 1, 2 MINIMUMUM, RELEASE, FULL
#define_mqtt_pub_topic "outbox" // CROUTON CONVENTIONS
#define_mqtt_sub_topic "beérkező levelek"
// ------------------------------------------------ - osztály objektumok
Hibakeresés _debug (DBG_OUTPUT_FLAG);
AssimilateBus _assimilate_bus;
VizJson _viz_json;
Config _config_data;
WiFiClient _esp_client;
PubSubClient _kliens (_esp_client);
WiFiUDP Udp;
ESP8266WebServer _szerver (80);
Neotimer _timer_property_request = Neotimer (5000);
// ------------------------------------------------ - adatstruktúrák / változó
RuntimeDeviceData _runtime_device_data;
PropertyDto _dto_props [50]; // max 10 slave x max 5 tulajdonság
// ------------------------------------------------ - szabályozza az áramlást
volatilebool _sent_device_info = hamis;
bájt _dto_props_index = 0;
bool _halálos_hiba = hamis;
// --------------------------------- FUNKCIÓS HATÁLYI NYILATKOZATOK
// ------------------------------------------------ - static_i2c_callbacks.ino
voidon_bus_received (byte slave_address, byte prop_index, Szerepkör, char name [16], char value [16]);
voidon_bus_complete ();
// ------------------------------------------------ - static_mqtt.ino
voidmqtt_callback (char* topic, byte* payload, unsignedint length);
voidmqtt_loop ();
int8_tmqtt_get_topic_index (char* topic);
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 *végpont, constchar *hasznos terhelés);
boolmqtt_ensure_connect ();
voidmqtt_subscribe (char *root_topic, char *deviceName, char *végpont);
voidi2c_set_and_get (bájtcím, bájtkód, constchar *param);
// ------------------------------------------------ - static_server.ino
String server_content_type_get (Karakterlánc fájlnév);
boolserver_path_in_auth_exclusion (Karakterlánc elérési útja);
boolserver_auth_read (Karakterlánc elérési útja);
boolserver_file_read (Karakterlánc elérési útja);
voidserver_file_upload ();
voidserver_file_delete ();
voidserver_file_create ();
voidserver_file_list ();
voidserver_init ();
voidtime_services_init (char *ntp_szerver_név, bájt időzóna);
time_tget_ntp_time ();
voidsend_ntp_packet (IPAddress & address);
char *time_stamp_get ();
// ------------------------------------------------ - static_utility.ino
String spiffs_file_list_build (String elérési út);
voidreport_deserialize_error ();
voidreport_spiffs_error ();
boolcheck_fatal_error ();
boolget_json_card_type (byte slave_address, byte prop_index, char *card_type);
boolget_struct_card_type (byte slave_address, byte prop_index, char *card_type);
boolget_json_is_series (byte slave_address, byte prop_index);
voidstr_replace (char *src, constchar *oldchars, char *newchars);
bájt get_prop_dto_idx (byte slave_address, byte prop_index);
//---------------------------------FŐ
voidsetup () {
DBG_OUTPUT_PORT.begin (115200);
SetupDeviceData device_data;
Sorozat.println (); Sorozat.println (); // margó a konzol szemetéhez
késleltetés (5000);
if (DBG_OUTPUT_FLAG == 2) DBG_OUTPUT_PORT.setDebugOutput (igaz);
_debug.out_fla (F ("beállítás"), igaz, 2);
// a szükséges konfiguráció beszerzése
if (SPIFFS.begin ()) {
_debug.out_str (spiffs_file_list_build ("/"), igaz, 2);
if (! _config_data.get_device_data (eszköz_adatok, _runtime_device_data)) {
report_deserialize_error ();
Visszatérés;
}
}más{
report_spiffs_error ();
Visszatérés;
}
// használja a device.json fájlban beállított időzítő értéket
_timer_property_request.set (device_data.sensor_interval);
mqtt_init (eszköz_adatok.wifi_azonosító, eszközadatok.wifi_kulcs, eszközadatok.mqtt_broker, eszköz_adatok.mqtt_port);
time_services_init (eszköz_adatok.ntp_szerver_neve, eszközadatok.idő_zóna);
szerver_init ();
// indítsa el a metaadat -gyűjteményt
_asszimilálni_bus.get_metadata ();
_assimilate_bus.print_metadata_details ();
mqtt_ensure_connect ();
// érzékelő tulajdonságra (nevekre) van szüksége a metaadatok gyűjtésének befejezéséhez
_assimilate_bus.get_properties (on_bus_received, on_bus_complete);
_timer_property_request.reset (); // eltarthat a figyelemre méltó időig, ezért kezdje el újra
}
voidloop () {
if (! check_fatal_error ()) return;
mqtt_loop ();
_szerver.handleClient ();
if (_timer_property_request.repeat ()) {
_assimilate_bus.get_properties (on_bus_received, on_bus_complete);
}
}

Tekintse meg a rawmqtt_crouton_esp8266_cors_webcomponents.ino webhelyet, amelyet a GitHub ❤ üzemeltet

5. lépés: ESZKÖZKÁRTYA

ESZKÖZKÁRTYA
ESZKÖZKÁRTYA
ESZKÖZKÁRTYA
ESZKÖZKÁRTYA
ESZKÖZKÁRTYA
ESZKÖZKÁRTYA
ESZKÖZKÁRTYA
ESZKÖZKÁRTYA

Az eszközkártya (kártya típusa: assim-device) a webhelyen található, és nem szükséges kiszolgálni az eszközről (CORS).

Az alapértelmezett oldalak listája:

  • Az MQTT témák az eszközre történő olvasáshoz és íráshoz
  • A hozzáférési pont, amelyhez a készülék csatlakozik
  • Hivatkozás az eszközön tárolt SPIFFS fájlszerkesztőre az ACE EDITOR használatával
  • Egy szem ikon, amely megjeleníti a Kártya megjelenítése/elrejtése oldalt.

A kártya megjelenítése/elrejtése oldalak listája:

  • Minden kártya külön elemként
  • Félkövér kék betűtípus megjelenítéskor
  • Fekete normál betűtípus rejtett állapotban
  • A kártya típusát ábrázoló ikon.

A kártyát elrejtheti a kártyákon található elrejtés gombra kattintva, vagy a kék-félkövér betűtípussal a listában. A kártyák a listában megjelenő fekete-normál betűtípusú elemre kattintva jeleníthetők meg.

Ehhez a funkcióhoz lazán kapcsolódik az információs pirítós. Ha a deviceInfo valamelyik végpontjához hozzá van rendelve egy info tulajdonság, a kártyán az elrejtés gomb mellett megjelenik egy info gomb. Ha rákattint, a végpontban meghatározott kontextuális információ "megpirul" az ablakhoz.

Ha az eszközkártya nincs megadva, az elrejtés gombok nem jelennek meg a kártyákon. Ennek az az oka, hogy ha egyszer elrejtik, akkor nem lehet őket újra megjeleníteni.

Tekintse meg az ENDPOINT CUSTOMIZATION (ENDPOINT SZABÁLYOZÁS) című részt, hogy részletesen leírja, hogyan lehet hozzáadni az assim-eszköz kártyát az ESP8266 SPIFFS-fájljain keresztül.

AssimilateCrouton webkomponens

vas-jelek>
div>
MUTASSA EL AZ IKONOT
i> span>
KÉSZÜLÉK FORMA
MQTT TÉMÁKdiv>
/outbox/{{endPointJson.device_name}}/*div>
/inbox/{{endPointJson.device_name}}/*div>
WIFI SSIDdiv>
{{endPointJson.ssid}} div>
IP CÍMdiv>
{{endPointJson.ip_addr}} a> div>
div>
MUTASSA EL A REJTÉS LISTÁT
elem>papírtétel>
sablon>
papírlista>
div>
crouton-card>
sablon>
dom-modul>

Tekintse meg a rawassim-device.html fájlt, amelyet a GitHub ❤ üzemeltet

6. lépés: HÉTKÉP KÁRTYA

HÉTKÉP KÁRTYA
HÉTKÉP KÁRTYA
HÉTKÉP KÁRTYA
HÉTKÉP KÁRTYA
HÉTKÉP KÁRTYA
HÉTKÉP KÁRTYA

A hétnézet kártya (kártya típusa: assim-weekview) a készüléken található (cors mappa). Az AssimilateCrouton számára közzétett deviceInfo csomagba fecskendezik be, ha hozzáad egy config/user_card _#. Json fájlt az SPIFFS -hez (ebben az esetben user_card_9.json).

ÁTTEKINTÉS

A hétköznapok az időrések listájaként jelennek meg. Az időrés részletességét az "interval_mins" tulajdonsággal állítjuk be a config/user_card _#. Json fájlban. Az óra töredékének vagy az óra többszörösének kell lennie pl. 10, 15, 20, 30, 60, 120, 360. Ha rákattint egy időrésre, győződjön meg arról, hogy a bekapcsolt állapot parancsot kap a társított eszközhöz. Ha az időrés most van, az eszköz azonnal parancsot küld (közzétesz). Általában az állapotot percenként ellenőrzik/teszik közzé. A kiválasztásokat a LocalStorage tárolja, így az időket a böngésző frissítésével újratöltik.

ESETEK HASZNÁLATA

Jelenlegi állapotában a heti nézet olyan eszközökre alkalmas, amelyek Toggle kapcsolóval képesek megjeleníteni állapotukat, azaz be vagy ki, és a beállítás után ebben az állapotban maradnak. A lámpák, a ventilátorok és a vízmelegítők jó jelöltek.

KORLÁTOZÁSOK/KÖVETELMÉNYEK

  • A interval_mins értéknek a fent említett értékek egyikének kell lennie
  • A heti nézet nem támogatja az ütemezett, szintén ütemezett műveleteket, például a napi kétszeri rövid (5 másodperces) bekapcsolást.

JÖVŐ

  • Várhatóan a pillanatnyi intézkedéseket támogatják.
  • Az ütemezés kiválasztásakor figyelembe vesszük az eszközök közötti szinkronizált tárolást.

7. lépés: KÖTELEZŐ TESZTESÍTÉS

Amint azt a FIRMWARE röviden említette, a SPIFFS fájlrendszerhez 2 új konvenciót adtak hozzá a végpontok testreszabásához. A JSON -fájlok töredékek, amelyek hozzáadódnak az eszközinformációs csomag végponttulajdonságához az MQTT -brókerhez, amely az irányítópult -definíció lesz.

A végpontok kulcsait a firmware generálja:

  • CC_device (egyéni kártya) a user_card_base.json számára
  • CC_SLAVE_ENDPOINT NAME a user_card _#. Json (# a szolga cím)

Amint azt korábban említettük, vannak olyan változók, amelyek futásidőben helyettesítik az értékeket:

  • mqtt_eszköz_neve
  • wifi_ssid
  • local_ip

user_card_base.json

Egy példa:

user_card _#. json

Egy példa:

8. lépés: VIDEÓK

Ajánlott: