mirror of https://github.com/arendst/Tasmota.git
6.5.0.1 Change GUI data collection
6.5.0.1 20190319 * Change Web GUI sensor data collection
This commit is contained in:
parent
dfc67332cd
commit
b7f89c0a8c
|
@ -1,4 +1,7 @@
|
|||
/* 6.5.0 20190319
|
||||
/* 6.5.0.1 20190319
|
||||
* Change Web GUI sensor data collection
|
||||
*
|
||||
* 6.5.0 20190319
|
||||
* Remove commands SetOption14 and SetOption63 as it has been superseded by command Interlock
|
||||
* Remove command SetOption35 0-255 for mDNS start-up delay (#4793)
|
||||
* Remove support for MQTT_LIBRARY_TYPE, MQTT_ARDUINOMQTT and MQTT_TASMOTAMQTT (#5474)
|
||||
|
|
|
@ -561,19 +561,19 @@ const char kOptionBlinkOff[] PROGMEM = "BLINKOFF|" D_BLINKOFF ;
|
|||
|
||||
// xdrv_02_webserver.ino
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_SNS_TEMP[] PROGMEM = "%s{s}%s " D_TEMPERATURE "{m}%s°%c{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_HUM[] PROGMEM = "%s{s}%s " D_HUMIDITY "{m}%s%%{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_PRESSURE[] PROGMEM = "%s{s}%s " D_PRESSURE "{m}%s %s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_SEAPRESSURE[] PROGMEM = "%s{s}%s " D_PRESSUREATSEALEVEL "{m}%s %s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_ANALOG[] PROGMEM = "%s{s}%s " D_ANALOG_INPUT "%d{m}%d{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_ILLUMINANCE[] PROGMEM = "%s{s}%s " D_ILLUMINANCE "{m}%d " D_UNIT_LUX "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_TEMP[] PROGMEM = "{s}%s " D_TEMPERATURE "{m}%s°%c{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_HUM[] PROGMEM = "{s}%s " D_HUMIDITY "{m}%s%%{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_PRESSURE[] PROGMEM = "{s}%s " D_PRESSURE "{m}%s %s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_SEAPRESSURE[] PROGMEM = "{s}%s " D_PRESSUREATSEALEVEL "{m}%s %s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_ANALOG[] PROGMEM = "{s}%s " D_ANALOG_INPUT "%d{m}%d{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_ILLUMINANCE[] PROGMEM = "{s}%s " D_ILLUMINANCE "{m}%d " D_UNIT_LUX "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
|
||||
#if defined(USE_MHZ19) || defined(USE_SENSEAIR) || defined(USE_AZ7798) || defined(USE_SCD30)
|
||||
const char HTTP_SNS_CO2[] PROGMEM = "%s{s}%s " D_CO2 "{m}%d " D_UNIT_PARTS_PER_MILLION "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_CO2[] PROGMEM = "{s}%s " D_CO2 "{m}%d " D_UNIT_PARTS_PER_MILLION "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
#endif // USE_MHZ19
|
||||
|
||||
#if defined(USE_SCD30)
|
||||
const char HTTP_SNS_CO2EAVG[] PROGMEM = "%s{s}%s " D_ECO2 "{m}%d " D_UNIT_PARTS_PER_MILLION "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_CO2EAVG[] PROGMEM = "{s}%s " D_ECO2 "{m}%d " D_UNIT_PARTS_PER_MILLION "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
#endif // USE_SCD30
|
||||
|
||||
const char S_MAIN_MENU[] PROGMEM = D_MAIN_MENU;
|
||||
|
|
|
@ -252,7 +252,7 @@ enum LightSchemes {LS_POWER, LS_WAKEUP, LS_CYCLEUP, LS_CYCLEDN, LS_RANDOM, LS_MA
|
|||
|
||||
enum XsnsFunctions {FUNC_SETTINGS_OVERRIDE, FUNC_MODULE_INIT, FUNC_PRE_INIT, FUNC_INIT,
|
||||
FUNC_LOOP, FUNC_EVERY_50_MSECOND, FUNC_EVERY_100_MSECOND, FUNC_EVERY_200_MSECOND, FUNC_EVERY_250_MSECOND, FUNC_EVERY_SECOND,
|
||||
FUNC_PREP_BEFORE_TELEPERIOD, FUNC_JSON_APPEND, FUNC_WEB_APPEND, FUNC_SAVE_BEFORE_RESTART, FUNC_COMMAND, FUNC_COMMAND_SENSOR, FUNC_COMMAND_DRIVER,
|
||||
FUNC_PREP_BEFORE_TELEPERIOD, FUNC_JSON_APPEND, FUNC_WEB_SENSOR, FUNC_SAVE_BEFORE_RESTART, FUNC_COMMAND, FUNC_COMMAND_SENSOR, FUNC_COMMAND_DRIVER,
|
||||
FUNC_MQTT_SUBSCRIBE, FUNC_MQTT_INIT, FUNC_MQTT_DATA,
|
||||
FUNC_SET_POWER, FUNC_SET_DEVICE_POWER, FUNC_SHOW_SENSOR,
|
||||
FUNC_RULES_PROCESS, FUNC_SERIAL, FUNC_FREE_MEM, FUNC_BUTTON_PRESSED,
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
#ifndef _SONOFF_VERSION_H_
|
||||
#define _SONOFF_VERSION_H_
|
||||
|
||||
#define VERSION 0x06050000
|
||||
#define VERSION 0x06050001
|
||||
|
||||
#define D_PROGRAMNAME "Sonoff-Tasmota"
|
||||
#define D_AUTHOR "Theo Arends"
|
||||
|
|
|
@ -629,13 +629,9 @@ void WSContentFlush()
|
|||
}
|
||||
}
|
||||
|
||||
void WSContentSend_P(const char* formatP, ...) // Content send snprintf_P char data
|
||||
void _WSContentSendBuffer(void)
|
||||
{
|
||||
// This uses char strings. Be aware of sending %% if % is needed
|
||||
va_list arg;
|
||||
va_start(arg, formatP);
|
||||
int len = vsnprintf_P(mqtt_data, sizeof(mqtt_data), formatP, arg);
|
||||
va_end(arg);
|
||||
int len = strlen(mqtt_data);
|
||||
|
||||
if (0 == len) { // No content
|
||||
return;
|
||||
|
@ -656,6 +652,36 @@ void WSContentSend_P(const char* formatP, ...) // Content send snprintf_P ch
|
|||
}
|
||||
}
|
||||
|
||||
void WSContentSend_P(const char* formatP, ...) // Content send snprintf_P char data
|
||||
{
|
||||
// This uses char strings. Be aware of sending %% if % is needed
|
||||
va_list arg;
|
||||
va_start(arg, formatP);
|
||||
vsnprintf_P(mqtt_data, sizeof(mqtt_data), formatP, arg);
|
||||
va_end(arg);
|
||||
|
||||
_WSContentSendBuffer();
|
||||
}
|
||||
|
||||
void WSContentSend_PD(const char* formatP, ...) // Content send snprintf_P char data checked for decimal separator
|
||||
{
|
||||
// This uses char strings. Be aware of sending %% if % is needed
|
||||
va_list arg;
|
||||
va_start(arg, formatP);
|
||||
int len = vsnprintf_P(mqtt_data, sizeof(mqtt_data), formatP, arg);
|
||||
va_end(arg);
|
||||
|
||||
if (D_DECIMAL_SEPARATOR[0] != '.') {
|
||||
for (uint16_t i = 0; i < strlen(mqtt_data); i++) {
|
||||
if ('.' == mqtt_data[i]) {
|
||||
mqtt_data[i] = D_DECIMAL_SEPARATOR[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_WSContentSendBuffer();
|
||||
}
|
||||
|
||||
void WSContentStart_P(const char* title, bool auth)
|
||||
{
|
||||
if (auth && (Settings.web_password[0] != 0) && !WebServer->authenticate(WEB_USERNAME, Settings.web_password)) {
|
||||
|
@ -940,20 +966,11 @@ bool HandleRootStatusRefresh(void)
|
|||
ExecuteWebCommand(svalue, SRC_WEBGUI);
|
||||
}
|
||||
|
||||
mqtt_data[0] = '\0';
|
||||
XsnsCall(FUNC_WEB_APPEND);
|
||||
if (D_DECIMAL_SEPARATOR[0] != '.') {
|
||||
for (uint16_t i = 0; i < strlen(mqtt_data); i++) {
|
||||
if ('.' == mqtt_data[i]) {
|
||||
mqtt_data[i] = D_DECIMAL_SEPARATOR[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
char stemp[strlen(mqtt_data) +1];
|
||||
memcpy(stemp, mqtt_data, sizeof(stemp));
|
||||
|
||||
WSContentBegin(200, CT_HTML);
|
||||
WSContentSend_P(PSTR("{t}%s</table>"), stemp);
|
||||
WSContentSend_P(PSTR("{t}"));
|
||||
XsnsCall(FUNC_WEB_SENSOR);
|
||||
WSContentSend_P(PSTR("</table>"));
|
||||
|
||||
if (devices_present) {
|
||||
WSContentSend_P(PSTR("{t}<tr>"));
|
||||
uint8_t fsize = (devices_present < 5) ? 70 - (devices_present * 8) : 32;
|
||||
|
|
|
@ -548,20 +548,20 @@ void EnergySnsInit(void)
|
|||
}
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_ENERGY_SNS1[] PROGMEM = "%s"
|
||||
const char HTTP_ENERGY_SNS1[] PROGMEM =
|
||||
"{s}" D_VOLTAGE "{m}%s " D_UNIT_VOLT "{e}"
|
||||
"{s}" D_CURRENT "{m}%s " D_UNIT_AMPERE "{e}"
|
||||
"{s}" D_POWERUSAGE "{m}%s " D_UNIT_WATT "{e}";
|
||||
|
||||
const char HTTP_ENERGY_SNS2[] PROGMEM = "%s"
|
||||
const char HTTP_ENERGY_SNS2[] PROGMEM =
|
||||
"{s}" D_POWERUSAGE_APPARENT "{m}%s " D_UNIT_VA "{e}"
|
||||
"{s}" D_POWERUSAGE_REACTIVE "{m}%s " D_UNIT_VAR "{e}"
|
||||
"{s}" D_POWER_FACTOR "{m}%s{e}";
|
||||
|
||||
const char HTTP_ENERGY_SNS3[] PROGMEM = "%s"
|
||||
const char HTTP_ENERGY_SNS3[] PROGMEM =
|
||||
"{s}" D_FREQUENCY "{m}%s " D_UNIT_HERTZ "{e}";
|
||||
|
||||
const char HTTP_ENERGY_SNS4[] PROGMEM = "%s"
|
||||
const char HTTP_ENERGY_SNS4[] PROGMEM =
|
||||
"{s}" D_ENERGY_TODAY "{m}%s " D_UNIT_KILOWATTHOUR "{e}"
|
||||
"{s}" D_ENERGY_YESTERDAY "{m}%s " D_UNIT_KILOWATTHOUR "{e}"
|
||||
"{s}" D_ENERGY_TOTAL "{m}%s " D_UNIT_KILOWATTHOUR "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
|
@ -666,12 +666,12 @@ void EnergyShow(bool json)
|
|||
#endif // USE_KNX
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_ENERGY_SNS1, mqtt_data, voltage_chr, current_chr, active_power_chr);
|
||||
WSContentSend_PD(HTTP_ENERGY_SNS1, voltage_chr, current_chr, active_power_chr);
|
||||
if (!energy_type_dc) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_ENERGY_SNS2, mqtt_data, apparent_power_chr, reactive_power_chr, power_factor_chr);
|
||||
if (!isnan(energy_frequency)) { snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_ENERGY_SNS3, mqtt_data, frequency_chr); }
|
||||
WSContentSend_PD(HTTP_ENERGY_SNS2, apparent_power_chr, reactive_power_chr, power_factor_chr);
|
||||
if (!isnan(energy_frequency)) { WSContentSend_PD(HTTP_ENERGY_SNS3, frequency_chr); }
|
||||
}
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_ENERGY_SNS4, mqtt_data, energy_daily_chr, energy_yesterday_chr, energy_total_chr);
|
||||
WSContentSend_PD(HTTP_ENERGY_SNS4, energy_daily_chr, energy_yesterday_chr, energy_total_chr);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -722,7 +722,7 @@ bool Xsns03(uint8_t function)
|
|||
EnergyShow(true);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
EnergyShow(false);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -86,7 +86,7 @@ void CounterInit(void)
|
|||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_SNS_COUNTER[] PROGMEM =
|
||||
"%s{s}" D_COUNTER "%d{m}%s%s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
"{s}" D_COUNTER "%d{m}%s%s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
void CounterShow(bool json)
|
||||
|
@ -121,7 +121,7 @@ void CounterShow(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_COUNTER, mqtt_data, i +1, counter, (bitRead(Settings.pulse_counter_type, i)) ? " " D_UNIT_SECOND : "");
|
||||
WSContentSend_PD(HTTP_SNS_COUNTER, i +1, counter, (bitRead(Settings.pulse_counter_type, i)) ? " " D_UNIT_SECOND : "");
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -152,7 +152,7 @@ bool Xsns01(uint8_t function)
|
|||
CounterShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
CounterShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -58,7 +58,7 @@ void AdcShow(bool json)
|
|||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"ANALOG\":{\"A0\":%d}"), mqtt_data, analog);
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_ANALOG, mqtt_data, "", 0, analog);
|
||||
WSContentSend_PD(HTTP_SNS_ANALOG, "", 0, analog);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ bool Xsns02(uint8_t function)
|
|||
AdcShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
AdcShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -105,7 +105,7 @@ void SonoffScSerialInput(char *rcvstat)
|
|||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_SNS_SCPLUS[] PROGMEM =
|
||||
"%s{s}" D_LIGHT "{m}%d%%{e}{s}" D_NOISE "{m}%d%%{e}{s}" D_AIR_QUALITY "{m}%d%%{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
"{s}" D_LIGHT "{m}%d%%{e}{s}" D_NOISE "{m}%d%%{e}{s}" D_AIR_QUALITY "{m}%d%%{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
void SonoffScShow(bool json)
|
||||
|
@ -140,9 +140,9 @@ void SonoffScShow(bool json)
|
|||
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, "", temperature, TempUnit());
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, "", humidity);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_SCPLUS, mqtt_data, sc_value[2], sc_value[3], sc_value[4]);
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, "", temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_HUM, "", humidity);
|
||||
WSContentSend_PD(HTTP_SNS_SCPLUS, sc_value[2], sc_value[3], sc_value[4]);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -165,7 +165,7 @@ bool Xsns04(uint8_t function)
|
|||
SonoffScShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
SonoffScShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -218,7 +218,7 @@ void Ds18b20Show(bool json)
|
|||
#endif // USE_KNX
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, ds18b20_types, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, ds18b20_types, temperature, TempUnit());
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -241,7 +241,7 @@ bool Xsns05(uint8_t function)
|
|||
Ds18b20Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Ds18b20Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -452,7 +452,7 @@ void Ds18x20Show(bool json)
|
|||
#endif // USE_KNX
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, ds18x20_types, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, ds18x20_types, temperature, TempUnit());
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -479,7 +479,7 @@ bool Xsns05(uint8_t function)
|
|||
Ds18x20Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Ds18x20Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -198,7 +198,7 @@ void Ds18x20Show(bool json)
|
|||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(stemp, sizeof(stemp), PSTR("%s-%d"), ds18x20_types, i +1);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, stemp, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, stemp, temperature, TempUnit());
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -233,7 +233,7 @@ bool Xsns05(uint8_t function)
|
|||
Ds18x20Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Ds18x20Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -227,8 +227,8 @@ void DhtShow(bool json)
|
|||
#endif // USE_KNX
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, Dht[i].stype, temperature, TempUnit());
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, Dht[i].stype, humidity);
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, Dht[i].stype, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_HUM, Dht[i].stype, humidity);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -254,7 +254,7 @@ bool Xsns06(uint8_t function)
|
|||
DhtShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
DhtShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -208,8 +208,8 @@ void ShtShow(bool json)
|
|||
#endif // USE_KNX
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, sht_types, temperature, TempUnit());
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, sht_types, humidity);
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, sht_types, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_HUM, sht_types, humidity);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -236,7 +236,7 @@ bool Xsns07(uint8_t function)
|
|||
ShtShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
ShtShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -268,8 +268,8 @@ void HtuShow(bool json)
|
|||
#endif // USE_KNX
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, htu_types, temperature, TempUnit());
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, htu_types, humidity);
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, htu_types, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_HUM, htu_types, humidity);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -295,7 +295,7 @@ bool Xsns08(uint8_t function)
|
|||
HtuShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
HtuShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -597,19 +597,20 @@ void BmpShow(bool json)
|
|||
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, name, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, name, temperature, TempUnit());
|
||||
if (bmp_sensors[bmp_idx].bmp_model >= 2) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, name, humidity);
|
||||
WSContentSend_PD(HTTP_SNS_HUM, name, humidity);
|
||||
}
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_PRESSURE, mqtt_data, name, pressure, PressureUnit().c_str());
|
||||
WSContentSend_PD(HTTP_SNS_PRESSURE, name, pressure, PressureUnit().c_str());
|
||||
if (Settings.altitude != 0) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_SEAPRESSURE, mqtt_data, name, sea_pressure, PressureUnit().c_str());
|
||||
WSContentSend_PD(HTTP_SNS_SEAPRESSURE, name, sea_pressure, PressureUnit().c_str());
|
||||
}
|
||||
#ifdef USE_BME680
|
||||
if (bmp_sensors[bmp_idx].bmp_model >= 3) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s{s}%s " D_GAS "{m}%s " D_UNIT_KILOOHM "{e}"), mqtt_data, name, gas_resistance);
|
||||
WSContentSend_PD(PSTR("{s}%s " D_GAS "{m}%s " D_UNIT_KILOOHM "{e}"), name, gas_resistance);
|
||||
}
|
||||
#endif // USE_BME680
|
||||
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -636,7 +637,7 @@ bool Xsns09(uint8_t function)
|
|||
BmpShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
BmpShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -100,7 +100,7 @@ void Bh1750Show(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_ILLUMINANCE, mqtt_data, bh1750_types, bh1750_illuminance);
|
||||
WSContentSend_PD(HTTP_SNS_ILLUMINANCE, bh1750_types, bh1750_illuminance);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -126,7 +126,7 @@ bool Xsns10(uint8_t function)
|
|||
Bh1750Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Bh1750Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -256,11 +256,11 @@ double Veml6070UvPower(double uvrisk)
|
|||
#ifdef USE_WEBSERVER
|
||||
// {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
#ifdef USE_VEML6070_SHOW_RAW
|
||||
const char HTTP_SNS_UV_LEVEL[] PROGMEM = "%s{s}VEML6070 " D_UV_LEVEL "{m}%s " D_UNIT_INCREMENTS "{e}";
|
||||
const char HTTP_SNS_UV_LEVEL[] PROGMEM = "{s}VEML6070 " D_UV_LEVEL "{m}%s " D_UNIT_INCREMENTS "{e}";
|
||||
#endif // USE_VEML6070_SHOW_RAW
|
||||
// different uv index level texts
|
||||
const char HTTP_SNS_UV_INDEX[] PROGMEM = "%s{s}VEML6070 " D_UV_INDEX " {m}%s %s{e}";
|
||||
const char HTTP_SNS_UV_POWER[] PROGMEM = "%s{s}VEML6070 " D_UV_POWER "{m}%s " D_UNIT_WATT_METER_QUADRAT "{e}";
|
||||
const char HTTP_SNS_UV_INDEX[] PROGMEM = "{s}VEML6070 " D_UV_INDEX "{m}%s %s{e}";
|
||||
const char HTTP_SNS_UV_POWER[] PROGMEM = "{s}VEML6070 " D_UV_POWER "{m}%s " D_UNIT_WATT_METER_QUADRAT "{e}";
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
/********************************************************************************************/
|
||||
|
@ -289,10 +289,10 @@ void Veml6070Show(bool json)
|
|||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
#ifdef USE_VEML6070_SHOW_RAW
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_UV_LEVEL, mqtt_data, str_uvlevel);
|
||||
WSContentSend_PD(HTTP_SNS_UV_LEVEL, str_uvlevel);
|
||||
#endif // USE_VEML6070_SHOW_RAW
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_UV_INDEX, mqtt_data, str_uvrisk, str_uvrisk_text);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_UV_POWER, mqtt_data, str_uvpower);
|
||||
WSContentSend_PD(HTTP_SNS_UV_INDEX, str_uvrisk, str_uvrisk_text);
|
||||
WSContentSend_PD(HTTP_SNS_UV_POWER, str_uvpower);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -310,7 +310,7 @@ bool Xsns11(uint8_t function)
|
|||
switch (function) {
|
||||
case FUNC_INIT:
|
||||
Veml6070Detect(); // 1[ms], detect and init the sensor
|
||||
Veml6070UvTableInit(); // 1[ms], initalize the UV compare table only once
|
||||
Veml6070UvTableInit(); // 1[ms], initalize the UV compare table only once
|
||||
break;
|
||||
case FUNC_EVERY_SECOND:
|
||||
Veml6070EverySecond(); // 10..15[ms], tested with OLED display, do all the actions needed to get all sensor values
|
||||
|
@ -319,7 +319,7 @@ bool Xsns11(uint8_t function)
|
|||
Veml6070Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Veml6070Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -203,7 +203,7 @@ void Ads1115toString(uint8_t address)
|
|||
snprintf_P(label, sizeof(label), "ADS1115(%02x)", address);
|
||||
|
||||
for (uint8_t i = 0; i < 4; i++) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_ANALOG, mqtt_data, label, i, ads1115_values[i]);
|
||||
WSContentSend_PD(HTTP_SNS_ANALOG, label, i, ads1115_values[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -255,7 +255,7 @@ bool Xsns12(uint8_t function)
|
|||
Ads1115Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Ads1115Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -115,7 +115,7 @@ void Ads1115Show(bool json)
|
|||
strlcpy(stemp, ",", sizeof(stemp));
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_ANALOG, mqtt_data, "ADS1115", i, adc_value);
|
||||
WSContentSend_PD(HTTP_SNS_ANALOG, "ADS1115", i, adc_value);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -144,7 +144,7 @@ bool Xsns12(uint8_t function)
|
|||
Ads1115Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Ads1115Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -222,7 +222,7 @@ void Ina219EverySecond(void)
|
|||
}
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_SNS_INA219_DATA[] PROGMEM = "%s"
|
||||
const char HTTP_SNS_INA219_DATA[] PROGMEM =
|
||||
"{s}INA219 " D_VOLTAGE "{m}%s " D_UNIT_VOLT "{e}"
|
||||
"{s}INA219 " D_CURRENT "{m}%s " D_UNIT_AMPERE "{e}"
|
||||
"{s}INA219 " D_POWERUSAGE "{m}%s " D_UNIT_WATT "{e}";
|
||||
|
@ -250,7 +250,7 @@ void Ina219Show(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_INA219_DATA, mqtt_data, voltage, current, power);
|
||||
WSContentSend_PD(HTTP_SNS_INA219_DATA, voltage, current, power);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -281,7 +281,7 @@ bool Xsns13(uint8_t function)
|
|||
Ina219Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Ina219Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -126,8 +126,8 @@ void Sht3xShow(bool json)
|
|||
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, types, temperature, TempUnit());
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, types, humidity);
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, types, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_HUM, types, humidity);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -152,7 +152,7 @@ bool Xsns14(uint8_t function)
|
|||
Sht3xShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Sht3xShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -351,8 +351,8 @@ void MhzShow(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_CO2, mqtt_data, types, mhz_last_ppm);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, types, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_CO2, types, mhz_last_ppm);
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, types, temperature, TempUnit());
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -382,7 +382,7 @@ bool Xsns15(uint8_t function)
|
|||
MhzShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
MhzShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -95,7 +95,7 @@ void Tsl2561EverySecond(void)
|
|||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_SNS_TSL2561[] PROGMEM =
|
||||
"%s{s}TSL2561 " D_ILLUMINANCE "{m}%u.%03u " D_UNIT_LUX "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
"{s}TSL2561 " D_ILLUMINANCE "{m}%u.%03u " D_UNIT_LUX "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
void Tsl2561Show(bool json)
|
||||
|
@ -109,7 +109,7 @@ void Tsl2561Show(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TSL2561, mqtt_data, tsl2561_milliLux / 1000, tsl2561_milliLux % 1000);
|
||||
WSContentSend_PD(HTTP_SNS_TSL2561, tsl2561_milliLux / 1000, tsl2561_milliLux % 1000);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ bool Xsns16(uint8_t function)
|
|||
Tsl2561Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Tsl2561Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -159,10 +159,10 @@ void SenseairShow(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_CO2, mqtt_data, senseair_types, senseair_co2);
|
||||
WSContentSend_PD(HTTP_SNS_CO2, senseair_types, senseair_co2);
|
||||
if (senseair_type != 2) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, senseair_types, temperature, TempUnit());
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, senseair_types, humidity);
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, senseair_types, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_HUM, senseair_types, humidity);
|
||||
}
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
|
@ -188,7 +188,7 @@ bool Xsns17(uint8_t function)
|
|||
SenseairShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
SenseairShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -113,7 +113,7 @@ void PmsInit(void)
|
|||
}
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_PMS5003_SNS[] PROGMEM = "%s"
|
||||
const char HTTP_PMS5003_SNS[] PROGMEM =
|
||||
// "{s}PMS5003 " D_STANDARD_CONCENTRATION " 1 " D_UNIT_MICROMETER "{m}%d " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}"
|
||||
// "{s}PMS5003 " D_STANDARD_CONCENTRATION " 2.5 " D_UNIT_MICROMETER "{m}%d " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}"
|
||||
// "{s}PMS5003 " D_STANDARD_CONCENTRATION " 10 " D_UNIT_MICROMETER "{m}%d " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}"
|
||||
|
@ -145,7 +145,7 @@ void PmsShow(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_PMS5003_SNS, mqtt_data,
|
||||
WSContentSend_PD(HTTP_PMS5003_SNS,
|
||||
// pms_data.pm10_standard, pms_data.pm25_standard, pms_data.pm100_standard,
|
||||
pms_data.pm10_env, pms_data.pm25_env, pms_data.pm100_env,
|
||||
pms_data.particles_03um, pms_data.particles_05um, pms_data.particles_10um, pms_data.particles_25um, pms_data.particles_50um, pms_data.particles_100um);
|
||||
|
@ -174,7 +174,7 @@ bool Xsns18(uint8_t function)
|
|||
PmsShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
PmsShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -57,7 +57,7 @@ char* measure_gas(int gas_type, char* buffer)
|
|||
}
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_MGS_GAS[] PROGMEM = "%s{s}MGS %s{m}%s " D_UNIT_PARTS_PER_MILLION "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_MGS_GAS[] PROGMEM = "{s}MGS %s{m}%s " D_UNIT_PARTS_PER_MILLION "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
void MGSShow(bool json)
|
||||
|
@ -74,14 +74,14 @@ void MGSShow(bool json)
|
|||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"C2H5OH\":%s}"), mqtt_data, measure_gas(C2H5OH, buffer));
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_MGS_GAS, mqtt_data, "NH3", measure_gas(NH3, buffer));
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_MGS_GAS, mqtt_data, "CO", measure_gas(CO, buffer));
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_MGS_GAS, mqtt_data, "NO2", measure_gas(NO2, buffer));
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_MGS_GAS, mqtt_data, "C3H8", measure_gas(C3H8, buffer));
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_MGS_GAS, mqtt_data, "C4H10", measure_gas(C4H10, buffer));
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_MGS_GAS, mqtt_data, "CH4", measure_gas(GAS_CH4, buffer));
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_MGS_GAS, mqtt_data, "H2", measure_gas(H2, buffer));
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_MGS_GAS, mqtt_data, "C2H5OH", measure_gas(C2H5OH, buffer));
|
||||
WSContentSend_PD(HTTP_MGS_GAS, "NH3", measure_gas(NH3, buffer));
|
||||
WSContentSend_PD(HTTP_MGS_GAS, "CO", measure_gas(CO, buffer));
|
||||
WSContentSend_PD(HTTP_MGS_GAS, "NO2", measure_gas(NO2, buffer));
|
||||
WSContentSend_PD(HTTP_MGS_GAS, "C3H8", measure_gas(C3H8, buffer));
|
||||
WSContentSend_PD(HTTP_MGS_GAS, "C4H10", measure_gas(C4H10, buffer));
|
||||
WSContentSend_PD(HTTP_MGS_GAS, "CH4", measure_gas(GAS_CH4, buffer));
|
||||
WSContentSend_PD(HTTP_MGS_GAS, "H2", measure_gas(H2, buffer));
|
||||
WSContentSend_PD(HTTP_MGS_GAS, "C2H5OH", measure_gas(C2H5OH, buffer));
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -107,7 +107,7 @@ bool Xsns19(uint8_t function)
|
|||
if (detected) MGSShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
if (detected) MGSShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -180,7 +180,7 @@ void NovaSdsInit(void)
|
|||
}
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_SDS0X1_SNS[] PROGMEM = "%s"
|
||||
const char HTTP_SDS0X1_SNS[] PROGMEM =
|
||||
"{s}SDS0X1 " D_ENVIRONMENTAL_CONCENTRATION " 2.5 " D_UNIT_MICROMETER "{m}%s " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}"
|
||||
"{s}SDS0X1 " D_ENVIRONMENTAL_CONCENTRATION " 10 " D_UNIT_MICROMETER "{m}%s " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
#endif // USE_WEBSERVER
|
||||
|
@ -204,7 +204,7 @@ void NovaSdsShow(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SDS0X1_SNS, mqtt_data, pm2_5, pm10);
|
||||
WSContentSend_PD(HTTP_SDS0X1_SNS, pm2_5, pm10);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -230,7 +230,7 @@ bool Xsns20(uint8_t function)
|
|||
NovaSdsShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
NovaSdsShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -63,7 +63,7 @@ void Sgp30Update(void) // Perform every second to ensure proper operation of th
|
|||
}
|
||||
}
|
||||
|
||||
const char HTTP_SNS_SGP30[] PROGMEM = "%s"
|
||||
const char HTTP_SNS_SGP30[] PROGMEM =
|
||||
"{s}SGP30 " D_ECO2 "{m}%d " D_UNIT_PARTS_PER_MILLION "{e}" // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
"{s}SGP30 " D_TVOC "{m}%d " D_UNIT_PARTS_PER_BILLION "{e}";
|
||||
|
||||
|
@ -77,7 +77,7 @@ void Sgp30Show(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_SGP30, mqtt_data, sgp.eCO2, sgp.TVOC);
|
||||
WSContentSend_PD(HTTP_SNS_SGP30, sgp.eCO2, sgp.TVOC);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -100,7 +100,7 @@ bool Xsns21(uint8_t function)
|
|||
Sgp30Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Sgp30Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -45,7 +45,7 @@ void Sr04Init(void)
|
|||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_SNS_DISTANCE[] PROGMEM =
|
||||
"%s{s}SR04 " D_DISTANCE "{m}%s" D_UNIT_CENTIMETER "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
"{s}SR04 " D_DISTANCE "{m}%s" D_UNIT_CENTIMETER "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
void Sr04Show(bool json)
|
||||
|
@ -65,7 +65,7 @@ void Sr04Show(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_DISTANCE, mqtt_data, distance_chr);
|
||||
WSContentSend_PD(HTTP_SNS_DISTANCE, distance_chr);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ bool Xsns22(uint8_t function)
|
|||
Sr04Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Sr04Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -260,7 +260,7 @@ void SDM120Init(void)
|
|||
}
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_SNS_SDM120_DATA[] PROGMEM = "%s"
|
||||
const char HTTP_SNS_SDM120_DATA[] PROGMEM =
|
||||
"{s}SDM120 " D_VOLTAGE "{m}%s " D_UNIT_VOLT "{e}"
|
||||
"{s}SDM120 " D_CURRENT "{m}%s " D_UNIT_AMPERE "{e}"
|
||||
"{s}SDM120 " D_POWERUSAGE_ACTIVE "{m}%s " D_UNIT_WATT "{e}"
|
||||
|
@ -330,9 +330,9 @@ void SDM120Show(bool json)
|
|||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
#ifdef USE_SDM220
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_SDM120_DATA, mqtt_data, voltage, current, active_power, apparent_power, reactive_power, power_factor, frequency, energy_total, phase_angle,import_active,export_active,import_reactive,export_reactive,total_reactive);
|
||||
WSContentSend_PD(HTTP_SNS_SDM120_DATA, voltage, current, active_power, apparent_power, reactive_power, power_factor, frequency, energy_total, phase_angle,import_active,export_active,import_reactive,export_reactive,total_reactive);
|
||||
#else
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_SDM120_DATA, mqtt_data, voltage, current, active_power, apparent_power, reactive_power, power_factor, frequency, energy_total);
|
||||
WSContentSend_PD(HTTP_SNS_SDM120_DATA, voltage, current, active_power, apparent_power, reactive_power, power_factor, frequency, energy_total);
|
||||
#endif // USE_SDM220
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
|
@ -358,7 +358,7 @@ bool Xsns23(uint8_t function)
|
|||
SDM120Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
SDM120Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -316,7 +316,7 @@ void Si1145Update(void)
|
|||
}
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_SNS_SI1145[] PROGMEM = "%s"
|
||||
const char HTTP_SNS_SI1145[] PROGMEM =
|
||||
"{s}SI1145 " D_ILLUMINANCE "{m}%d " D_UNIT_LUX "{e}" // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
"{s}SI1145 " D_INFRARED "{m}%d " D_UNIT_LUX "{e}"
|
||||
"{s}SI1145 " D_UV_INDEX "{m}%d.%d{e}";
|
||||
|
@ -336,7 +336,7 @@ void Si1145Show(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_SI1145, mqtt_data, visible, infrared, uvindex /100, uvindex %100);
|
||||
WSContentSend_PD(HTTP_SNS_SI1145, visible, infrared, uvindex /100, uvindex %100);
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
|
@ -361,7 +361,7 @@ bool Xsns24(uint8_t function)
|
|||
Si1145Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Si1145Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -257,7 +257,7 @@ void SDM630Init(void)
|
|||
}
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_SNS_SDM630_DATA[] PROGMEM = "%s"
|
||||
const char HTTP_SNS_SDM630_DATA[] PROGMEM =
|
||||
"{s}SDM630 " D_VOLTAGE "{m}%s/%s/%s " D_UNIT_VOLT "{e}"
|
||||
"{s}SDM630 " D_CURRENT "{m}%s/%s/%s " D_UNIT_AMPERE "{e}"
|
||||
"{s}SDM630 " D_POWERUSAGE_ACTIVE "{m}%s/%s/%s " D_UNIT_WATT "{e}"
|
||||
|
@ -312,7 +312,7 @@ void SDM630Show(bool json)
|
|||
current_l1, current_l2, current_l3);
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_SDM630_DATA, mqtt_data,
|
||||
WSContentSend_PD(HTTP_SNS_SDM630_DATA,
|
||||
voltage_l1, voltage_l2, voltage_l3, current_l1, current_l2, current_l3,
|
||||
active_power_l1, active_power_l2, active_power_l3,
|
||||
reactive_power_l1, reactive_power_l2, reactive_power_l3,
|
||||
|
@ -341,7 +341,7 @@ bool Xsns25(uint8_t function)
|
|||
SDM630Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
SDM630Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -91,7 +91,7 @@ void LM75ADShow(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, "LM75AD", temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, "LM75AD", temperature, TempUnit());
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -114,7 +114,7 @@ bool Xsns26(uint8_t function)
|
|||
LM75ADShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
LM75ADShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -77,7 +77,7 @@ volatile uint8_t recovery_loop_counter = 0; //count number of stateloops to swi
|
|||
bool APDS9960_overload = false;
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_APDS_9960_SNS[] PROGMEM = "%s"
|
||||
const char HTTP_APDS_9960_SNS[] PROGMEM =
|
||||
"{s}" "Red" "{m}%s{e}"
|
||||
"{s}" "Green" "{m}%s{e}"
|
||||
"{s}" "Blue" "{m}%s{e}"
|
||||
|
@ -1963,7 +1963,7 @@ void APDS9960_show(bool json)
|
|||
mqtt_data, APDS9960stype, red_chr, green_chr, blue_chr, ambient_chr, cct_chr, prox_chr);
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_APDS_9960_SNS, mqtt_data, red_chr, green_chr, blue_chr, ambient_chr, cct_chr, prox_chr );
|
||||
WSContentSend_PD(HTTP_APDS_9960_SNS, red_chr, green_chr, blue_chr, ambient_chr, cct_chr, prox_chr );
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -2055,7 +2055,7 @@ bool Xsns27(uint8_t function)
|
|||
APDS9960_show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
APDS9960_show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -215,7 +215,7 @@ bool Xsns28(uint8_t function)
|
|||
TmShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
TmShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -694,7 +694,7 @@ bool MCP230xx_Command(void) {
|
|||
|
||||
#ifdef USE_MCP230xx_DISPLAYOUTPUT
|
||||
|
||||
const char HTTP_SNS_MCP230xx_OUTPUT[] PROGMEM = "%s{s}MCP230XX D%d{m}%s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_MCP230xx_OUTPUT[] PROGMEM = "{s}MCP230XX D%d{m}%s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
|
||||
void MCP230xx_UpdateWebData(void) {
|
||||
uint8_t gpio1 = MCP230xx_readGPIO(0);
|
||||
|
@ -707,7 +707,7 @@ void MCP230xx_UpdateWebData(void) {
|
|||
if (Settings.mcp230xx_config[pin].pinmode >= 5) {
|
||||
char stt[7];
|
||||
sprintf(stt,ConvertNumTxt((gpio>>pin)&1,Settings.mcp230xx_config[pin].pinmode));
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_MCP230xx_OUTPUT, mqtt_data, pin, stt);
|
||||
WSContentSend_PD(HTTP_SNS_MCP230xx_OUTPUT, pin, stt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -822,7 +822,7 @@ bool Xsns29(uint8_t function)
|
|||
#ifdef USE_WEBSERVER
|
||||
#ifdef USE_MCP230xx_OUTPUT
|
||||
#ifdef USE_MCP230xx_DISPLAYOUTPUT
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
MCP230xx_UpdateWebData();
|
||||
break;
|
||||
#endif // USE_MCP230xx_DISPLAYOUTPUT
|
||||
|
|
|
@ -356,8 +356,8 @@ void Mpr121Show(struct mpr121 *pS, uint8_t function)
|
|||
}
|
||||
// Add buttons to web string
|
||||
#ifdef USE_WEBSERVER
|
||||
if (FUNC_WEB_APPEND == function) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s{s}MPR121%c Button%d{m}%d{e}"), mqtt_data, pS->id[i], j, BITC(i, j));
|
||||
if (FUNC_WEB_SENSOR == function) {
|
||||
WSContentSend_PD(PSTR("{s}MPR121%c Button%d{m}%d{e}"), pS->id[i], j, BITC(i, j));
|
||||
}
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
|
@ -389,7 +389,7 @@ void Mpr121Show(struct mpr121 *pS, uint8_t function)
|
|||
* FUNC_INIT to initialize a driver,
|
||||
* FUNC_EVERY_50_MSECOND for near real-time operation,
|
||||
* FUNC_JSON_APPEND for telemetry data and
|
||||
* FUNC_WEB_APPEND for displaying data in the Tasmota web-interface
|
||||
* FUNC_WEB_SENSOR for displaying data in the Tasmota web-interface
|
||||
*
|
||||
* @param byte function Tasmota function ID.
|
||||
* @return bool ???
|
||||
|
@ -426,8 +426,8 @@ bool Xsns30(uint8_t function)
|
|||
|
||||
#ifdef USE_WEBSERVER
|
||||
// Show sensor data on main web page
|
||||
case FUNC_WEB_APPEND:
|
||||
Mpr121Show(&mpr121, FUNC_WEB_APPEND);
|
||||
case FUNC_WEB_SENSOR:
|
||||
Mpr121Show(&mpr121, FUNC_WEB_SENSOR);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ void CCS811Update(void) // Perform every n second
|
|||
}
|
||||
}
|
||||
|
||||
const char HTTP_SNS_CCS811[] PROGMEM = "%s"
|
||||
const char HTTP_SNS_CCS811[] PROGMEM =
|
||||
"{s}CCS811 " D_ECO2 "{m}%d " D_UNIT_PARTS_PER_MILLION "{e}" // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
"{s}CCS811 " D_TVOC "{m}%d " D_UNIT_PARTS_PER_BILLION "{e}";
|
||||
|
||||
|
@ -91,7 +91,7 @@ void CCS811Show(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_CCS811, mqtt_data, eCO2, TVOC);
|
||||
WSContentSend_PD(HTTP_SNS_CCS811, eCO2, TVOC);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -114,7 +114,7 @@ bool Xsns31(uint8_t function)
|
|||
CCS811Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
CCS811Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -155,12 +155,13 @@ void MPU_6050Detect(void)
|
|||
}
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_SNS_AX_AXIS[] PROGMEM = "%s{s}%s " D_AX_AXIS "{m}%s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_AY_AXIS[] PROGMEM = "%s{s}%s " D_AY_AXIS "{m}%s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_AZ_AXIS[] PROGMEM = "%s{s}%s " D_AZ_AXIS "{m}%s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_GX_AXIS[] PROGMEM = "%s{s}%s " D_GX_AXIS "{m}%s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_GY_AXIS[] PROGMEM = "%s{s}%s " D_GY_AXIS "{m}%s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_GZ_AXIS[] PROGMEM = "%s{s}%s " D_GZ_AXIS "{m}%s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_SNS_AXIS[] PROGMEM =
|
||||
"{s}" D_SENSOR_MPU6050 " " D_AX_AXIS "{m}%s{e}" // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
"{s}" D_SENSOR_MPU6050 " " D_AY_AXIS "{m}%s{e}" // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
"{s}" D_SENSOR_MPU6050 " " D_AZ_AXIS "{m}%s{e}" // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
"{s}" D_SENSOR_MPU6050 " " D_GX_AXIS "{m}%s{e}" // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
"{s}" D_SENSOR_MPU6050 " " D_GY_AXIS "{m}%s{e}" // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
"{s}" D_SENSOR_MPU6050 " " D_GZ_AXIS "{m}%s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
#define D_JSON_AXIS_AX "AccelXAxis"
|
||||
|
@ -211,13 +212,8 @@ void MPU_6050Show(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, D_SENSOR_MPU6050, temperature, TempUnit());
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_AX_AXIS, mqtt_data, D_SENSOR_MPU6050, axis_ax);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_AY_AXIS, mqtt_data, D_SENSOR_MPU6050, axis_ay);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_AZ_AXIS, mqtt_data, D_SENSOR_MPU6050, axis_az);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_GX_AXIS, mqtt_data, D_SENSOR_MPU6050, axis_gx);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_GY_AXIS, mqtt_data, D_SENSOR_MPU6050, axis_gy);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_GZ_AXIS, mqtt_data, D_SENSOR_MPU6050, axis_gz);
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, D_SENSOR_MPU6050, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_AXIS, axis_ax, axis_ay, axis_az, axis_gx, axis_gy, axis_gz);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -245,7 +241,7 @@ bool Xsns32(uint8_t function)
|
|||
MPU_6050Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
MPU_6050Show(0);
|
||||
MPU_6050PerformReading();
|
||||
break;
|
||||
|
|
|
@ -321,11 +321,11 @@ void HxEvery100mSecond(void)
|
|||
}
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_HX711_WEIGHT[] PROGMEM = "%s"
|
||||
const char HTTP_HX711_WEIGHT[] PROGMEM =
|
||||
"{s}HX711 " D_WEIGHT "{m}%s " D_UNIT_KILOGRAM "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
const char HTTP_HX711_COUNT[] PROGMEM = "%s"
|
||||
const char HTTP_HX711_COUNT[] PROGMEM =
|
||||
"{s}HX711 " D_COUNT "{m}%d{e}";
|
||||
const char HTTP_HX711_CAL[] PROGMEM = "%s"
|
||||
const char HTTP_HX711_CAL[] PROGMEM =
|
||||
"{s}HX711 %s{m}{e}";
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
|
@ -351,13 +351,13 @@ void HxShow(bool json)
|
|||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"HX711\":{\"" D_JSON_WEIGHT "\":%s%s}"), mqtt_data, weight_chr, scount);
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_HX711_WEIGHT, mqtt_data, weight_chr);
|
||||
WSContentSend_PD(HTTP_HX711_WEIGHT, weight_chr);
|
||||
if (count > 1) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_HX711_COUNT, mqtt_data, count);
|
||||
WSContentSend_PD(HTTP_HX711_COUNT, count);
|
||||
}
|
||||
if (hx_calibrate_step) {
|
||||
char cal_text[30];
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_HX711_CAL, mqtt_data, GetTextIndexed(cal_text, sizeof(cal_text), hx_calibrate_msg, kHxCalibrationStates));
|
||||
WSContentSend_PD(HTTP_HX711_CAL, GetTextIndexed(cal_text, sizeof(cal_text), hx_calibrate_msg, kHxCalibrationStates));
|
||||
}
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
|
@ -485,7 +485,7 @@ bool Xsns34(uint8_t function)
|
|||
HxShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
HxShow(0);
|
||||
break;
|
||||
#ifdef USE_HX711_GUI
|
||||
|
|
|
@ -39,7 +39,7 @@ extern "C" {
|
|||
|
||||
#ifdef USE_WEBSERVER
|
||||
|
||||
const char HTTP_SNS_TX20[] PROGMEM = "%s"
|
||||
const char HTTP_SNS_TX20[] PROGMEM =
|
||||
"{s}TX20 " D_TX20_WIND_SPEED "{m}%s " D_UNIT_KILOMETER_PER_HOUR "{e}"
|
||||
"{s}TX20 " D_TX20_WIND_SPEED_AVG "{m}%s " D_UNIT_KILOMETER_PER_HOUR "{e}"
|
||||
"{s}TX20 " D_TX20_WIND_SPEED_MAX "{m}%s " D_UNIT_KILOMETER_PER_HOUR "{e}"
|
||||
|
@ -186,7 +186,7 @@ void Tx20Show(bool json)
|
|||
mqtt_data, wind_speed_string, wind_speed_avg_string, wind_speed_max_string, wind_direction_string);
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TX20, mqtt_data, wind_speed_string, wind_speed_avg_string, wind_speed_max_string, wind_direction_string);
|
||||
WSContentSend_PD(HTTP_SNS_TX20, wind_speed_string, wind_speed_avg_string, wind_speed_max_string, wind_direction_string);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -211,7 +211,7 @@ bool Xsns35(uint8_t function)
|
|||
Tx20Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Tx20Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -67,7 +67,7 @@ char MGC3130stype[8];
|
|||
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_MGC_3130_SNS[] PROGMEM = "%s"
|
||||
const char HTTP_MGC_3130_SNS[] PROGMEM =
|
||||
"{s}" "%s" "{m}%s{e}"
|
||||
"{s}" "HwRev" "{m}%u.%u{e}"
|
||||
"{s}" "loaderVer" "{m}%u.%u{e}"
|
||||
|
@ -555,7 +555,7 @@ void MGC3130_show(bool json)
|
|||
}
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_MGC_3130_SNS, mqtt_data, MGC3130stype, status_chr, hwRev[0], hwRev[1], loaderVersion[0], loaderVersion[1], loaderPlatform );
|
||||
WSContentSend_PD(HTTP_MGC_3130_SNS, MGC3130stype, status_chr, hwRev[0], hwRev[1], loaderVersion[0], loaderVersion[1], loaderPlatform );
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -622,7 +622,7 @@ bool Xsns36(uint8_t function)
|
|||
MGC3130_show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
MGC3130_show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -287,8 +287,8 @@ void RfSnsTheoV2Show(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, sensor, temperature, TempUnit());
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_ILLUMINANCE, mqtt_data, sensor, rfsns_theo_v2_t1[i].lux);
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, sensor, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_ILLUMINANCE, sensor, rfsns_theo_v2_t1[i].lux);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -331,8 +331,8 @@ void RfSnsTheoV2Show(bool json)
|
|||
}
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, sensor, temperature, TempUnit());
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, sensor, humidity);
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, sensor, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_HUM, sensor, humidity);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -539,11 +539,11 @@ uint8_t RfSnsAlectoCRC8(uint8_t *addr, uint8_t len)
|
|||
}
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_SNS_ALECTOV2[] PROGMEM = "%s"
|
||||
const char HTTP_SNS_ALECTOV2[] PROGMEM =
|
||||
"{s}" D_ALECTOV2 " " D_RAIN "{m}%s " D_UNIT_MILLIMETER "{e}"
|
||||
"{s}" D_ALECTOV2 " " D_TX20_WIND_SPEED "{m}%s " D_UNIT_KILOMETER_PER_HOUR "{e}"
|
||||
"{s}" D_ALECTOV2 " " D_TX20_WIND_SPEED_MAX "{m}%s " D_UNIT_KILOMETER_PER_HOUR "{e}";
|
||||
const char HTTP_SNS_ALECTOV2_WDIR[] PROGMEM = "%s"
|
||||
const char HTTP_SNS_ALECTOV2_WDIR[] PROGMEM =
|
||||
"{s}" D_ALECTOV2 " " D_TX20_WIND_DIRECTION "{m}%s{e}";
|
||||
#endif
|
||||
|
||||
|
@ -588,11 +588,11 @@ void RfSnsAlectoV2Show(bool json)
|
|||
}
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, D_ALECTOV2, temperature, TempUnit());
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, D_ALECTOV2, humidity);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_ALECTOV2, mqtt_data, rain, wind, gust);
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, D_ALECTOV2, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_HUM, D_ALECTOV2, humidity);
|
||||
WSContentSend_PD(HTTP_SNS_ALECTOV2, rain, wind, gust);
|
||||
if (rfsns_alecto_v2->type) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_ALECTOV2_WDIR, mqtt_data, wdir);
|
||||
WSContentSend_PD(HTTP_SNS_ALECTOV2_WDIR, wdir);
|
||||
}
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
|
@ -680,7 +680,7 @@ bool Xsns37(uint8_t function)
|
|||
RfSnsShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
RfSnsShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -264,9 +264,9 @@ void AzShow(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_CO2, mqtt_data, ktype, az_co2);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, ktype, temperature, TempUnit());
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, ktype, humidity);
|
||||
WSContentSend_PD(HTTP_SNS_CO2, ktype, az_co2);
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, ktype, temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_HUM, ktype, humidity);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -291,7 +291,7 @@ bool Xsns38(uint8_t function)
|
|||
AzShow(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
AzShow(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -101,7 +101,7 @@ int32_t MAX31855_ShiftIn(uint8_t Length){
|
|||
|
||||
digitalWrite(pin[GPIO_MAX31855CS], LOW); // CS = LOW -> Start SPI communication
|
||||
delayMicroseconds(1); // CS fall to output enable = max. 100ns
|
||||
|
||||
|
||||
for(uint8_t i = 0; i < Length; i++)
|
||||
{
|
||||
digitalWrite(pin[GPIO_MAX31855CLK], LOW);
|
||||
|
@ -115,7 +115,7 @@ int32_t MAX31855_ShiftIn(uint8_t Length){
|
|||
|
||||
digitalWrite(pin[GPIO_MAX31855CS], HIGH); // CS = HIGH -> End SPI communication
|
||||
digitalWrite(pin[GPIO_MAX31855CLK], LOW);
|
||||
return dataIn;
|
||||
return dataIn;
|
||||
}
|
||||
|
||||
void MAX31855_Show(bool Json){
|
||||
|
@ -139,7 +139,7 @@ void MAX31855_Show(bool Json){
|
|||
#endif // USE_KNX
|
||||
} else {
|
||||
#ifdef USE_WEBSERVER
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, "MAX31855", probetemp, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, "MAX31855", probetemp, TempUnit());
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -164,7 +164,7 @@ bool Xsns39(uint8_t function)
|
|||
MAX31855_Show(true);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
MAX31855_Show(false);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -139,8 +139,7 @@ void Max4409Show(bool json)
|
|||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
// show integer value for lx on web-server
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_ILLUMINANCE,
|
||||
mqtt_data, max44009_types, (int)max44009_illuminance);
|
||||
WSContentSend_PD(HTTP_SNS_ILLUMINANCE, max44009_types, (int)max44009_illuminance);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -166,7 +165,7 @@ bool Xsns41(uint8_t function)
|
|||
Max4409Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Max4409Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
|
@ -452,10 +452,10 @@ void Scd30Show(bool json)
|
|||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_CO2EAVG, mqtt_data, "SCD30", scd30_CO2EAvg);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_CO2, mqtt_data, "SCD30", scd30_CO2);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, "SCD30", temperature, TempUnit());
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, "SCD30", humidity);
|
||||
WSContentSend_PD(HTTP_SNS_CO2EAVG, "SCD30", scd30_CO2EAvg);
|
||||
WSContentSend_PD(HTTP_SNS_CO2, "SCD30", scd30_CO2);
|
||||
WSContentSend_PD(HTTP_SNS_TEMP, "SCD30", temperature, TempUnit());
|
||||
WSContentSend_PD(HTTP_SNS_HUM, "SCD30", humidity);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
@ -481,7 +481,7 @@ bool Xsns42(byte function)
|
|||
Scd30Show(1);
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_APPEND:
|
||||
case FUNC_WEB_SENSOR:
|
||||
Scd30Show(0);
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
|
|
Loading…
Reference in New Issue