Added MultiRelay relay states to JSON state object
This commit is contained in:
parent
b8013a57e2
commit
94cf6424f5
@ -19,7 +19,7 @@ Examples
|
|||||||
## JSON API
|
## JSON API
|
||||||
You can switch relay state using the following JSON object transmitted to: `http://[device-ip]/json`
|
You can switch relay state using the following JSON object transmitted to: `http://[device-ip]/json`
|
||||||
|
|
||||||
Switch relay 0 on: `{MultiRelay:{relay:0,on:true}}`
|
Switch relay 0 on: `{"MultiRelay":{"relay":0,"on":true}}`
|
||||||
Switch relay4 3 & 4 off: `{"MultiRelay":[{"relay":2,"on":false},{"relay":3,"on":false}]}`
|
Switch relay4 3 & 4 off: `{"MultiRelay":[{"relay":2,"on":false},{"relay":3,"on":false}]}`
|
||||||
|
|
||||||
## MQTT API
|
## MQTT API
|
||||||
|
@ -429,8 +429,25 @@ class MultiRelay : public Usermod {
|
|||||||
* addToJsonState() can be used to add custom entries to the /json/state part of the JSON API (state object).
|
* addToJsonState() can be used to add custom entries to the /json/state part of the JSON API (state object).
|
||||||
* Values in the state object may be modified by connected clients
|
* Values in the state object may be modified by connected clients
|
||||||
*/
|
*/
|
||||||
//void addToJsonState(JsonObject &root) {
|
void addToJsonState(JsonObject &root) {
|
||||||
//}
|
if (!initDone || !enabled) return; // prevent crash on boot applyPreset()
|
||||||
|
JsonObject multiRelay = root[FPSTR(_name)];
|
||||||
|
if (multiRelay.isNull()) {
|
||||||
|
multiRelay = root.createNestedObject(FPSTR(_name));
|
||||||
|
}
|
||||||
|
#if MULTI_RELAY_MAX_RELAYS > 1
|
||||||
|
JsonArray rel_arr = multiRelay.createNestedArray(F("relays"));
|
||||||
|
for (uint8_t i=0; i<MULTI_RELAY_MAX_RELAYS; i++) {
|
||||||
|
if (_relay[i].pin < 0) continue;
|
||||||
|
JsonObject relay = rel_arr.createNestedObject();
|
||||||
|
relay[FPSTR(_relay_str)] = i;
|
||||||
|
relay[F("state")] = _relay[i].state;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
multiRelay[FPSTR(_relay_str)] = 0;
|
||||||
|
multiRelay[F("state")] = _relay[0].state;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* readFromJsonState() can be used to receive data clients send to the /json/state part of the JSON API (state object).
|
* readFromJsonState() can be used to receive data clients send to the /json/state part of the JSON API (state object).
|
||||||
|
Loading…
Reference in New Issue
Block a user