mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-23 02:36:35 +00:00
Add Berry mqtt publish rule processing
This commit is contained in:
parent
4be87d41ef
commit
26613aacb2
@ -14,6 +14,7 @@ All notable changes to this project will be documented in this file.
|
||||
- Berry `webserver.remove_route` to revert `webserver.on` (#23452)
|
||||
- Berry `compile` and `tasmota.compile` option to compile in local context (#23457)
|
||||
- Support for AP33772S USB PD Sink Controller as used in CentyLab RotoPD
|
||||
- Berry mqtt publish rule processing
|
||||
|
||||
### Breaking Changed
|
||||
|
||||
|
@ -127,6 +127,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
|
||||
- WebUI heap status [#23356](https://github.com/arendst/Tasmota/issues/23356)
|
||||
- Optional Wifi strength indicator in WebUI status line [#23352](https://github.com/arendst/Tasmota/issues/23352)
|
||||
- Wireguard VPN [#23347](https://github.com/arendst/Tasmota/issues/23347)
|
||||
- Berry mqtt publish rule processing
|
||||
- Berry support for `sortedmap` [#23441](https://github.com/arendst/Tasmota/issues/23441)
|
||||
- Berry `introspect.module` option to not cache module entry [#23451](https://github.com/arendst/Tasmota/issues/23451)
|
||||
- Berry `webserver.remove_route` to revert `webserver.on` [#23452](https://github.com/arendst/Tasmota/issues/23452)
|
||||
|
@ -869,14 +869,14 @@ String RuleLoadFile(const char* fname) {
|
||||
|
||||
/*******************************************************************************************/
|
||||
|
||||
bool RulesProcessEvent(const char *json_event)
|
||||
{
|
||||
bool RulesProcessEvent(const char *json_event) {
|
||||
#ifdef USE_BERRY
|
||||
// events are passed to Berry before Rules engine
|
||||
callBerryRule(json_event, Rules.teleperiod);
|
||||
#endif // USE_BERRY
|
||||
|
||||
if (Rules.busy) { return false; }
|
||||
if (!strlen(json_event)) { return true; }
|
||||
|
||||
Rules.busy = true;
|
||||
bool serviced = false;
|
||||
|
@ -63,6 +63,9 @@ extern "C" {
|
||||
be_pop(vm, be_top(vm)); // clear stack to avoid any indirect warning message in subsequent calls to Berry
|
||||
|
||||
MqttPublishPayload(topic, payload, is_binary ? len : 0 /*if string don't send length*/, retain);
|
||||
if (!is_binary) {
|
||||
XdrvRulesProcess(0, payload); // Process rules on berry publish
|
||||
}
|
||||
|
||||
be_return_nil(vm); // Return
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user