mirror of https://github.com/arendst/Tasmota.git
Add minutes to commands Timezone
Add minutes to commands Timezone to allow all possible world timezones
This commit is contained in:
parent
a56832073b
commit
46a0a0afba
|
@ -1,7 +1,8 @@
|
||||||
/* 6.3.0.1 20181031
|
/* 6.3.0.1 20181031
|
||||||
* Add wifi status to Tuya (#4221)
|
* Add wifi status to Tuya (#4221)
|
||||||
* Add default sleep 1 to sonoff-basic to lower enrgy consumption (#4217)
|
* Add default sleep 1 to sonoff-basic to lower energy consumption (#4217)
|
||||||
* Fix unintended function overload of WifiState
|
* Fix unintended function overload of WifiState
|
||||||
|
* Add minutes to commands Timezone to allow all possible world timezones
|
||||||
*
|
*
|
||||||
* 6.3.0 20181030
|
* 6.3.0 20181030
|
||||||
* Release of v6.3.0
|
* Release of v6.3.0
|
||||||
|
|
|
@ -302,9 +302,7 @@ struct SYSCFG {
|
||||||
uint16_t pulse_counter_type; // 5D0
|
uint16_t pulse_counter_type; // 5D0
|
||||||
uint16_t pulse_counter_debounce; // 5D2
|
uint16_t pulse_counter_debounce; // 5D2
|
||||||
uint8_t rf_code[17][9]; // 5D4
|
uint8_t rf_code[17][9]; // 5D4
|
||||||
|
uint8_t timezone_minutes; // 66D
|
||||||
byte free_66d[1]; // 66D
|
|
||||||
|
|
||||||
uint16_t switch_debounce; // 66E
|
uint16_t switch_debounce; // 66E
|
||||||
Timer timer[MAX_TIMERS]; // 670
|
Timer timer[MAX_TIMERS]; // 670
|
||||||
int latitude; // 6B0
|
int latitude; // 6B0
|
||||||
|
|
|
@ -607,7 +607,13 @@ void SettingsDefaultSet2()
|
||||||
SettingsDefaultSet_5_10_1(); // Display settings
|
SettingsDefaultSet_5_10_1(); // Display settings
|
||||||
|
|
||||||
// Time
|
// Time
|
||||||
|
if (((APP_TIMEZONE > -14) && (APP_TIMEZONE < 15)) || (99 == APP_TIMEZONE)) {
|
||||||
Settings.timezone = APP_TIMEZONE;
|
Settings.timezone = APP_TIMEZONE;
|
||||||
|
Settings.timezone_minutes = 0;
|
||||||
|
} else {
|
||||||
|
Settings.timezone = APP_TIMEZONE / 60;
|
||||||
|
Settings.timezone_minutes = abs(APP_TIMEZONE % 60);
|
||||||
|
}
|
||||||
strlcpy(Settings.ntp_server[0], NTP_SERVER1, sizeof(Settings.ntp_server[0]));
|
strlcpy(Settings.ntp_server[0], NTP_SERVER1, sizeof(Settings.ntp_server[0]));
|
||||||
strlcpy(Settings.ntp_server[1], NTP_SERVER2, sizeof(Settings.ntp_server[1]));
|
strlcpy(Settings.ntp_server[1], NTP_SERVER2, sizeof(Settings.ntp_server[1]));
|
||||||
strlcpy(Settings.ntp_server[2], NTP_SERVER3, sizeof(Settings.ntp_server[2]));
|
strlcpy(Settings.ntp_server[2], NTP_SERVER3, sizeof(Settings.ntp_server[2]));
|
||||||
|
@ -836,6 +842,9 @@ void SettingsDelta()
|
||||||
Settings.rgbwwTable[j] = 255;
|
Settings.rgbwwTable[j] = 255;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (Settings.version < 0x06030002) {
|
||||||
|
Settings.timezone_minutes = 0;
|
||||||
|
}
|
||||||
|
|
||||||
Settings.version = VERSION;
|
Settings.version = VERSION;
|
||||||
SettingsSave(1);
|
SettingsSave(1);
|
||||||
|
|
|
@ -1163,10 +1163,29 @@ void MqttDataHandler(char* topic, byte* data, unsigned int data_len)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (CMND_TIMEZONE == command_code) {
|
else if (CMND_TIMEZONE == command_code) {
|
||||||
if ((data_len > 0) && (((payload >= -13) && (payload <= 14)) || (99 == payload))) {
|
if ((data_len > 0) && (payload >= -13)) {
|
||||||
Settings.timezone = payload;
|
Settings.timezone = payload;
|
||||||
|
Settings.timezone_minutes = 0;
|
||||||
|
if (payload < 15) {
|
||||||
|
p = strtok (dataBuf, ":");
|
||||||
|
if (p) {
|
||||||
|
p = strtok (NULL, ":");
|
||||||
|
if (p) {
|
||||||
|
Settings.timezone_minutes = strtol(p, NULL, 10);
|
||||||
|
if (Settings.timezone_minutes > 59) { Settings.timezone_minutes = 59; }
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Settings.timezone = 99;
|
||||||
|
}
|
||||||
|
ntp_force_sync = 1;
|
||||||
|
}
|
||||||
|
if (99 == Settings.timezone) {
|
||||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE, command, Settings.timezone);
|
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_NVALUE, command, Settings.timezone);
|
||||||
|
} else {
|
||||||
|
snprintf_P(stemp1, sizeof(stemp1), PSTR("%+03d:%02d"), Settings.timezone, Settings.timezone_minutes);
|
||||||
|
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_SVALUE, command, stemp1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if ((CMND_TIMESTD == command_code) || (CMND_TIMEDST == command_code)) {
|
else if ((CMND_TIMESTD == command_code) || (CMND_TIMEDST == command_code)) {
|
||||||
// TimeStd 0/1, 0/1/2/3/4, 1..12, 1..7, 0..23, +/-780
|
// TimeStd 0/1, 0/1/2/3/4, 1..12, 1..7, 0..23, +/-780
|
||||||
|
@ -1491,12 +1510,17 @@ void PublishStatus(uint8_t payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((0 == payload) || (7 == payload)) {
|
if ((0 == payload) || (7 == payload)) {
|
||||||
|
if (99 == Settings.timezone) {
|
||||||
|
snprintf_P(stemp, sizeof(stemp), PSTR("%d" ), Settings.timezone);
|
||||||
|
} else {
|
||||||
|
snprintf_P(stemp, sizeof(stemp), PSTR("\"%s\"" ), GetTimeZone().c_str());
|
||||||
|
}
|
||||||
#if defined(USE_TIMERS) && defined(USE_SUNRISE)
|
#if defined(USE_TIMERS) && defined(USE_SUNRISE)
|
||||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_STATUS D_STATUS7_TIME "\":{\"" D_JSON_UTC_TIME "\":\"%s\",\"" D_JSON_LOCAL_TIME "\":\"%s\",\"" D_JSON_STARTDST "\":\"%s\",\"" D_JSON_ENDDST "\":\"%s\",\"" D_CMND_TIMEZONE "\":%d,\"" D_JSON_SUNRISE "\":\"%s\",\"" D_JSON_SUNSET "\":\"%s\"}}"),
|
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_STATUS D_STATUS7_TIME "\":{\"" D_JSON_UTC_TIME "\":\"%s\",\"" D_JSON_LOCAL_TIME "\":\"%s\",\"" D_JSON_STARTDST "\":\"%s\",\"" D_JSON_ENDDST "\":\"%s\",\"" D_CMND_TIMEZONE "\":%s,\"" D_JSON_SUNRISE "\":\"%s\",\"" D_JSON_SUNSET "\":\"%s\"}}"),
|
||||||
GetTime(0).c_str(), GetTime(1).c_str(), GetTime(2).c_str(), GetTime(3).c_str(), Settings.timezone, GetSun(0).c_str(), GetSun(1).c_str());
|
GetTime(0).c_str(), GetTime(1).c_str(), GetTime(2).c_str(), GetTime(3).c_str(), stemp, GetSun(0).c_str(), GetSun(1).c_str());
|
||||||
#else
|
#else
|
||||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_STATUS D_STATUS7_TIME "\":{\"" D_JSON_UTC_TIME "\":\"%s\",\"" D_JSON_LOCAL_TIME "\":\"%s\",\"" D_JSON_STARTDST "\":\"%s\",\"" D_JSON_ENDDST "\":\"%s\",\"" D_CMND_TIMEZONE "\":%d}}"),
|
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_STATUS D_STATUS7_TIME "\":{\"" D_JSON_UTC_TIME "\":\"%s\",\"" D_JSON_LOCAL_TIME "\":\"%s\",\"" D_JSON_STARTDST "\":\"%s\",\"" D_JSON_ENDDST "\":\"%s\",\"" D_CMND_TIMEZONE "\":%s}}"),
|
||||||
GetTime(0).c_str(), GetTime(1).c_str(), GetTime(2).c_str(), GetTime(3).c_str(), Settings.timezone);
|
GetTime(0).c_str(), GetTime(1).c_str(), GetTime(2).c_str(), GetTime(3).c_str(), stemp);
|
||||||
#endif // USE_TIMERS and USE_SUNRISE
|
#endif // USE_TIMERS and USE_SUNRISE
|
||||||
MqttPublishPrefixTopic_P(option, PSTR(D_CMND_STATUS "7"));
|
MqttPublishPrefixTopic_P(option, PSTR(D_CMND_STATUS "7"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1624,6 +1624,7 @@ int WifiState()
|
||||||
|
|
||||||
void WifiConnect()
|
void WifiConnect()
|
||||||
{
|
{
|
||||||
|
WifiSetState(0);
|
||||||
WiFi.persistent(false); // Solve possible wifi init errors
|
WiFi.persistent(false); // Solve possible wifi init errors
|
||||||
wifi_status = 0;
|
wifi_status = 0;
|
||||||
wifi_retry_init = WIFI_RETRY_OFFSET_SEC + ((ESP.getChipId() & 0xF) * 2);
|
wifi_retry_init = WIFI_RETRY_OFFSET_SEC + ((ESP.getChipId() & 0xF) * 2);
|
||||||
|
@ -1881,6 +1882,7 @@ extern "C" {
|
||||||
#define SECS_PER_MIN ((uint32_t)(60UL))
|
#define SECS_PER_MIN ((uint32_t)(60UL))
|
||||||
#define SECS_PER_HOUR ((uint32_t)(3600UL))
|
#define SECS_PER_HOUR ((uint32_t)(3600UL))
|
||||||
#define SECS_PER_DAY ((uint32_t)(SECS_PER_HOUR * 24UL))
|
#define SECS_PER_DAY ((uint32_t)(SECS_PER_HOUR * 24UL))
|
||||||
|
#define MINS_PER_HOUR ((uint32_t)(60UL))
|
||||||
#define LEAP_YEAR(Y) (((1970+Y)>0) && !((1970+Y)%4) && (((1970+Y)%100) || !((1970+Y)%400)))
|
#define LEAP_YEAR(Y) (((1970+Y)>0) && !((1970+Y)%4) && (((1970+Y)%100) || !((1970+Y)%400)))
|
||||||
|
|
||||||
Ticker TickerRtc;
|
Ticker TickerRtc;
|
||||||
|
@ -1895,7 +1897,7 @@ uint32_t standard_time = 0;
|
||||||
uint32_t ntp_time = 0;
|
uint32_t ntp_time = 0;
|
||||||
uint32_t midnight = 1451602800;
|
uint32_t midnight = 1451602800;
|
||||||
uint32_t restart_time = 0;
|
uint32_t restart_time = 0;
|
||||||
int16_t time_timezone = 0; // Timezone * 10
|
int32_t time_zone = 0;
|
||||||
uint8_t midnight_now = 0;
|
uint8_t midnight_now = 0;
|
||||||
uint8_t ntp_sync_minute = 0;
|
uint8_t ntp_sync_minute = 0;
|
||||||
|
|
||||||
|
@ -1925,7 +1927,16 @@ String GetBuildDateAndTime()
|
||||||
}
|
}
|
||||||
int month = (strstr(kMonthNamesEnglish, smonth) -kMonthNamesEnglish) /3 +1;
|
int month = (strstr(kMonthNamesEnglish, smonth) -kMonthNamesEnglish) /3 +1;
|
||||||
snprintf_P(bdt, sizeof(bdt), PSTR("%d" D_YEAR_MONTH_SEPARATOR "%02d" D_MONTH_DAY_SEPARATOR "%02d" D_DATE_TIME_SEPARATOR "%s"), year, month, day, __TIME__);
|
snprintf_P(bdt, sizeof(bdt), PSTR("%d" D_YEAR_MONTH_SEPARATOR "%02d" D_MONTH_DAY_SEPARATOR "%02d" D_DATE_TIME_SEPARATOR "%s"), year, month, day, __TIME__);
|
||||||
return String(bdt);
|
return String(bdt); // 2017-03-07T11:08:02
|
||||||
|
}
|
||||||
|
|
||||||
|
String GetTimeZone()
|
||||||
|
{
|
||||||
|
char tz[7];
|
||||||
|
|
||||||
|
snprintf_P(tz, sizeof(tz), PSTR("%+03d:%02d"), time_zone / 60, abs(time_zone % 60));
|
||||||
|
|
||||||
|
return String(tz); // -03:45
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1970,10 +1981,27 @@ String GetDateAndTime(byte time_type)
|
||||||
|
|
||||||
if (Settings.flag3.time_append_timezone && (DT_LOCAL == time_type)) {
|
if (Settings.flag3.time_append_timezone && (DT_LOCAL == time_type)) {
|
||||||
// if (Settings.flag3.time_append_timezone && ((DT_LOCAL == time_type) || (DT_ENERGY == time_type))) {
|
// if (Settings.flag3.time_append_timezone && ((DT_LOCAL == time_type) || (DT_ENERGY == time_type))) {
|
||||||
snprintf_P(dt, sizeof(dt), PSTR("%s%+03d:%02d"), dt, time_timezone / 10, abs((time_timezone % 10) * 6)); // if timezone = +2:30 then time_timezone = 25
|
strncat(dt, GetTimeZone().c_str(), sizeof(dt));
|
||||||
}
|
}
|
||||||
|
|
||||||
return String(dt);
|
return String(dt); // 2017-03-07T11:08:02-07:00
|
||||||
|
}
|
||||||
|
|
||||||
|
String GetTime(int type)
|
||||||
|
{
|
||||||
|
/* type 1 - Local time
|
||||||
|
* type 2 - Daylight Savings time
|
||||||
|
* type 3 - Standard time
|
||||||
|
*/
|
||||||
|
char stime[25]; // Skip newline
|
||||||
|
|
||||||
|
uint32_t time = utc_time;
|
||||||
|
if (1 == type) time = local_time;
|
||||||
|
if (2 == type) time = daylight_saving_time;
|
||||||
|
if (3 == type) time = standard_time;
|
||||||
|
snprintf_P(stime, sizeof(stime), sntp_get_real_time(time));
|
||||||
|
|
||||||
|
return String(stime); // Thu Nov 01 11:41:02 2018
|
||||||
}
|
}
|
||||||
|
|
||||||
String GetUptime()
|
String GetUptime()
|
||||||
|
@ -1993,9 +2021,9 @@ String GetUptime()
|
||||||
|
|
||||||
// "128 14:35:44" - OpenVMS
|
// "128 14:35:44" - OpenVMS
|
||||||
// "128T14:35:44" - Tasmota
|
// "128T14:35:44" - Tasmota
|
||||||
snprintf_P(dt, sizeof(dt), PSTR("%dT%02d:%02d:%02d"),
|
snprintf_P(dt, sizeof(dt), PSTR("%dT%02d:%02d:%02d"), ut.days, ut.hour, ut.minute, ut.second);
|
||||||
ut.days, ut.hour, ut.minute, ut.second);
|
|
||||||
return String(dt);
|
return String(dt); // 128T14:35:44
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t GetMinutesUptime()
|
uint32_t GetMinutesUptime()
|
||||||
|
@ -2143,18 +2171,6 @@ uint32_t RuleToTime(TimeRule r, int yr)
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
String GetTime(int type)
|
|
||||||
{
|
|
||||||
char stime[25]; // Skip newline
|
|
||||||
|
|
||||||
uint32_t time = utc_time;
|
|
||||||
if (1 == type) time = local_time;
|
|
||||||
if (2 == type) time = daylight_saving_time;
|
|
||||||
if (3 == type) time = standard_time;
|
|
||||||
snprintf_P(stime, sizeof(stime), sntp_get_real_time(time));
|
|
||||||
return String(stime);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t LocalTime()
|
uint32_t LocalTime()
|
||||||
{
|
{
|
||||||
return local_time;
|
return local_time;
|
||||||
|
@ -2174,8 +2190,6 @@ boolean MidnightNow()
|
||||||
|
|
||||||
void RtcSecond()
|
void RtcSecond()
|
||||||
{
|
{
|
||||||
int32_t stdoffset;
|
|
||||||
int32_t dstoffset;
|
|
||||||
TIME_T tmpTime;
|
TIME_T tmpTime;
|
||||||
|
|
||||||
if ((ntp_sync_minute > 59) && (RtcTime.minute > 2)) ntp_sync_minute = 1; // If sync prepare for a new cycle
|
if ((ntp_sync_minute > 59) && (RtcTime.minute > 2)) ntp_sync_minute = 1; // If sync prepare for a new cycle
|
||||||
|
@ -2208,28 +2222,30 @@ void RtcSecond()
|
||||||
utc_time++;
|
utc_time++;
|
||||||
local_time = utc_time;
|
local_time = utc_time;
|
||||||
if (local_time > 1451602800) { // 2016-01-01
|
if (local_time > 1451602800) { // 2016-01-01
|
||||||
int32_t time_offset = Settings.timezone * SECS_PER_HOUR;
|
int16_t timezone_minutes = Settings.timezone_minutes;
|
||||||
|
if (Settings.timezone < 0) { timezone_minutes *= -1; }
|
||||||
|
time_zone = (Settings.timezone * SECS_PER_HOUR) + (timezone_minutes * SECS_PER_MIN);
|
||||||
if (99 == Settings.timezone) {
|
if (99 == Settings.timezone) {
|
||||||
dstoffset = Settings.toffset[1] * SECS_PER_MIN;
|
int32_t dstoffset = Settings.toffset[1] * SECS_PER_MIN;
|
||||||
stdoffset = Settings.toffset[0] * SECS_PER_MIN;
|
int32_t stdoffset = Settings.toffset[0] * SECS_PER_MIN;
|
||||||
if (Settings.tflag[1].hemis) {
|
if (Settings.tflag[1].hemis) {
|
||||||
// Southern hemisphere
|
// Southern hemisphere
|
||||||
if ((utc_time >= (standard_time - dstoffset)) && (utc_time < (daylight_saving_time - stdoffset))) {
|
if ((utc_time >= (standard_time - dstoffset)) && (utc_time < (daylight_saving_time - stdoffset))) {
|
||||||
time_offset = stdoffset; // Standard Time
|
time_zone = stdoffset; // Standard Time
|
||||||
} else {
|
} else {
|
||||||
time_offset = dstoffset; // Daylight Saving Time
|
time_zone = dstoffset; // Daylight Saving Time
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Northern hemisphere
|
// Northern hemisphere
|
||||||
if ((utc_time >= (daylight_saving_time - stdoffset)) && (utc_time < (standard_time - dstoffset))) {
|
if ((utc_time >= (daylight_saving_time - stdoffset)) && (utc_time < (standard_time - dstoffset))) {
|
||||||
time_offset = dstoffset; // Daylight Saving Time
|
time_zone = dstoffset; // Daylight Saving Time
|
||||||
} else {
|
} else {
|
||||||
time_offset = stdoffset; // Standard Time
|
time_zone = stdoffset; // Standard Time
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
local_time += time_offset;
|
local_time += time_zone;
|
||||||
time_timezone = time_offset / 360; // (SECS_PER_HOUR / 10) fails as it is defined as UL
|
time_zone /= 60;
|
||||||
if (!Settings.energy_kWhtotal_time) { Settings.energy_kWhtotal_time = local_time; }
|
if (!Settings.energy_kWhtotal_time) { Settings.energy_kWhtotal_time = local_time; }
|
||||||
}
|
}
|
||||||
BreakTime(local_time, RtcTime);
|
BreakTime(local_time, RtcTime);
|
||||||
|
|
|
@ -131,7 +131,7 @@ void DuskTillDawn(uint8_t *hour_up,uint8_t *minute_up, uint8_t *hour_down, uint8
|
||||||
// double Zeitzone = 0; //Weltzeit
|
// double Zeitzone = 0; //Weltzeit
|
||||||
// double Zeitzone = 1; //Winterzeit
|
// double Zeitzone = 1; //Winterzeit
|
||||||
// double Zeitzone = 2.0; //Sommerzeit
|
// double Zeitzone = 2.0; //Sommerzeit
|
||||||
double Zeitzone = ((double)time_timezone) / 10;
|
double Zeitzone = ((double)time_zone) / 60;
|
||||||
double Zeitgleichung = BerechneZeitgleichung(&DK, T);
|
double Zeitgleichung = BerechneZeitgleichung(&DK, T);
|
||||||
double Minuten = Zeitgleichung * 60.0;
|
double Minuten = Zeitgleichung * 60.0;
|
||||||
double Zeitdifferenz = 12.0*acos((sin(h) - sin(B)*sin(DK)) / (cos(B)*cos(DK)))/pi;
|
double Zeitdifferenz = 12.0*acos((sin(h) - sin(B)*sin(DK)) / (cos(B)*cos(DK)))/pi;
|
||||||
|
|
|
@ -226,22 +226,6 @@ void ShowFreeMem(const char *where)
|
||||||
|
|
||||||
/*********************************************************************************************\
|
/*********************************************************************************************\
|
||||||
* Function call to all xdrv
|
* Function call to all xdrv
|
||||||
*
|
|
||||||
* FUNC_PRE_INIT
|
|
||||||
* FUNC_INIT
|
|
||||||
* FUNC_LOOP
|
|
||||||
* FUNC_MQTT_SUBSCRIBE
|
|
||||||
* FUNC_MQTT_INIT
|
|
||||||
* return FUNC_MQTT_DATA
|
|
||||||
* return FUNC_COMMAND
|
|
||||||
* FUNC_SET_POWER
|
|
||||||
* FUNC_SHOW_SENSOR
|
|
||||||
* FUNC_EVERY_SECOND
|
|
||||||
* FUNC_EVERY_50_MSECOND
|
|
||||||
* FUNC_EVERY_100_MSECOND
|
|
||||||
* FUNC_EVERY_250_MSECOND
|
|
||||||
* FUNC_RULES_PROCESS
|
|
||||||
* FUNC_FREE_MEM
|
|
||||||
\*********************************************************************************************/
|
\*********************************************************************************************/
|
||||||
|
|
||||||
boolean XdrvCall(byte Function)
|
boolean XdrvCall(byte Function)
|
||||||
|
@ -249,9 +233,7 @@ boolean XdrvCall(byte Function)
|
||||||
boolean result = false;
|
boolean result = false;
|
||||||
|
|
||||||
for (byte x = 0; x < xdrv_present; x++) {
|
for (byte x = 0; x < xdrv_present; x++) {
|
||||||
if (!((WL_CONNECTED == WiFi.status()) && (static_cast<uint32_t>(WiFi.localIP()) != 0))) {
|
if (global_state.wifi_down) { delay(1); }
|
||||||
delay(1);
|
|
||||||
}
|
|
||||||
result = xdrv_func_ptr[x](Function);
|
result = xdrv_func_ptr[x](Function);
|
||||||
if (result) break;
|
if (result) break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -262,17 +262,6 @@ uint8_t xsns_index = 0;
|
||||||
|
|
||||||
/*********************************************************************************************\
|
/*********************************************************************************************\
|
||||||
* Function call to all xsns
|
* Function call to all xsns
|
||||||
*
|
|
||||||
* FUNC_INIT
|
|
||||||
* FUNC_PREP_BEFORE_TELEPERIOD
|
|
||||||
* FUNC_SAVE_BEFORE_RESTART
|
|
||||||
* FUNC_JSON_APPEND
|
|
||||||
* FUNC_WEB_APPEND
|
|
||||||
* return FUNC_COMMAND
|
|
||||||
* FUNC_EVERY_50_MSECOND
|
|
||||||
* FUNC_EVERY_100_MSECOND
|
|
||||||
* FUNC_EVERY_250_MSECOND
|
|
||||||
* FUNC_EVERY_SECOND
|
|
||||||
\*********************************************************************************************/
|
\*********************************************************************************************/
|
||||||
|
|
||||||
uint8_t XsnsPresent()
|
uint8_t XsnsPresent()
|
||||||
|
@ -284,9 +273,7 @@ boolean XsnsNextCall(byte Function)
|
||||||
{
|
{
|
||||||
xsns_index++;
|
xsns_index++;
|
||||||
if (xsns_index == xsns_present) xsns_index = 0;
|
if (xsns_index == xsns_present) xsns_index = 0;
|
||||||
if (!((WL_CONNECTED == WiFi.status()) && (static_cast<uint32_t>(WiFi.localIP()) != 0))) {
|
if (global_state.wifi_down) { delay(1); }
|
||||||
delay(1);
|
|
||||||
}
|
|
||||||
return xsns_func_ptr[xsns_index](Function);
|
return xsns_func_ptr[xsns_index](Function);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -303,9 +290,7 @@ boolean XsnsCall(byte Function)
|
||||||
#ifdef PROFILE_XSNS_SENSOR_EVERY_SECOND
|
#ifdef PROFILE_XSNS_SENSOR_EVERY_SECOND
|
||||||
uint32_t profile_start_millis = millis();
|
uint32_t profile_start_millis = millis();
|
||||||
#endif // PROFILE_XSNS_SENSOR_EVERY_SECOND
|
#endif // PROFILE_XSNS_SENSOR_EVERY_SECOND
|
||||||
if (!((WL_CONNECTED == WiFi.status()) && (static_cast<uint32_t>(WiFi.localIP()) != 0))) {
|
if (global_state.wifi_down) { delay(1); }
|
||||||
delay(1);
|
|
||||||
}
|
|
||||||
result = xsns_func_ptr[x](Function);
|
result = xsns_func_ptr[x](Function);
|
||||||
|
|
||||||
#ifdef PROFILE_XSNS_SENSOR_EVERY_SECOND
|
#ifdef PROFILE_XSNS_SENSOR_EVERY_SECOND
|
||||||
|
|
Loading…
Reference in New Issue