mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
Merge branch 'IoTManagerProject:ver4dev' into ver4dev
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -4,12 +4,12 @@
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||
|
||||
<title>IoT Manager 4.4.6</title>
|
||||
<title>IoT Manager 4.5.0</title>
|
||||
|
||||
<link rel="icon" type="image/png" href="/favicon.ico" />
|
||||
<link rel="stylesheet" href="/build/bundle.css?446" />
|
||||
<link rel="stylesheet" href="/build/bundle.css?450" />
|
||||
|
||||
<script defer src="/build/bundle.js?446"></script>
|
||||
<script defer src="/build/bundle.js?450"></script>
|
||||
</head>
|
||||
|
||||
<body></body>
|
||||
|
||||
@@ -245,6 +245,17 @@
|
||||
"max": 100,
|
||||
"debounce": 500
|
||||
},
|
||||
{
|
||||
"name": "range",
|
||||
"label": "Ползунок (Servo)",
|
||||
"widget": "range",
|
||||
"descrColor": "red",
|
||||
"after": "%",
|
||||
"k": 1,
|
||||
"min": 0,
|
||||
"max": 180,
|
||||
"debounce": 500
|
||||
},
|
||||
{
|
||||
"name": "select",
|
||||
"label": "Выпадающий",
|
||||
|
||||
308
data_svelte_lite/widgets copy.json
Normal file
308
data_svelte_lite/widgets copy.json
Normal file
@@ -0,0 +1,308 @@
|
||||
[
|
||||
{
|
||||
"name": "anydataRed",
|
||||
"label": "Сообщение1",
|
||||
"widget": "anydata",
|
||||
"icon": "body",
|
||||
"color": "red",
|
||||
"descrColor": "red"
|
||||
},
|
||||
{
|
||||
"name": "anydataDgr",
|
||||
"label": "Сообщение2",
|
||||
"widget": "anydata",
|
||||
"after": "",
|
||||
"color": "red",
|
||||
"icon": "walk"
|
||||
},
|
||||
{
|
||||
"name": "anydataDef",
|
||||
"label": "Текст",
|
||||
"widget": "anydata",
|
||||
"after": "",
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"name": "anydataVlt",
|
||||
"label": "Вольты",
|
||||
"widget": "anydata",
|
||||
"after": "V",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "anydataAmp",
|
||||
"label": "Амперы",
|
||||
"widget": "anydata",
|
||||
"after": "A",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "anydataWt",
|
||||
"label": "Ватты",
|
||||
"widget": "anydata",
|
||||
"after": "Wt",
|
||||
"icon": "speedometer",
|
||||
"color": [
|
||||
{
|
||||
"level": 0,
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"level": 200,
|
||||
"value": "#009933"
|
||||
},
|
||||
{
|
||||
"level": 2000,
|
||||
"value": "#FF9900"
|
||||
},
|
||||
{
|
||||
"level": 4000,
|
||||
"value": "red"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "anydataWth",
|
||||
"label": "Энергия",
|
||||
"widget": "anydata",
|
||||
"after": "kWh",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "anydataHtz",
|
||||
"label": "Герцы",
|
||||
"widget": "anydata",
|
||||
"after": "Hz",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "anydataTmp",
|
||||
"label": "Температура",
|
||||
"widget": "anydata",
|
||||
"after": "°С",
|
||||
"icon": "thermometer",
|
||||
"font": "OCR A Std",
|
||||
"color": [
|
||||
{
|
||||
"level": -20,
|
||||
"value": "#0000CC"
|
||||
},
|
||||
{
|
||||
"level": -10,
|
||||
"value": "#0000CC"
|
||||
},
|
||||
{
|
||||
"level": 0,
|
||||
"value": "#0000CC"
|
||||
},
|
||||
{
|
||||
"level": 12,
|
||||
"value": "#3366FF"
|
||||
},
|
||||
{
|
||||
"level": 16,
|
||||
"value": "#33CCFF"
|
||||
},
|
||||
{
|
||||
"level": 18,
|
||||
"value": "#009933"
|
||||
},
|
||||
{
|
||||
"level": 30,
|
||||
"value": "#FF9900"
|
||||
},
|
||||
{
|
||||
"level": 40,
|
||||
"value": "red"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "anydataMm",
|
||||
"label": "Давление",
|
||||
"widget": "anydata",
|
||||
"after": "mm",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "anydataHum",
|
||||
"label": "Влажность",
|
||||
"widget": "anydata",
|
||||
"after": "%",
|
||||
"icon": "water",
|
||||
"color": "#88AADF"
|
||||
},
|
||||
{
|
||||
"name": "anydataTm",
|
||||
"label": "Время",
|
||||
"widget": "anydata",
|
||||
"after": "",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "button",
|
||||
"label": "Кнопка",
|
||||
"widget": "btn",
|
||||
"size": "large",
|
||||
"color": "green",
|
||||
"send": "test"
|
||||
},
|
||||
{
|
||||
"name": "toggle",
|
||||
"label": "Переключатель",
|
||||
"widget": "toggle",
|
||||
"icon": "",
|
||||
"iconOff": ""
|
||||
},
|
||||
{
|
||||
"name": "chart1",
|
||||
"label": "График без точек",
|
||||
"widget": "chart",
|
||||
"dateFormat": "HH:mm",
|
||||
"maxCount": 86400,
|
||||
"pointRadius": 0
|
||||
},
|
||||
{
|
||||
"name": "chart2",
|
||||
"label": "График с точками",
|
||||
"widget": "chart",
|
||||
"maxCount": 86400,
|
||||
"dateFormat": "HH:mm"
|
||||
},
|
||||
{
|
||||
"name": "chart3",
|
||||
"label": "График Дневной",
|
||||
"widget": "chart",
|
||||
"dateFormat": "DD.MM.YYYY",
|
||||
"maxCount": 86400,
|
||||
"type": "bar"
|
||||
},
|
||||
{
|
||||
"name": "fillgauge",
|
||||
"label": "Бочка",
|
||||
"widget": "fillgauge",
|
||||
"circleColor": "#00FFFF",
|
||||
"textColor": "#FFFFFF",
|
||||
"waveTextColor": "#000000",
|
||||
"waveColor": "#00FFFF"
|
||||
},
|
||||
{
|
||||
"name": "inputDate",
|
||||
"label": "Ввод даты",
|
||||
"widget": "input",
|
||||
"size": "small",
|
||||
"color": "orange",
|
||||
"type": "date"
|
||||
},
|
||||
{
|
||||
"name": "inputDgt",
|
||||
"label": "Ввод числа",
|
||||
"widget": "input",
|
||||
"color": "blue",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "inputTxt",
|
||||
"label": "Ввод текста",
|
||||
"widget": "input",
|
||||
"size": "small",
|
||||
"color": "orange",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"name": "inputTm",
|
||||
"label": "Ввод времени",
|
||||
"widget": "input",
|
||||
"color": "blue",
|
||||
"type": "time"
|
||||
},
|
||||
{
|
||||
"name": "progressLine",
|
||||
"label": "Статус линия",
|
||||
"widget": "progress-line",
|
||||
"icon": "sunny",
|
||||
"max": "100",
|
||||
"stroke": "10"
|
||||
},
|
||||
{
|
||||
"name": "progressRound",
|
||||
"label": "Статус круг",
|
||||
"widget": "progress-round",
|
||||
"max": "100",
|
||||
"stroke": "20",
|
||||
"color": "#45ccce",
|
||||
"background": "#777",
|
||||
"semicircle": "1"
|
||||
},
|
||||
{
|
||||
"name": "range",
|
||||
"label": "Ползунок",
|
||||
"widget": "range",
|
||||
"descrColor": "red",
|
||||
"after": "%",
|
||||
"k": 0.0977,
|
||||
"min": 0,
|
||||
"max": 100,
|
||||
"debounce": 500
|
||||
},
|
||||
{
|
||||
"name": "range",
|
||||
"label": "Ползунок (Servo)",
|
||||
"widget": "range",
|
||||
"descrColor": "red",
|
||||
"after": "%",
|
||||
"k": 1,
|
||||
"min": 0,
|
||||
"max": 180,
|
||||
"debounce": 500
|
||||
},
|
||||
{
|
||||
"name": "select",
|
||||
"label": "Выпадающий",
|
||||
"widget": "select",
|
||||
"options": [
|
||||
"Выключен",
|
||||
"Включен"
|
||||
],
|
||||
"status": 0
|
||||
},
|
||||
{
|
||||
"name": "anydataPpm",
|
||||
"label": "PPM",
|
||||
"widget": "anydata",
|
||||
"after": "ppm",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "anydatamAmp",
|
||||
"label": "миллиАмперы",
|
||||
"widget": "anydata",
|
||||
"after": "mAmp",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "anydatamVlt",
|
||||
"label": "миллиВольты",
|
||||
"widget": "anydata",
|
||||
"after": "mVlt",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "anydatamWt",
|
||||
"label": "миллиВатты",
|
||||
"widget": "anydata",
|
||||
"after": "mWt",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "anydataCm",
|
||||
"label": "Сантиметры",
|
||||
"widget": "anydata",
|
||||
"after": "cm",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "nil",
|
||||
"label": "Без виджета"
|
||||
}
|
||||
]
|
||||
@@ -41,13 +41,31 @@
|
||||
"label": "Ватты",
|
||||
"widget": "anydata",
|
||||
"after": "Wt",
|
||||
"icon": "speedometer"
|
||||
"icon": "speedometer",
|
||||
"color": [
|
||||
{
|
||||
"level": 0,
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"level": 200,
|
||||
"value": "#009933"
|
||||
},
|
||||
{
|
||||
"level": 2000,
|
||||
"value": "#FF9900"
|
||||
},
|
||||
{
|
||||
"level": 4000,
|
||||
"value": "red"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "anydataWth",
|
||||
"label": "Энергия",
|
||||
"widget": "anydata",
|
||||
"after": "kWt/Hr",
|
||||
"after": "kWh",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
@@ -62,7 +80,42 @@
|
||||
"label": "Температура",
|
||||
"widget": "anydata",
|
||||
"after": "°С",
|
||||
"icon": "thermometer"
|
||||
"icon": "thermometer",
|
||||
"font": "OCR A Std",
|
||||
"color": [
|
||||
{
|
||||
"level": -20,
|
||||
"value": "#0000CC"
|
||||
},
|
||||
{
|
||||
"level": -10,
|
||||
"value": "#0000CC"
|
||||
},
|
||||
{
|
||||
"level": 0,
|
||||
"value": "#0000CC"
|
||||
},
|
||||
{
|
||||
"level": 12,
|
||||
"value": "#3366FF"
|
||||
},
|
||||
{
|
||||
"level": 16,
|
||||
"value": "#33CCFF"
|
||||
},
|
||||
{
|
||||
"level": 18,
|
||||
"value": "#009933"
|
||||
},
|
||||
{
|
||||
"level": 30,
|
||||
"value": "#FF9900"
|
||||
},
|
||||
{
|
||||
"level": 40,
|
||||
"value": "red"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "anydataMm",
|
||||
@@ -192,6 +245,17 @@
|
||||
"max": 100,
|
||||
"debounce": 500
|
||||
},
|
||||
{
|
||||
"name": "range",
|
||||
"label": "Ползунок (Servo)",
|
||||
"widget": "range",
|
||||
"descrColor": "red",
|
||||
"after": "%",
|
||||
"k": 1,
|
||||
"min": 0,
|
||||
"max": 180,
|
||||
"debounce": 500
|
||||
},
|
||||
{
|
||||
"name": "select",
|
||||
"label": "Выпадающий",
|
||||
@@ -209,6 +273,34 @@
|
||||
"after": "ppm",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "anydatamAmp",
|
||||
"label": "миллиАмперы",
|
||||
"widget": "anydata",
|
||||
"after": "mAmp",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "anydatamVlt",
|
||||
"label": "миллиВольты",
|
||||
"widget": "anydata",
|
||||
"after": "mVlt",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "anydatamWt",
|
||||
"label": "миллиВатты",
|
||||
"widget": "anydata",
|
||||
"after": "mWt",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "anydataCm",
|
||||
"label": "Сантиметры",
|
||||
"widget": "anydata",
|
||||
"after": "cm",
|
||||
"icon": "speedometer"
|
||||
},
|
||||
{
|
||||
"name": "nil",
|
||||
"label": "Без виджета"
|
||||
|
||||
80
include/BuildTime.h
Normal file
80
include/BuildTime.h
Normal file
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
Парсинг и получение даты и времени компиляции из __DATE__ и __TIME__
|
||||
Документация:
|
||||
GitHub: https://github.com/GyverLibs/buildTime
|
||||
Константы времени компиляции:
|
||||
BUILD_YEAR - год
|
||||
BUILD_MONTH - месяц
|
||||
BUILD_DAY - день
|
||||
BUILD_HOUR - час
|
||||
BUILD_MIN - минута
|
||||
BUILD_SEC - секунда
|
||||
|
||||
Исходник http://qaru.site/questions/186859/how-to-use-date-and-time-predefined-macros-in-as-two-integers-then-stringify
|
||||
AlexGyver, alex@alexgyver.ru
|
||||
https://alexgyver.ru/
|
||||
MIT License
|
||||
|
||||
Версии:
|
||||
v1.0 - релиз
|
||||
*/
|
||||
|
||||
#ifndef buildTime_h
|
||||
#define buildTime_h
|
||||
// Example of __DATE__ string: "Jul 27 2012"
|
||||
// 01234567890
|
||||
|
||||
#define BUILD_YEAR_CH0 (__DATE__[7] - '0')
|
||||
#define BUILD_YEAR_CH1 (__DATE__[8] - '0')
|
||||
#define BUILD_YEAR_CH2 (__DATE__[9] - '0')
|
||||
#define BUILD_YEAR_CH3 (__DATE__[10] - '0')
|
||||
#define BUILD_YEAR (BUILD_YEAR_CH0 * 1000 + BUILD_YEAR_CH1 * 100 + BUILD_YEAR_CH2 * 10 + BUILD_YEAR_CH3)
|
||||
|
||||
#define BUILD_MONTH_IS_JAN (__DATE__[0] == 'J' && __DATE__[1] == 'a' && __DATE__[2] == 'n')
|
||||
#define BUILD_MONTH_IS_FEB (__DATE__[0] == 'F')
|
||||
#define BUILD_MONTH_IS_MAR (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'r')
|
||||
#define BUILD_MONTH_IS_APR (__DATE__[0] == 'A' && __DATE__[1] == 'p')
|
||||
#define BUILD_MONTH_IS_MAY (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'y')
|
||||
#define BUILD_MONTH_IS_JUN (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'n')
|
||||
#define BUILD_MONTH_IS_JUL (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'l')
|
||||
#define BUILD_MONTH_IS_AUG (__DATE__[0] == 'A' && __DATE__[1] == 'u')
|
||||
#define BUILD_MONTH_IS_SEP (__DATE__[0] == 'S')
|
||||
#define BUILD_MONTH_IS_OCT (__DATE__[0] == 'O')
|
||||
#define BUILD_MONTH_IS_NOV (__DATE__[0] == 'N')
|
||||
#define BUILD_MONTH_IS_DEC (__DATE__[0] == 'D')
|
||||
|
||||
#define BUILD_MONTH \
|
||||
( \
|
||||
(BUILD_MONTH_IS_JAN) ? 1 : (BUILD_MONTH_IS_FEB) ? 2 \
|
||||
: (BUILD_MONTH_IS_MAR) ? 3 \
|
||||
: (BUILD_MONTH_IS_APR) ? 4 \
|
||||
: (BUILD_MONTH_IS_MAY) ? 5 \
|
||||
: (BUILD_MONTH_IS_JUN) ? 6 \
|
||||
: (BUILD_MONTH_IS_JUL) ? 7 \
|
||||
: (BUILD_MONTH_IS_AUG) ? 8 \
|
||||
: (BUILD_MONTH_IS_SEP) ? 9 \
|
||||
: (BUILD_MONTH_IS_OCT) ? 10 \
|
||||
: (BUILD_MONTH_IS_NOV) ? 11 \
|
||||
: (BUILD_MONTH_IS_DEC) ? 12 \
|
||||
: /* error default */ '?')
|
||||
|
||||
#define BUILD_DAY_CH0 (((__DATE__[4] >= '0') ? (__DATE__[4]) : '0') - '0')
|
||||
#define BUILD_DAY_CH1 (__DATE__[5] - '0')
|
||||
#define BUILD_DAY (BUILD_DAY_CH0 * 10 + BUILD_DAY_CH1)
|
||||
|
||||
// Example of __TIME__ string: "21:06:19"
|
||||
// 01234567
|
||||
|
||||
#define BUILD_HOUR_CH0 (__TIME__[0] - '0')
|
||||
#define BUILD_HOUR_CH1 (__TIME__[1] - '0')
|
||||
#define BUILD_HOUR (BUILD_HOUR_CH0 * 10 + BUILD_HOUR_CH1)
|
||||
|
||||
#define BUILD_MIN_CH0 (__TIME__[3] - '0')
|
||||
#define BUILD_MIN_CH1 (__TIME__[4] - '0')
|
||||
#define BUILD_MIN (BUILD_MIN_CH0 * 10 + BUILD_MIN_CH1)
|
||||
|
||||
#define BUILD_SEC_CH0 (__TIME__[6] - '0')
|
||||
#define BUILD_SEC_CH1 (__TIME__[7] - '0')
|
||||
#define BUILD_SEC (BUILD_SEC_CH0 * 10 + BUILD_SEC_CH1)
|
||||
|
||||
#endif
|
||||
@@ -1,7 +1,8 @@
|
||||
#pragma once
|
||||
#include "BuildTime.h"
|
||||
|
||||
// Версия прошивки
|
||||
#define FIRMWARE_VERSION 436
|
||||
#define FIRMWARE_VERSION 450
|
||||
|
||||
#ifdef esp8266_1mb_ota
|
||||
#define FIRMWARE_NAME "esp8266_1mb_ota"
|
||||
@@ -94,4 +95,4 @@ enum distination {
|
||||
TO_MQTT_WS,
|
||||
};
|
||||
|
||||
#define WS_BROADCAST -1
|
||||
#define WS_BROADCAST -1
|
||||
|
||||
BIN
iotm/esp32_4mb/400/firmware.bin
Normal file
BIN
iotm/esp32_4mb/400/firmware.bin
Normal file
Binary file not shown.
BIN
iotm/esp32_4mb/400/littlefs.bin
Normal file
BIN
iotm/esp32_4mb/400/littlefs.bin
Normal file
Binary file not shown.
BIN
iotm/esp32_4mb/400/partitions.bin
Normal file
BIN
iotm/esp32_4mb/400/partitions.bin
Normal file
Binary file not shown.
5
iotm/ver.json
Normal file
5
iotm/ver.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"esp32_4mb": {
|
||||
"0": "400"
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,5 @@
|
||||
#include "DeviceList.h"
|
||||
|
||||
// данная функция не записывает поле status из этого следует что поле равно false и поэтому весь список устройств отдаваемый мк
|
||||
// уходит со статусом для всех устройств - offline
|
||||
// приложение svelte хранит свой список и в нем поддерживает корректные статусы, а при получении этого списка
|
||||
// лишь изменяет в своем те элементы массива которые добавились новые, не трогая остальные
|
||||
const String getThisDevice() {
|
||||
String thisDevice = "{}";
|
||||
// jsonWriteStr_(thisDevice, F("devicelist_"), ""); // метка для парсинга - она не нужна теперь
|
||||
@@ -11,6 +7,10 @@ const String getThisDevice() {
|
||||
jsonWriteStr_(thisDevice, F("ip"), jsonReadStr(settingsFlashJson, F("ip")));
|
||||
jsonWriteStr_(thisDevice, F("id"), jsonReadStr(settingsFlashJson, F("id")));
|
||||
jsonWriteStr_(thisDevice, F("name"), jsonReadStr(settingsFlashJson, F("name")));
|
||||
// приложение svelte хранит свой список и в нем поддерживает корректные статусы, а при получении этого списка
|
||||
// лишь изменяет в своем те элементы массива которые добавились новые, не трогая остальные
|
||||
jsonWriteBool_(thisDevice, F("status"), false);
|
||||
jsonWriteInt_(thisDevice, F("fv"), FIRMWARE_VERSION);
|
||||
thisDevice = "[" + thisDevice + "]";
|
||||
return thisDevice;
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@ void setup() {
|
||||
Serial.println(F("--------------started----------------"));
|
||||
|
||||
// создание экземпляров классов
|
||||
// myNotAsyncActions = new NotAsync(do_LAST);
|
||||
// myNotAsyncActions = new NotAsync(do_LAST);
|
||||
|
||||
// инициализация файловой системы
|
||||
fileSystemInit();
|
||||
@@ -107,6 +107,9 @@ void setup() {
|
||||
Serial.println("FIRMWARE NAME " + String(FIRMWARE_NAME));
|
||||
Serial.println("FIRMWARE VERSION " + String(FIRMWARE_VERSION));
|
||||
Serial.println("WEB VERSION " + getWebVersion());
|
||||
const String buildTime = String(BUILD_DAY) + "/" + String(BUILD_MONTH) + "/" + String(BUILD_YEAR) + " " + String(BUILD_HOUR) + ":" + String(BUILD_MIN) + ":" + String(BUILD_SEC);
|
||||
Serial.println("BUILD TIME " + buildTime);
|
||||
jsonWriteStr_(errorsHeapJson, F("bt"), buildTime);
|
||||
Serial.println(F("------------------------"));
|
||||
|
||||
// получение chip id
|
||||
|
||||
@@ -48,17 +48,19 @@ bool upgradeFS() {
|
||||
#endif
|
||||
#ifdef ESP32
|
||||
httpUpdate.rebootOnUpdate(false);
|
||||
//обновляем little fs с помощью метода обновления spiffs
|
||||
// обновляем little fs с помощью метода обновления spiffs
|
||||
HTTPUpdateResult retFS = httpUpdate.updateSpiffs(wifiClient, getBinPath("littlefs.bin"));
|
||||
#endif
|
||||
|
||||
//если FS обновилась успешно
|
||||
// если FS обновилась успешно
|
||||
if (retFS == HTTP_UPDATE_OK) {
|
||||
SerialPrint("!!!", F("Update"), F("FS upgrade done!"));
|
||||
handleUpdateStatus(true, UPDATE_FS_COMPLETED);
|
||||
ret = true;
|
||||
} else {
|
||||
handleUpdateStatus(true, UPDATE_FS_FAILED);
|
||||
}
|
||||
handleUpdateStatus(true, UPDATE_FS_FAILED);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -72,7 +74,7 @@ bool upgradeBuild() {
|
||||
handleUpdateStatus(true, PATH_ERROR);
|
||||
return ret;
|
||||
}
|
||||
#if defined (esp8266_4mb) || defined (esp8266_1mb) || defined (esp8266_1mb_ota) || defined (esp8266_2mb) || defined (esp8266_2mb_ota)
|
||||
#if defined(esp8266_4mb) || defined(esp8266_1mb) || defined(esp8266_1mb_ota) || defined(esp8266_2mb) || defined(esp8266_2mb_ota)
|
||||
ESPhttpUpdate.rebootOnUpdate(false);
|
||||
t_httpUpdate_return retBuild = ESPhttpUpdate.update(wifiClient, getBinPath("firmware.bin"));
|
||||
#endif
|
||||
@@ -81,13 +83,14 @@ bool upgradeBuild() {
|
||||
HTTPUpdateResult retBuild = httpUpdate.update(wifiClient, getBinPath("firmware.bin"));
|
||||
#endif
|
||||
|
||||
//если BUILD обновился успешно
|
||||
// если BUILD обновился успешно
|
||||
if (retBuild == HTTP_UPDATE_OK) {
|
||||
SerialPrint("!!!", F("Update"), F("BUILD upgrade done!"));
|
||||
handleUpdateStatus(true, UPDATE_BUILD_COMPLETED);
|
||||
ret = true;
|
||||
} else {
|
||||
handleUpdateStatus(true, UPDATE_BUILD_FAILED);
|
||||
}
|
||||
handleUpdateStatus(true, UPDATE_BUILD_FAILED);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -132,5 +135,5 @@ void saveUserDataToFlash() {
|
||||
|
||||
void handleUpdateStatus(bool send, int state) {
|
||||
jsonWriteInt_(errorsHeapJson, F("upd"), state);
|
||||
if (!send) sendStringToWs("errors", errorsHeapJson, -1);
|
||||
if (send) sendStringToWs("errors", errorsHeapJson, -1);
|
||||
}
|
||||
@@ -163,9 +163,15 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
||||
// Страница веб интерфейса list
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
// отвечаем данными на запрос страницы
|
||||
// отвечаем данными на запрос страницы list
|
||||
if (headerStr == "/list|") {
|
||||
sendStringToWs("settin", settingsFlashJson, num);
|
||||
// отправим список устройств в зависимости от того что выбрал user
|
||||
// sendDeviceList(num);
|
||||
}
|
||||
|
||||
// отвечаем на запрос списка устройств (это отдельный запрос который делает приложение при подключении)
|
||||
if (headerStr == "/devlist|") {
|
||||
// отправим список устройств в зависимости от того что выбрал user
|
||||
sendDeviceList(num);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user