Mündəricat:

IOT123 - SENSÖR HUBUNU YÜKLƏ: ICOS10 CORS WEBCOMPONENTS: 8 Addım
IOT123 - SENSÖR HUBUNU YÜKLƏ: ICOS10 CORS WEBCOMPONENTS: 8 Addım

Video: IOT123 - SENSÖR HUBUNU YÜKLƏ: ICOS10 CORS WEBCOMPONENTS: 8 Addım

Video: IOT123 - SENSÖR HUBUNU YÜKLƏ: ICOS10 CORS WEBCOMPONENTS: 8 Addım
Video: IOT123 - ASSIMILATE SENSOR HUB: CROUTON INTEGRATION 2024, Iyul
Anonim
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CORS WEBCOMPONENTS

ASSIMILATE SENSOR/ACTOR Slaves, Croutonda vizualizasiyanı təyin etmək üçün istifadə olunan metadata yerləşdirir. Bu quruluş əvvəlkilərdən bir qədər fərqlidir; hardware dəyişiklikləri yoxdur. Firmware, AssimilateCrouton -un son quruluşuna inteqrasiya edilə bilən xüsusi (daha zəngin) redaktorların yerləşdirilməsini dəstəkləyir. Bu yazıda firmware və MQTT tablosunu izah etməyə daha çox diqqət yetiriləcəkdir.

İdarə etdikləri cihazdan WebComponents xidmətinin üstünlüklərindən biri, cihazın daha inkişaf etmiş idarəetməsinin cihazın bağlı olduğu şəbəkə ilə məhdudlaşmasıdır: WiFi Giriş Nöqtəniz. Doğrulaması olan bir MQTT serverindən istifadə etdikdən sonra bir oxşarlıq olsa da, ictimai şəbəkələrdə Brauzerinizi bir anlıq tərk etsəniz (AssimilateCrouton veb saytı) kimsə sıçrayaraq avtomatlaşdırma cihazlarınızı idarə edə bilər. Bu CORS WebComponent xüsusiyyəti, yalnız cihaz şəbəkəsində mövcud olan oxunuşların (temp, işıq səviyyələri, rütubət) və komanda funksiyalarının (açma/söndürmə, planlaşdırma) olmasını mümkün edir.

Cihazda, SPIFFS -də Doğrulama və Hostingə sahib olan bütün veb server xüsusiyyətləri hələ də dəstəklənir, lakin Polymer WebComponents (Crouton Polymer 1.4.0 istifadə edir) üçün CORS (Cross Origin Resource Sharing) dəstəyi üçün xüsusi diqqət yetirilmişdir.

AssimilateCrouton -da (IOT Şəbəkəsini Assimilyasiya etmək üçün istifadə olunan Crouton çəngəli) dəyişikliklər daxildir

  • bir istifadəçi üçün bir cihaz üçün fərdi kartları göstərən və gizlədən bir Cihaz kartı (assim-cihaz) dəstəyi
  • bir kart üçün faydalı kontekstli məlumatların tostunu göstərən bütün kartlardakı info mülkü
  • CORS veb komponentlərinə dəstək, bu vəziyyətdə cihazdakı veb serverdə yerləşdirilir (ESP8266).

Addım 1: CROUTON

CROUTON
CROUTON
CROUTON
CROUTON

Croutonis, IOT cihazlarınızı minimum quraşdırma ilə görselleştirmenize və idarə etməyə imkan verən bir tablosudur. Əslində, yalnız MQTT və JSON istifadə edərək hər hansı bir IOT hardware həvəskarı üçün qurmaq üçün ən asan tablosudur.

ASSIMILATE SLAVES (sensorlar və aktyorlar), ustanın Croutonun tablosunu qurmaq üçün istifadə etdiyi cihazı qurmaq üçün istifadə etdiyi metadata və xüsusiyyətlərə malikdir. ASSIMILATE NODES və Crouton arasındakı vasitəçi, webockets dostu olan bir MQTT brokeridir: Demo üçün ağcaqanad istifadə olunur.

ASSIMILATE MASTER xassələri istədiyi üçün cavab dəyərlərini Crouton yeniləmələri üçün lazım olan formatda formatlayır. AssimilateCrouton çəngəl, cihazınızı idarə edən iş qaydalarını mərkəzdən kənarlaşdırmağa imkan verən bəzi xüsusiyyətlər əlavə edir, yəni IOT cihazının heç bir quraşdırılmış iş qaydasına ehtiyacı yoxdur, bu, daha ağıllı (ATTINY idarə olunan) qul aktyorları və sensorlar üçün MQTT/I2C əlaqəsi üçün bir boru kəməridir..

Addım 2: CROUTON ASSIMILATE

CROUTON ASIMILAYIN
CROUTON ASIMILAYIN

CROUTON -a DƏYİŞİKLİKLƏR

Çatdırılmış versiyada edilən dəyişikliklərə aşağıdakılar daxildir:

  • bir son nöqtənin təyin edilmiş bir yol xüsusiyyəti varsa, kart üçün WebComponent bir CORS qaynağı üçün HTMLImport edəcək (bu quruluşdakı ESP8266 üzərindəki veb server).
  • bir CORS WebComponentindən (asılılığından) yuxarı olan bütün mənbələrə, sanki Crouton veb saytından xidmət edildiyi kimi istinad edilir; İstisna işçisi yükləyə bilmədikdə, veb saytdan yolları və yükləri yeniləyir.
  • cari bir yerli vaxt, yoxlamanın planlaşdırılması üçün faydalı olan yuxarı sağda göstərilir.

POLİMERDƏN BAĞLI VƏ CORS

Polimer asılılıq ağacının yarpaqları CORS -da yerləşdirilə bilər. Kök asılılıqları bir tətbiqdə bir neçə dəfə istifadə oluna biləcəyi üçün, 2 yerdən (veb sayt və cihaz) istinad edilə bilməz, çünki Polimer Modul Yükləyicisi onlara 2 ayrı qaynaq kimi baxır və birdən çox qeyd səhvləri bir tətbiqə tez bir zamanda mane olur.

Bu səbəbdən bir kart üçün WebComponent (1.4.0 -da HTML faylı) və əlaqəli CSS faylı cihazda yerləşdirilən yeganə fayllardır. Digər asılılıqlara, sanki WebComponent, qaynaqlanan veb saytdakı "html" qovluğunda yerləşdirilmiş kimi istinad edilir, bu da ESP8266 -da SPIFFS -ə yüklənməyə hazır olana qədər bu qovluqdan WebComponentləri inkişaf etdirməyi asanlaşdırır. AssimilateCrouton düzgün faylları necə əldə edəcəyinizi öyrənəcək.

İŞLƏMƏ

orijinal Croutonun yaradıcısı edfungus, mənbəyi Pug/Less -da yazdı və NPM/Grunt alət zəncirinə sahib idi. Pug/Less -ı HTML/css olaraq göstərdim və göstərilən sənədləri düzəldim/payladım. Bu, NPM/Grunt alət zəncirini qırdı. Bunu düzəltmək GƏLƏCƏK bölməsindədir.

Tablosunu DEV qutunuzda yerli olaraq sınaya bilərsiniz:

  • Kök qovluğundakı əmr satırından
  • npm başlanğıcı
  • lite-server https:// localhost: 10001 üçün ayrılmışdır

Statik bir veb serverinə yerləşdirin:

  • node_modules istisna olmaqla bütün qovluqları kopyalayın
  • index.html (və bəlkə də web.config) kopyalayın

GƏLƏCƏK

Əsas məqsədlərdən biri Polymer3 -ə yüksəltmək və Polymer CLI -dən işləməkdir. IOT inkişaf etdiricilərinə özlərini inkişaf etdirmək üçün qabaqcıl redaktorlar və çərçivə əlavə etmək yüksək prioritetdir. Nəhayət inkişaf etmiş avtomatlaşdırılmış sistem tamamilə AssimilateCrouton kimi ayrılmış MQTT müştərilərindən idarə olunacaq.

AssimilateCrouton üçün istifadə olunan cihazın məlumat paketinə bir nümunə:

{
"deviceInfo": {
"endPoints": {
"CC_device": {
"cihaz_adı": "ash_mezz_A3",
"card-type": "assim-device",
"ssid": "Corelines_2",
"ip_addr": "192.168.8.104",
"son nöqtələr": [
{
"title": "İşıqları Grow",
"card-type": "crouton-simple-toggle",
"son nöqtə": "keçid"
},
{
"title": "Planter Lights",
"card-type": "crouton-assim-weekview",
"son nöqtə": "CC_switch"
}
]
},
"CC_switch": {
"card-type": "assim-weekview",
"info": "İşıqları 15 dəqiqəlik zaman aralığında yandırın və ya söndürün",
"yol": "https://192.168.8.104/cors",
"title": "Planter Lights",
"interval_mins": 15,
"dəyərlər": {
"dəyər": ""
}
},
"keçid": {
"title": "İşıqları Grow",
"card-type": "crouton-simple-toggle",
"info": "Xüsusi olaraq işıqları yandırın və ya söndürün",
"etiketlər": {
"false": "OFF",
"doğru": "ON"
},
"nişanlar": {
"yalan": "günəş-o",
"doğru": "günəş-o"
},
"dəyərlər": {
"dəyər": 0
}
}
},
"status": "yaxşı",
"adı": "ash_mezz_A3",
"description": "Ashmore, Mezzanine, A2 Sahəsindəki Ofis",
"color": "#4D90FE"
}
}

GitHub tərəfindən ❤ ilə ev sahibliyi edilən rawdeviceInfo.json -a baxın

Addım 3: CİHAZ MONTAJI

CİHAZ MONTAJI
CİHAZ MONTAJI
CİHAZ MONTAJI
CİHAZ MONTAJI
CİHAZ MONTAJI
CİHAZ MONTAJI

Heç bir hardware dəyişikliyi olmadığı üçün burada müvafiq məlumatların bağlantıları verilmişdir:

  • Shell Assambleyası
  • Alətlər və materiallar
  • MCU Hazırlığı
  • MCU mənzil hazırlığı
  • Qulların aşağı tərəfli keçidinin qurulması/RESET qız lövhəsi
  • Əsas komponentlərin yığılması

Addım 4: FIRMWARE

FİRMA HAQQINDA
FİRMA HAQQINDA
FİRMA HAQQINDA
FİRMA HAQQINDA
FİRMA HAQQINDA
FİRMA HAQQINDA
FİRMA HAQQINDA
FİRMA HAQQINDA

ƏSAS BU BİNANI DƏYİŞİR

AssimilateCrouton tətbiqinin cihazdan CORS qaynaqlarından istifadə edə bilməsi üçün cavab başlıqlarının müəyyən bir şəkildə konfiqurasiya edilməsi lazım idi. Bu, firmware proqramının bu buraxılışında tətbiq edildi (static_server.ino => server_file_read ()).

Həm də Polimer üçün əsas asılılıq qrafikinin tək bir mənşəli olması lazım idi. Cihazda tapılmadıqda mənbələri AssimilateCrouton veb saytından yenidən yükləmək üçün SPIFFS CORS fayllarına bir səhv işləyicisi (corsLinkOnError) əlavə etmək üçün bir strategiya istifadə edildi.

DeviceInfo -da yaradılan son nöqtələri fərdiləşdirmək üçün SPIFFS fayl sisteminə 2 yeni konvensiya əlavə edildi - AssimilateCrouton tablosuna kartlar yaratmaq üçün istifadə edir:

  • /config/user_card_base.json İş vaxtı dəyişənlərinin əvvəl dəyişdirildiyi son nöqtə tərifi:,,. Adətən, assim-cihaz kartının əlavə ediləcəyi yer budur. Bu cihazla geri əlaqə qurmur.
  • /config/user_card_#.json İş vaxtı dəyişənlərinin əvvəl dəyişdirildiyi son nöqtə tərifi:,,. Adətən, assim-weekview kartı kimi zəngin redaktorların #ilə əlaqəli I2C quluna (aktyor/sensor) bağlanacağı yerdir.

Eskiz/KİTABXANALAR

Bu mərhələdə layihə AssimilateBus Arduino kitabxanasına nümunə olaraq qablaşdırıldı. Bu, əsasən bütün lazımlı faylların Arduino IDE -dən əldə olunmasını asanlaşdırmaq üçündür. Əsas kod artefaktları bunlardır:

  • mqtt_crouton_esp8266_cors_webcomponents.ino - əsas giriş nöqtəsi.
  • assimilate_bus.h/assimilate_bus.cpp - Qul Sensoru/Aktyorları ilə I2C əlaqəsini idarə edən kitabxana
  • VizJson.h/VizJson.cpp - MQTT vasitəsilə nəşr olunan hər hansı bir JSON -u format edən/quran kitabxana.
  • config.h/config.cpp - SPIFFS -də konfiqurasiya fayllarını oxuyan/qutulara yazan kitabxana
  • static_i2c_callbacks.ino - alınan bir mülk üçün I2C geri çağırışları və kölə istəklərinin dövrü tamamlandı static_mqtt.ino - MQTT funksiyaları
  • static_server.ino - veb server funksiyaları
  • static_utility.ino - köməkçi funksiyaları

Statik INO funksiyaları (kitabxanalar əvəzinə) müxtəlif səbəblərdən istifadə edilmişdir, lakin əsasən Webserver və MQTT funksiyalarının birlikdə yaxşı oynaya bilməsi üçün.

SPIFFS QAYNAQLARI

SPIFFS fayllarının ətraflı izahatlarını burada tapa bilərsiniz.

  • favicon.ico - Ace Redaktorunun istifadə etdiyi mənbə
  • konfiqurasiya
    • device.json - cihazın konfiqurasiyası (Wifi, MQTT…)
    • slave_metas _#. json - hər bir slave ünvan nömrəsi üçün iş vaxtı yaradılır (#)
    • user_card _#. json - hər bir slave ünvan nömrəsi üçün deviceInfo -ya inteqrasiya olunacaq xüsusi son nöqtə (#)
    • user_card_base.json - cihaz üçün deviceInfo -ya inteqrasiya olunacaq xüsusi son nöqtə
    • user_meta _#. json - hər bir kölə ünvan nömrəsi üçün kölələrin xüsusi meta məlumatları (#)
    • user_props.json - qulların metadatasındakıları ləğv etmək üçün xüsusi mülk adları
  • cors

    • card -webcomponent.css - müxtəlif xüsusi kartlar üçün üslub cədvəli
    • card -webcomponent.html - müxtəlif xüsusi kartlar üçün vebkomponent
  • Redaktor

    • assimilate -logo-p.webp" />
    • edit.htm.gz - Ace Editor HTML -nin gzip
    • edit.htm.src - Ace Redaktorunun orijinal HTML -si
    • favicon -32x32-p.webp" />

FİRMA AYARININ YÜKLƏNMƏSİ

  • Kod anbarını burada tapa bilərsiniz (anlıq görüntü).
  • Kitabxananın bir ZIP ünvanını burada tapa bilərsiniz (anlıq görüntü).
  • "ZIP Kitabxanasının idxal edilməsi" üçün təlimatlar burada.
  • Kitabxana quraşdırıldıqdan sonra "mqtt_crouton_esp8266_cors_webcomponents" nümunəsini aça bilərsiniz.
  • Wemos D1 Mini üçün Arduino qurmaq üçün təlimatlar burada.
  • Asılılıqlar: ArduinoJson, TimeLib, PubSubClient, NeoTimer (depolardakı dəyişikliklər pozularsa əlavələrə baxın).

SPIFFS YÜKLƏ

Kod Arduino IDE -yə yükləndikdən sonra data/config qovluğunda device.json açın:

  • WiFi SSID ilə wifi_ssid dəyərini dəyişdirin.
  • WiFi Açarınızla wifi_key dəyərini dəyişdirin.
  • Mqtt_device_name dəyərini istədiyiniz cihaz identifikasiyası ilə dəyişdirin (qoşulmağa ehtiyac yoxdur).
  • İstədiyiniz Cihaz Təsviri ilə mqtt_device_description dəyərini dəyişdirin (Croutonda).
  • Cihazı saxla.json.
  • Məlumat fayllarını SPIFFS -ə yükləyin.

AssimilateBus nümunəsi üçün əsas giriş nöqtəsi:

/*
*
*CİHAZINIZIN İŞ QAYDALARININ MQTT ÜZRƏ NƏZARƏT EDİLMƏSİ GÜZƏLDİR - BU BİRLİKDƏ YOXLANMADI.
*
* Bu fayldakı quraşdırma və döngədən başqa
* vacib hərəkət edən hissələrdir
* on_bus_received və on_bus_complete in static_i2c_callbacks.ino
* və
* mqtt_publish və mqtt_callback static_mqtt.ino'da
*
*/
#"növləri.h" daxil edin
#"VizJson.h" daxil edin
#"assimilate_bus.h" daxil edin
#"debug.h" daxil edin
#"config.h" daxil edin
#daxil edin

#daxil edin

// MQTT_MAX_PACKET_SIZE -ni ~ 3000 (və ya deviceInfo json üçün ehtiyaclarınız) olaraq təyin edin

#daxil edin
#daxil edin
#daxil edin
#daxil edin
#daxil edin
// -------------------------------- Xatirə Bəyannamələri
// ------------------------------------------------ - müəyyən edir
#defineDBG_OUTPUT_FLAG2 // 0, 1, 2 MINIMUMUM, RELEASE, FULL
#define_mqtt_pub_topic "outbox" // CROUTON CONVENTIONS
#define_mqtt_sub_topic "gələnlər qutusu"
// ------------------------------------------------ - sinif obyektləri
Debug _debug (DBG_OUTPUT_FLAG);
AssimilateBus _assimilate_bus;
VizJson _viz_json;
_Config_data konfiqurasiya edin;
WiFiClient _esp_client;
PubSubClient _client (_esp_client);
WiFiUDP Udp;
ESP8266WebServer _server (80);
Neotimer _timer_property_request = Neotimer (5000);
// ------------------------------------------------ - məlumat strukturları / dəyişənlər
RuntimeDeviceData _runtime_device_data;
PropertyDto _dto_props [50]; // maksimum 10 qul x max 5 xüsusiyyət
// ------------------------------------------------ - nəzarət axını
volatilebool _sent_device_info = yalan;
bayt _dto_props_index = 0;
bool _fatal_error = yalan;
// --------------------------------- FUNKSİYA KAPSAM BƏYANNAMƏLƏRİ
// ------------------------------------------------ - static_i2c_callbacks.ino
voidon_bus_received (bayt slave_adress, byte prop_index, Rol rolu, char adı [16], char dəyəri [16]);
voidon_bus_complete ();
// ------------------------------------------------ - static_mqtt.ino
voidmqtt_callback (char* mövzu, bayt* yük, imzasız uzunluq);
voidmqtt_loop ();
int8_tmqtt_get_topic_index (char* mövzu);
voidmqtt_init (constchar* wifi_ssid, constchar* wifi_password, constchar* mqtt_broker, int mqtt_port);
voidmqtt_create_subscription ();
voidmqtt_publish (char *root_topic, char *deviceName, char *endpoint, constchar *payload);
boolmqtt_ensure_connect ();
voidmqtt_subscribe (char *root_topic, char *deviceName, char *endpoint);
voidi2c_set_and_get (bayt ünvanı, bayt kodu, constchar *parametr);
// ------------------------------------------------ - static_server.ino
String server_content_type_get (String fayl adı);
boolserver_path_in_auth_exclusion (String yolu);
boolserver_auth_read (String yolu);
boolserver_file_read (String yolu);
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 və ünvan);
char *time_stamp_get ();
// ------------------------------------------------ - static_utility.ino
String spiffs_file_list_build (String yolu);
voidreport_deserialize_error ();
voidreport_spiffs_error ();
boolcheck_fatal_error ();
boolget_json_card_type (bayt slave_adress, byte prop_index, char *card_type);
boolget_struct_card_type (bayt slave_adress, byte prop_index, char *card_type);
boolget_json_is_series (bayt kölə_ ünvanı, bayt prop_index);
voidstr_replace (char *src, constchar *oldchars, char *newchars);
bayt get_prop_dto_idx (bayt kölə_ ünvanı, bayt prop_index);
// -------------------------------- ANA
voidsetup () {
DBG_OUTPUT_PORT.begin (115200);
SetupDeviceData device_data;
Serial.println (); Serial.println (); // konsol zibili üçün marja
gecikmə (5000);
əgər (DBG_OUTPUT_FLAG == 2) DBG_OUTPUT_PORT.setDebugOutput (doğru);
_debug.out_fla (F ("quraşdırma"), doğru, 2);
// lazım olan konfiqurasiyanı əldə edin
əgər (SPIFFS.begin ()) {
_debug.out_str (spiffs_file_list_build ("/"), doğru, 2);
əgər (! _config_data.get_device_data (device_data, _runtime_device_data)) {
report_deserialize_error ();
qayıtmaq;
}
} başqa {
report_spiffs_error ();
qayıtmaq;
}
// device.json -da təyin olunan taymer dəyərindən istifadə edin
_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 (device_data.ntp_server_name, device_data.time_zone);
server_init ();
// metadata kolleksiyasına başlayın
_assimilate_bus.get_metadata ();
_assimilate_bus.print_metadata_details ();
mqtt_ensure_connect ();
// metadata toplanmasını tamamlamaq üçün sensor xüsusiyyətinə (adlarına) ehtiyac var
_assimilate_bus.get_properties (avtobusda_ qəbul edildi, avtobusda_ tamamlandı);
_timer_property_request.reset (); // bu vaxta qədər nəzərəçarpacaq vaxt keçə bilər, buna görə yenidən başlayın
}
voidloop () {
əgər (! check_fatal_error ()) qayıt;
mqtt_loop ();
_server.handleClient ();
əgər (_timer_property_request.repeat ()) {
_assimilate_bus.get_properties (avtobusda_ qəbul edildi, avtobusda_ tamamlandı);
}
}

GitHub ❤ tərəfindən ev sahibliyi edilən rawmqtt_crouton_esp8266_cors_webcomponents.ino bax

Addım 5: CİHAZ KARTI

CİHAZ KARTI
CİHAZ KARTI
CİHAZ KARTI
CİHAZ KARTI
CİHAZ KARTI
CİHAZ KARTI
CİHAZ KARTI
CİHAZ KARTI

Cihaz kartı (kart növü: assim-cihaz) veb saytında yerləşdirilir və cihazdan (CORS) istifadə etmək lazım deyil.

Varsayılan səhifə siyahıları:

  • Cihaza oxumaq və yazmaq üçün MQTT mövzuları
  • Cihazın bağlı olduğu giriş nöqtəsi
  • ACE EDITOR istifadə edərək cihazda yerləşdirilən SPIFFS fayl redaktoruna keçid
  • Kartı Göstər/Gizlət səhifəsini ortaya çıxaran göz simvolu.

Kartı Göstər/Gizlət səhifələrinin siyahısı:

  • Hər bir kart ayrı bir maddə olaraq
  • Göstərərkən qalın mavi şrift
  • Gizli olduqda qara normal yazı tipi
  • Kart növünü göstərən bir simge.

Kart, kartlardakı gizlət düyməsini və ya siyahıdakı mavi rəngli şriftli bir elementi tıklayaraq gizlədilə bilər. Kartlar siyahıdakı qara-normal şriftli bir elementə basaraq göstərilə bilər.

Məlumat tostları bu xüsusiyyətlə əlaqəli deyil. DeviceInfo -dakı son nöqtələrdən hər hansı birinə bir məlumat mülkü təyin edilmişsə, kartdakı gizlət düyməsinin yanında bir məlumat düyməsi görünəcək. Tıklandığında son nöqtədə təyin olunan kontekstual məlumatlar pəncərəyə "qızardılır".

Cihaz kartı müəyyən edilmədikdə, gizlət düymələri kartlarda göstərilməyəcək. Bunun səbəbi, bir dəfə gizlədildikdə, onları göstərmək üçün bir yolun olmamasıdır.

Assim-cihaz kartının ESP8266 üzərindəki SPIFFS faylları vasitəsilə necə əlavə oluna biləcəyini ətraflı öyrənmək üçün ENDPOINT CUSTOMIZATION-a baxın.

AsimilatCrouton Web Komponenti

dəmir siqnalları>
div>
İCADƏ GÖSTƏRİN
mən> aralım>
CİHAZ FORMASI
MQTT MÖVZULARI>
/çıxış qutusu/{{endPointJson.device_name}}/*div>
/gələn qutusu/{{endPointJson.device_name}}/*div>
WIFI SSIDdiv>
{{endPointJson.ssid}} div>
IP ADDRESSdiv>
{{endPointJson.ip_addr}} a> div>
div>
LİSTE GÖSTƏRİN
element>kağız maddəsi>
şablon>
kağız siyahısı>
div>
crouton kartı>
şablon>
dom-modul>

GitHub tərəfindən ❤ ilə evlənən rawassim-device.html-ə baxın

Addım 6: HƏFTƏ Baxış Kartı

HƏFTƏ Baxış Kartı
HƏFTƏ Baxış Kartı
HƏFTƏ Baxış Kartı
HƏFTƏ Baxış Kartı
HƏFTƏ Baxış Kartı
HƏFTƏ Baxış Kartı

Həftə baxışı kartı (kart növü: assim-weekview) cihazda yerləşdirilir (cors qovluğu). SPIFFS -ə (bu halda user_card_9.json) config/user_card _#. Json faylını əlavə etməklə AssimilateCrouton üçün nəşr olunan deviceInfo paketinə yeridilir.

Baxış

Həftə günləri vaxt aralıqlarının siyahısı kimi təqdim olunur. Zaman diliminin təfərrüatı config/user_card _#. Json-da "interval_mins" xassəsi ilə təyin olunur. Bir saatın bir hissəsi və ya bir saatın çoxluğu olmalıdır. 10, 15, 20, 30, 60, 120, 360. Vaxt aralığına tıklandıqda, əlaqəli cihaz üçün o vaxt əmr olunmasını təmin edin. Vaxt aralığı indidirsə, cihaz üçün dərhal bir əmr göndərilir (dərc olunur). Adətən dövlət hər dəqiqə yoxlanılır/nəşr olunur. Seçimlər LocalStorage -də saxlanılır, buna görə vaxtlar brauzer yeniləməsi ilə yenidən yüklənəcək.

VAKALARI İSTİFADƏ EDİN

Mövcud vəziyyətdə, həftəlik görünüş, vəziyyətini görselleştirmek üçün bir Toggle açarından istifadə edə bilən cihazlara uyğundur, yəni ya açılır, ya da söndürülür və qurulduqdan sonra həmin vəziyyətdə qalır. İşıqlar, fanatlar və su qızdırıcıları yaxşı namizədlərdir.

SINIRLAMALAR/CAVEATLAR

  • İnterval_mins yuxarıda göstərilən dəyərlərdən biri olmalıdır
  • Həftə baxışı, gündə iki dəfə qısa müddətdə (5 saniyə) açmaq kimi planlaşdırılan ani hərəkətləri dəstəkləmir.

GƏLƏCƏK

  • Ani hərəkətlərin dəstəklənəcəyi gözlənilir.
  • Cihazlar arasında sinxron saxlama, cədvəl seçimləri nəzərə alınır.

Addım 7: NÖVƏSİNİN ÖZELLEŞTİRİLMƏSİ

FIRMWARE -də qısaca qeyd edildiyi kimi, son nöqtələri fərdiləşdirmək üçün SPIFFS fayl sisteminə 2 yeni konvensiya əlavə edilmişdir. JSON sənədləri, MQTT brokerinə göndərilən, cihaz tablosunun tərifinə çevrilən deviceInfo paketindəki son nöqtələr xüsusiyyətinə əlavə olunan hissələrdir.

Son nöqtələrin açarları firmware -də yaradılır:

  • User_card_base.json üçün CC_device (Xüsusi Kart)
  • User_card _#. Json üçün CC_SLAVE_ENDPOINT NAME (# kölə ünvandır)

Daha əvvəl də qeyd edildiyi kimi, iş vaxtı dəyərləri əvəz edən dəyişənlər var:

  • mqtt_device_adı
  • wifi_ssid
  • local_ip

user_card_base.json

Nümunə:

user_card _#. json

Nümunə:

Addım 8: VİDEOLAR

Tövsiyə: