Talaan ng mga Nilalaman:

IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CORS WEBCOMPONENTS: 8 Hakbang
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CORS WEBCOMPONENTS: 8 Hakbang

Video: IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CORS WEBCOMPONENTS: 8 Hakbang

Video: IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CORS WEBCOMPONENTS: 8 Hakbang
Video: Indefinite Pitch PREMIERES. Mod.1 - Into The Circle [Linderluft Records] 2024, Nobyembre
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

Ang ASSIMILATE SENSOR / ACTOR Slaves ay naka-embed na metadata na ginagamit para sa pagtukoy ng mga visualization sa Crouton. Ang pagbuo na ito ay bahagyang naiiba mula sa mga nauna; walang mga pagbabago sa hardware. Sinusuportahan na ngayon ng firmware ang pag-host ng mga pasadyang (mas mayamang) editor na maaaring isama sa pinakabagong build ng AssimilateCrouton. Magbibigay ng higit na pansin sa pagpapaliwanag ng firmware at ang dashboard ng MQTT sa artikulong ito.

Ang isa sa mga pakinabang ng paghahatid ng mga WebComponent mula sa aparato na kanilang kinokontrol, ay ang mas advanced na kontrol ng aparato ay nalilimitahan sa network na nakakonekta ang aparato sa: iyong WiFi Access Point. Bagaman sa sandaling gumamit ka ng isang MQTT server na may pagpapatunay mayroong pagkakahawig ng proteksyon, sa mga pampublikong network kung iniiwan mo ang iyong Browser sandali (website ng AssimilateCrouton) maaaring may isang tao na tumalon at makontrol ang iyong mga aparatong awtomatiko. Ang tampok na CORS WebComponent na ito ay ginagawang posible na magkaroon lamang ng mga pagbasa (temp, antas ng ilaw, kahalumigmigan) na ipinakita sa publiko at mga function ng utos (on / off, pag-iiskedyul) na magagamit lamang mula sa network ng aparato.

Sa aparato, ang lahat ng mga tampok sa webserver na may Pagpapatotoo at Pag-host sa SPIFFS ay suportado pa rin, ngunit ang espesyal na pokus ay nagawa para sa suporta ng CORS (Cross Origin Resource Sharing) para sa Polymer WebComponents (gumagamit ang Crouton ng Polymer 1.4.0).

Sa AssimilateCrouton (ang tinidor ng Crouton na ginamit para sa Assimilate IOT Network) kasama ang mga pagbabago

  • suporta para sa isang Device card (assim-device) na bukod sa iba pang mga bagay na ipinapakita at itinatago, para sa isang gumagamit, mga indibidwal na card para sa isang aparato
  • impormasyon ng pag-aari sa lahat ng mga card na nagpapakita ng isang toast ng kapaki-pakinabang na impormasyon ayon sa konteksto para sa isang card
  • suporta para sa mga webcomponent ng CORS, sa kasong ito ay naka-host sa webserver sa aparato (ESP8266).

Hakbang 1: CROUTON

CROUTON
CROUTON
CROUTON
CROUTON

Ang Croutonis isang dashboard na magbibigay-daan sa iyong mailarawan at makontrol ang iyong mga IOT device na may kaunting pag-set up. Mahalaga, ito ang pinakamadaling dashboard upang mai-set up para sa anumang mahilig sa hardware ng IOT na gumagamit lamang ng MQTT at JSON.

Ang ASSIMILATE SLAVES (sensor at aktor) ay may naka-embed na metadata at mga katangian na ginagamit ng master upang buuin ang aparatoInfo json packet na ginagamit ng Crouton upang maitayo ang dashboard. Ang tagapamagitan sa pagitan ng ASSIMILATE NODES at Crouton ay isang MQTT broker na friendly sa websockets: Ginagamit ang lamok para sa demo.

Habang humihiling ang ASSIMILATE MASTER ng mga pag-aari, ini-format nito ang mga halaga ng tugon sa kinakailangang format para sa mga pag-update ng Crouton. Ang AssimilateCrouton fork ay nagdaragdag ng ilang mga tampok na nagbibigay-daan sa iyo upang ma-desentralisa ang mga patakaran sa negosyo na nagpapatakbo ng iyong aparato ie ang IOT aparato ay hindi nangangailangan ng anumang naka-embed na mga patakaran sa negosyo, ito ay isang pipeline lamang para sa komunikasyon ng MQTT / I2C sa mas matalinong (kinontrol ng ATTIN) na mga aktor at sensor ng alipin.

Hakbang 2: GUMAMIT NG CROUTON

GUMAMIT NG CROUTON
GUMAMIT NG CROUTON

PAGBABAGO SA CROUTON

Kasama sa mga pagbabago mula sa forked na bersyon ang:

  • kung ang isang endpoint ay may tinukoy na landas ng landas, ang WebComponent para sa card ay gagawa ng isang HTMLImport para sa isang mapagkukunan ng CORS (ang webserver sa ESP8266 sa build na ito).
  • anumang mga mapagkukunan sa agos mula sa (mga dependency ng) isang CORS WebComponent ay isinangguni na parang hinahatid mula sa website ng Crouton; kapag nabigo silang mag-load ng isang pagbubukod handler rejigs ang mga landas at naglo-load kung mula sa website.
  • ang isang kasalukuyang lokal na oras ay ipinapakita sa kanan, kapaki-pakinabang para sa pag-iskedyul ng pag-verify.

Mga Depende sa POLYMER AT CORS

Ang mga dahon ng isang Polymer dependency tree ay maaaring ma-host sa CORS. Dahil ang mga dependency ng ugat ay maaaring magamit ng maraming beses sa isang app, hindi sila maaaring mag-refer mula sa 2 lokasyon (ang website at ang aparato) dahil tinatrato sila ng Polymer Module Loader bilang 2 magkakahiwalay na mapagkukunan at maraming error sa pagpaparehistro na mabilis na lumusot sa isang application.

Para sa kadahilanang ito ang WebComponent para sa isang card (HTML file sa 1.4.0) at ang nauugnay na CSS file ay ang tanging mga file na naka-host sa aparato. Ang iba pang mga dependency ay isinangguni na parang ang WebComponent ay naka-host sa folder na "html" sa nagmumulang website, na ginagawang madali upang paunlarin ang WebComponents mula sa folder na iyon hanggang sa handa nang mag-upload sa SPIFFS sa ESP8266. Gagana ang AssimilateCrouton kung paano makuha ang tamang mga file.

KAPANGYARIHAN

Ang tagalikha ng edfungus ng orihinal na Crouton ay sumulat ng mapagkukunan sa Pug / Less at mayroong isang NPM / Grunt toolchain. Na-render ko ang Pug / Mas kaunti bilang HTML / css at na-edit / naipamahagi lamang ang na-render na mga file. Sinira nito ang NPM / Grunt toolchain. Ang pag-aayos nito ay saklaw sa seksyon ng FUTURE.

Maaari mong subukan ang lokal na dashboard sa iyong kahon sa DEV:

  • Mula sa commandline sa root folder
  • magsimula na ako
  • ang lite-server ay nai-ikot para sa https:// localhost: 10001

I-deploy sa isang static webserver:

  • kopyahin ang lahat ng mga folder maliban sa node_modules
  • kopyahin ang index.html (at posibleng web.config)

KINABUKASAN

Ang isa sa mga pangunahing layunin ay upang mag-upgrade sa Polymer3 at gumana mula sa Polymer CLI. Ang pagdaragdag ng mga advanced na editor at balangkas para sa mga developer ng IOT upang paunlarin ang kanilang sarili ay isang mataas na priyoridad. Sa kalaunan ang advanced na awtomatikong system ay tatakbo nang buo mula sa magkahiwalay na mga kliyente ng MQTT tulad ng AssimilateCrouton.

Isang halimbawa ng aparatoInfo packet na ginamit para sa AssimilateCrouton:

{
"deviceInfo": {
"endPoints": {
"CC_device": {
"device_name": "ash_mezz_A3",
"card-type": "assim-device",
"ssid": "Corelines_2",
"ip_addr": "192.168.8.104",
"endpoint": [
{
"title": "Palakihin ang mga ilaw",
"card-type": "crouton-simple-toggle",
"endpoint": "switch"
},
{
"title": "Mga ilaw ng Planter",
"card-type": "crouton-assim-weekview",
"endpoint": "CC_switch"
}
]
},
"CC_switch": {
"card-type": "assim-weekview",
"info": "Itakda o i-off ang mga ilaw sa 15 minutong oras na puwang",
"path": "https://192.168.8.104/cors",
"title": "Mga ilaw ng Planter",
"interval_mins": 15,
"mga halaga": {
"halaga": ""
}
},
"switch": {
"title": "Palakihin ang mga ilaw",
"card-type": "crouton-simple-toggle",
"info": "I-on o i-off ang mga ilaw sa isang batayan ng ad hoc",
"mga label": {
"false": "OFF",
"totoo": "ON"
},
"mga icon": {
"false": "sun-o",
"totoo": "sun-o"
},
"mga halaga": {
"halaga": 0
}
}
},
"katayuan": "mabuti",
"name": "ash_mezz_A3",
"description": "Opisina sa Ashmore, Mezzanine, Area A2",
"color": "# 4D90FE"
}
}

tingnan ang rawdeviceInfo.json na naka-host sa ❤ ng GitHub

Hakbang 3: ASSEMBLY NG DEVICE

ASSEMBLY NG DEVICE
ASSEMBLY NG DEVICE
ASSEMBLY NG DEVICE
ASSEMBLY NG DEVICE
ASSEMBLY NG DEVICE
ASSEMBLY NG DEVICE

Dahil walang mga pagbabago sa hardware, narito ang mga link sa nauugnay na impormasyon:

  • Shell Assembly
  • Mga Materyales at Kasangkapan
  • Paghahanda ng MCU
  • Paghahanda sa Pabahay ng MCU
  • Pagbuo ng Mga Alipin na Mababang panig na Lumipat / I-reset ang Daughter-board
  • Pagtitipon ng mga Pangunahing Bahagi

Hakbang 4: FIRMWARE

FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE

PANGUNAHING PAGBABAGO SA BUONG ITO

Upang ang application ng AssimilateCrouton ay maaaring magamit ang mga mapagkukunan ng CORS mula sa aparato, kailangang i-configure ang mga header ng tugon sa isang partikular na paraan. Ipinatupad ito sa paglabas na ito ng firmware (static_server.ino => server_file_read ()).

Gayundin ang pangunahing grapiko ng pagpapakandili para sa Polymer na kinakailangan mula sa isang solong pinagmulan. Ginamit ang isang diskarte upang magdagdag ng isang onerror handler (corsLinkOnError) sa mga file na SPIFFS CORS upang i-reload ang mga mapagkukunan mula sa website ng AssimilateCrouton kapag hindi ito matatagpuan sa aparato.

Mayroong 2 bagong mga kombensyon na idinagdag sa SPIFFS filesystem para sa pagpapasadya ng mga endpoint na nilikha sa deviceInfo - na ginagamit ng AssimilateCrouton upang likhain ang mga dashboard card:

  • /config/user_card_base.json Kahulugan ng endpoint na may mga variable ng runtime na ipinagpapalit muna:,,. Karaniwan na kung saan idaragdag ang card ng assim-device. Hindi ito nakikipag-usap pabalik sa aparato.
  • /config/user_card_#.json Endpoint kahulugan na may mga variable ng runtime na unang ipinagpapalit:,,. Karaniwan dito kung saan ang mga mayamang editor tulad ng assim-weekview card ay maidaragdag na naka-hook hanggang sa alipin ng I2C (aktor / sensor) na nauugnay sa #.

ANG SKETCH / LIBRARIES

Sa yugtong ito ang proyekto ay nakabalot bilang isang halimbawa para sa AssimilateBus Arduino library. Pangunahin ito upang gawing madaling ma-access ang lahat ng kinakailangang mga file mula sa Arduino IDE. Ang pangunahing artefact ng code ay:

  • mqtt_crouton_esp8266_cors_webcomponents.ino - ang pangunahing punto ng pagpasok.
  • assimilate_bus.h / assimilate_bus.cpp - ang silid-aklatan na humahawak sa komunikasyon ng I2C sa Slave Sensor / Actors
  • VizJson.h / VizJson.cpp - ang library na nag-format / nagtatayo ng anumang JSON na nai-publish sa pamamagitan ng MQTT
  • config.h / config.cpp - ang library na nagbabasa / kahon / nagsusulat ng mga config file sa SPIFFS
  • static_i2c_callbacks.ino - ang mga callback ng I2C para sa isang pag-aari na natanggap at ang pag-ikot ng mga alipin na humihiling na kumpleto static_mqtt.ino - ang mga pagpapaandar ng MQTT
  • static_server.ino - gumagana ang webserver
  • static_utility.ino - pagpapaandar ng helper

Ang static na mga pagpapaandar ng INO ay ginamit (sa halip na mga aklatan) para sa iba't ibang mga kadahilanan, ngunit higit sa lahat upang ang mga pag-andar ng Webserver at MQTT ay maaaring maglaro nang mahusay na magkasama.

ANG SPIFFS RESOURCES

Ang mga detalyadong paliwanag ng mga SPIFFS file ay matatagpuan dito.

  • favicon.ico - mapagkukunang ginamit ng Ace Editor
  • config

    • device.json - ang pagsasaayos para sa aparato (Wifi, MQTT…)
    • slave_metas _ #. json - nabuo sa runtime para sa bawat numero ng address ng alipin (#)
    • user_card _ #. json - pasadyang endpoint na isasama sa aparatoInfo para sa bawat numero ng address ng alipin (#)
    • user_card_base.json - pasadyang endpoint na isasama sa aparatoInfo para sa aparato
    • user_meta _ #. json - pasapawan ng pasadyang metadata ang sa mga alipin para sa bawat numero ng address ng alipin (#)
    • user_props.json - mga pangalan ng pasadyang pag-aari upang ma-override ang mga nasa metadata ng mga alipin
  • cors

    • card-webcomponent.css - styleheet para sa iba't ibang mga pasadyang card
    • card-webcomponent.html - webcomponent para sa iba't ibang mga pasadyang card
  • editor

    • assimilate-logo-p.webp" />
    • edit.htm.gz - gzip ng Ace Editor HTML
    • edit.htm.src - orihinal na HTML ng Ace Editor
    • favicon-32x32-p.webp" />

PAG-UPLOAD NG FIRMWARE

  • Ang repository ng code ay matatagpuan dito (snapshot).
  • Ang isang ZIP ng library ay matatagpuan dito (snapshot).
  • Mga tagubilin para sa "Pag-import ng isang ZIP Library" dito.
  • Kapag na-install na ang library maaari mong buksan ang halimbawang "mqtt_crouton_esp8266_cors_webcomponents".
  • Mga tagubilin para sa pag-set up ng Arduino para sa Wemos D1 Mini dito.
  • Mga Dependency: ArduinoJson, TimeLib, PubSubClient, NeoTimer (tingnan ang mga kalakip kung lumalabag sa mga pagbabago sa mga repository).

MAG-UPLOAD SA SPIFFS

Kapag na-load na ang code sa Arduino IDE, buksan ang device.json sa folder ng data / config:

  • Baguhin ang halaga ng wifi_ssid sa iyong WiFi SSID.
  • Baguhin ang halaga ng wifi_key gamit ang iyong WiFi Key.
  • Baguhin ang halaga ng mqtt_device_name gamit ang iyong ginustong Pagtukoy sa Device (hindi kinakailangan ng pagsali).
  • Baguhin ang halaga ng mqtt_device_description gamit ang iyong ginustong Paglalarawan ng Device (sa Crouton).
  • I-save ang aparato.json.
  • I-upload ang mga file ng data sa SPIFFS.

Ang pangunahing punto ng pagpasok para sa halimbawa ng AssimilateBus:

/*
*
* ANG MGA PAMAMAHALAAN NG NEGOSYO PARA SA IYONG DEVICE AY INAASAHANG MAKONTROLO ANG VIA MQTT - HINDI MAHIRAP NA BAKED SA ITONG PERA
*
* Maliban sa pag-set up at loop sa file na ito
* ang mga importanteng gumagalaw na bahagi ay
* on_bus_received at on_bus_complete sa static_i2c_callbacks.ino
* at
* mqtt_publish at mqtt_callback sa static_mqtt.ino
*
*/
# isama ang "mga uri.h"
# isama ang "VizJson.h"
# isama ang "assimilate_bus.h"
# isama ang "debug.h"
# isama ang "config.h"
# isama
# isama

// itakda ang MQTT_MAX_PACKET_SIZE sa ~ 3000 (o ang iyong mga pangangailangan para sa aparatoInfo json)

# isama
# isama
# isama
# isama
# isama
// ----
// ----------------- - tumutukoy
# defineDBG_OUTPUT_FLAG2 // 0, 1, 2 MINIMUMUM, RELEASE, FULL
#define_mqtt_pub_topic "outbox" // CROUTON CONVENTIONS
#define_mqtt_sub_topic "inbox"
// ----------------- - mga bagay sa klase
Pag-debug _debug (DBG_OUTPUT_FLAG);
AssimilateBus _assimilate_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);
// ----------------- - Mga struct ng data / variable
RuntimeDeviceData _runtime_device_data;
PropertyDto _dto_props [50]; // max 10 alipin x max 5 mga pag-aari
// ----------------- -- pagkokontrol ng daloy
volatilebool _sent_device_info = false;
byte _dto_props_index = 0;
bool _fatal_error = false;
// ------------------------------- FUNCTION SCOPE DEECLARATIONS
// ----------------- - static_i2c_callbacks.ino
voidon_bus_received (byte slave_address, byte prop_index, papel na ginagampanan, pangalan ng char [16], halaga ng char [16]);
voidon_bus_complete ();
// ----------------- - static_mqtt.ino
voidmqtt_callback (char * paksa, byte * payload, haba ng unsignedint);
voidmqtt_loop ();
int8_tmqtt_get_topic_index (char * paksa);
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 (byte address, byte code, constchar * param);
// ----------------- - static_server.ino
String server_content_type_get (String filename);
boolserver_path_in_auth_exclusion (String path);
boolserver_auth_read (String path);
boolserver_file_read (String path);
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 at address);
char * time_stamp_get ();
// ----------------- - static_utility.ino
Mga string spiff_file_list_build (String path);
voidreport_deserialize_error ();
voidreport_spiff_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);
byte get_prop_dto_idx (byte slave_address, byte prop_index);
// ----------------- MAIN
voidsetup () {
DBG_OUTPUT_PORT.begin (115200);
SetupDeviceData aparato_data;
Serial.println (); Serial.println (); // margin para sa basura ng console
pagkaantala (5000);
kung (DBG_OUTPUT_FLAG == 2) DBG_OUTPUT_PORT.setDebugOutput (totoo);
_debug.out_fla (F ("setup"), totoo, 2);
// kumuha ng kinakailangang config
kung (SPIFFS.begin ()) {
_debug.out_str (spiff_file_list_build ("/"), totoo, 2);
kung (! _config_data.get_device_data (aparato_data, _runtime_device_data)) {
report_deserialize_error ();
bumalik;
}
} iba pa {
report_spiff_error ();
bumalik;
}
// use timer value set in device.json
_timer_property_request.set (device_data.sensor_interval);
mqtt_init (aparato_data.wifi_ssid, aparato_data.wifi_key, aparato_data.mqtt_broker, aparato_data.mqtt_port);
time_services_init (device_data.ntp_server_name, aparato_data.time_zone);
server_init ();
// kick off ang metadata na koleksyon
_assimilate_bus.get_metadata ();
_assimilate_bus.print_metadata_details ();
mqtt_ensure_connect ();
// nangangailangan ng pag-aari ng sensor (mga pangalan) upang makumpleto ang koleksyon ng metadata
_assimilate_bus.get_properties (on_bus_received, on_bus_complete);
_timer_property_request.reset (); // maaaring mawala sa panahon ng kapansin-pansin na oras hanggang sa puntong ito upang simulan itong muli
}
voidloop () {
kung bumalik ((check_fatal_error ());
mqtt_loop ();
_server.handleClient ();
kung (_timer_property_request.repeat ()) {
_assimilate_bus.get_properties (on_bus_received, on_bus_complete);
}
}

tingnan ang rawmqtt_crouton_esp8266_cors_webcomponents.ino naka-host sa ❤ ng GitHub

Hakbang 5: DEVICE CARD

DEVICE CARD
DEVICE CARD
DEVICE CARD
DEVICE CARD
DEVICE CARD
DEVICE CARD
DEVICE CARD
DEVICE CARD

Ang card ng aparato (uri ng card: assim-device) ay naka-host sa website at hindi kinakailangan upang maihatid ito mula sa aparato (CORS).

Mga listahan ng default na pahina nito:

  • Ang mga paksa ng MQTT para sa pagbabasa at pagsusulat sa aparato
  • Ang Access Point na nakakonekta ang aparato
  • Isang link sa SPIFFS file editor na naka-host sa aparato gamit ang ACE EDITOR
  • Isang icon ng mata na nagpapakita ng pahina ng Ipakita / Itago ang card.

Ang mga listahan ng pahina ng Ipakita / Itago ang card:

  • Ang bawat card bilang isang hiwalay na item
  • Matapang na asul na font kapag ipinapakita
  • Itim na normal na font kapag nakatago
  • Isang icon na naglalarawan ng uri ng card.

Ang card ay maaaring maitago sa pamamagitan ng pag-click sa itago ang pindutan sa mga card, o pag-click sa isang asul na naka-bold-font na item sa listahan. Maaaring ipakita ang mga kard sa pamamagitan ng pag-click sa isang item na itim-normal-font sa listahan.

Malayang nauugnay sa tampok na ito ay ang mga info toast. Kung ang alinman sa mga endpoint sa aparatoInfo ay may nakatalagang isang impormasyon sa pag-aari, isang pindutan ng impormasyon ang ipapakita sa tabi ng itago na pindutan sa card. Kapag na-click ang impormasyong kontekstuwal na tinukoy sa endpoint ay "toasted" sa window.

Kung ang card ng aparato ay hindi tinukoy, ang mga itago na pindutan ay hindi ipapakita sa mga card. Ito ay dahil sa sandaling nakatago walang paraan upang ipakita sa kanila, muli.

Tingnan ang ENDPOINT CUSTOMIZATION upang detalyado kung paano maaaring idagdag ang card ng assim-device sa pamamagitan ng mga SPIFFS file sa ESP8266.

AssimilateCrouton WebComponent

signal ng bakal>
div>
IPAKITA ANG IYONG ICON
i> span>
FORM NG DEVICE
PAKSA NG MQTTdiv>
/ outbox / {{endPointJson.device_name}} / * div>
/ inbox / {{endPointJson.device_name}} / * div>
WIFI SSIDdiv>
{{endPointJson.ssid}} div>
IP ADDRESSdiv>
{{endPointJson.ip_addr}} a> div>
div>
IPAKITA ANG IYONG LIST
elemento>papel-item>
template>
papel-listbox>
div>
crouton-card>
template>
dom-module>

tingnan ang rawassim-device.html na naka-host sa ❤ ng GitHub

Hakbang 6: WEEKVIEW CARD

WEEKVIEW CARD
WEEKVIEW CARD
WEEKVIEW CARD
WEEKVIEW CARD
WEEKVIEW CARD
WEEKVIEW CARD

Ang card ng weekview (uri ng card: assim-weekview) ay naka-host sa aparato (folder ng cors). Ito ay na-injected sa pack ng aparatoInfo na nai-publish para sa AssimilateCrouton, sa pamamagitan ng pagdaragdag ng isang file config / user_card _ #. Json sa SPIFFS (sa kasong ito user_card_9.json).

PAGTATAYA

Ang mga araw ng trabaho ay ipinakita bilang mga listahan ng mga time-slot. Ang granularity ng time-slot ay itinakda kasama ang pag-aari na "interval_mins" sa config / user_card _ #. Json. Kailangan itong maging isang maliit na bahagi ng isang oras o mga multiply ng isang oras hal. 10, 15, 20, 30, 60, 120, 360. Ang pag-click sa isang time-slot ay siguraduhin na ang isang estado ay inuutusan para sa nauugnay na aparato sa oras na iyon. Kung ang time-slot ay ngayon, isang utos ay ipinadala (nai-publish) kaagad para sa aparato. Karaniwan ang estado ay naka-check / nai-publish bawat minuto. Ang mga pagpipilian ay nai-save sa LocalStorage, kaya't ang mga oras ay mai-reload sa isang pag-refresh ng browser.

GAMIT NG KASO

Sa kasalukuyang estado nito, ang pananaw sa linggo ay angkop para sa mga aparato na maaaring gumamit ng isang Toggle switch upang mailarawan ang kanilang estado ibig sabihin ay naka-on o naka-off ang mga ito at pagkatapos na maitakda ay mananatili sila sa estado na iyon. Ang mga ilaw, tagahanga, at water-heater ay mahusay na kandidato.

LIMITASYON / CAVEATS

  • Ang mga interval_mins ay dapat na isa sa mga halagang binanggit sa itaas
  • Hindi sinusuportahan ng pananaw sa linggo ang mga panandaliang pagkilos na naka-iskedyul din, tulad ng pag-tap ng isang saglit sa (5 segundo) dalawang beses sa isang araw.

KINABUKASAN

  • Inaasahan na susuportahan ang mga panandaliang pagkilos.
  • Isinabay ang imbakan sa lahat ng mga aparato, para sa mga pagpipilian ng iskedyul ay isinasaalang-alang.

Hakbang 7: ENDPOINT CUSTOMIZATION

Tulad ng nabanggit na maliit sa FIRMWARE, mayroong 2 bagong mga kombensyon na idinagdag sa SPIFFS filesystem para sa pagpapasadya ng mga endpoint. Ang mga file ng JSON ay mga fragment na naidagdag sa mga endpoint na pag-aari sa aparatoInfo packet na nai-post sa MQTT broker na naging kahulugan ng dashboard.

Ang mga susi ng mga endpoint ay nabuo sa firmware:

  • CC_device (Pasadyang Card) para sa user_card_base.json
  • CC_SLAVE_ENDPOINT PANGALAN para sa user_card _ #. Json (# ang pagiging address ng alipin)

Tulad ng nabanggit dati, may mga variable na napapalitan para sa mga halaga sa runtime:

  • mqtt_device_name
  • wifi_ssid
  • local_ip

user_card_base.json

Isang halimbawa:

user_card _ #. json

Isang halimbawa:

Hakbang 8: VIDEO

Inirerekumendang: