3 Commits

Author SHA1 Message Date
Emanuele Trabattoni
6a6931bde0 added getRainInfo command 2025-08-29 22:19:06 +02:00
Emanuele Trabattoni
4aeffc76b0 fixed log on TCP reconnection 2025-08-29 22:18:49 +02:00
Emanuele Trabattoni
cde86a7f99 reenabled ota and logs to TCP ocnnection port 9876 2025-08-29 21:30:38 +02:00
5 changed files with 25 additions and 8 deletions

View File

@@ -23,8 +23,8 @@ build_type = release
board_build.filesystem = ffat
board_build.partitions = fatfs_partition.csv ; se stai usando uno custom
#upload_protocol = espota
#upload_port = 10.0.2.139
upload_protocol = espota
upload_port = 10.0.2.139
[env:esp32-s3-waveshare8-debug]

View File

@@ -397,7 +397,7 @@ namespace commands
LOG_ERROR("setRainOverride incorrect paramaters");
return response;
}
s_rainOverride = params["rainOverride"].as<std::string>() == "True" ? true : false;
s_rainOverride = params["status"].as<std::string>() == "True" ? true : false;
response["values"]["status"] = "valid";
LOG_INFO("setRainOverride [", s_rainOverride ? "True]" : "False]");
return response;
@@ -503,7 +503,10 @@ namespace commands
const ArduinoJson::JsonDocument Commands::getRainInfo(const devices_t &dev, const ArduinoJson::JsonDocument &params)
{
ArduinoJson::JsonDocument response;
LOG_WARN("Comand not yet implemented");
const auto rain = !dev.io.digitalInRead(DI::RAIN) ? "True" : "False";
response["cmd"] = "getRainInfo";
response["values"]["status"] = rain;
LOG_INFO("getRainInfo -> ", rain);
return response;
}
const ArduinoJson::JsonDocument Commands::getIrrigation(const devices_t &dev, const ArduinoJson::JsonDocument &params)
@@ -515,8 +518,10 @@ namespace commands
const ArduinoJson::JsonDocument Commands::getRainOverride(const devices_t &dev, const ArduinoJson::JsonDocument &params)
{
ArduinoJson::JsonDocument response;
const auto ovr = s_rainOverride ? "True" : "False";
response["cmd"] = "getRainOverride";
response["values"]["rainOverride"] = s_rainOverride ? "True" : "False";
response["values"]["rainOverride"] = ovr;
LOG_INFO("getRainOverride -> ", ovr);
return response;
}
const ArduinoJson::JsonDocument Commands::getTimeDrift(const devices_t &dev, const ArduinoJson::JsonDocument &params)
@@ -548,9 +553,7 @@ namespace commands
response["values"]["status"] = "valid";
response["values"]["drift"] = (uint32_t)timeDiff.count();
response["values"]["direction"] = "RTC is [" + std::string(direction) + "] NTP time";
LOG_INFO("getTimeDrift -> RTC is [", (int32_t)timeDiff.count(), "] sec, [", std::string(direction).c_str(), "] NTP time");
return response;
}
// GETTERS //

View File

@@ -100,6 +100,7 @@ namespace commands
{"setRainOverride", Commands::setRainOverride},
// GETTERS
{"getHPpower", Commands::getHPpower},
{"getRainInfo", Commands::getRainInfo},
{"getInputStatus", Commands::getInputStatus},
{"getOutputStatus", Commands::getOutputStatus},
{"getRainOverride", Commands::getRainOverride},

View File

@@ -237,7 +237,7 @@ const bool Cron::processEvents()
LOG_INFO("Cron skipping INACTIVE event [", eventName.c_str(), "] next execution time [", drivers::PCF85063::tm2str(eventParams.next).c_str(), "]");
break;
case CronStatus::SKIP:
LOG_INFO("Cron skipping 1 time ACTIVE event [", eventName.c_str(), "] next execution time [", drivers::PCF85063::tm2str(eventParams.next).c_str(), "]");
LOG_INFO("Cron skipping one time ACTIVE event [", eventName.c_str(), "] next execution time [", drivers::PCF85063::tm2str(eventParams.next).c_str(), "]");
eventParams.status = CronStatus::ACTIVE;
break;
default:

View File

@@ -36,6 +36,8 @@ void loop()
uint16_t k(0);
uint8_t sensors(0);
bool buzzing(false);
NetworkClient logStream;
LOG_ATTACH_STREAM(logStream);
//////////////// DEVICES ////////////////
// Declared here to keep devices local to the main loop otherwise the kernel crashes //
@@ -129,6 +131,7 @@ void loop()
if (!eth.isConnected())
{
led.setColor(led.COLOR_RED);
logStream.stop();
return;
}
if (io.digitalInRead(DI::OTAENABLE)) // Initialize OTA, BLUE
@@ -183,6 +186,16 @@ void loop()
{
const uint32_t start(millis());
drivers::PCF85063::datetime_t datetime;
if (!logStream.connected())
{
logStream.stop();
logStream.clearWriteError();
logStream.setConnectionTimeout(100);
logStream.connect(conf.m_mqttHost.c_str(), 9876);
LOG_WARN("TCP LogStream Connected");
}
rtc.readDatetime(datetime);
const std::string timeStr(drivers::PCF85063::datetime2str(datetime));
LOG_INFO("[", k++, "] Loop - Current Datetime UTC", timeStr.c_str());