get and set config via mqtt messages

This commit is contained in:
Emanuele Trabattoni
2025-07-25 14:37:38 +02:00
parent 31c6cd9606
commit 74a97a7dd6
7 changed files with 190 additions and 17 deletions

View File

@@ -6,11 +6,12 @@
#include <Arduino.h>
#include <ArduinoJson.h>
#include <config.h>
#include <devices.h>
namespace commands
{
enum RO
enum RO // relay output channels
{
P1,
P2,
@@ -28,7 +29,8 @@ namespace commands
AUX,
RETURN,
NC_3,
NC_4
NC_4,
RO_MAX // unused to detect invalid values
};
const std::map<const std::string, uint8_t> c_hpLimitsMap = {{"P1", RO::P1},
@@ -52,14 +54,46 @@ namespace commands
Commands() = delete;
public:
// CONFIG //
static const ArduinoJson::JsonDocument setConfig(const devices_t &dev, const ArduinoJson::JsonDocument &params);
static const ArduinoJson::JsonDocument getConfig(const devices_t &dev, const ArduinoJson::JsonDocument &params);
// CRONJOBS //
static const ArduinoJson::JsonDocument setCronjob(const devices_t &dev, const ArduinoJson::JsonDocument &params);
static const ArduinoJson::JsonDocument getCronjob(const devices_t &dev, const ArduinoJson::JsonDocument &params);
static const ArduinoJson::JsonDocument delCronjob(const devices_t &dev, const ArduinoJson::JsonDocument &params);
// SETTERS //
static const ArduinoJson::JsonDocument setHPlimit(const devices_t &dev, const ArduinoJson::JsonDocument &params);
static const ArduinoJson::JsonDocument getHPpower(const devices_t &dev, const ArduinoJson::JsonDocument &params);
static const ArduinoJson::JsonDocument setHeating(const devices_t &dev, const ArduinoJson::JsonDocument &params);
static const ArduinoJson::JsonDocument setIrrigation(const devices_t &dev, const ArduinoJson::JsonDocument &params);
// GETTERS //
static const ArduinoJson::JsonDocument getHPpower(const devices_t &dev, const ArduinoJson::JsonDocument &params);
static const ArduinoJson::JsonDocument getHPlimit(const devices_t &dev, const ArduinoJson::JsonDocument &params);
static const ArduinoJson::JsonDocument getInputStatus(const devices_t &dev, const ArduinoJson::JsonDocument &params);
static const ArduinoJson::JsonDocument getOutputStatus(const devices_t &dev, const ArduinoJson::JsonDocument &params);
static const ArduinoJson::JsonDocument getTemperatures(const devices_t &dev, const ArduinoJson::JsonDocument &params);
static const ArduinoJson::JsonDocument getWaterInfo(const devices_t &dev, const ArduinoJson::JsonDocument &params);
static const ArduinoJson::JsonDocument getTankInfo(const devices_t &dev, const ArduinoJson::JsonDocument &params);
static const ArduinoJson::JsonDocument getRainInfo(const devices_t &dev, const ArduinoJson::JsonDocument &params);
static const ArduinoJson::JsonDocument getIrrigation(const devices_t &dev, const ArduinoJson::JsonDocument &params);
};
static const std::map<const std::string, std::function<const ArduinoJson::JsonDocument(const devices_t &, const ArduinoJson::JsonDocument &)>> commandMap = {
{"setConfig", Commands::setConfig},
{"getConfig", Commands::getConfig},
{"setCronjob", Commands::setCronjob},
{"getCronjob", Commands::getCronjob},
{"delCronjob", Commands::delCronjob},
{"setHPlimit", Commands::setHPlimit},
{"setHeating", Commands::setHeating},
{"setIrrigation", Commands::setIrrigation},
{"getHPpower", Commands::getHPpower},
{"setHeating", Commands::setHeating}};
{"setHeating", Commands::setHeating},
};
}