dwd wx feature
This commit is contained in:
parent
ed4d0868e5
commit
9d4d145368
5 changed files with 18 additions and 25 deletions
|
@ -41,7 +41,7 @@
|
|||
|
||||
<label for="text">Text</label>
|
||||
<input type="text" id="text" name="text" placeholder="Enter text..." />
|
||||
|
||||
|
||||
<label for="numeric">Numeric 4-bit BCD</label>
|
||||
<input type="checkbox" name="numeric"/>
|
||||
|
||||
|
|
|
@ -20,8 +20,6 @@ private:
|
|||
bool _dirty;
|
||||
unsigned long lastCheck = 0;
|
||||
unsigned long checkInterval = 300000;
|
||||
String lastMessage;
|
||||
|
||||
String dwdwxData;
|
||||
// String dashboardUrl;
|
||||
String url;
|
||||
|
|
|
@ -9,7 +9,7 @@ DWDWXClient::DWDWXClient(WiFiClient *client)
|
|||
void DWDWXClient::begin(int intervalMinutes, float latitude, float longitude)
|
||||
{
|
||||
// this->message =
|
||||
this->url = "https://api.open-meteo.com/v1/forecast?latitude=";
|
||||
this->url = "http://api.open-meteo.com/v1/forecast?latitude=";
|
||||
this->url.concat(latitude);
|
||||
this->url.concat("&longitude=");
|
||||
this->url.concat(longitude);
|
||||
|
@ -42,7 +42,7 @@ bool DWDWXClient::check()
|
|||
{
|
||||
Serial.println("[DWDWX]: checking " + this->url);
|
||||
this->_http.begin(this->url);
|
||||
|
||||
this->_http.setConnectTimeout(15e3);
|
||||
int httpCode = this->_http.GET();
|
||||
|
||||
if (httpCode > 0)
|
||||
|
@ -55,11 +55,7 @@ bool DWDWXClient::check()
|
|||
}
|
||||
this->currentMessage = this->parseJSON(this->dwdwxData);
|
||||
Serial.println("[DWDWX]: Current Message = " + this->currentMessage);
|
||||
if (this->currentMessage.equals(this->lastMessage) == false)
|
||||
{
|
||||
this->_dirty = true;
|
||||
this->lastMessage = this->currentMessage;
|
||||
}
|
||||
this->_dirty = true;
|
||||
this->_http.end();
|
||||
return true;
|
||||
}
|
||||
|
@ -92,11 +88,11 @@ String DWDWXClient::parseJSON(String jsonData)
|
|||
doc[keyCurrent][keyWX_Temperature].as<float>(), doc[keyCurrent][keyWX_Humidity].as<int>(),
|
||||
doc[keyCurrent][keyWX_WindDir].as<float>(), doc[keyCurrent][keyWX_WindSpeed].as<float>(),
|
||||
doc[keyCurrent][keyWX_WindGusts].as<float>(), doc[keyCurrent][keyWX_PressureMSL].as<float>(),
|
||||
doc[keyCurrent][keyWX_CloudCover].as<float>()
|
||||
doc[keyCurrent][keyWX_CloudCover].as<int>()
|
||||
);
|
||||
wxRes.clear();
|
||||
wxRes.concat(wx_messageBuffer);
|
||||
delete []wx_messageBuffer;
|
||||
// delete []wx_messageBuffer;
|
||||
return wxRes;
|
||||
}
|
||||
return emptyString;
|
||||
|
|
|
@ -400,7 +400,7 @@ void setup_broadcasts()
|
|||
#ifdef SMART_POC_MODULE_DWD_WX
|
||||
// DWD
|
||||
if (globcfg.dwdwx_enable)
|
||||
dwdWXClient.begin(5, globcfg.dwdwx_lat, globcfg.dwdwx_lng);
|
||||
dwdWXClient.begin(60*6, globcfg.dwdwx_lat, globcfg.dwdwx_lng);
|
||||
#endif
|
||||
#ifdef SMART_POC_MODULE_MOWAS
|
||||
// MoWaS
|
||||
|
@ -453,8 +453,7 @@ void broadcast_loop()
|
|||
#endif
|
||||
char *messageText = new char[currentMessage.length() + 1]{};
|
||||
currentMessage.toCharArray(messageText, currentMessage.length() + 1);
|
||||
Serial.println(F("[DWD-WX] Transmitting Warning"));
|
||||
Serial.println(messageText);
|
||||
Serial.println(F("[DWD-WX] Transmitting"));
|
||||
transmitter.queuePage(globcfg.broadcast_ric, globcfg.dwdwx_fun + 0, messageText);
|
||||
delete []messageText;
|
||||
dwdWXClient.currentMessage.clear();
|
||||
|
|
|
@ -394,19 +394,19 @@ static void redirectHomeResponse(AsyncWebServerRequest *request, String location
|
|||
bool idle_enable;
|
||||
int idle_interval, idle_mode;
|
||||
cfg_startTransaction();
|
||||
if (request->hasArg("idle_enable")) {
|
||||
idle_enable = request->arg("idle_enable").equals("on");
|
||||
cfg_adjust("idle_enable", idle_enable);
|
||||
if (request->hasArg(cfgKeyIdleEnable.c_str())) {
|
||||
idle_enable = request->arg(cfgKeyIdleEnable).equals("on");
|
||||
cfg_adjust(cfgKeyIdleEnable, idle_enable);
|
||||
} else {
|
||||
cfg_adjust("idle_enable", false);
|
||||
cfg_adjust(cfgKeyIdleEnable, false);
|
||||
}
|
||||
if (request->hasArg("idle_interval")) {
|
||||
idle_interval = request->arg("idle_interval").toInt();
|
||||
cfg_adjust("idle_interval", idle_interval);
|
||||
if (request->hasArg(cfgKeyIdleInterval.c_str())) {
|
||||
idle_interval = request->arg(cfgKeyIdleInterval).toInt();
|
||||
cfg_adjust(cfgKeyIdleInterval, idle_interval);
|
||||
}
|
||||
if (request->hasArg("idle_mode")) {
|
||||
idle_mode = request->arg("idle_mode").toInt();
|
||||
cfg_adjust("idle_mode", idle_mode);
|
||||
if (request->hasArg(cfgKeyIdleMode.c_str())) {
|
||||
idle_mode = request->arg(cfgKeyIdleMode).toInt();
|
||||
cfg_adjust(cfgKeyIdleMode, idle_mode);
|
||||
}
|
||||
cfg_write();
|
||||
redirectHomeResponse(request, "/#idle");
|
||||
|
|
Loading…
Add table
Reference in a new issue