Allow publishing MQTT message even with action tag

This commit is contained in:
Kuba Szczodrzyński 2024-02-10 23:58:37 +01:00
parent d0d2bc1940
commit d77428db54
No known key found for this signature in database
GPG Key ID: 43037AC62A600562

View File

@ -52,13 +52,14 @@ static bool script_event_handler(const char* eventname, const char* action, cons
StaticJsonDocument<64> filter; StaticJsonDocument<64> filter;
filter[eventname] = true; filter[eventname] = true;
filter["pub"] = true;
DeserializationError jsonError = deserializeJson(doc, action, DeserializationOption::Filter(filter)); DeserializationError jsonError = deserializeJson(doc, action, DeserializationOption::Filter(filter));
if(!jsonError) { if(!jsonError) {
JsonVariant json = doc[eventname].as<JsonVariant>(); JsonVariant json = doc[eventname].as<JsonVariant>();
if(json.isNull()) { if(json.isNull()) {
LOG_DEBUG(TAG_EVENT, F("Skipping event: name=%s, data=%s"), eventname, data); LOG_DEBUG(TAG_EVENT, F("Skipping event: name=%s, data=%s"), eventname, data);
return true; goto end;
} else { } else {
LOG_DEBUG(TAG_EVENT, F("Handling event: name=%s, data=%s"), eventname, data); LOG_DEBUG(TAG_EVENT, F("Handling event: name=%s, data=%s"), eventname, data);
} }
@ -82,6 +83,9 @@ static bool script_event_handler(const char* eventname, const char* action, cons
} else { } else {
dispatch_json_error(TAG_EVENT, jsonError); dispatch_json_error(TAG_EVENT, jsonError);
} }
end:
if(doc["pub"].is<bool>()) return !doc["pub"].as<bool>();
return true; return true;
} }