mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
AstroTimer in owmWeather, upd boards
This commit is contained in:
@@ -307,7 +307,21 @@
|
|||||||
"widget": "anydata",
|
"widget": "anydata",
|
||||||
"after": "ltr",
|
"after": "ltr",
|
||||||
"icon": "speedometer"
|
"icon": "speedometer"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "anydataSpeed",
|
||||||
|
"label": "мерты в секунду",
|
||||||
|
"widget": "anydata",
|
||||||
|
"after": "m/s",
|
||||||
|
"icon": "speedometer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "anydataСorner",
|
||||||
|
"label": "угол градусов",
|
||||||
|
"widget": "anydata",
|
||||||
|
"after": "°",
|
||||||
|
"icon": "speedometer"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "nil",
|
"name": "nil",
|
||||||
"label": "Без виджета"
|
"label": "Без виджета"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[platformio]
|
[platformio]
|
||||||
default_envs = esp32s3_16mb
|
default_envs = esp8266_4mb
|
||||||
data_dir = data_svelte
|
data_dir = data_svelte
|
||||||
|
|
||||||
[common_env_data]
|
[common_env_data]
|
||||||
@@ -733,8 +733,24 @@ build_src_filter =
|
|||||||
[env:esp32c3m_4mb_fromitems]
|
[env:esp32c3m_4mb_fromitems]
|
||||||
lib_deps =
|
lib_deps =
|
||||||
build_src_filter =
|
build_src_filter =
|
||||||
|
+<modules/virtual/Cron>
|
||||||
|
+<modules/virtual/Loging>
|
||||||
|
+<modules/virtual/LogingDaily>
|
||||||
|
+<modules/virtual/owmWeather>
|
||||||
|
+<modules/virtual/Timer>
|
||||||
|
+<modules/virtual/Variable>
|
||||||
|
+<modules/virtual/VariableColor>
|
||||||
|
+<modules/virtual/VButton>
|
||||||
|
|
||||||
[env:esp32s3_16mb_fromitems]
|
[env:esp32s3_16mb_fromitems]
|
||||||
lib_deps =
|
lib_deps =
|
||||||
build_src_filter =
|
build_src_filter =
|
||||||
|
+<modules/virtual/Cron>
|
||||||
|
+<modules/virtual/Loging>
|
||||||
|
+<modules/virtual/LogingDaily>
|
||||||
|
+<modules/virtual/owmWeather>
|
||||||
|
+<modules/virtual/Timer>
|
||||||
|
+<modules/virtual/Variable>
|
||||||
|
+<modules/virtual/VariableColor>
|
||||||
|
+<modules/virtual/VButton>
|
||||||
|
|
||||||
|
|||||||
@@ -65,14 +65,19 @@
|
|||||||
"funcInfo": [
|
"funcInfo": [
|
||||||
{
|
{
|
||||||
"name": "sunrise",
|
"name": "sunrise",
|
||||||
"descr": "Функция астрологического таймера, можно задать время до/после рассвета, вернётся количество минут до сработки, когда 0 - значит время подошло или больше установленной разницы",
|
"descr": "Функция астрологического таймера, можно задать время до/после рассвета, вернётся количество минут до сработки или после (-). После заката будет возвращать +999 (Значение <=0 будет от сработки и до заката), когда 0 - значит время подошло",
|
||||||
"params": ["количество минут до(-)/после(+) рассвета"]
|
"params": ["количество минут до(-)/после(+) рассвета"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sunset",
|
"name": "sunset",
|
||||||
"descr": "Функция астрологического таймера, можно задать время до/после заката, вернётся количество минут до сработки, когда 0 - значит время подошло или больше установленной разницы",
|
"descr": "Функция астрологического таймера, можно задать время до/после заката, вернётся количество минут до сработки или после (-), когда 0 - значит время подошло",
|
||||||
"params": ["количество минут до(-)/после(+) заката"]
|
"params": ["количество минут до(-)/после(+) заката"]
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
"name": "night",
|
||||||
|
"descr": "Вернет 1 если ночь (уже закат) и 0 если день (рассвет)",
|
||||||
|
"params": []
|
||||||
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -203,48 +203,78 @@ public:
|
|||||||
// getWeather();
|
// getWeather();
|
||||||
doByInterval();
|
doByInterval();
|
||||||
}
|
}
|
||||||
|
else if (command == "night")
|
||||||
|
{
|
||||||
|
if (_sunsetTime == 0 || !isTimeSynch)
|
||||||
|
{
|
||||||
|
SerialPrint("i", ("AstroTimer"), "Not TimeSynch or Weather data server");
|
||||||
|
value.valD = 0;
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
long dt_cur = getSystemTime() + _tzone;
|
||||||
|
// Если светло
|
||||||
|
if (dt_cur >= _sunriseTime && dt_cur < _sunsetTime)
|
||||||
|
value.valD = 0;
|
||||||
|
else // если темно
|
||||||
|
value.valD = 1;
|
||||||
|
if (_debug)
|
||||||
|
{
|
||||||
|
SerialPrint("i", ("AstroTimer"), "night: " + String(value.valD));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
else if (command == "sunset")
|
else if (command == "sunset")
|
||||||
{
|
{
|
||||||
|
if (_sunsetTime == 0 || !isTimeSynch)
|
||||||
|
{
|
||||||
|
SerialPrint("i", ("AstroTimer"), "Not TimeSynch or Weather data server");
|
||||||
|
value.valD = 999;
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
long dt_cur = getSystemTime() + _tzone;
|
||||||
if (param.size())
|
if (param.size())
|
||||||
{
|
{
|
||||||
if (param[0].isDecimal)
|
if (param[0].isDecimal)
|
||||||
if ((unsigned long)(getSystemTime() + _tzone) >= (unsigned long)(_sunsetTime + (param[0].valD * 60)))
|
{
|
||||||
value.valD = 0;
|
long dt_set = (_sunsetTime + (int)(param[0].valD * 60));
|
||||||
else
|
long dt = dt_set - dt_cur;
|
||||||
|
value.valD = dt / 60;
|
||||||
|
if (_debug)
|
||||||
{
|
{
|
||||||
if (_debug)
|
SerialPrint("i", ("AstroTimer"), "set: " + getTimeDotFormatedFromUnix(dt_set) + " time: " + getTimeDotFormatedFromUnix(dt_cur) + " sunset: " + getTimeDotFormatedFromUnix(_sunsetTime) + " Dt: " + String(param[0].valD) + " diff: " + String(value.valD));
|
||||||
{
|
|
||||||
SerialPrint("i", ("owmWeather"), "set sunset astroTimer: " + String(_sunsetTime + param[0].valD * 60) + " date: " + getTimeDotFormatedFromUnix(_sunsetTime + param[0].valD * 60));
|
|
||||||
}
|
|
||||||
value.valD = (float)(((_sunsetTime + (int)(param[0].valD * 60)) - getSystemTime() + _tzone) / 60);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (_debug)
|
|
||||||
{
|
|
||||||
SerialPrint("i", ("owmWeather"), "time: " + String(getSystemTime() + _tzone) + " sunset: " + String(_sunsetTime) + " Dt: " + String(param[0].valD) + " diff: " + String(value.valD));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (command == "sunrise")
|
else if (command == "sunrise")
|
||||||
{
|
{
|
||||||
|
if (_sunriseTime == 0 || !isTimeSynch)
|
||||||
|
{
|
||||||
|
SerialPrint("i", ("AstroTimer"), "Not TimeSynch or Weather data server");
|
||||||
|
value.valD = 999;
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
long dt_cur = getSystemTime() + _tzone;
|
||||||
|
if (dt_cur >= _sunsetTime)
|
||||||
|
{
|
||||||
|
SerialPrint("i", ("AstroTimer"), "УЖЕ Закат, таймер не считаем time: " + getTimeDotFormatedFromUnix(dt_cur) + " diff: " + String(value.valD));
|
||||||
|
value.valD = 999;
|
||||||
|
return value;
|
||||||
|
}
|
||||||
if (param.size())
|
if (param.size())
|
||||||
{
|
{
|
||||||
if ((unsigned long)(getSystemTime() + _tzone) >= (unsigned long)(_sunriseTime + (param[0].valD * 60)))
|
if (param[0].isDecimal)
|
||||||
value.valD = 0;
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
|
long dt_set = (_sunriseTime + (int)(param[0].valD * 60));
|
||||||
|
long dt = dt_set - dt_cur;
|
||||||
|
value.valD = dt / 60;
|
||||||
if (_debug)
|
if (_debug)
|
||||||
{
|
{
|
||||||
SerialPrint("i", ("owmWeather"), "set sunrise astroTimer: " + String(_sunriseTime + param[0].valD * 60) + " date: " + getTimeDotFormatedFromUnix(_sunriseTime + param[0].valD * 60));
|
SerialPrint("i", ("AstroTimer"), "set: " + getTimeDotFormatedFromUnix(dt_set) + " time: " + getTimeDotFormatedFromUnix(dt_cur) + " sunrise: " + getTimeDotFormatedFromUnix(_sunriseTime) + " Dt: " + String(param[0].valD) + " diff: " + String(value.valD));
|
||||||
}
|
}
|
||||||
value.valD = (float)(((_sunriseTime + (int)(param[0].valD * 60)) - getSystemTime() + _tzone) / 60);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (_debug)
|
|
||||||
{
|
|
||||||
SerialPrint("i", ("owmWeather"), "time: " + String(getSystemTime() + _tzone) + " sunrise: " + String(_sunriseTime) + " Dt: " + String(param[0].valD) + " diff: " + String(value.valD));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user