فهرست مطالب:

IOT123 - HUB SENSOR HUB: ICOS10 CORS WEBCOMPONENTS: 8 مرحله
IOT123 - HUB SENSOR HUB: ICOS10 CORS WEBCOMPONENTS: 8 مرحله

تصویری: IOT123 - HUB SENSOR HUB: ICOS10 CORS WEBCOMPONENTS: 8 مرحله

تصویری: IOT123 - HUB SENSOR HUB: ICOS10 CORS WEBCOMPONENTS: 8 مرحله
تصویری: Indefinite Pitch PREMIERES. Mod.1 - Into The Circle [Linderluft Records] 2024, جولای
Anonim
IOT123 - HUB SENSOR HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - HUB SENSOR HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - HUB SENSOR HUB: ICOS10 CORS WEBCOMPONENTS
IOT123 - HUB SENSOR HUB: ICOS10 CORS WEBCOMPONENTS

SASSIMILATE SENSOR/ACTOR Slaves فراداده هایی را تعبیه می کند که برای تعریف تجسم در Crouton استفاده می شود. این ساختار کمی متفاوت از موارد قبلی است. هیچ تغییر سخت افزاری وجود ندارد سیستم عامل در حال حاضر از میزبانی ویرایشگرهای سفارشی (غنی تر) پشتیبانی می کند که می توانند در آخرین نسخه AssimilateCrouton ادغام شوند. در این مقاله به توضیح سیستم عامل و داشبورد MQTT توجه بیشتری می شود.

یکی از مزایای سرویس WebComponents از دستگاهی که آنها کنترل می کنند این است که کنترل پیشرفته تر دستگاه به شبکه ای که دستگاه به آن متصل است محدود می شود: نقطه دسترسی WiFi شما. اگرچه هنگامی که از یک سرور MQTT با احراز هویت استفاده می کنید شباهت حفاظتی وجود دارد ، اما در صورت ترک ناگهانی مرورگر خود (وب سایت AssimilateCrouton) در شبکه های عمومی ، شخصی می تواند وارد دستگاه های اتوماسیون شما شود و آنها را کنترل کند. این ویژگی CORS WebComponent این امکان را می دهد که فقط خواندن ها (دما ، میزان نور ، رطوبت) به صورت عمومی نشان داده شود و عملکردهای فرمان (روشن/خاموش ، زمان بندی) فقط در شبکه دستگاه موجود باشد.

بر روی دستگاه ، تمام ویژگی های وب سرور با احراز هویت و میزبانی در SPIFFS هنوز پشتیبانی می شود ، اما تمرکز ویژه ای روی پشتیبانی CORS (Cross Origin Resource Sharing) از Polymer WebComponents (Crouton از Polymer 1.4.0 استفاده می کند) شده است.

در AssimilateCrouton (چنگال Crouton که برای Assimilate IOT Network استفاده می شود) تغییرات شامل موارد زیر است:

  • پشتیبانی از کارت Device (assim-device) که در میان سایر موارد ، کارت های فردی دستگاه را نشان می دهد و پنهان می کند
  • ویژگی info در همه کارت ها که نان تست اطلاعات مفیدی را برای یک کارت نشان می دهد
  • پشتیبانی از اجزای وب CORS ، در این مورد روی سرور وب دستگاه (ESP8266) میزبانی می شود.

مرحله 1: CROUTON

CROUTON
CROUTON
CROUTON
CROUTON

Crouton یک داشبورد است که به شما امکان می دهد دستگاه های IOT خود را با حداقل تنظیمات تجسم و کنترل کنید. در اصل ، این ساده ترین داشبورد است که برای همه علاقه مندان به سخت افزار IOT تنها با استفاده از MQTT و JSON قابل تنظیم است.

SLAVES ASSIMILATE (حسگرها و بازیگران) دارای فراداده و ویژگی هایی هستند که استاد از آنها برای ساختن بسته اطلاعاتی json دستگاه که Crouton از آن برای ساخت داشبورد استفاده می کند ، استفاده می کند. واسطه بین ASSIMILATE NODES و Crouton یک کارگزار MQTT است که با شبکه های وب سازگار است: Mosquito برای نمایشی استفاده می شود.

همانطور که ASSIMILATE MASTER ویژگی ها را درخواست می کند ، مقادیر پاسخ را در قالب مورد نیاز برای به روز رسانی Crouton فرمت می کند. چنگال AssimilateCrouton برخی ویژگی ها را اضافه می کند که به شما امکان می دهد قوانین تجاری را که دستگاه شما را اجرا می کند غیر متمرکز کنید ، به عنوان مثال دستگاه IOT نیازی به قوانین تجاری ندارد ، این فقط یک خط ارتباطی برای ارتباط MQTT/I2C به بازیگران و حسگرهای برده هوشمندتر (تحت کنترل ATTINY) است. به

مرحله 2: شبیه سازی CROUTON

CROUTON ASIMIMATE
CROUTON ASIMIMATE

تغییرات به CROUTON

تغییرات نسخه فورک شده عبارتند از:

  • اگر یک نقطه پایانی دارای ویژگی مسیر باشد ، WebComponent برای کارت یک HTMLImport برای یک منبع CORS (سرور وب در ESP8266 در این ساخت) انجام می دهد.
  • هرگونه منبع بالادستی از (وابستگی های) CORS WebComponent به گونه ای ذکر شده است که گویی از وب سایت Crouton ارائه شده است. هنگامی که آنها نتوانند یک استثناء را کنترل کنند ، مسیرها را بارگیری می کند و اگر از وب سایت بارگیری می شود.
  • زمان محلی فعلی در بالا سمت راست نمایش داده می شود که برای زمانبندی تأیید مفید است.

وابستگی ها و ذرات پلیمر

برگهای یک درخت وابستگی به پلیمر را می توان در CORS میزبانی کرد. از آنجا که وابستگی های ریشه ممکن است چندین بار در یک برنامه استفاده شود ، نمی توان آنها را از 2 مکان (وب سایت و دستگاه) ارجاع داد ، زیرا Polymer Module Loader آنها را به عنوان 2 منبع جداگانه در نظر می گیرد و چندین خطای ثبت سریع یک برنامه را به هم می ریزد.

به همین دلیل WebComponent برای کارت (فایل HTML در 1.4.0) و فایل CSS مربوط تنها فایلهای میزبانی شده روی دستگاه هستند. سایر وابستگی ها به گونه ای اشاره می شوند که گویی WebComponent در پوشه "html" در وب سایت اصلی میزبانی شده است ، که توسعه وب کامپوننت ها را از آن پوشه تا زمان بارگذاری در SPIFFS در ESP8266 آسان می کند. AssimilateCrouton نحوه دریافت فایل های صحیح را بررسی می کند.

گسترش

خالق edfungus Crouton اصلی منبع را در Pug/Less نوشت و دارای زنجیره ابزار NPM/Grunt بود. من Pug/Less را به صورت HTML/css ارائه کردم و فقط فایلهای ارائه شده را ویرایش/توزیع کردم. این باعث شکستن ابزار ابزار NPM/Grunt شد. رفع این مشکل در قسمت FUTURE آمده است.

می توانید داشبورد را به صورت محلی در جعبه DEV خود آزمایش کنید:

  • از خط فرمان موجود در پوشه اصلی
  • شروع npm
  • سرور lite برای https:// localhost: 10001 جمع شده است

استقرار در یک وب سرور استاتیک:

  • همه پوشه ها را بجز node_modules کپی کنید
  • copy index.html (و احتمالاً web.config)

آینده

یکی از اهداف اصلی ارتقاء به Polymer3 و کار از Polymer CLI است. افزودن ویرایشگرهای پیشرفته و چارچوبی برای توسعه دهندگان IOT برای توسعه خود اولویت بالایی دارد. در نهایت سیستم خودکار پیشرفته کاملاً از کلاینت های جدا شده MQTT مانند AssimilateCrouton اجرا می شود.

نمونه ای از بسته اطلاعاتی دستگاه که برای AssimilateCrouton استفاده می شود:

{
"اطلاعات دستگاه": {
"endPoints": {
"CC_device": {
"device_name": "ash_mezz_A3" ،
"card-type": "assim-device"،
"ssid": "Corelines_2" ،
"ip_addr": "192.168.8.104" ،
"نقاط پایانی": [
{
"title": "رشد نور" ،
"card-type": "crouton-simple-toggle"،
"endpoint": "switch"
},
{
"title": "چراغ کاشت" ،
"card-type": "crouton-assim-weekview"،
"endpoint": "CC_switch"
}
]
},
"CC_switch": {
"card-type": "assim-weekview"،
"info": "چراغ ها را در بازه های زمانی 15 دقیقه ای روشن یا خاموش کنید" ،
"path": "https://192.168.8.104/cors"،
"title": "چراغ کاشت" ،
"interval_mins": 15 ،
"ارزش های": {
"ارزش": ""
}
},
"تعویض": {
"title": "رشد نور" ،
"card-type": "crouton-simple-toggle"،
"info": "روشن یا خاموش کردن چراغ ها به صورت موقت" ،
"برچسب ها": {
"false": "OFF" ،
"true": "ON"
},
"نمادها": {
"false": "sun-o" ،
"true": "sun-o"
},
"ارزش های": {
"مقدار": 0
}
}
},
"status": "خوب" ،
"name": "ash_mezz_A3" ،
"description": "دفتر در Ashmore ، Mezzanine ، منطقه A2" ،
"color": "#4D90FE"
}
}

مشاهده rawdeviceInfo.json با ❤ توسط GitHub میزبانی شده است

مرحله 3: مونتاژ دستگاه

مونتاژ دستگاه
مونتاژ دستگاه
مونتاژ دستگاه
مونتاژ دستگاه
مونتاژ دستگاه
مونتاژ دستگاه

از آنجا که هیچ تغییر سخت افزاری وجود ندارد ، در اینجا پیوندهایی به اطلاعات مربوطه آمده است:

  • مونتاژ پوسته
  • مواد و ابزار
  • آماده سازی MCU
  • آماده سازی مسکن MCU
  • ساخت برد Slaves Switch/RESET Daughter-board
  • مونتاژ اجزای اصلی

مرحله 4: FIRMWARE

سیستم عامل
سیستم عامل
سیستم عامل
سیستم عامل
سیستم عامل
سیستم عامل
سیستم عامل
سیستم عامل

اصلی این ساختمان را تغییر می دهد

برای اینکه برنامه AssimilateCrouton بتواند از منابع CORS دستگاه استفاده کند ، سرصفحه های پاسخ باید به روش خاصی پیکربندی شوند. این در این نسخه از سیستم عامل (static_server.ino => server_file_read ()) اجرا شد.

همچنین نمودار وابستگی اصلی برای پلیمر باید از یک منبع واحد باشد. یک استراتژی برای افزودن یک کنترل کننده خطا (corsLinkOnError) به پرونده های SPIFFS CORS برای بارگیری مجدد منابع از وب سایت AssimilateCrouton در صورت عدم یافتن آنها بر روی دستگاه استفاده شد.

2 قرارداد جدید برای سفارشی سازی نقاط پایانی ایجاد شده در deviceInfo به سیستم فایل SPIFFS اضافه شده است - که AssimilateCrouton از آنها برای ایجاد کارت های داشبورد استفاده می کند:

  • /config/user_card_base.json تعریف نقطه پایانی با متغیرهای زمان اجرا که ابتدا عوض می شوند: ، ،. این معمولاً جایی است که کارت دستگاه assim اضافه می شود. این با دستگاه ارتباط برقرار نمی کند.
  • /config/user_card_#.json تعریف نقطه پایانی با متغیرهای زمان اجرا که ابتدا تعویض می شوند: ، ،. این معمولاً جایی است که ویراستاران غنی مانند کارت assim-weekview به برده I2C (بازیگر/حسگر) مرتبط با #اضافه می شوند.

طرح/کتابخانه ها

در این مرحله پروژه به عنوان نمونه ای برای کتابخانه AssimilateBus Arduino بسته بندی شده است. این امر عمدتا برای سهولت دسترسی به تمام فایل های لازم از طریق Arduino IDE است. آثار اصلی کد عبارتند از:

  • mqtt_crouton_esp8266_cors_webcomponents.ino - نقطه ورود اصلی.
  • assimilate_bus.h/assimilate_bus.cpp - کتابخانه ای که ارتباطات I2C را با Slave Sensor/Actors اداره می کند.
  • VizJson.h/VizJson.cpp - کتابخانه ای که هر JSON را که از طریق MQTT منتشر می شود ، قالب بندی یا ایجاد می کند
  • config.h/config.cpp - کتابخانه ای که فایل های پیکربندی را در SPIFFS می خواند/جعبه می نویسد
  • static_i2c_callbacks.ino - فراخوان های I2C برای دریافت دارایی و کامل شدن چرخه درخواست برده ها static_mqtt.ino - توابع MQTT
  • static_server.ino - عملکردهای وب سرور
  • static_utility.ino - توابع کمکی

توابع INO استاتیک (به جای کتابخانه ها) به دلایل مختلف مورد استفاده قرار گرفتند ، اما عمدتا به این دلیل که توابع وب سرور و MQTT بتوانند به خوبی با هم بازی کنند.

منابع SPIFFS

توضیحات دقیق فایل های SPIFFS را می توانید در اینجا پیدا کنید.

  • favicon.ico - منبعی که توسط ویرایشگر آس استفاده می شود
  • پیکربندی کنید

    • device.json - پیکربندی دستگاه (Wifi ، MQTT …)
    • slave_metas _#. json - در زمان اجرا برای هر شماره آدرس برده (#) ایجاد می شود
    • user_card _#. json - نقطه پایانی سفارشی که برای هر شماره آدرس برده (#) به دستگاه ادغام می شود
    • user_card_base.json - نقطه پایانی سفارشی برای ادغام شدن در deviceInfo برای دستگاه
    • user_meta _#. json - فراداده سفارشی برای هر شماره آدرس برده (#) برده ها را نادیده می گیرد
    • user_props.json - نام ویژگی های سفارشی برای نادیده گرفتن نامهای موجود در فراداده برده ها
  • cors

    • card -webcomponent.css - شیوه نامه برای کارت های سفارشی مختلف
    • card -webcomponent.html - وب کامپوننت برای کارتهای سفارشی مختلف
  • ویراستار

    • assimilate -logo-p.webp" />
    • edit.htm.gz - gzip نرم افزار ویرایشگر HTML Ace
    • edit.htm.src - HTML اصلی ویرایشگر Ace
    • favicon -32x32-p.webp" />

آپلود آپدیت FIRMWARE

  • مخزن کد را می توانید در اینجا (عکس فوری) پیدا کنید.
  • ZIP کتابخانه را می توانید در اینجا (عکس فوری) پیدا کنید.
  • دستورالعمل "وارد کردن کتابخانه ZIP" در اینجا.
  • پس از نصب کتابخانه ، می توانید مثال "mqtt_crouton_esp8266_cors_webcomponents" را باز کنید.
  • دستورالعمل های راه اندازی Arduino برای Wemos D1 Mini در اینجا آمده است.
  • وابستگی ها: ArduinoJson ، TimeLib ، PubSubClient ، NeoTimer (در صورت شکستن تغییرات در مخازن ، پیوست ها را ببینید).

UPLOAD TO SPIFFS

پس از بارگذاری کد در Arduino IDE ، device.json را در پوشه data/config باز کنید:

  • مقدار wifi_ssid را با WiFi SSID خود تغییر دهید.
  • با wifi_key مقدار wifi_key را تغییر دهید.
  • مقدار mqtt_device_name را با شناسه دستگاه دلخواه خود تغییر دهید (نیازی به پیوستن نیست).
  • مقدار mqtt_device_description را با توضیحات دستگاه دلخواه خود (در Crouton) تغییر دهید.
  • device.json را ذخیره کنید.
  • فایل های داده را در SPIFFS بارگذاری کنید.

نقطه ورود اصلی برای مثال AssimilateBus:

/*
*
*قوانین کسب و کار دستگاه شما انتظار می رود از طریق MQTT کنترل شود - در این FIRMWARE سخت پخته نشده است
*
* غیر از راه اندازی و حلقه در این فایل
* قطعات متحرک مهم عبارتند از
* on_bus_received و on_bus_complete در static_i2c_callbacks.ino
* و
* mqtt_publish و mqtt_callback در static_mqtt.ino
*
*/
#شامل "types.h"
#شامل "VizJson.h"
#شامل "assimilate_bus.h"
#شامل "debug.h"
#شامل "config.h"
#عبارتند از

#عبارتند از

// MQTT_MAX_PACKET_SIZE را روی 3000 پوند (یا نیازهای شما برای deviceInfo json) تنظیم کنید

#عبارتند از
#عبارتند از
#عبارتند از
#عبارتند از
#عبارتند از
// --------------------------------- اعلامیه های حافظه
// ---------------------------------------------------- - تعریف می کند
#defineDBG_OUTPUT_FLAG2 // 0 ، 1 ، 2 MINIMUMUM ، RELEASE ، FULL
#تعریف_mqtt_pub_topic "outbox" // CROUTON CONVENTIONS
#تعریف_mqtt_sub_topic "inbox"
// ---------------------------------------------------- - اشیاء کلاس
اشکال زدایی _debug (DBG_OUTPUT_FLAG) ؛
AssimilateBus _assimilate_bus؛
ویزجسون _viz_json؛
پیکربندی _config_data؛
WiFiClient _esp_client؛
PubSubClient _client (_esp_client) ؛
WiFiUDP Udp ؛
ESP8266WebServer _server (80) ؛
Neotimer _timer_property_request = نئوتایمر (5000) ؛
// ---------------------------------------------------- - ساختار داده ها / متغیر
RuntimeDeviceData _runtime_device_data؛
PropertyDto _dto_props [50] ؛ // حداکثر 10 برده x حداکثر 5 ویژگی
// ---------------------------------------------------- - کنترل جریان
volatilebool _sent_device_info = false؛
بایت _dto_props_index = 0؛
bool _fatal_error = false؛
// --------------------------------- اعلامیه های حوزه عملکرد
// ---------------------------------------------------- - static_i2c_callbacks.ino
voidon_bus_received (byte slave_address، byte prop_index، role role، name char [16]، char char [16])؛
voidon_bus_complete ()؛
// ---------------------------------------------------- - static_mqtt.ino
voidmqtt_callback (موضوع* char ، بایت* بار ، طول بدون علامت) ؛
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 *endpoint ، constchar *payload) ؛
boolmqtt_ensure_connect ()؛
voidmqtt_subscribe (char *root_topic ، char *deviceName ، char *endpoint) ؛
voidi2c_set_and_get (آدرس بایت ، کد بایت ، constchar *param) ؛
// ---------------------------------------------------- - static_server.ino
string_content_type_get (نام فایل رشته) ؛
boolserver_path_in_auth_exclusion (مسیر رشته) ؛
boolserver_auth_read (مسیر رشته) ؛
boolserver_file_read (مسیر رشته) ؛
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 (آدرس و آدرس IPA) ؛
char *time_stamp_get ()؛
// ---------------------------------------------------- - static_utility.ino
رشته spiffs_file_list_build (مسیر رشته) ؛
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) ؛
byte get_prop_dto_idx (byte slave_address، byte prop_index)؛
// --------------------------------- اصلی
voidsetup () {
DBG_OUTPUT_PORT. شروع (115200) ؛
SetupDeviceData device_data؛
Serial.println ()؛ Serial.println ()؛ // حاشیه برای آشغال کنسول
تأخیر (5000) ؛
if (DBG_OUTPUT_FLAG == 2) DBG_OUTPUT_PORT.setDebugOutput (درست) ؛
_debug.out_fla (F ("راه اندازی") ، درست ، 2) ؛
// پیکربندی مورد نیاز را دریافت کنید
if (SPIFFS.begin ()) {
_debug.out_str (spiffs_file_list_build ("/") ، true ، 2) ؛
if (! _config_data.get_device_data (data_data، _runtime_device_data)) {
report_deserialize_error ()؛
برگشت؛
}
} دیگری {
report_spiffs_error ()؛
برگشت؛
}
// از مقدار تایمر تنظیم شده در 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 (device_data.ntp_server_name، device_data.time_zone) ؛
server_init ()؛
// شروع مجموعه فراداده
_assimilate_bus.get_metadata ()؛
_assimilate_bus.print_metadata_details ()؛
mqtt_ensure_connect ()؛
// برای تکمیل مجموعه فراداده به ویژگی حسگر (نام) نیاز دارد
_ assimilate_bus.get_properties (on_bus_received، on_bus_complete)؛
_timer_property_request.reset ()؛ // می تواند زمان قابل توجهی را تا این مرحله پشت سر بگذارد ، بنابراین آن را دوباره شروع کنید
}
voidloop () {
if (! check_fatal_error ()) بازگشت ؛
mqtt_loop ()؛
_server.handleClient ()؛
if (_timer_property_request.repeat ()) {
_ assimilate_bus.get_properties (on_bus_received، on_bus_complete)؛
}
}

مشاهده rawmqtt_crouton_esp8266_cors_webcomponents.ino میزبانی شده توسط ❤ توسط GitHub

مرحله 5: کارت دستگاه

کارت دستگاه
کارت دستگاه
کارت دستگاه
کارت دستگاه
کارت دستگاه
کارت دستگاه
کارت دستگاه
کارت دستگاه

کارت دستگاه (نوع کارت: assim-device) در وب سایت میزبانی می شود و نیازی به ارائه آن از دستگاه (CORS) نیست.

صفحه پیش فرض آن لیست می دهد:

  • موضوعات MQTT برای خواندن و نوشتن روی دستگاه
  • نقطه دسترسی دستگاه به آن متصل است
  • پیوندی به ویرایشگر فایل SPIFFS با استفاده از ACE EDITOR روی دستگاه میزبانی شده است
  • نماد چشم که صفحه نمایش/مخفی کردن کارت را نشان می دهد.

فهرست های صفحه نمایش/مخفی کردن کارت ها:

  • هر کارت به عنوان یک مورد جداگانه
  • هنگام نمایش فونت آبی پررنگ
  • فونت معمولی سیاه هنگام پنهان شدن
  • نمادی که نوع کارت را نشان می دهد.

کارت را می توان با کلیک روی دکمه مخفی کردن روی کارت ها یا کلیک روی یک مورد با فونت آبی-پررنگ در لیست پنهان کرد. کارتها را می توان با کلیک روی یک مورد با فونت سیاه و معمولی در لیست نشان داد.

نان تست های اطلاعاتی به طور نسبی به این ویژگی مرتبط هستند. اگر ویژگی info در هر یک از نقاط پایانی در deviceInfo تعیین شده باشد ، دکمه info در کنار دکمه مخفی شدن روی کارت نشان داده می شود. با کلیک روی اطلاعات متنی که در نقطه پایانی تعریف شده است ، در پنجره "برشته" می شود.

اگر کارت دستگاه تعریف نشده باشد ، دکمه های مخفی شدن روی کارت ها نشان داده نمی شود. این به این دلیل است که پس از مخفی شدن راهی برای نشان دادن آنها وجود ندارد.

برای جزئیات نحوه افزودن کارت Assim-device از طریق فایل های SPIFFS در ESP8266 به ENDPOINT CUSTOMIZATION مراجعه کنید.

AssimilateCrouton WebComponent

آهن-سیگنال>
div>
مخفی کردن نماد
i> span>
فرم دستگاه
MQTT TOPICSdiv>
/outbox/{{endPointJson.device_name}}/*div>
/inbox/{{endPointJson.device_name}}/*div>
WIFI SSIDdiv>
{{endPointJson.ssid}} div>
IP ADDRESSdiv>
{{endPointJson.ip_addr}} a> div>
div>
پنهان کردن لیست
element>paper-item>
قالب>
paper-listbox>
div>
crouton-card>
قالب>
dom-module>

مشاهده rawassim-device.html میزبانی شده توسط ❤ توسط GitHub

مرحله 6: WEEKVIEW CARD

کارت WEEKVIEW
کارت WEEKVIEW
کارت WEEKVIEW
کارت WEEKVIEW
کارت WEEKVIEW
کارت WEEKVIEW

کارت نمای هفته (نوع کارت: assim-weekview) در دستگاه (پوشه cors) میزبانی می شود. با افزودن فایل config/user_card _#. json به SPIFFS (در این مورد user_card_9.json) به بسته deviceInfo که برای AssimilateCrouton منتشر شده است تزریق می شود.

بررسی اجمالی

روزهای هفته به عنوان فهرستی از بازه های زمانی ارائه می شود. جزئیات بازه زمانی با ویژگی "interval_mins" در config/user_card _#. json تنظیم شده است. این باید کسری از یک ساعت یا چند برابر یک ساعت باشد ، به عنوان مثال 10 ، 15 ، 20 ، 30 ، 60 ، 120 ، 360. با کلیک بر روی یک شکاف زمانی ، مطمئن شوید که حالت روشن برای دستگاه مربوطه در آن زمان دستور داده شده است. اگر بازه زمانی در حال حاضر است ، یک فرمان بلافاصله برای دستگاه ارسال می شود (منتشر می شود). به طور معمول وضعیت هر دقیقه بررسی/منتشر می شود. انتخاب ها در LocalStorage ذخیره می شوند ، بنابراین زمان ها با بازخوانی مرورگر بارگیری می شوند.

موارد استفاده

در حالت فعلی ، نمای هفته برای دستگاه هایی مناسب است که می توانند از سوئیچ Toggle برای تجسم وضعیت خود استفاده کنند ، یعنی روشن یا خاموش هستند و پس از تنظیم در همان حالت باقی می مانند. چراغ ها ، پنکه ها و آبگرمکن ها نامزدهای خوبی هستند.

محدودیت ها/CAVEATS

  • interval_mins باید یکی از مقادیر ذکر شده در بالا باشد
  • نمای هفته از اقدامات لحظه ای که برنامه ریزی شده اند نیز پشتیبانی نمی کند ، مانند دوبار در روز ضربه زدن به مدت کوتاه (5 ثانیه).

آینده

  • انتظار می رود که اقدامات لحظه ای پشتیبانی شوند.
  • ذخیره سازی همزمان در دستگاه ها ، برای انتخاب برنامه در نظر گرفته شده است.

مرحله 7: سفارشی سازی نقطه پایانی

همانطور که در FIRMWARE به اختصار ذکر شد ، 2 قرارداد جدید برای سفارشی سازی نقاط پایانی به سیستم فایل SPIFFS اضافه شده است. فایل های JSON قطعاتی هستند که به ویژگی نقاط پایانی در بسته deviceInfo اضافه می شوند که به واسطه MQTT ارسال می شود و تعریف داشبورد می شود.

کلیدهای نقاط پایانی در سیستم عامل ایجاد می شوند:

  • CC_device (کارت سفارشی) برای user_card_base.json
  • CC_SLAVE_ENDPOINT NAME برای user_card _#. json (# آدرس برده بودن)

همانطور که قبلاً ذکر شد ، متغیرهایی وجود دارند که در زمان اجرا جایگزین مقادیر می شوند:

  • mqtt_device_name
  • wifi_ssid
  • local_ip

user_card_base.json

یک مثال:

کارت_کاربر _#. json

یک مثال:

مرحله 8: ویدئوها

توصیه شده: