AstroTimer in owmWeather, upd boards

This commit is contained in:
Mit4el
2023-10-20 21:56:41 +03:00
parent aaf91922d0
commit ffc4ac1ac1
4 changed files with 93 additions and 28 deletions

View File

@@ -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": "Без виджета"

View File

@@ -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>

View File

@@ -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": []
}
] ]
}, },

View File

@@ -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;
} }