Add rule support for single JSON value pair

Add rule support for single JSON value pair like {"SSerialReceived":"on"} by expanding it to {"SSerialReceived":{"Data":"on"}} allowing for trigger SSerialReceived#Data=on (#5638)
This commit is contained in:
Theo Arends 2019-05-15 16:31:13 +02:00
parent 68c076147f
commit 038079a865
3 changed files with 11 additions and 1 deletions

View File

@ -4,6 +4,7 @@
* Add support for Shelly 1PM Template {"NAME":"Shelly 1PM","GPIO":[56,0,0,0,82,134,0,0,0,0,0,21,0],"FLAG":2,"BASE":18} (#5716)
* Fix Sonoff Pow R2 / S31 invalid energy increments (#5789)
* Add device OverTemp (>73 Celsius) detection to any Energy Monitoring device with temperature sensor powering off all outputs
* Add rule support for single JSON value pair like {"SSerialReceived":"on"} by expanding it to {"SSerialReceived":{"Data":"on"}} allowing for trigger SSerialReceived#Data=on (#5638)
*
* 6.5.0.9 20190418
* Add command SetOption63 0/1 to disable relay state feedback scan at restart (#5594, #5663)

View File

@ -2358,7 +2358,7 @@ void SerialInput(void)
ResponseAppend_P(PSTR("\"}"));
}
MqttPublishPrefixTopic_P(RESULT_OR_TELE, PSTR(D_JSON_SERIALRECEIVED));
// XdrvRulesProcess();
XdrvRulesProcess();
serial_in_byte_counter = 0;
}
}

View File

@ -392,6 +392,15 @@ bool RulesProcessEvent(char *json_event)
#endif
String event_saved = json_event;
// json_event = {"INA219":{"Voltage":4.494,"Current":0.020,"Power":0.089}}
// json_event = {"System":{"Boot":1}}
// json_event = {"SerialReceived":"on"} - invalid but will be expanded to {"SerialReceived":{"Data":"on"}}
char *p = strchr(json_event, ':');
if ((p != NULL) && !(strchr(++p, ':'))) { // Find second colon
event_saved.replace(F(":"), F(":{\"Data\":"));
event_saved += F("}");
// event_saved = {"SerialReceived":{"Data":"on"}}
}
event_saved.toUpperCase();
//AddLog_P2(LOG_LEVEL_DEBUG, PSTR("RUL: Event %s"), event_saved.c_str());