Global change

This commit is contained in:
Dmitry Borisenko
2020-05-02 12:20:30 +02:00
parent ac5b7e5775
commit a31c303c23
32 changed files with 983 additions and 783 deletions

View File

@@ -1,6 +1,90 @@
//===============================================================================================================================
//=========================================Модуль аналогового сенсора============================================================
void sensors_init() {
ts.add(SENSORS, 1000, [&](void*) {
static int counter;
counter++;
if (sensors_reading_map[0] == 1) level_reading();
if (counter > 10) {
counter = 0;
if (sensors_reading_map[1] == 1) analog_reading1();
if (sensors_reading_map[2] == 1) analog_reading2();
if (sensors_reading_map[3] == 1) dallas_reading();
if (sensors_reading_map[4] == 1) dhtT_reading();
if (sensors_reading_map[5] == 1) dhtH_reading();
if (sensors_reading_map[6] == 1) dhtP_reading();
if (sensors_reading_map[7] == 1) dhtC_reading();
if (sensors_reading_map[8] == 1) dhtD_reading();
if (sensors_reading_map[9] == 1) bmp280T_rading();
if (sensors_reading_map[10] == 1) bmp280P_reading();
if (sensors_reading_map[11] == 1) bme280T_reading();
}
}, nullptr, true);
}
//=========================================================================================================================================
//=========================================Модуль измерения уровня в баке==================================================================
//level L 14 12 Вода#в#баке,#% Датчики fill-gauge 125 20 1
void level() {
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();
level_value_name = value_name;
jsonWriteStr(optionJson, "e_lev", empty_level);
jsonWriteStr(optionJson, "f_lev", full_level);
jsonWriteStr(optionJson, "trig", trig);
jsonWriteStr(optionJson, "echo", echo);
pinMode(trig.toInt(), OUTPUT);
pinMode(echo.toInt(), INPUT);
choose_widget_and_create(widget_name, page_name, page_number, type, value_name);
sensors_reading_map[0] = 1;
}
void level_reading() {
long duration_;
int distance_cm;
int level;
static int counter;
int trig = jsonReadtoInt(optionJson, "trig");
int echo = jsonReadtoInt(optionJson, "echo");
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
duration_ = pulseIn(echo, HIGH, 30000); // 3000 µs = 50cm // 30000 µs = 5 m
distance_cm = duration_ / 29 / 2;
distance_cm = medianFilter.filtered(distance_cm);//отсечение промахов медианным фильтром
counter++;
if (counter > tank_level_times_to_send) {
counter = 0;
level = map(distance_cm,
jsonReadtoInt(optionJson, "e_lev"),
jsonReadtoInt(optionJson, "f_lev"), 0, 100);
jsonWriteInt(configJson, level_value_name, level);
eventGen (level_value_name, "");
sendSTATUS(level_value_name, String(level));
Serial.println("[i] sensor '" + level_value_name + "' data: " + String(level));
}
}
//=========================================================================================================================================
//=========================================Модуль аналогового сенсора======================================================================
//analog adc 0 Аналоговый#вход,#% Датчики any-data 1 1023 1 100 1
void analog() {
String value_name = sCmd.next();
String pin = sCmd.next();
String widget_name = sCmd.next();
String page_name = sCmd.next();
@@ -10,90 +94,65 @@ void analog() {
String analog_start_out = sCmd.next();
String analog_end_out = sCmd.next();
String page_number = sCmd.next();
jsonWriteStr(optionJson, "analog_start", analog_start);
jsonWriteStr(optionJson, "analog_end", analog_end);
jsonWriteStr(optionJson, "analog_start_out", analog_start_out);
jsonWriteStr(optionJson, "analog_end_out", analog_end_out);
choose_widget_and_create(widget_name, page_name, page_number, type, "analog");
ts.add(ANALOG_, analog_update_int, [&](void*) {
static int analog_old;
analog_value_names_list += value_name + ",";
enter_to_analog_counter++;
jsonWriteStr(optionJson, value_name + "_st", analog_start);
jsonWriteStr(optionJson, value_name + "_end", analog_end);
jsonWriteStr(optionJson, value_name + "_st_out", analog_start_out);
jsonWriteStr(optionJson, value_name + "_end_out", analog_end_out);
choose_widget_and_create(widget_name, page_name, page_number, type, value_name);
if (enter_to_analog_counter == 1) {
sensors_reading_map[1] = 1;
}
if (enter_to_analog_counter == 2) {
sensors_reading_map[2] = 1;
}
}
void analog_reading1() {
String value_name = selectFromMarkerToMarker(analog_value_names_list, ",", 0);
#ifdef ESP32
//int pin_int = pin.toInt();
int analog_in = analogRead(34);
int analog_in = analogRead(34);
#endif
#ifdef ESP8266
int analog_in = analogRead(A0);
int analog_in = analogRead(A0);
#endif
jsonWriteInt(configJson, "analog_in", analog_in);
int analog = map(analog_in,
jsonReadtoInt(optionJson, "analog_start") ,
jsonReadtoInt(optionJson, "analog_end"),
jsonReadtoInt(optionJson, "analog_start_out"),
jsonReadtoInt(optionJson, "analog_end_out"));
jsonWriteInt(configJson, "analog", analog);
// if (analog_old != analog) {
eventGen ("analog", "");
sendSTATUS("analog", String(analog));
if (client.connected()) {
Serial.println("[i] sensor 'analog' send date " + String(analog));
}
// }
analog_old = analog;
}, nullptr, true);
int analog = map(analog_in,
jsonReadtoInt(optionJson, value_name + "_st") ,
jsonReadtoInt(optionJson, value_name + "_end"),
jsonReadtoInt(optionJson, value_name + "_st_out"),
jsonReadtoInt(optionJson, value_name + "_end_out"));
jsonWriteInt(configJson, value_name, analog);
eventGen (value_name, "");
sendSTATUS(value_name, String(analog));
Serial.println("[i] sensor '" + value_name + "' data: " + String(analog));
}
//===================================================================================================================================
//=========================================Модуль измерения уровня в баке============================================================
void level() {
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();
jsonWriteStr(optionJson, "empty_level", empty_level);
jsonWriteStr(optionJson, "full_level", full_level);
pinMode(14, OUTPUT);
pinMode(12, INPUT);
choose_widget_and_create(widget_name, page_name, page_number, type, "level");
ts.add(LEVEL, tank_level_shooting_interval, [&](void*) {
long duration_;
int distance_cm;
int level;
static int level_old; //переменная static сохраняет свое значение между вызовами функции
static int counter;
digitalWrite(14, LOW);
delayMicroseconds(2);
digitalWrite(14, HIGH);
delayMicroseconds(10);
digitalWrite(14, LOW);
duration_ = pulseIn(12, HIGH, 30000); // 3000 µs = 50cm // 30000 µs = 5 m
distance_cm = duration_ / 29 / 2;
distance_cm = medianFilter.filtered(distance_cm);//отсечение промахов медианным фильтром
counter++;
if (counter > tank_level_times_to_send) {
counter = 0;
jsonWriteInt(configJson, "level_in", distance_cm);
level = map(distance_cm,
jsonReadtoInt(optionJson, "empty_level"),
jsonReadtoInt(optionJson, "full_level"), 0, 100);
jsonWriteInt(configJson, "level", level);
//if (level_old != level) {
eventGen ("level", "");
sendSTATUS("level", String(level));
if (client.connected()) {
Serial.println("[i] sensor tank 'level' send date " + String(level));
}
//}
level_old = level;
}
}, nullptr, true);
void analog_reading2() {
String value_name = selectFromMarkerToMarker(analog_value_names_list, ",", 1);
#ifdef ESP32
int analog_in = analogRead(35);
#endif
#ifdef ESP8266
int analog_in = analogRead(A0);
#endif
int analog = map(analog_in,
jsonReadtoInt(optionJson, value_name + "_st") ,
jsonReadtoInt(optionJson, value_name + "_end"),
jsonReadtoInt(optionJson, value_name + "_st_out"),
jsonReadtoInt(optionJson, value_name + "_end_out"));
jsonWriteInt(configJson, value_name, analog);
eventGen (value_name, "");
sendSTATUS(value_name, String(analog));
Serial.println("[i] sensor '" + value_name + "' data: " + String(analog));
}
//==========================================================================================================================================
//=========================================Модуль температурного сенсора ds18b20============================================================
//=========================================================================================================================================
//=========================================Модуль температурного сенсора ds18b20===========================================================
void dallas() {
String value_name = sCmd.next();
String pin = sCmd.next();
String address = sCmd.next();
String widget_name = sCmd.next();
String page_name = sCmd.next();
String type = sCmd.next();
@@ -103,125 +162,120 @@ void dallas() {
sensors.begin();
sensors.setResolution(12);
choose_widget_and_create(widget_name, page_name, page_number, type, "dallas");
ts.add(DALLAS, temp_update_int, [&](void*) {
float temp = 0;
static float temp_old;
sensors.requestTemperatures();
temp = sensors.getTempCByIndex(0);
jsonWriteStr(configJson, "dallas", String(temp));
//if (temp_old != temp) {
eventGen ("dallas", "");
sendSTATUS("dallas", String(temp));
if (client.connected()) {
Serial.println("[i] sensor 'dallas' send date " + String(temp));
}
//}
temp_old = temp;
}, nullptr, true);
sensors_reading_map[3] = 1;
}
void dallas_reading() {
float temp = 0;
sensors.requestTemperatures();
temp = sensors.getTempCByIndex(0);
jsonWriteStr(configJson, "dallas", String(temp));
eventGen ("dallas", "");
sendSTATUS("dallas", String(temp));
Serial.println("[i] sensor 'dallas' send date " + String(temp));
}
//======================================================================================================================
//=========================================Модуль сенсоров DHT==========================================================
//=========================================================================================================================================
//=========================================Модуль сенсоров DHT=============================================================================
//dhtT t 2 dht11 Температура#DHT,#t°C Датчики any-data 1
void dhtT() {
String sensor_type = sCmd.next();
String value_name = sCmd.next();
String pin = sCmd.next();
String sensor_type = sCmd.next();
String widget_name = sCmd.next();
String page_name = sCmd.next();
String type = sCmd.next();
String page_number = sCmd.next();
if (sensor_type == "DHT11") {
dhtT_value_name = value_name;
if (sensor_type == "dht11") {
dht.setup(pin.toInt(), DHTesp::DHT11);
}
if (sensor_type == "DHT22") {
if (sensor_type == "dht22") {
dht.setup(pin.toInt(), DHTesp::DHT22);
}
choose_widget_and_create(widget_name, page_name, page_number, type, "dhtT");
ts.add(DHTT, dhtT_update_int, [&](void*) { //dht.getMinimumSamplingPeriod()
float value = 0;
static float value_old;
static int counter;
if (dht.getStatus() != 0 && counter < 5) {
sendSTATUS("dhtT", String(dht.getStatusString()));
counter++;
} else {
counter = 0;
value = dht.getTemperature();
//if (value_old != value) {
if (String(value) != "nan") {
eventGen ("dhtT", "");
jsonWriteStr(configJson, "dhtT", String(value));
sendSTATUS("dhtT", String(value));
if (client.connected()) {
Serial.println("[i] sensor 'dhtT' send date " + String(value));
}
//}
}
value_old = value;
}
}, nullptr, true);
choose_widget_and_create(widget_name, page_name, page_number, type, value_name);
sensors_reading_map[4] = 1;
}
void dhtT_reading() {
float value = 0;
static int counter;
if (dht.getStatus() != 0 && counter < 5) {
sendSTATUS(dhtT_value_name, String(dht.getStatusString()));
counter++;
} else {
counter = 0;
value = dht.getTemperature();
if (String(value) != "nan") {
eventGen (dhtT_value_name, "");
jsonWriteStr(configJson, dhtT_value_name, String(value));
sendSTATUS(dhtT_value_name, String(value));
Serial.println("[i] sensor '" + dhtT_value_name + "' data: " + String(value));
}
}
}
//dhtH h 2 dht11 Влажность#DHT,#t°C Датчики any-data 1
void dhtH() {
String sensor_type = sCmd.next();
String value_name = sCmd.next();
String pin = sCmd.next();
String sensor_type = sCmd.next();
String widget_name = sCmd.next();
String page_name = sCmd.next();
String type = sCmd.next();
String page_number = sCmd.next();
if (sensor_type == "DHT11") {
dhtH_value_name = value_name;
if (sensor_type == "dht11") {
dht.setup(pin.toInt(), DHTesp::DHT11);
}
if (sensor_type == "DHT22") {
if (sensor_type == "dht22") {
dht.setup(pin.toInt(), DHTesp::DHT22);
}
choose_widget_and_create(widget_name, page_name, page_number, type, "dhtH");
ts.add(DHTH, dhtH_update_int , [&](void*) { //dht.getMinimumSamplingPeriod()
int value = 0;
static int value_old;
static int counter;
if (dht.getStatus() != 0 && counter < 5) {
sendSTATUS("dhtH", String(dht.getStatusString()));
counter++;
} else {
counter = 0;
value = dht.getHumidity();
if (String(value) != "nan" || value <= 100 || value >= 0) {
//if (value_old != value) {
eventGen ("dhtH", "");
jsonWriteStr(configJson, "dhtH", String(value));
sendSTATUS("dhtH", String(value));
if (client.connected()) {
Serial.println("[i] sensor 'dhtH' send date " + String(value));
}
//}
}
value_old = value;
}
}, nullptr, true);
choose_widget_and_create(widget_name, page_name, page_number, type, value_name);
sensors_reading_map[5] = 1;
}
void dhtPerception() {
void dhtH_reading() {
float value = 0;
static int counter;
if (dht.getStatus() != 0 && counter < 5) {
sendSTATUS(dhtH_value_name, String(dht.getStatusString()));
counter++;
} else {
counter = 0;
value = dht.getHumidity();
if (String(value) != "nan") {
eventGen (dhtH_value_name, "");
jsonWriteStr(configJson, dhtH_value_name, String(value));
sendSTATUS(dhtH_value_name, String(value));
Serial.println("[i] sensor '" + dhtH_value_name + "' data: " + String(value));
}
}
}
//dhtPerception Восприятие: Датчики 4
void dhtP() {
String widget_name = sCmd.next();
String page_name = sCmd.next();
String page_number = sCmd.next();
choose_widget_and_create(widget_name, page_name, page_number, "any-data", "dhtPerception");
ts.add(DHTP, dht_calculation_update_int, [&](void*) {
byte value;
if (dht.getStatus() != 0) {
sendSTATUS("dhtPerception", String(dht.getStatusString()));
} else {
value = dht.computePerception(jsonRead(configJson, "dhtT").toFloat(), jsonRead(configJson, "dhtH").toFloat(), false);
String final_line = perception(value);
jsonWriteStr(configJson, "dhtPerception", final_line);
eventGen ("dhtPerception", "");
sendSTATUS("dhtPerception", final_line);
if (client.connected()) {
Serial.println("[i] sensor 'dhtPerception' send date " + final_line);
}
sensors_reading_map[6] = 1;
}
void dhtP_reading() {
byte value;
if (dht.getStatus() != 0) {
sendSTATUS("dhtPerception", String(dht.getStatusString()));
} else {
value = dht.computePerception(jsonRead(configJson, dhtT_value_name).toFloat(), jsonRead(configJson, dhtH_value_name).toFloat(), false);
String final_line = perception(value);
jsonWriteStr(configJson, "dhtPerception", final_line);
eventGen ("dhtPerception", "");
sendSTATUS("dhtPerception", final_line);
if (client_mqtt.connected()) {
Serial.println("[i] sensor 'dhtPerception' data: " + final_line);
}
}, nullptr, true);
}
}
String perception(byte value) {
@@ -235,89 +289,183 @@ String perception(byte value) {
if (value == 7) return "Сильно неудобно, полный звиздец";
}
void dhtComfort() {
//dhtComfort Степень#комфорта: Датчики 3
void dhtC() {
String widget_name = sCmd.next();
String page_name = sCmd.next();
String page_number = sCmd.next();
choose_widget_and_create(widget_name, page_name, page_number, "any-data", "dhtComfort");
ts.add(DHTC, dht_calculation_update_int, [&](void*) {
float value;
ComfortState cf;
if (dht.getStatus() != 0) {
sendSTATUS("dhtComfort", String(dht.getStatusString()));
} else {
value = dht.getComfortRatio(cf, jsonRead(configJson, "dhtT").toFloat(), jsonRead(configJson, "dhtH").toFloat(), false);
String comfortStatus;
switch (cf) {
case Comfort_OK:
comfortStatus = "Отлично";
break;
case Comfort_TooHot:
comfortStatus = "Очень жарко";
break;
case Comfort_TooCold:
comfortStatus = "Очень холодно";
break;
case Comfort_TooDry:
comfortStatus = "Очень сухо";
break;
case Comfort_TooHumid:
comfortStatus = "Очень влажно";
break;
case Comfort_HotAndHumid:
comfortStatus = "Жарко и влажно";
break;
case Comfort_HotAndDry:
comfortStatus = "Жарко и сухо";
break;
case Comfort_ColdAndHumid:
comfortStatus = "Холодно и влажно";
break;
case Comfort_ColdAndDry:
comfortStatus = "Холодно и сухо";
break;
default:
comfortStatus = "Неизвестно";
break;
};
String final_line = comfortStatus;
jsonWriteStr(configJson, "dhtComfort", final_line);
eventGen ("dhtComfort", "");
sendSTATUS("dhtComfort", final_line);
if (client.connected()) {
Serial.println("[i] sensor 'dhtComfort' send date " + final_line);
}
}
}, nullptr, true);
sensors_reading_map[7] = 1;
}
void dhtDewpoint() {
void dhtC_reading() {
float value;
ComfortState cf;
if (dht.getStatus() != 0) {
sendSTATUS("dhtComfort", String(dht.getStatusString()));
} else {
value = dht.getComfortRatio(cf, jsonRead(configJson, dhtT_value_name).toFloat(), jsonRead(configJson, dhtH_value_name).toFloat(), false);
String final_line = get_comfort_status(cf);
jsonWriteStr(configJson, "dhtComfort", final_line);
eventGen ("dhtComfort", "");
sendSTATUS("dhtComfort", final_line);
Serial.println("[i] sensor 'dhtComfort' send date " + final_line);
}
}
String get_comfort_status(ComfortState cf) {
String comfortStatus;
switch (cf) {
case Comfort_OK:
comfortStatus = "Отлично";
break;
case Comfort_TooHot:
comfortStatus = "Очень жарко";
break;
case Comfort_TooCold:
comfortStatus = "Очень холодно";
break;
case Comfort_TooDry:
comfortStatus = "Очень сухо";
break;
case Comfort_TooHumid:
comfortStatus = "Очень влажно";
break;
case Comfort_HotAndHumid:
comfortStatus = "Жарко и влажно";
break;
case Comfort_HotAndDry:
comfortStatus = "Жарко и сухо";
break;
case Comfort_ColdAndHumid:
comfortStatus = "Холодно и влажно";
break;
case Comfort_ColdAndDry:
comfortStatus = "Холодно и сухо";
break;
default:
comfortStatus = "Неизвестно";
break;
};
return comfortStatus;
}
//dhtDewpoint Точка#росы: Датчики 5
void dhtD() {
String widget_name = sCmd.next();
String page_name = sCmd.next();
String page_number = sCmd.next();
choose_widget_and_create(widget_name, page_name, page_number, "any-data", "dhtDewpoint");
ts.add(DHTD, dht_calculation_update_int, [&](void*) {
float value;
if (dht.getStatus() != 0) {
sendSTATUS("dhtDewpoint", String(dht.getStatusString()));
} else {
value = dht.computeDewPoint(jsonRead(configJson, "dhtT").toFloat(), jsonRead(configJson, "dhtH").toFloat(), false);
jsonWriteInt(configJson, "dhtDewpoint", value);
eventGen ("dhtDewpoint", "");
sendSTATUS("dhtDewpoint", String(value));
if (client.connected()) {
Serial.println("[i] sensor 'dhtDewpoint' send date " + String(value));
}
}
}, nullptr, true);
sensors_reading_map[8] = 1;
}
void choose_widget_and_create(String widget_name, String page_name, String page_number, String type, String topik) {
if (type == "any-data") createWidget (widget_name, page_name, page_number, "widgets/widget.anyData.json", topik);
if (type == "progress-line") createWidget (widget_name, page_name, page_number, "widgets/widget.progLine.json", topik);
if (type == "progress-round") createWidget (widget_name, page_name, page_number, "widgets/widget.progRound.json", topik);
if (type == "fill-gauge") createWidget (widget_name, page_name, page_number, "widgets/widget.fillGauge.json", topik);
void dhtD_reading() {
float value;
if (dht.getStatus() != 0) {
sendSTATUS("dhtDewpoint", String(dht.getStatusString()));
} else {
value = dht.computeDewPoint(jsonRead(configJson, dhtT_value_name).toFloat(), jsonRead(configJson, dhtH_value_name).toFloat(), false);
jsonWriteInt(configJson, "dhtDewpoint", value);
eventGen ("dhtDewpoint", "");
sendSTATUS("dhtDewpoint", String(value));
Serial.println("[i] sensor 'dhtDewpoint' data: " + String(value));
}
}
//=========================================================================================================================================
//=========================================Модуль сенсоров bmp280==========================================================================
//bmp280T temp1 0x76 Температура#bmp280 Датчики any-data 1
void bmp280T() {
String value_name = sCmd.next();
String address = sCmd.next();
String widget_name = sCmd.next();
String page_name = sCmd.next();
String type = sCmd.next();
String page_number = sCmd.next();
bmp280T_value_name = value_name;
choose_widget_and_create(widget_name, page_name, page_number, type, value_name);
bmp.begin(hexStringToUint8(address));
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */
Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */
Adafruit_BMP280::FILTER_X16, /* Filtering. */
Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
//bmp_temp->printSensorDetails();
sensors_reading_map[9] = 1;
}
void bmp280T_rading() {
float value = 0;
sensors_event_t temp_event, pressure_event;
bmp_temp->getEvent(&temp_event);
value = temp_event.temperature;
jsonWriteStr(configJson, bmp280T_value_name, String(value));
eventGen(bmp280T_value_name, "");
sendSTATUS(bmp280T_value_name, String(value));
Serial.println("[i] sensor '" + bmp280T_value_name + "' data: " + String(value));
}
//bmp280P press1 0x76 Давление#bmp280 Датчики any-data 2
void bmp280P() {
String value_name = sCmd.next();
String address = sCmd.next();
String widget_name = sCmd.next();
String page_name = sCmd.next();
String type = sCmd.next();
String page_number = sCmd.next();
bmp280P_value_name = value_name;
choose_widget_and_create(widget_name, page_name, page_number, type, value_name);
bmp.begin(hexStringToUint8(address));
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */
Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */
Adafruit_BMP280::FILTER_X16, /* Filtering. */
Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
//bmp_temp->printSensorDetails();
sensors_reading_map[10] = 1;
}
void bmp280P_reading() {
float value = 0;
sensors_event_t temp_event, pressure_event;
bmp_pressure->getEvent(&pressure_event);
value = pressure_event.pressure;
value = value / 1.333224;
jsonWriteStr(configJson, bmp280P_value_name, String(value));
eventGen(bmp280P_value_name, "");
sendSTATUS(bmp280P_value_name, String(value));
Serial.println("[i] sensor '" + bmp280P_value_name + "' data: " + String(value));
}
//=========================================================================================================================================
//=============================================Модуль сенсоров bme280======================================================================
//bme280T temp1 0x76 Температура#bmp280 Датчики any-data 1
void bme280T() {
String value_name = sCmd.next();
String address = sCmd.next();
String widget_name = sCmd.next();
String page_name = sCmd.next();
String type = sCmd.next();
String page_number = sCmd.next();
bme280T_value_name = value_name;
choose_widget_and_create(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(configJson, bme280T_value_name, String(value));
eventGen(bme280T_value_name, "");
sendSTATUS(bme280T_value_name, String(value));
Serial.println("[i] sensor '" + bme280T_value_name + "' data: " + String(value));
}
//bme.readPressure() / 100.0F
//#define SEALEVELPRESSURE_HPA (1013.25)
//bme.readAltitude(SEALEVELPRESSURE_HPA)
//bme.readHumidity()