Var changes

This commit is contained in:
Dmitry Borisenko
2020-09-03 23:29:34 +03:00
parent 26b211dc07
commit eea82a7edb
26 changed files with 217 additions and 374 deletions

View File

@@ -1,5 +1,5 @@
#include "Cmd.h"
#include "items/itemsGlobal.h"
#include "items/ItemsGlobal.h"
#include "Class/NotAsinc.h"
#include "Global.h"
#include "Module/Terminal.h"
@@ -31,7 +31,7 @@ void cmd_init() {
sCmd.addCommand("analog-adc", analogAdc);
sCmd.addCommand("ultrasonicCm", ultrasonicCm);
sCmd.addCommand("dallas-temp", dallasTemp);

View File

@@ -4,21 +4,13 @@
AsyncWebSocket ws;
//AsyncEventSource events;
#endif
Clock* timeNow;
TickerScheduler ts(TEST + 1);
WiFiClient espClient;
PubSubClient mqtt(espClient);
StringCommand sCmd;
AsyncWebServer server(80);
OneWire *oneWire;
DallasTemperature sensors;
/*
@@ -35,9 +27,7 @@ String configOptionJson = "{}";
// Mqtt
String chipId = "";
String prex = "";
String all_widgets = "";
String scenario = "";
//orders and events
@@ -48,57 +38,19 @@ String itemsFile = "";
String itemsLine = "";
// Sensors
int8_t dallasEnterCounter = -1;
String sensorReadingMap;
String analog_value_names_list;
int enter_to_analog_counter;
String dallas_value_name;
int enter_to_dallas_counter;
String levelPr_value_name;
String ultrasonicCm_value_name;
String dhtT_value_name;
String dhtH_value_name;
String bmp280T_value_name;
String bmp280P_value_name;
String bme280T_value_name;
String bme280P_value_name;
String bme280H_value_name;
String bme280A_value_name;
int sensors_reading_map[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
// Logging
String logging_value_names_list;
int enter_to_logging_counter;
// Scenario
int scenario_line_status[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
String lastVersion = "";
// Async actions
boolean checkUpdatesFlag = false;
boolean updateFlag = false;
boolean mqttParamsChanged = false;
boolean udp_data_parse = false;
boolean mqtt_send_settings_to_udp = false;
BusScanner_t busToScan;
boolean busScanFlag = false;
boolean fsCheckFlag = false;
boolean delElementFlag = false;
boolean getJsonListFromCsvFlag = false;
String csvFile = "";
int colum;

View File

@@ -37,25 +37,25 @@ void Device_init() {
enter_to_logging_counter = LOG1 - 1;
analog_value_names_list = "";
enter_to_analog_counter = 0;
dallas_value_name = "";
enter_to_dallas_counter = 0;
levelPr_value_name = "";
ultrasonicCm_value_name = "";
dhtT_value_name = "";
dhtH_value_name = "";
bmp280T_value_name = "";
bmp280P_value_name = "";
bme280T_value_name = "";
bme280P_value_name = "";
bme280H_value_name = "";
bme280A_value_name = "";
//analog_value_names_list = "";
//enter_to_analog_counter = 0;
//dallas_value_name = "";
//enter_to_dallas_counter = 0;
//levelPr_value_name = "";
//ultrasonicCm_value_name = "";
//dhtT_value_name = "";
//dhtH_value_name = "";
//bmp280T_value_name = "";
//bmp280P_value_name = "";
//bme280T_value_name = "";
//bme280P_value_name = "";
//bme280H_value_name = "";
//bme280A_value_name = "";
int array_sz = sizeof(sensors_reading_map) / sizeof(sensors_reading_map[0]);
for (int i = 0; i < array_sz; i++) {
sensors_reading_map[i] = 0;
}
//int array_sz = sizeof(sensors_reading_map) / sizeof(sensors_reading_map[0]);
//for (int i = 0; i < array_sz; i++) {
// sensors_reading_map[i] = 0;
//}
for (int i = LOG1; i <= LOG5; i++) {
ts.remove(i);

View File

@@ -1,3 +1,4 @@
#ifdef SSDP
#ifdef ESP8266
#include <ESP8266SSDP.h>
#endif
@@ -52,4 +53,5 @@ String decToHex(uint32_t decValue, byte desiredStringLength) {
String hexString = String(decValue, HEX);
while (hexString.length() < desiredStringLength) hexString = "0" + hexString;
return hexString;
}
}
#endif

View File

@@ -33,46 +33,6 @@ void sensorsInit() {
//=========================================================================================================================================
//=========================================Модуль температурного сенсора ds18b20===========================================================
#ifdef DALLAS_ENABLED
//dallas temp1 2 1 Температура Датчики anydata 1
//dallas temp2 2 2 Температура Датчики anydata 2
void dallas() {
String value_name = sCmd.next();
String pin = sCmd.next();
String address = sCmd.next();
jsonWriteStr(configOptionJson, value_name + "_ds", address);
String widget_name = sCmd.next();
String page_name = sCmd.next();
String type = sCmd.next();
String page_number = sCmd.next();
oneWire = new OneWire((uint8_t)pin.toInt());
sensors.setOneWire(oneWire);
sensors.begin();
sensors.setResolution(12);
dallas_value_name += value_name + ";";
createWidgetByType(widget_name, page_name, page_number, type, value_name);
sensors_reading_map[3] = 1;
}
void dallas_reading() {
float temp = 0;
byte num = sensors.getDS18Count();
String dallas_value_name_tmp_buf = dallas_value_name;
sensors.requestTemperatures();
for (byte i = 0; i < num; i++) {
temp = sensors.getTempCByIndex(i);
String buf = selectToMarker(dallas_value_name_tmp_buf, ";");
dallas_value_name_tmp_buf = deleteBeforeDelimiter(dallas_value_name_tmp_buf, ";");
jsonWriteStr(configLiveJson, buf, String(temp));
eventGen(buf, "");
MqttClient::publishStatus(buf, String(temp));
Serial.println("[I] sensor '" + buf + "' send date " + String(temp));
}
}
#endif
//=========================================================================================================================================
//=========================================Модуль сенсоров DHT=============================================================================
#ifdef DHT_ENABLED
@@ -85,7 +45,7 @@ void dhtT() {
String page_name = sCmd.next();
String type = sCmd.next();
String page_number = sCmd.next();
dhtT_value_name = value_name;
//dhtT_value_name = value_name;
if (sensor_type == "dht11") {
dht.setup(pin.toInt(), DHTesp::DHT11);
}
@@ -93,23 +53,23 @@ void dhtT() {
dht.setup(pin.toInt(), DHTesp::DHT22);
}
createWidgetByType(widget_name, page_name, page_number, type, value_name);
sensors_reading_map[4] = 1;
//sensors_reading_map[4] = 1;
}
void dhtT_reading() {
float value = 0;
static int counter;
if (dht.getStatus() != 0 && counter < 5) {
MqttClient::publishStatus(dhtT_value_name, String(dht.getStatusString()));
//MqttClient::publishStatus(dhtT_value_name, String(dht.getStatusString()));
counter++;
} else {
counter = 0;
value = dht.getTemperature();
if (String(value) != "nan") {
eventGen(dhtT_value_name, "");
jsonWriteStr(configLiveJson, dhtT_value_name, String(value));
MqttClient::publishStatus(dhtT_value_name, String(value));
Serial.println("[I] sensor '" + dhtT_value_name + "' data: " + String(value));
//eventGen(dhtT_value_name, "");
//jsonWriteStr(configLiveJson, dhtT_value_name, String(value));
//MqttClient::publishStatus(dhtT_value_name, String(value));
//Serial.println("[I] sensor '" + dhtT_value_name + "' data: " + String(value));
}
}
}
@@ -123,7 +83,7 @@ void dhtH() {
String page_name = sCmd.next();
String type = sCmd.next();
String page_number = sCmd.next();
dhtH_value_name = value_name;
//dhtH_value_name = value_name;
if (sensor_type == "dht11") {
dht.setup(pin.toInt(), DHTesp::DHT11);
}
@@ -131,23 +91,23 @@ void dhtH() {
dht.setup(pin.toInt(), DHTesp::DHT22);
}
createWidgetByType(widget_name, page_name, page_number, type, value_name);
sensors_reading_map[5] = 1;
//sensors_reading_map[5] = 1;
}
void dhtH_reading() {
float value = 0;
static int counter;
if (dht.getStatus() != 0 && counter < 5) {
MqttClient::publishStatus(dhtH_value_name, String(dht.getStatusString()));
//MqttClient::publishStatus(dhtH_value_name, String(dht.getStatusString()));
counter++;
} else {
counter = 0;
value = dht.getHumidity();
if (String(value) != "nan") {
eventGen(dhtH_value_name, "");
jsonWriteStr(configLiveJson, dhtH_value_name, String(value));
MqttClient::publishStatus(dhtH_value_name, String(value));
Serial.println("[I] sensor '" + dhtH_value_name + "' data: " + String(value));
//eventGen(dhtH_value_name, "");
//jsonWriteStr(configLiveJson, dhtH_value_name, String(value));
//MqttClient::publishStatus(dhtH_value_name, String(value));
//Serial.println("[I] sensor '" + dhtH_value_name + "' data: " + String(value));
}
}
}
@@ -158,7 +118,7 @@ void dhtP() {
String page_name = sCmd.next();
String page_number = sCmd.next();
createWidgetByType(widget_name, page_name, page_number, "any-data", "dhtPerception");
sensors_reading_map[6] = 1;
//sensors_reading_map[6] = 1;
}
void dhtP_reading() {
@@ -166,7 +126,7 @@ void dhtP_reading() {
if (dht.getStatus() != 0) {
MqttClient::publishStatus("dhtPerception", String(dht.getStatusString()));
} else {
value = dht.computePerception(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
//value = dht.computePerception(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
String final_line = perceptionStr(value);
jsonWriteStr(configLiveJson, "dhtPerception", final_line);
eventGen("dhtPerception", "");
@@ -183,7 +143,7 @@ void dhtC() {
String page_name = sCmd.next();
String page_number = sCmd.next();
createWidgetByType(widget_name, page_name, page_number, "anydata", "dhtComfort");
sensors_reading_map[7] = 1;
//sensors_reading_map[7] = 1;
}
void dhtC_reading() {
@@ -191,7 +151,7 @@ void dhtC_reading() {
if (dht.getStatus() != 0) {
MqttClient::publishStatus("dhtComfort", String(dht.getStatusString()));
} else {
dht.getComfortRatio(cf, jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
//dht.getComfortRatio(cf, jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
String final_line = comfortStr(cf);
jsonWriteStr(configLiveJson, "dhtComfort", final_line);
eventGen("dhtComfort", "");
@@ -276,7 +236,7 @@ void dhtD() {
String page_name = sCmd.next();
String page_number = sCmd.next();
createWidgetByType(widget_name, page_name, page_number, "anydata", "dhtDewpoint");
sensors_reading_map[8] = 1;
//sensors_reading_map[8] = 1;
}
void dhtD_reading() {
@@ -284,7 +244,7 @@ void dhtD_reading() {
if (dht.getStatus() != 0) {
MqttClient::publishStatus("dhtDewpoint", String(dht.getStatusString()));
} else {
value = dht.computeDewPoint(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
//value = dht.computeDewPoint(jsonReadStr(configLiveJson, dhtT_value_name).toFloat(), jsonReadStr(configLiveJson, dhtH_value_name).toFloat(), false);
jsonWriteInt(configLiveJson, "dhtDewpoint", value);
eventGen("dhtDewpoint", "");
MqttClient::publishStatus("dhtDewpoint", String(value));
@@ -304,7 +264,7 @@ void bmp280T() {
String page_name = sCmd.next();
String type = sCmd.next();
String page_number = sCmd.next();
bmp280T_value_name = value_name;
//bmp280T_value_name = value_name;
createWidgetByType(widget_name, page_name, page_number, type, value_name);
bmp.begin(hexStringToUint8(address));
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
@@ -313,7 +273,7 @@ void bmp280T() {
Adafruit_BMP280::FILTER_X16, /* Filtering. */
Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
//bmp_temp->printSensorDetails();
sensors_reading_map[9] = 1;
//sensors_reading_map[9] = 1;
}
void bmp280T_reading() {
@@ -321,10 +281,10 @@ void bmp280T_reading() {
sensors_event_t temp_event;
bmp_temp->getEvent(&temp_event);
value = temp_event.temperature;
jsonWriteStr(configLiveJson, bmp280T_value_name, String(value));
eventGen(bmp280T_value_name, "");
MqttClient::publishStatus(bmp280T_value_name, String(value));
Serial.println("[I] sensor '" + bmp280T_value_name + "' data: " + String(value));
//jsonWriteStr(configLiveJson, bmp280T_value_name, String(value));
//eventGen(bmp280T_value_name, "");
//MqttClient::publishStatus(bmp280T_value_name, String(value));
//Serial.println("[I] sensor '" + bmp280T_value_name + "' data: " + String(value));
}
//bmp280P press1 0x76 Давление#bmp280 Датчики any-data 2
@@ -335,7 +295,7 @@ void bmp280P() {
String page_name = sCmd.next();
String type = sCmd.next();
String page_number = sCmd.next();
bmp280P_value_name = value_name;
//bmp280P_value_name = value_name;
createWidgetByType(widget_name, page_name, page_number, type, value_name);
bmp.begin(hexStringToUint8(address));
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
@@ -344,7 +304,7 @@ void bmp280P() {
Adafruit_BMP280::FILTER_X16, /* Filtering. */
Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
//bmp_temp->printSensorDetails();
sensors_reading_map[10] = 1;
//sensors_reading_map[10] = 1;
}
void bmp280P_reading() {
@@ -353,10 +313,10 @@ void bmp280P_reading() {
bmp_pressure->getEvent(&pressure_event);
value = pressure_event.pressure;
value = value / 1.333224;
jsonWriteStr(configLiveJson, bmp280P_value_name, String(value));
eventGen(bmp280P_value_name, "");
MqttClient::publishStatus(bmp280P_value_name, String(value));
Serial.println("[I] sensor '" + bmp280P_value_name + "' data: " + String(value));
//jsonWriteStr(configLiveJson, bmp280P_value_name, String(value));
//eventGen(bmp280P_value_name, "");
//MqttClient::publishStatus(bmp280P_value_name, String(value));
//Serial.println("[I] sensor '" + bmp280P_value_name + "' data: " + String(value));
}
//=========================================================================================================================================
@@ -369,19 +329,19 @@ void bme280T() {
String page_name = sCmd.next();
String type = sCmd.next();
String page_number = sCmd.next();
bme280T_value_name = value_name;
createWidgetByType(widget_name, page_name, page_number, type, value_name);
bme.begin(hexStringToUint8(address));
sensors_reading_map[11] = 1;
//bme280T_value_name = value_name;
//createWidgetByType(widget_name, page_name, page_number, type, value_name);
//bme.begin(hexStringToUint8(address));
//sensors_reading_map[11] = 1;
}
void bme280T_reading() {
float value = 0;
value = bme.readTemperature();
jsonWriteStr(configLiveJson, bme280T_value_name, String(value));
eventGen(bme280T_value_name, "");
MqttClient::publishStatus(bme280T_value_name, String(value));
Serial.println("[I] sensor '" + bme280T_value_name + "' data: " + String(value));
//jsonWriteStr(configLiveJson, bme280T_value_name, String(value));
//eventGen(bme280T_value_name, "");
//MqttClient::publishStatus(bme280T_value_name, String(value));
//Serial.println("[I] sensor '" + bme280T_value_name + "' data: " + String(value));
}
//bme280P pres1 0x76 Давление#bmp280 Датчики any-data 1
@@ -392,20 +352,20 @@ void bme280P() {
String page_name = sCmd.next();
String type = sCmd.next();
String page_number = sCmd.next();
bme280P_value_name = value_name;
createWidgetByType(widget_name, page_name, page_number, type, value_name);
bme.begin(hexStringToUint8(address));
sensors_reading_map[12] = 1;
//bme280P_value_name = value_name;
//createWidgetByType(widget_name, page_name, page_number, type, value_name);
//bme.begin(hexStringToUint8(address));
//sensors_reading_map[12] = 1;
}
void bme280P_reading() {
float value = 0;
value = bme.readPressure();
value = value / 1.333224 / 100;
jsonWriteStr(configLiveJson, bme280P_value_name, String(value));
eventGen(bme280P_value_name, "");
MqttClient::publishStatus(bme280P_value_name, String(value));
Serial.println("[I] sensor '" + bme280P_value_name + "' data: " + String(value));
//jsonWriteStr(configLiveJson, bme280P_value_name, String(value));
//eventGen(bme280P_value_name, "");
//MqttClient::publishStatus(bme280P_value_name, String(value));
//Serial.println("[I] sensor '" + bme280P_value_name + "' data: " + String(value));
}
//bme280H hum1 0x76 Влажность#bmp280 Датчики any-data 1
@@ -416,19 +376,19 @@ void bme280H() {
String page_name = sCmd.next();
String type = sCmd.next();
String page_number = sCmd.next();
bme280H_value_name = value_name;
//bme280H_value_name = value_name;
createWidgetByType(widget_name, page_name, page_number, type, value_name);
bme.begin(hexStringToUint8(address));
sensors_reading_map[13] = 1;
//sensors_reading_map[13] = 1;
}
void bme280H_reading() {
float value = 0;
value = bme.readHumidity();
jsonWriteStr(configLiveJson, bme280H_value_name, String(value));
eventGen(bme280H_value_name, "");
MqttClient::publishStatus(bme280H_value_name, String(value));
Serial.println("[I] sensor '" + bme280H_value_name + "' data: " + String(value));
//jsonWriteStr(configLiveJson, bme280H_value_name, String(value));
//eventGen(bme280H_value_name, "");
//MqttClient::publishStatus(bme280H_value_name, String(value));
//Serial.println("[I] sensor '" + bme280H_value_name + "' data: " + String(value));
}
//bme280A altit1 0x76 Высота#bmp280 Датчики any-data 1
@@ -439,19 +399,19 @@ void bme280A() {
String page_name = sCmd.next();
String type = sCmd.next();
String page_number = sCmd.next();
bme280A_value_name = value_name;
//bme280A_value_name = value_name;
createWidgetByType(widget_name, page_name, page_number, type, value_name);
bme.begin(hexStringToUint8(address));
sensors_reading_map[14] = 1;
//sensors_reading_map[14] = 1;
}
void bme280A_reading() {
float value = bme.readAltitude(1013.25);
jsonWriteStr(configLiveJson, bme280A_value_name, String(value, 2));
//jsonWriteStr(configLiveJson, bme280A_value_name, String(value, 2));
eventGen(bme280A_value_name, "");
//eventGen(bme280A_value_name, "");
MqttClient::publishStatus(bme280A_value_name, String(value));
//MqttClient::publishStatus(bme280A_value_name, String(value));
Serial.println("[I] sensor '" + bme280A_value_name + "' data: " + String(value));
//Serial.println("[I] sensor '" + bme280A_value_name + "' data: " + String(value));
}

View File

@@ -1,4 +1,4 @@
#include "items/itemsGlobal.h"
#include "items/ItemsGlobal.h"
#include "items/ButtonInClass.h"
//==========================================Модуль физических кнопок========================================
//button-in switch1 toggle Кнопки Свет 1 pin[2] db[20]

View File

@@ -1,5 +1,6 @@
#include "items/itemsGlobal.h"
#include "items/ButtonOutClass.h"
#include "items/ItemsGlobal.h"
//==========================================Модуль кнопок===================================================
//button-out light toggle Кнопки Свет 1 pin[12] inv[1] st[1]
//==========================================================================================================
@@ -10,22 +11,13 @@ void buttonOut() {
String pin = myButtonOut.gpin();
String inv = myButtonOut.ginv();
sCmd.addCommand(key.c_str(), buttonOutSet);
jsonWriteStr(configOptionJson, key + "_pin", pin);
jsonWriteStr(configOptionJson, key + "_inv", inv);
myButtonOut.pinModeSet();
myButtonOut.init();
myButtonOut.pinStateSetDefault();
myButtonOut.pinStateSetInvDefault();
myButtonOut.clear();
}
void buttonOutSet() {
String key = sCmd.order();
String state = sCmd.next();
String pin = jsonReadStr(configOptionJson, key + "_pin");
String inv = jsonReadStr(configOptionJson, key + "_inv");
if (inv == "") {
myButtonOut.pinChange(key, pin, state, true);
} else {
myButtonOut.pinChange(key, pin, state, false);
}
myButtonOut.pinChange(key, state);
}

View File

@@ -1,4 +1,4 @@
#include "items/itemsGlobal.h"
#include "items/ItemsGlobal.h"
#include "items/InputClass.h"
//==========================================Модуль ввода цифровых значений==================================
//input-digit digit1 inputDigit Ввод Введите.цифру 4 st[60]

View File

@@ -1,4 +1,4 @@
#include "items/itemsGlobal.h"
#include "items/ItemsGlobal.h"
#include "items/InputClass.h"
//==========================================Модуль ввода времени============================================
//input-time time1 inputTime Ввод Введите.время 4 st[10-00-00]

View File

@@ -1,4 +1,4 @@
#include "items/itemsGlobal.h"
#include "items/ItemsGlobal.h"
#include "items/OutputTextClass.h"
//===============================================Модуль вывода текста============================================
//output-text;id;anydata;Вывод;Сигнализация;order;st[Обнаружено.движение]

View File

@@ -1,4 +1,4 @@
#include "items/itemsGlobal.h"
#include "items/ItemsGlobal.h"
#include "items/PwmOutClass.h"
//==========================================Модуль управления ШИМ===================================================
//pwm-out volume range Кнопки Свет 1 pin[12] st[500]

View File

@@ -1,4 +1,4 @@
#include "items/itemsGlobal.h"
#include "items/ItemsGlobal.h"
#include "items/SensorAnalogClass.h"
#ifdef ANALOG_ENABLED
//==============================================Модуль аналогового сенсора===========================================================================================

View File

@@ -0,0 +1,20 @@
#include "items/ItemsGlobal.h"
#include "items/SensorDallasClass.h"
//#ifdef SensorDallasEnabled
//=========================================Модуль ультрозвукового дальномера==================================================================
//dallas-temp;id;anydata;Сенсоры;Температура;order;pin;c[1]
//=========================================================================================================================================
SensorDallasClass mySensorDallas;
void dallasTemp() {
mySensorDallas.update();
String key = mySensorDallas.gkey();
sCmd.addCommand(key.c_str(), dallasReading);
mySensorDallas.SensorDallasInit();
mySensorDallas.clear();
}
void dallasReading() {
String key = sCmd.order();
mySensorDallas.SensorDallasRead(key);
}
//#endif

View File

@@ -1,6 +1,6 @@
#include "items/itemsGlobal.h"
#include "items/ItemsGlobal.h"
#include "items/SensorUltrasonicClass.h"
//#ifdef LEVEL_ENABLED
//#ifdef SensorUltrasonicEnabled
//=========================================Модуль ультрозвукового дальномера==================================================================
//ultrasonic-cm;id;anydata;Сенсоры;Расстояние;order;pin[12,13];map[1,100,1,100];c[1]
//=========================================================================================================================================
@@ -9,94 +9,13 @@ void ultrasonicCm() {
mySensorUltrasonic.update();
String key = mySensorUltrasonic.gkey();
String pin = mySensorUltrasonic.gpin();
String trig = selectFromMarkerToMarker(pin, ",", 0);
String echo = selectFromMarkerToMarker(pin, ",", 1);
sCmd.addCommand(key.c_str(), ultrasonicReading);
sensorReadingMap += key + ",";
jsonWriteStr(configOptionJson, key + "_trig", trig);
jsonWriteStr(configOptionJson, key + "_echo", echo);
jsonWriteStr(configOptionJson, key + "_map", mySensorUltrasonic.gmap());
jsonWriteStr(configOptionJson, key + "_с", mySensorUltrasonic.gc());
mySensorUltrasonic.init();
mySensorUltrasonic.clear();
}
void ultrasonicReading() {
String key = sCmd.order();
String trig = jsonReadStr(configOptionJson, key + "_trig");
String echo = jsonReadStr(configOptionJson, key + "_echo");
String pin = trig + "," + echo;
mySensorUltrasonic.SensorUltrasonicRead(key, pin);
mySensorUltrasonic.SensorUltrasonicRead(key);
}
//#endif
//void levelPr() {
// String value_name = sCmd.next();
// String trig = sCmd.next();
// String echo = sCmd.next();
// String widget_name = sCmd.next();
// String page_name = sCmd.next();
// String type = sCmd.next();
// String empty_level = sCmd.next();
// String full_level = sCmd.next();
// String page_number = sCmd.next();
// levelPr_value_name = value_name;
// jsonWriteStr(configOptionJson, "e_lev", empty_level);
// jsonWriteStr(configOptionJson, "f_lev", full_level);
// jsonWriteStr(configOptionJson, "trig", trig);
// jsonWriteStr(configOptionJson, "echo", echo);
// pinMode(trig.toInt(), OUTPUT);
// pinMode(echo.toInt(), INPUT);
// createWidgetByType(widget_name, page_name, page_number, type, value_name);
// sensors_reading_map[0] = 1;
//}
////ultrasonicCm cm 14 12 Дистанция,#см Датчики fillgauge 1
//void ultrasonicCm() {
// String value_name = sCmd.next();
// String trig = sCmd.next();
// String echo = sCmd.next();
// String widget_name = sCmd.next();
// String page_name = sCmd.next();
// String type = sCmd.next();
// String empty_level = sCmd.next();
// String full_level = sCmd.next();
// String page_number = sCmd.next();
// ultrasonicCm_value_name = value_name;
// jsonWriteStr(configOptionJson, "trig", trig);
// jsonWriteStr(configOptionJson, "echo", echo);
// pinMode(trig.toInt(), OUTPUT);
// pinMode(echo.toInt(), INPUT);
// createWidgetByType(widget_name, page_name, page_number, type, value_name);
// sensors_reading_map[0] = 1;
//}
//
//void ultrasonic_reading() {
// long duration_;
// int distance_cm;
// int level;
// static int counter;
// int trig = jsonReadInt(configOptionJson, "trig");
// int echo = jsonReadInt(configOptionJson, "echo");
// distance_cm = medianFilter.filtered(distance_cm); //отсечение промахов медианным фильтром
// counter++;
// if (counter > TANK_LEVEL_SAMPLES) {
// counter = 0;
// level = map(distance_cm,
// jsonReadInt(configOptionJson, "e_lev"),
// jsonReadInt(configOptionJson, "f_lev"), 0, 100);
//
// jsonWriteInt(configLiveJson, levelPr_value_name, level);
// eventGen(levelPr_value_name, "");
//
// MqttClient::publishStatus(levelPr_value_name, String(level));
//
// Serial.println("[I] sensor '" + levelPr_value_name + "' data: " + String(level));
//
// jsonWriteInt(configLiveJson, ultrasonicCm_value_name, distance_cm);
// eventGen(ultrasonicCm_value_name, "");
//
// MqttClient::publishStatus(ultrasonicCm_value_name, String(distance_cm));
//
// Serial.println("[I] sensor '" + ultrasonicCm_value_name + "' data: " + String(distance_cm));
// }
//}
//
//#endif

View File

@@ -1,15 +1,16 @@
#include <SSDP.h>
#include "Class/CallBackTest.h"
#include "Class/NotAsinc.h"
#include "Class/ScenarioClass.h"
#include "items/ButtonInClass.h"
#include "Cmd.h"
#include "Global.h"
#include "Init.h"
#include "ItemsList.h"
#include "Utils/Timings.h"
#include "Utils\WebUtils.h"
#include "items/ButtonInClass.h"
void not_async_actions();
@@ -72,9 +73,10 @@ void setup() {
pm.info("Broadcast UDP");
udpInit();
#endif
#ifdef SSDP
pm.info("Ssdp Init");
SsdpInit();
#endif
ts.add(
TEST, 1000 * 60, [&](void*) {