#include namespace commands { const ArduinoJson::JsonDocument Commands::setHPlimit(const devices_t &dev, const ArduinoJson::JsonDocument ¶ms) { ArduinoJson::JsonDocument response; if (!params["level"].is()) { LOG_ERROR("setHPlimit incorrect parameters"); return response; } const auto level = params["level"].as(); 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(); 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; } }