mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-21 10:16:34 +00:00
Use "event" group for pushbuttons in discovery {
This commit is contained in:
parent
2b083d376f
commit
348852476d
@ -868,10 +868,45 @@ void dispatch_run_script(const char*, const char* payload, uint8_t source)
|
||||
#endif
|
||||
}
|
||||
|
||||
void dispatch_dir(const char*, const char* payload, uint8_t source)
|
||||
/*
|
||||
void dispatch_fs(const char*, const char* payload, uint8_t source)
|
||||
{
|
||||
filesystem_list_path(payload);
|
||||
StaticJsonDocument<512> json;
|
||||
|
||||
// Note: Deserialization needs to be (const char *) so the objects WILL be copied
|
||||
// this uses more memory but otherwise the mqtt receive buffer can get overwritten by the send buffer !!
|
||||
DeserializationError jsonError = deserializeJson(json, payload);
|
||||
// json.shrinkToFit();
|
||||
|
||||
if(!jsonError && json.is<JsonObject>()) { // Only JsonObject is valid
|
||||
JsonVariant action;
|
||||
|
||||
const char* cmd = json["cmd"].as<const char*>();
|
||||
const char* src = json["src"].as<const char*>();
|
||||
const char* dst = json["dst"].as<const char*>();
|
||||
int res = 0;
|
||||
|
||||
if(String(cmd) == "stat") {
|
||||
res = filesystem_vfs_file_exists(src);
|
||||
}
|
||||
if(String(cmd) == "rm") {
|
||||
res = filesystem_vfs_delete_file(src);
|
||||
}
|
||||
if(String(cmd) == "cp") {
|
||||
res = filesystem_vfs_copy_file(src, dst);
|
||||
}
|
||||
if(String(cmd) == "ls") {
|
||||
filesystem_list_path(src);
|
||||
}
|
||||
|
||||
if(res) {
|
||||
LOG_WARNING(TAG_MSGR, "Succes");
|
||||
} else {
|
||||
LOG_WARNING(TAG_MSGR, "Failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
#if HASP_TARGET_PC
|
||||
static void shell_command_thread(char* cmdline)
|
||||
@ -1327,9 +1362,10 @@ void dispatch_get_discovery_data(JsonDocument& doc)
|
||||
JsonArray relay = doc.createNestedArray(F("power"));
|
||||
JsonArray led = doc.createNestedArray(F("light"));
|
||||
JsonArray dimmer = doc.createNestedArray(F("dim"));
|
||||
JsonArray event = doc.createNestedArray(F("event"));
|
||||
|
||||
#if HASP_USE_GPIO > 0
|
||||
gpio_discovery(input, relay, led, dimmer);
|
||||
gpio_discovery(input, relay, led, dimmer, event);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -1601,7 +1637,7 @@ void dispatchSetup()
|
||||
dispatch_add_command(PSTR("sensors"), dispatch_send_sensordata);
|
||||
dispatch_add_command(PSTR("theme"), dispatch_theme);
|
||||
dispatch_add_command(PSTR("run"), dispatch_run_script);
|
||||
dispatch_add_command(PSTR("dir"), dispatch_dir);
|
||||
// dispatch_add_command(PSTR("fs"), dispatch_fs);
|
||||
#if HASP_TARGET_PC
|
||||
dispatch_add_command(PSTR("shell"), dispatch_shell_execute);
|
||||
#endif
|
||||
|
@ -835,7 +835,7 @@ hasp_gpio_config_t gpioGetPinConfig(uint8_t num)
|
||||
return gpioConfig[num];
|
||||
}
|
||||
|
||||
void gpio_discovery(JsonObject& input, JsonArray& relay, JsonArray& light, JsonArray& dimmer)
|
||||
void gpio_discovery(JsonObject& input, JsonArray& relay, JsonArray& light, JsonArray& dimmer, JsonArray& event)
|
||||
{
|
||||
char description[20] = "";
|
||||
|
||||
@ -848,6 +848,10 @@ void gpio_discovery(JsonObject& input, JsonArray& relay, JsonArray& light, JsonA
|
||||
case hasp_gpio_type_t::POWER_RELAY:
|
||||
relay.add(gpioConfig[i].pin);
|
||||
break;
|
||||
|
||||
case BUTTON ... TOUCH:
|
||||
event.add(gpioConfig[i].pin);
|
||||
break;
|
||||
|
||||
case hasp_gpio_type_t::HASP_DAC:
|
||||
case hasp_gpio_type_t::LED: // Don't include the moodlight
|
||||
@ -857,8 +861,8 @@ void gpio_discovery(JsonObject& input, JsonArray& relay, JsonArray& light, JsonA
|
||||
dimmer.add(gpioConfig[i].pin);
|
||||
break;
|
||||
|
||||
// case BUTTON ... TOUCH:
|
||||
case SWITCH:
|
||||
case BUTTON ... TOUCH:
|
||||
strcpy_P(description, PSTR("none"));
|
||||
break;
|
||||
case BATTERY:
|
||||
|
@ -47,7 +47,7 @@ bool gpio_set_pin_state(uint8_t pin, bool power, int32_t val);
|
||||
|
||||
void gpio_set_moodlight(moodlight_t& moodlight);
|
||||
|
||||
void gpio_discovery(JsonObject& input, JsonArray& relay, JsonArray& light, JsonArray& dimmer);
|
||||
void gpio_discovery(JsonObject& input, JsonArray& relay, JsonArray& light, JsonArray& dimmer, JsonArray& event);
|
||||
|
||||
bool gpioSavePinConfig(uint8_t config_num, uint8_t pin, uint8_t type, uint8_t group, uint8_t pinfunc, bool inverted);
|
||||
bool gpioIsSystemPin(uint8_t gpio);
|
||||
|
Loading…
x
Reference in New Issue
Block a user