mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-22 18:56: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
|
#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
|
#if HASP_TARGET_PC
|
||||||
static void shell_command_thread(char* cmdline)
|
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 relay = doc.createNestedArray(F("power"));
|
||||||
JsonArray led = doc.createNestedArray(F("light"));
|
JsonArray led = doc.createNestedArray(F("light"));
|
||||||
JsonArray dimmer = doc.createNestedArray(F("dim"));
|
JsonArray dimmer = doc.createNestedArray(F("dim"));
|
||||||
|
JsonArray event = doc.createNestedArray(F("event"));
|
||||||
|
|
||||||
#if HASP_USE_GPIO > 0
|
#if HASP_USE_GPIO > 0
|
||||||
gpio_discovery(input, relay, led, dimmer);
|
gpio_discovery(input, relay, led, dimmer, event);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1601,7 +1637,7 @@ void dispatchSetup()
|
|||||||
dispatch_add_command(PSTR("sensors"), dispatch_send_sensordata);
|
dispatch_add_command(PSTR("sensors"), dispatch_send_sensordata);
|
||||||
dispatch_add_command(PSTR("theme"), dispatch_theme);
|
dispatch_add_command(PSTR("theme"), dispatch_theme);
|
||||||
dispatch_add_command(PSTR("run"), dispatch_run_script);
|
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
|
#if HASP_TARGET_PC
|
||||||
dispatch_add_command(PSTR("shell"), dispatch_shell_execute);
|
dispatch_add_command(PSTR("shell"), dispatch_shell_execute);
|
||||||
#endif
|
#endif
|
||||||
|
@ -835,7 +835,7 @@ hasp_gpio_config_t gpioGetPinConfig(uint8_t num)
|
|||||||
return gpioConfig[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] = "";
|
char description[20] = "";
|
||||||
|
|
||||||
@ -848,6 +848,10 @@ void gpio_discovery(JsonObject& input, JsonArray& relay, JsonArray& light, JsonA
|
|||||||
case hasp_gpio_type_t::POWER_RELAY:
|
case hasp_gpio_type_t::POWER_RELAY:
|
||||||
relay.add(gpioConfig[i].pin);
|
relay.add(gpioConfig[i].pin);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case BUTTON ... TOUCH:
|
||||||
|
event.add(gpioConfig[i].pin);
|
||||||
|
break;
|
||||||
|
|
||||||
case hasp_gpio_type_t::HASP_DAC:
|
case hasp_gpio_type_t::HASP_DAC:
|
||||||
case hasp_gpio_type_t::LED: // Don't include the moodlight
|
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);
|
dimmer.add(gpioConfig[i].pin);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// case BUTTON ... TOUCH:
|
||||||
case SWITCH:
|
case SWITCH:
|
||||||
case BUTTON ... TOUCH:
|
|
||||||
strcpy_P(description, PSTR("none"));
|
strcpy_P(description, PSTR("none"));
|
||||||
break;
|
break;
|
||||||
case BATTERY:
|
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_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 gpioSavePinConfig(uint8_t config_num, uint8_t pin, uint8_t type, uint8_t group, uint8_t pinfunc, bool inverted);
|
||||||
bool gpioIsSystemPin(uint8_t gpio);
|
bool gpioIsSystemPin(uint8_t gpio);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user