OTA fixes + enable when network connected and switch pressed

This commit is contained in:
Emanuele Trabattoni
2025-08-06 09:49:46 +02:00
parent 5bff567863
commit e37aa58398
7 changed files with 102 additions and 74 deletions

View File

@@ -264,7 +264,7 @@ namespace commands
{
devices_t *dev = (devices_t *)pvTimerGetTimerID(th);
LOG_INFO("setIrrigation shutdown pump");
dev->io.digitalOutWrite(RO::IRR_PUMP, false);
dev->io.digitalOutWrite(RO::PUMP_IRR, false);
s_irrigationPumpTimer = NULL;
xTimerDelete(th, 0); // delete the timer on expiry
}
@@ -340,7 +340,7 @@ namespace commands
if (!s_irrigationPumpTimer) // Pump has not yet started
{
s_irrigationPumpTimer = xTimerCreate("pumpTimer", pdMS_TO_TICKS(pumpTime), false, (void *)&dev, resetWaterPump);
dev.io.digitalOutWrite(RO::IRR_PUMP, true);
dev.io.digitalOutWrite(RO::PUMP_IRR, true);
xTimerStart(s_irrigationPumpTimer, 0); // immediate start pump timer
LOG_INFO("setIrrigation pump time", pumpTime);
}
@@ -412,13 +412,15 @@ namespace commands
ArduinoJson::JsonDocument response;
response["cmd"] = "getInputStatus";
const std::vector<bool> inStatus(dev.io.digitalInReadPort());
if (inStatus.empty() || inStatus.size() != dev.io.getInNum()) {
if (inStatus.empty() || inStatus.size() != dev.io.getInNum())
{
response["values"] = "invalid";
return response;
}
uint8_t i(0);
for (auto s: inStatus){
const std::string k("DI"+std::to_string(i));
for (auto s : inStatus)
{
const std::string k("DI" + std::to_string(i));
response["values"][k.c_str()] = s;
}
LOG_INFO("getInputStatus ->", printBoolVec(inStatus).c_str());
@@ -429,13 +431,15 @@ namespace commands
ArduinoJson::JsonDocument response;
response["cmd"] = "getOutputStatus";
const std::vector<bool> inStatus(dev.io.digitalOutReadPort());
if (inStatus.empty() || inStatus.size() != dev.io.getOutNum()) {
if (inStatus.empty() || inStatus.size() != dev.io.getOutNum())
{
response["values"] = "invalid";
return response;
}
uint8_t i(0);
for (auto s: inStatus){
const std::string k("DO"+std::to_string(i));
for (auto s : inStatus)
{
const std::string k("DO" + std::to_string(i));
response["values"][k.c_str()] = s;
}
LOG_INFO("getOutputStatus ->", printBoolVec(inStatus).c_str());