mirror of
https://github.com/arendst/Tasmota.git
synced 2025-04-24 14:57:16 +00:00
Add command WebRefresh
Add command WebRefresh 1000..10000 to control web page refresh in milliseconds. Default is 2345
This commit is contained in:
parent
86666aebfa
commit
ba16e00e36
@ -1,5 +1,6 @@
|
||||
/* 6.2.1.13 20181008
|
||||
* Change default Mqtt client library from PubSubClient to non-blocking ArduinoMqtt by Joel Gaehwiler
|
||||
* Add command WebRefresh 1000..10000 to control web page refresh in milliseconds. Default is 2345
|
||||
*
|
||||
* 6.2.1.12 20181007
|
||||
* Fix Shelly1 switchmode 3 and 4 when using pushbutton (#3989)
|
||||
|
@ -46,6 +46,7 @@
|
||||
#define D_JSON_COMMAND "Command"
|
||||
#define D_JSON_CONNECT_FAILED "Connect failed"
|
||||
#define D_JSON_COREVERSION "Core"
|
||||
#define D_JSON_COUNT "Count"
|
||||
#define D_JSON_COUNTER "Counter"
|
||||
#define D_JSON_CURRENT "Current" // As in Voltage and Current
|
||||
#define D_JSON_DATA "Data"
|
||||
@ -137,6 +138,7 @@
|
||||
#define D_JSON_VCC "Vcc"
|
||||
#define D_JSON_VERSION "Version"
|
||||
#define D_JSON_VOLTAGE "Voltage"
|
||||
#define D_JSON_WEIGHT "Weight"
|
||||
#define D_JSON_WIFI "Wifi"
|
||||
#define D_JSON_WRONG "Wrong"
|
||||
#define D_JSON_WRONG_PARAMETERS "Wrong parameters"
|
||||
@ -187,6 +189,7 @@
|
||||
#define D_CMND_FREQUENCY_RESOLUTION "FreqRes"
|
||||
#define D_CMND_CURRENT_RESOLUTION "AmpRes"
|
||||
#define D_CMND_ENERGY_RESOLUTION "EnergyRes"
|
||||
#define D_CMND_WEIGHT_RESOLUTION "WeightRes"
|
||||
#define D_CMND_MODULE "Module"
|
||||
#define D_CMND_MODULES "Modules"
|
||||
#define D_CMND_GPIO "GPIO"
|
||||
@ -277,6 +280,7 @@
|
||||
#define D_JSON_WITH_IP_ADDRESS "with IP address"
|
||||
#define D_CMND_WEBPASSWORD "WebPassword"
|
||||
#define D_CMND_WEBLOG "WebLog"
|
||||
#define D_CMND_WEBREFRESH "WebRefresh"
|
||||
#define D_CMND_WEBSEND "WebSend"
|
||||
#define D_CMND_EMULATION "Emulation"
|
||||
|
||||
|
@ -110,8 +110,7 @@ typedef union {
|
||||
uint32_t spare06 : 1;
|
||||
uint32_t spare07 : 1;
|
||||
uint32_t spare08 : 1;
|
||||
uint32_t spare09 : 1;
|
||||
uint32_t spare10 : 1;
|
||||
uint32_t weight_resolution : 2;
|
||||
uint32_t frequency_resolution : 2;
|
||||
uint32_t axis_resolution : 2;
|
||||
uint32_t current_resolution : 2;
|
||||
@ -321,20 +320,18 @@ struct SYSCFG {
|
||||
byte free_717[1]; // 717
|
||||
|
||||
uint16_t mcp230xx_int_timer; // 718
|
||||
|
||||
uint8_t rgbwwTable[5]; // 71A
|
||||
|
||||
byte free_71F[169]; // 71F
|
||||
byte free_71F[157]; // 71F
|
||||
|
||||
uint16_t weight_item; // 7BC Weight of one item in gram * 10
|
||||
uint16_t weight_max; // 7BE Total max weight in kilogram
|
||||
unsigned long weight_reference; // 7C0 Reference weight in gram
|
||||
unsigned long weight_calibration; // 7C4
|
||||
unsigned long energy_frequency_calibration; // 7C8
|
||||
|
||||
byte free_7CC[2]; // 7CC
|
||||
|
||||
uint16_t web_refresh; // 7CC
|
||||
char mems[MAX_RULE_MEMS][10]; // 7CE
|
||||
// 800 Full - no more free locations
|
||||
|
||||
char rules[MAX_RULE_SETS][MAX_RULE_SIZE]; // 800 uses 512 bytes in v5.12.0m, 3 x 512 bytes in v5.14.0b
|
||||
|
||||
// E00 - FFF free locations
|
||||
} Settings;
|
||||
|
||||
|
@ -145,7 +145,7 @@ typedef unsigned long power_t; // Power (Relay) type
|
||||
|
||||
#define MQTT_PUBSUBCLIENT 1 // Mqtt PubSubClient library
|
||||
#define MQTT_TASMOTAMQTT 2 // Mqtt TasmotaMqtt library based on esp-mqtt-arduino - soon obsolete
|
||||
#define MQTT_ESPMQTTARDUINO 3 // Mqtt esp-mqtt-arduino library by Ingo Randolf - obsolete
|
||||
#define MQTT_ESPMQTTARDUINO 3 // Mqtt esp-mqtt-arduino library by Ingo Randolf - obsolete but define is present for debugging purposes
|
||||
#define MQTT_ARDUINOMQTT 4 // Mqtt arduino-mqtt library by Joel Gaehwiler (https://github.com/256dpi/arduino-mqtt)
|
||||
|
||||
// Sunrise and Sunset DawnType
|
||||
|
@ -77,7 +77,7 @@
|
||||
enum TasmotaCommands {
|
||||
CMND_BACKLOG, CMND_DELAY, CMND_POWER, CMND_FANSPEED, CMND_STATUS, CMND_STATE, CMND_POWERONSTATE, CMND_PULSETIME,
|
||||
CMND_BLINKTIME, CMND_BLINKCOUNT, CMND_SENSOR, CMND_SAVEDATA, CMND_SETOPTION, CMND_TEMPERATURE_RESOLUTION, CMND_HUMIDITY_RESOLUTION,
|
||||
CMND_PRESSURE_RESOLUTION, CMND_POWER_RESOLUTION, CMND_VOLTAGE_RESOLUTION, CMND_FREQUENCY_RESOLUTION, CMND_CURRENT_RESOLUTION, CMND_ENERGY_RESOLUTION,
|
||||
CMND_PRESSURE_RESOLUTION, CMND_POWER_RESOLUTION, CMND_VOLTAGE_RESOLUTION, CMND_FREQUENCY_RESOLUTION, CMND_CURRENT_RESOLUTION, CMND_ENERGY_RESOLUTION, CMND_WEIGHT_RESOLUTION,
|
||||
CMND_MODULE, CMND_MODULES, CMND_GPIO, CMND_GPIOS, CMND_PWM, CMND_PWMFREQUENCY, CMND_PWMRANGE, CMND_COUNTER, CMND_COUNTERTYPE,
|
||||
CMND_COUNTERDEBOUNCE, CMND_BUTTONDEBOUNCE, CMND_SWITCHDEBOUNCE, CMND_SLEEP, CMND_UPGRADE, CMND_UPLOAD, CMND_OTAURL, CMND_SERIALLOG, CMND_SYSLOG,
|
||||
CMND_LOGHOST, CMND_LOGPORT, CMND_IPADDRESS, CMND_NTPSERVER, CMND_AP, CMND_SSID, CMND_PASSWORD, CMND_HOSTNAME,
|
||||
@ -87,7 +87,7 @@ enum TasmotaCommands {
|
||||
const char kTasmotaCommands[] PROGMEM =
|
||||
D_CMND_BACKLOG "|" D_CMND_DELAY "|" D_CMND_POWER "|" D_CMND_FANSPEED "|" D_CMND_STATUS "|" D_CMND_STATE "|" D_CMND_POWERONSTATE "|" D_CMND_PULSETIME "|"
|
||||
D_CMND_BLINKTIME "|" D_CMND_BLINKCOUNT "|" D_CMND_SENSOR "|" D_CMND_SAVEDATA "|" D_CMND_SETOPTION "|" D_CMND_TEMPERATURE_RESOLUTION "|" D_CMND_HUMIDITY_RESOLUTION "|"
|
||||
D_CMND_PRESSURE_RESOLUTION "|" D_CMND_POWER_RESOLUTION "|" D_CMND_VOLTAGE_RESOLUTION "|" D_CMND_FREQUENCY_RESOLUTION "|" D_CMND_CURRENT_RESOLUTION "|" D_CMND_ENERGY_RESOLUTION "|"
|
||||
D_CMND_PRESSURE_RESOLUTION "|" D_CMND_POWER_RESOLUTION "|" D_CMND_VOLTAGE_RESOLUTION "|" D_CMND_FREQUENCY_RESOLUTION "|" D_CMND_CURRENT_RESOLUTION "|" D_CMND_ENERGY_RESOLUTION "|" D_CMND_WEIGHT_RESOLUTION "|"
|
||||
D_CMND_MODULE "|" D_CMND_MODULES "|" D_CMND_GPIO "|" D_CMND_GPIOS "|" D_CMND_PWM "|" D_CMND_PWMFREQUENCY "|" D_CMND_PWMRANGE "|" D_CMND_COUNTER "|" D_CMND_COUNTERTYPE "|"
|
||||
D_CMND_COUNTERDEBOUNCE "|" D_CMND_BUTTONDEBOUNCE "|" D_CMND_SWITCHDEBOUNCE "|" D_CMND_SLEEP "|" D_CMND_UPGRADE "|" D_CMND_UPLOAD "|" D_CMND_OTAURL "|" D_CMND_SERIALLOG "|" D_CMND_SYSLOG "|"
|
||||
D_CMND_LOGHOST "|" D_CMND_LOGPORT "|" D_CMND_IPADDRESS "|" D_CMND_NTPSERVER "|" D_CMND_AP "|" D_CMND_SSID "|" D_CMND_PASSWORD "|" D_CMND_HOSTNAME "|"
|
||||
@ -821,6 +821,12 @@ void MqttDataHandler(char* topic, byte* data, unsigned int data_len)
|
||||
}
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE, command, Settings.flag2.energy_resolution);
|
||||
}
|
||||
else if (CMND_WEIGHT_RESOLUTION == command_code) {
|
||||
if ((payload >= 0) && (payload <= 3)) {
|
||||
Settings.flag2.weight_resolution = payload;
|
||||
}
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE, command, Settings.flag2.weight_resolution);
|
||||
}
|
||||
else if (CMND_MODULE == command_code) {
|
||||
if ((payload > 0) && (payload <= MAXMODULE)) {
|
||||
payload--;
|
||||
|
@ -25,6 +25,8 @@
|
||||
* Based on source by AlexT (https://github.com/tzapu)
|
||||
\*********************************************************************************************/
|
||||
|
||||
#define HTTP_REFRESH_TIME 2345 // milliseconds
|
||||
|
||||
#ifdef USE_RF_FLASH
|
||||
uint8_t *efm8bb1_update = NULL;
|
||||
#endif // USE_RF_FLASH
|
||||
@ -72,7 +74,7 @@ const char HTTP_HEAD[] PROGMEM =
|
||||
"};"
|
||||
"x.open('GET','ay'+a,true);"
|
||||
"x.send();"
|
||||
"lt=setTimeout(la,2345);"
|
||||
"lt=setTimeout(la,{a});" // Settings.web_refresh
|
||||
"}"
|
||||
"function lb(p){"
|
||||
"la('?d='+p);"
|
||||
@ -147,7 +149,7 @@ const char HTTP_SCRIPT_CONSOL[] PROGMEM =
|
||||
"x.open('GET','ax?c2='+id+o,true);"
|
||||
"x.send();"
|
||||
"}"
|
||||
"lt=setTimeout(l,2345);"
|
||||
"lt=setTimeout(l,{a});"
|
||||
"return false;"
|
||||
"}"
|
||||
"</script>";
|
||||
@ -367,6 +369,7 @@ void ExecuteWebCommand(char* svalue, int source)
|
||||
|
||||
void StartWebserver(int type, IPAddress ipweb)
|
||||
{
|
||||
if (!Settings.web_refresh) { Settings.web_refresh = HTTP_REFRESH_TIME; }
|
||||
if (!webserver_state) {
|
||||
if (!WebServer) {
|
||||
WebServer = new ESP8266WebServer((HTTP_MANAGER==type) ? 80 : WEB_PORT);
|
||||
@ -497,6 +500,7 @@ void ShowPage(String &page, bool auth)
|
||||
return WebServer->requestAuthentication();
|
||||
}
|
||||
|
||||
page.replace(F("{a}"), String(Settings.web_refresh));
|
||||
page.replace(F("{ha"), my_module.name);
|
||||
page.replace(F("{h}"), Settings.friendlyname[0]);
|
||||
if (HTTP_MANAGER == webserver_state) {
|
||||
@ -1994,8 +1998,8 @@ int WebSend(char *buffer)
|
||||
|
||||
/*********************************************************************************************/
|
||||
|
||||
enum WebCommands { CMND_WEBSERVER, CMND_WEBPASSWORD, CMND_WEBLOG, CMND_WEBSEND, CMND_EMULATION };
|
||||
const char kWebCommands[] PROGMEM = D_CMND_WEBSERVER "|" D_CMND_WEBPASSWORD "|" D_CMND_WEBLOG "|" D_CMND_WEBSEND "|" D_CMND_EMULATION ;
|
||||
enum WebCommands { CMND_WEBSERVER, CMND_WEBPASSWORD, CMND_WEBLOG, CMND_WEBREFRESH, CMND_WEBSEND, CMND_EMULATION };
|
||||
const char kWebCommands[] PROGMEM = D_CMND_WEBSERVER "|" D_CMND_WEBPASSWORD "|" D_CMND_WEBLOG "|" D_CMND_WEBREFRESH "|" D_CMND_WEBSEND "|" D_CMND_EMULATION ;
|
||||
const char kWebSendStatus[] PROGMEM = D_JSON_DONE "|" D_JSON_WRONG_PARAMETERS "|" D_JSON_CONNECT_FAILED "|" D_JSON_HOST_NOT_FOUND ;
|
||||
|
||||
bool WebCommand()
|
||||
@ -2028,6 +2032,10 @@ bool WebCommand()
|
||||
if ((XdrvMailbox.payload >= LOG_LEVEL_NONE) && (XdrvMailbox.payload <= LOG_LEVEL_ALL)) { Settings.weblog_level = XdrvMailbox.payload; }
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE, command, Settings.weblog_level);
|
||||
}
|
||||
else if (CMND_WEBREFRESH == command_code) {
|
||||
if ((XdrvMailbox.payload > 999) && (XdrvMailbox.payload <= 10000)) { Settings.web_refresh = XdrvMailbox.payload; }
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE, command, Settings.web_refresh);
|
||||
}
|
||||
else if (CMND_WEBSEND == command_code) {
|
||||
if (XdrvMailbox.data_len > 0) {
|
||||
uint8_t result = WebSend(XdrvMailbox.data);
|
||||
|
Loading…
x
Reference in New Issue
Block a user