50 lines
1.8 KiB
C++
50 lines
1.8 KiB
C++
#include <commands.h>
|
|
|
|
namespace commands
|
|
{
|
|
const ArduinoJson::JsonDocument Commands::setHPlimit(const devices_t &dev, const ArduinoJson::JsonDocument ¶ms)
|
|
{
|
|
ArduinoJson::JsonDocument response;
|
|
if (!params["level"].is<std::string>())
|
|
{
|
|
LOG_ERROR("setHPlimit incorrect parameters");
|
|
return response;
|
|
}
|
|
const auto level = params["level"].as<std::string>();
|
|
if (!c_hpLimitsMap.contains(level))
|
|
{
|
|
LOG_ERROR("setHPlimit invalid level", level.c_str());
|
|
return response;
|
|
}
|
|
for (auto k : c_hpLimitsMap)
|
|
{
|
|
if (level == k.first && level != "UNLIMITED")
|
|
dev.io.digitalOutWrite(k.second, true);
|
|
else
|
|
dev.io.digitalOutWrite(k.second, false);
|
|
}
|
|
LOG_INFO("setHPlimit -> level", level.c_str());
|
|
return response;
|
|
}
|
|
|
|
const ArduinoJson::JsonDocument Commands::getHPpower(const devices_t &dev, const ArduinoJson::JsonDocument ¶ms)
|
|
{
|
|
ArduinoJson::JsonDocument response;
|
|
const auto pinfo = dev.seneca.getAll();
|
|
response["cmd"] = "getHPpower";
|
|
auto values = response["values"].to<JsonObject>();
|
|
values["power"] = pinfo.pAct;
|
|
values["current"] = pinfo.a;
|
|
values["voltage"] = pinfo.v;
|
|
values["energy"] = pinfo.whPar;
|
|
LOG_INFO("getHPpower -> power", pinfo.pAct, "current", pinfo.a, "voltage", pinfo.v, "energy", pinfo.whPar);
|
|
return response;
|
|
}
|
|
|
|
const ArduinoJson::JsonDocument Commands::setHeating(const devices_t &dev, const ArduinoJson::JsonDocument ¶ms)
|
|
{
|
|
ArduinoJson::JsonDocument response;
|
|
LOG_WARN("setHeating not yet implemented");
|
|
return response;
|
|
}
|
|
} |