From 9a7f6c5b057ee5406ea5a31f6b71faf69f9f81f2 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Sun, 13 Dec 2020 00:59:56 +0300 Subject: [PATCH] 4 mb version --- data/edit.htm.gz | Bin 0 -> 5455 bytes data/items/analog-adc.txt | 1 + data/items/bme280-hum.txt | 1 + data/items/bme280-press.txt | 1 + data/items/bme280-temp.txt | 1 + data/items/bmp280-press.txt | 1 + data/items/bmp280-temp.txt | 1 + data/items/button-in.txt | 1 + data/items/button-out.inv.txt | 1 + data/items/button-out.npin.txt | 1 + data/items/button-out.pin.txt | 1 + data/items/count-down.txt | 1 + data/items/dallas-temp.txt | 1 + data/items/dht11-hum.txt | 1 + data/items/dht11-temp.txt | 1 + data/items/dht22-hum.txt | 1 + data/items/dht22-temp.txt | 1 + data/items/impuls-out.txt | 1 + data/items/input-digit.txt | 1 + data/items/input-time.txt | 1 + data/items/logging.txt | 1 + data/items/modbus.txt | 1 + data/items/output-text.txt | 1 + data/items/pwm-out.txt | 1 + data/items/uart-button.txt | 1 + data/items/uart-widget.txt | 1 + data/items/ultrasonic-cm.txt | 1 + data/items/uptime.txt | 1 + data/presets/1.c.txt | 5 +++ data/presets/1.s.txt | 8 ++++ data/presets/2.c.txt | 12 ++++++ data/presets/2.s.txt | 18 +++++++++ data/presets/3.c.txt | 5 +++ data/presets/3.s.txt | 8 ++++ data/presets/4.c.txt | 4 ++ data/presets/4.s.txt | 8 ++++ data/presets/5.c.txt | 7 ++++ data/presets/5.s.txt | 16 ++++++++ data/presets/6.c.txt | 3 ++ data/presets/6.s.txt | 6 +++ data/presets/7.c.txt | 4 ++ data/presets/7.s.txt | 10 +++++ data/presets/8.c.txt | 4 ++ data/presets/8.s.txt | 7 ++++ data/presets/9.c.txt | 2 + data/presets/9.s.txt | 3 ++ include/Consts.h | 2 +- include/items/vSensorAnalog.h | 41 +++++++++++++++++++ src/ItemsList.cpp | 1 + src/UpgradeFirm.cpp | 4 +- src/items/vSensorAnalog.cpp | 71 +++++++++++++++++++++++++++++++++ 51 files changed, 273 insertions(+), 3 deletions(-) create mode 100644 data/edit.htm.gz create mode 100644 data/items/analog-adc.txt create mode 100644 data/items/bme280-hum.txt create mode 100644 data/items/bme280-press.txt create mode 100644 data/items/bme280-temp.txt create mode 100644 data/items/bmp280-press.txt create mode 100644 data/items/bmp280-temp.txt create mode 100644 data/items/button-in.txt create mode 100644 data/items/button-out.inv.txt create mode 100644 data/items/button-out.npin.txt create mode 100644 data/items/button-out.pin.txt create mode 100644 data/items/count-down.txt create mode 100644 data/items/dallas-temp.txt create mode 100644 data/items/dht11-hum.txt create mode 100644 data/items/dht11-temp.txt create mode 100644 data/items/dht22-hum.txt create mode 100644 data/items/dht22-temp.txt create mode 100644 data/items/impuls-out.txt create mode 100644 data/items/input-digit.txt create mode 100644 data/items/input-time.txt create mode 100644 data/items/logging.txt create mode 100644 data/items/modbus.txt create mode 100644 data/items/output-text.txt create mode 100644 data/items/pwm-out.txt create mode 100644 data/items/uart-button.txt create mode 100644 data/items/uart-widget.txt create mode 100644 data/items/ultrasonic-cm.txt create mode 100644 data/items/uptime.txt create mode 100644 data/presets/1.c.txt create mode 100644 data/presets/1.s.txt create mode 100644 data/presets/2.c.txt create mode 100644 data/presets/2.s.txt create mode 100644 data/presets/3.c.txt create mode 100644 data/presets/3.s.txt create mode 100644 data/presets/4.c.txt create mode 100644 data/presets/4.s.txt create mode 100644 data/presets/5.c.txt create mode 100644 data/presets/5.s.txt create mode 100644 data/presets/6.c.txt create mode 100644 data/presets/6.s.txt create mode 100644 data/presets/7.c.txt create mode 100644 data/presets/7.s.txt create mode 100644 data/presets/8.c.txt create mode 100644 data/presets/8.s.txt create mode 100644 data/presets/9.c.txt create mode 100644 data/presets/9.s.txt create mode 100644 include/items/vSensorAnalog.h create mode 100644 src/items/vSensorAnalog.cpp diff --git a/data/edit.htm.gz b/data/edit.htm.gz new file mode 100644 index 0000000000000000000000000000000000000000..5786121f98a84b5695314c9ad8e5537f57650ba4 GIT binary patch literal 5455 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 z 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 inputU +button 0 +telegram нагрев#выключен 1 +end +temp < inputL +button 1 +telegram нагрев#включен 1 +end \ No newline at end of file diff --git a/data/presets/2.c.txt b/data/presets/2.c.txt new file mode 100644 index 00000000..d91fa5c7 --- /dev/null +++ b/data/presets/2.c.txt @@ -0,0 +1,12 @@ +0;dallas-temp;temp;anydataTemp;Термостат;Температура;1;pin[2];index[0];int[60] +0;logging;log;chart;Термостат;История;2;val[temp];int[10];cnt[100] +0;inoutput;threshold;inputDigitTemp;Термостат;Заданная#температура;3 +0;button-out;heater;toggle;Термостат;Нагреватель;7;pin[12] +0;inoutput;time1;inputTimeClock;Расписание;Утренний#период;8 +0;inoutput;threshold1;inputDigitTemp;Расписание;Температура;9 +0;inoutput;time2;inputTimeClock;Расписание;Дневной#период;10 +0;inoutput;threshold2;inputDigitTemp;Расписание;Температура;11 +0;inoutput;time3;inputTimeClock;Расписание;Вечерний#период;12 +0;inoutput;threshold3;inputDigitTemp;Расписание;Температура;13 +0;inoutput;time4;inputTimeClock;Расписание;Ночной#период;14 +0;inoutput;threshold4;inputDigitTemp;Расписание;Температура;15 \ No newline at end of file diff --git a/data/presets/2.s.txt b/data/presets/2.s.txt new file mode 100644 index 00000000..5a6f36f1 --- /dev/null +++ b/data/presets/2.s.txt @@ -0,0 +1,18 @@ +temp > threshold+-2 +heater 0 +end +temp < threshold+-2 +heater 1 +end +timenow = time1 +threshold threshold1 +end +timenow = time2 +threshold threshold2 +end +timenow = time3 +threshold threshold3 +end +timenow = time4 +threshold threshold4 +end \ No newline at end of file diff --git a/data/presets/3.c.txt b/data/presets/3.c.txt new file mode 100644 index 00000000..fb2c602b --- /dev/null +++ b/data/presets/3.c.txt @@ -0,0 +1,5 @@ +0;dht-hum;hum;anydataHum;Теплица;Влажность;1;pin[2];type[dht11];c[1] +0;logging;log;chart;Теплица;История;2;val[hum];int[60];cnt[100] +0;inoutput;inputU;inputDigit;Теплица;Верхний#порог;3 +0;inoutput;inputL;inputDigit;Теплица;Нижний#порог;4 +0;button-out;button;toggle;Теплица;Полив;5;pin[12] \ No newline at end of file diff --git a/data/presets/3.s.txt b/data/presets/3.s.txt new file mode 100644 index 00000000..f69cdc54 --- /dev/null +++ b/data/presets/3.s.txt @@ -0,0 +1,8 @@ +hum > inputU +button 0 +telegram полив#выключен 1 +end +hum < inputL +button 1 +telegram полив#включен 1 +end \ No newline at end of file diff --git a/data/presets/4.c.txt b/data/presets/4.c.txt new file mode 100644 index 00000000..3f1ccaa1 --- /dev/null +++ b/data/presets/4.c.txt @@ -0,0 +1,4 @@ +0;button-out;button1;toggle;Реле;Освещение;1;pin[12] +0;button-out;button2;toggle;Реле;Освещение;2;pin[13] +0;inoutput;T1;inputTime;Реле;Введите#время#включения;3 +0;inoutput;T2;inputTime;Реле;Введите#время#выключения;4 \ No newline at end of file diff --git a/data/presets/4.s.txt b/data/presets/4.s.txt new file mode 100644 index 00000000..844d1c5b --- /dev/null +++ b/data/presets/4.s.txt @@ -0,0 +1,8 @@ +timenow = T1 +button1 1 +button2 0 +end +timenow = T2 +button1 0 +button2 1 +end \ No newline at end of file diff --git a/data/presets/5.c.txt b/data/presets/5.c.txt new file mode 100644 index 00000000..359a7a52 --- /dev/null +++ b/data/presets/5.c.txt @@ -0,0 +1,7 @@ +0;button-out;button-out-1;toggle;Кнопки;Выключить#все;1 +0;button-out;button-out-2;toggle;Кнопки;Гостинная;2;pin[12] +0;button-out;button-out-3;toggle;Кнопки;Спальня;3;pin[13] +0;button-out;button-out-4;toggle;Кнопки;Прихожая;4;pin[14] +0;pwm-out;pwm-out-5;range;Кнопки;Яркость;5;pin[15] +0;pwm-out;pwm-out-6;range;Кнопки;Яркость;6;pin[16] +0;inoutput;output-text-7;anydata;Кнопки;Статус;7 \ No newline at end of file diff --git a/data/presets/5.s.txt b/data/presets/5.s.txt new file mode 100644 index 00000000..0424728a --- /dev/null +++ b/data/presets/5.s.txt @@ -0,0 +1,16 @@ +button-out-1 = 1 +button-out-2 1 +button-out-3 1 +button-out-4 1 +pwm-out-5 200 +pwm-out-6 800 +output-text-7 включено +end +button-out-1 = 0 +button-out-2 0 +button-out-3 0 +button-out-4 0 +pwm-out-5 800 +pwm-out-6 200 +output-text-7 выключено +end \ No newline at end of file diff --git a/data/presets/6.c.txt b/data/presets/6.c.txt new file mode 100644 index 00000000..c7fd096a --- /dev/null +++ b/data/presets/6.c.txt @@ -0,0 +1,3 @@ +0;button-out;button;toggle;Таймер;Освещение;1;pin[12] +0;count-down;count;anydata;Таймер;Обратный#отчет;2 +0;inoutput;input;inputDigit;Таймер;Введите#цифру;3 \ No newline at end of file diff --git a/data/presets/6.s.txt b/data/presets/6.s.txt new file mode 100644 index 00000000..06b70a4a --- /dev/null +++ b/data/presets/6.s.txt @@ -0,0 +1,6 @@ +button = 1 +count input +end +count = 0 +button 0 +end \ No newline at end of file diff --git a/data/presets/7.c.txt b/data/presets/7.c.txt new file mode 100644 index 00000000..984c6b8d --- /dev/null +++ b/data/presets/7.c.txt @@ -0,0 +1,4 @@ +0;inoutput;text;anydataAlarm;Сигнализация;Движение:;1 +0;inoutput;time;anydataTime;Сигнализация;Время:;2 +0;button-in;sensor;na;na;na;3;pin[0];db[20] +0;button-out;reset;toggle;Сигнализация;Сбросить;4 \ No newline at end of file diff --git a/data/presets/7.s.txt b/data/presets/7.s.txt new file mode 100644 index 00000000..32d28e78 --- /dev/null +++ b/data/presets/7.s.txt @@ -0,0 +1,10 @@ +sensor = 1 +text обнаружено +time %date% +telegram text обнаружено#движение 1 +end +reset = 1 +text не#обнаружено +time %date% +reset 0 +end \ No newline at end of file diff --git a/data/presets/8.c.txt b/data/presets/8.c.txt new file mode 100644 index 00000000..d18bdd0b --- /dev/null +++ b/data/presets/8.c.txt @@ -0,0 +1,4 @@ +0;button-in;sensor;na;na;na;1;pin[0];db[20] +0;button-out;light;toggle;Освещение;Освещение;2;pin[13] +0;count-down;count;anydata;Освещение;Обратный#отчет;3 +0;inoutput;period;inputDigit;Освещение;Период#включения;4 \ No newline at end of file diff --git a/data/presets/8.s.txt b/data/presets/8.s.txt new file mode 100644 index 00000000..10d55654 --- /dev/null +++ b/data/presets/8.s.txt @@ -0,0 +1,7 @@ +sensor = 1 +light 1 +count period +end +count = 0 +light 0 +end \ No newline at end of file diff --git a/data/presets/9.c.txt b/data/presets/9.c.txt new file mode 100644 index 00000000..502f3ae4 --- /dev/null +++ b/data/presets/9.c.txt @@ -0,0 +1,2 @@ +0;button-out;light;toggle;Кнопки;Освещение;1;pin[13] +0;button-in;switch;na;na;na;2;pin[0];db[20] \ No newline at end of file diff --git a/data/presets/9.s.txt b/data/presets/9.s.txt new file mode 100644 index 00000000..6f6d7dcc --- /dev/null +++ b/data/presets/9.s.txt @@ -0,0 +1,3 @@ +switch = 1 +light change +end \ No newline at end of file diff --git a/include/Consts.h b/include/Consts.h index ceeb1dd2..941df935 100644 --- a/include/Consts.h +++ b/include/Consts.h @@ -2,7 +2,7 @@ //===========Firmware============================================================================================================================================= #define FIRMWARE_VERSION 272 -#define FLASH_SIZE_1MB true +//#define FLASH_SIZE_1MB true #ifdef ESP8266 #ifdef FLASH_SIZE_1MB #define FIRMWARE_NAME "esp8266-1mb" diff --git a/include/items/vSensorAnalog.h b/include/items/vSensorAnalog.h new file mode 100644 index 00000000..b39c38f3 --- /dev/null +++ b/include/items/vSensorAnalog.h @@ -0,0 +1,41 @@ +#pragma once +#include "Global.h" +#include +#include "GyverFilters.h" + +class SensorAnalog; + +typedef std::vector MySensorAnalogVector; + +class SensorAnalog { +public: + + SensorAnalog(String key, unsigned long interval, unsigned int adcPin, int map1, int map2, int map3, int map4, float c); + ~SensorAnalog(); + + void loop(); + void readAnalog(); + +private: + + unsigned long currentMillis; + unsigned long prevMillis; + unsigned long difference; + + unsigned long _interval; + + String _key; + unsigned int _adcPin; + + int _map1; + int _map2; + int _map3; + int _map4; + + float _c; + +}; + +extern MySensorAnalogVector* mySensorAnalog; + +extern void analogAdc(); \ No newline at end of file diff --git a/src/ItemsList.cpp b/src/ItemsList.cpp index acab5352..25e45bb6 100644 --- a/src/ItemsList.cpp +++ b/src/ItemsList.cpp @@ -18,6 +18,7 @@ void itemsListInit() { delChoosingItems(); }, nullptr); + #ifdef FLASH_SIZE_1MB myNotAsyncActions->add( do_addItem, [&](void*) { diff --git a/src/UpgradeFirm.cpp b/src/UpgradeFirm.cpp index 63e7168f..21e835eb 100644 --- a/src/UpgradeFirm.cpp +++ b/src/UpgradeFirm.cpp @@ -59,8 +59,8 @@ void upgrade_firmware(int type) { String devconfig_ForUpdate; String configSetup_ForUpdate; - scenario_ForUpdate = readFile(String(DEVICE_SCENARIO_FILE), 4000); - devconfig_ForUpdate = readFile(String(DEVICE_CONFIG_FILE), 4000); + scenario_ForUpdate = readFile(String(DEVICE_SCENARIO_FILE), 4096); + devconfig_ForUpdate = readFile(String(DEVICE_CONFIG_FILE), 4096); configSetup_ForUpdate = configSetupJson; if (type == 1) { //only build diff --git a/src/items/vSensorAnalog.cpp b/src/items/vSensorAnalog.cpp new file mode 100644 index 00000000..b449c120 --- /dev/null +++ b/src/items/vSensorAnalog.cpp @@ -0,0 +1,71 @@ +#include "items/vSensorAnalog.h" +#include "Class/LineParsing.h" +#include "Global.h" +#include "BufferExecute.h" +#include + +SensorAnalog::SensorAnalog(String key, unsigned long interval, unsigned int adcPin, int map1, int map2, int map3, int map4, float c) { + _interval = interval * 1000; + _key = key; + _adcPin = _adcPin; + + _map1 = map1; + _map2 = map2; + _map3 = map3; + _map4 = map4; + + _c = c; +} + +SensorAnalog::~SensorAnalog() {} + +void SensorAnalog::loop() { + currentMillis = millis(); + difference = currentMillis - prevMillis; + if (difference >= _interval) { + prevMillis = millis(); + readAnalog(); + } +} + +void SensorAnalog::readAnalog() { + int value; +#ifdef ESP32 + int pinInt = pin.toInt(); + value = analogRead(pinInt); +#endif +#ifdef ESP8266 + value = analogRead(A0); +#endif + + value = map(value, _map1, _map2, _map3, _map4); + float valueFloat = value * _c; + + eventGen2(_key, String(valueFloat)); + jsonWriteStr(configLiveJson, _key, String(valueFloat)); + publishStatus(_key, String(valueFloat)); + SerialPrint("I", "Sensor", "'" + _key + "' data: " + String(valueFloat)); +} + +MySensorAnalogVector* mySensorAnalog = nullptr; + +void analogAdc() { + myLineParsing.update(); + String interval = myLineParsing.gint(); + String pin = myLineParsing.gpin(); + String key = myLineParsing.gkey(); + String map = myLineParsing.gmap(); + String c = myLineParsing.gc(); + myLineParsing.clear(); + + int map1 = selectFromMarkerToMarker(map, ",", 0).toInt(); + int map2 = selectFromMarkerToMarker(map, ",", 1).toInt(); + int map3 = selectFromMarkerToMarker(map, ",", 2).toInt(); + int map4 = selectFromMarkerToMarker(map, ",", 3).toInt(); + + static bool firstTime = true; + if (firstTime) mySensorAnalog = new MySensorAnalogVector(); + firstTime = false; + mySensorAnalog->push_back(SensorAnalog(key, interval.toInt(), pin.toInt(), map1, map2, map3, map4, c.toFloat())); +} +