[ONOFF] ON OFF behavior fixes (#1828)
-Avoid plug restart in case of OverCurrent detection, introduced with central queue add -publish uselaststate value -if uselaststate is false we switch off the relay at restart
This commit is contained in:
1 parent
87cb2fecd2
commit
8c8dc6b6f6
3 files changed
+17
-11
No files matched your search
+13
-8
@@ -121,8 +121,11 @@ void setupONOFF() {
|
||||
# ifdef ACTUATOR_ONOFF_DEFAULT
|
||||
digitalWrite(ACTUATOR_ONOFF_GPIO, ACTUATOR_ONOFF_DEFAULT);
|
||||
# elif defined(ESP32)
|
||||
if (ONOFFConfig.useLastStateOnStart)
|
||||
if (ONOFFConfig.useLastStateOnStart) {
|
||||
digitalWrite(ACTUATOR_ONOFF_GPIO, ONOFFConfig.ONOFFState);
|
||||
} else {
|
||||
digitalWrite(ACTUATOR_ONOFF_GPIO, !ACTUATOR_ON);
|
||||
}
|
||||
# endif
|
||||
updatePowerIndicator();
|
||||
Log.trace(F("ZactuatorONOFF setup done" CR));
|
||||
@@ -194,6 +197,7 @@ void MQTTtoONOFF(char* topicOri, JsonObject& ONOFFdata) {
|
||||
|
||||
// Load config from json if available
|
||||
ONOFFConfig_fromJson(ONOFFdata);
|
||||
stateONOFFMeasures();
|
||||
}
|
||||
}
|
||||
# endif
|
||||
@@ -285,14 +289,12 @@ void ActuatorTrigger() {
|
||||
} else {
|
||||
PowerIndicatorOFF();
|
||||
}
|
||||
// Send the state of the switch to the broker so as to update the status
|
||||
StaticJsonDocument<64> jsonBuffer;
|
||||
JsonObject ONOFFdata = jsonBuffer.to<JsonObject>();
|
||||
ONOFFdata["cmd"] = (int)level;
|
||||
ONOFFdata["origin"] = subjectGTWONOFFtoMQTT;
|
||||
handleJsonEnqueue(ONOFFdata, QueueSemaphoreTimeOutTask);
|
||||
|
||||
# ifdef ESP32
|
||||
if (ONOFFConfig.useLastStateOnStart) {
|
||||
StaticJsonDocument<64> jsonBuffer;
|
||||
JsonObject ONOFFdata = jsonBuffer.to<JsonObject>();
|
||||
ONOFFdata["cmd"] = (int)level;
|
||||
ONOFFdata["save"] = true;
|
||||
ONOFFConfig_fromJson(ONOFFdata);
|
||||
}
|
||||
@@ -302,9 +304,12 @@ void ActuatorTrigger() {
|
||||
|
||||
void stateONOFFMeasures() {
|
||||
//Publish actuator state
|
||||
StaticJsonDocument<64> jsonBuffer;
|
||||
StaticJsonDocument<128> jsonBuffer;
|
||||
JsonObject ONOFFdata = jsonBuffer.to<JsonObject>();
|
||||
ONOFFdata["cmd"] = (int)digitalRead(ACTUATOR_ONOFF_GPIO);
|
||||
# ifdef ESP32
|
||||
ONOFFdata["uselaststate"] = ONOFFConfig.useLastStateOnStart;
|
||||
# endif
|
||||
ONOFFdata["origin"] = subjectGTWONOFFtoMQTT;
|
||||
handleJsonEnqueue(ONOFFdata, QueueSemaphoreTimeOutTask);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user