mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 00:09:51 +03:00
feat: Call commands from the Web UI #18
This commit is contained in:
@@ -30,14 +30,15 @@ std::vector<Command::CmdFunction> Command::cmdfunctions_;
|
||||
// id may be used to represent a heating circuit for example, it's optional
|
||||
// returns false if error or not found
|
||||
bool Command::call(const uint8_t device_type, const char * cmd, const char * value, const int8_t id) {
|
||||
std::string dname = EMSdevice::device_type_2_device_name(device_type);
|
||||
|
||||
auto cf = find_command(device_type, cmd);
|
||||
if ((cf == nullptr) || (cf->cmdfunction_json_)) {
|
||||
LOG_WARNING(F("Command %s not found"), cmd);
|
||||
LOG_WARNING(F("Command %s on %s not found"), cmd, dname.c_str());
|
||||
return false; // command not found, or requires a json
|
||||
}
|
||||
|
||||
#ifdef EMSESP_DEBUG
|
||||
std::string dname = EMSdevice::device_type_2_device_name(device_type);
|
||||
if (value == nullptr) {
|
||||
LOG_DEBUG(F("[DEBUG] Calling %s command %s"), dname.c_str(), cmd);
|
||||
} else if (id == -1) {
|
||||
@@ -110,6 +111,7 @@ void Command::add_with_json(const uint8_t device_type, const __FlashStringHelper
|
||||
}
|
||||
|
||||
// see if a command exists for that device type
|
||||
// is not case sensitive
|
||||
Command::CmdFunction * Command::find_command(const uint8_t device_type, const char * cmd) {
|
||||
if ((cmd == nullptr) || (strlen(cmd) == 0) || (cmdfunctions_.empty())) {
|
||||
return nullptr;
|
||||
|
||||
Reference in New Issue
Block a user