fix naming

This commit is contained in:
Yurii
2023-11-22 23:04:34 +03:00
parent 18acf059fc
commit 44fdff61bd
4 changed files with 66 additions and 27 deletions

View File

@@ -1153,36 +1153,36 @@ public:
return publish(getTopic("button", "restart").c_str(), doc);
}
bool publishButtonFaultReset(bool enabledByDefault = true) {
bool publishButtonResetFault(bool enabledByDefault = true) {
StaticJsonDocument<1024> doc;
doc[FPSTR(HA_AVAILABILITY)][FPSTR(HA_TOPIC)] = devicePrefix + F("/state");
doc[FPSTR(HA_AVAILABILITY)][FPSTR(HA_VALUE_TEMPLATE)] = F("{{ iif(value_json.states.fault, 'online', 'offline') }}");
doc[FPSTR(HA_ENABLED_BY_DEFAULT)] = enabledByDefault;
doc[FPSTR(HA_UNIQUE_ID)] = devicePrefix + F("_fault_reset");
doc[FPSTR(HA_OBJECT_ID)] = devicePrefix + F("_fault_reset");
doc[FPSTR(HA_UNIQUE_ID)] = devicePrefix + F("_reset_fault");
doc[FPSTR(HA_OBJECT_ID)] = devicePrefix + F("_reset_fault");
doc[FPSTR(HA_ENTITY_CATEGORY)] = F("config");
doc[FPSTR(HA_DEVICE_CLASS)] = F("restart");
doc[FPSTR(HA_NAME)] = F("Fault reset");
doc[FPSTR(HA_NAME)] = F("Reset fault");
doc[FPSTR(HA_COMMAND_TOPIC)] = devicePrefix + F("/state/set");
doc[FPSTR(HA_COMMAND_TEMPLATE)] = F("{\"actions\": {\"faultReset\": true}}");
doc[FPSTR(HA_COMMAND_TEMPLATE)] = F("{\"actions\": {\"resetFault\": true}}");
return publish(getTopic("button", "fault_reset").c_str(), doc);
return publish(getTopic("button", "reset_fault").c_str(), doc);
}
bool publishButtonDiagnosticReset(bool enabledByDefault = true) {
bool publishButtonResetDiagnostic(bool enabledByDefault = true) {
StaticJsonDocument<1024> doc;
doc[FPSTR(HA_AVAILABILITY)][FPSTR(HA_TOPIC)] = devicePrefix + F("/state");
doc[FPSTR(HA_AVAILABILITY)][FPSTR(HA_VALUE_TEMPLATE)] = F("{{ iif(value_json.states.diagnostic, 'online', 'offline') }}");
doc[FPSTR(HA_ENABLED_BY_DEFAULT)] = enabledByDefault;
doc[FPSTR(HA_UNIQUE_ID)] = devicePrefix + F("_diagnostic_reset");
doc[FPSTR(HA_OBJECT_ID)] = devicePrefix + F("_diagnostic_reset");
doc[FPSTR(HA_UNIQUE_ID)] = devicePrefix + F("_reset_diagnostic");
doc[FPSTR(HA_OBJECT_ID)] = devicePrefix + F("_reset_diagnostic");
doc[FPSTR(HA_ENTITY_CATEGORY)] = F("config");
doc[FPSTR(HA_DEVICE_CLASS)] = F("restart");
doc[FPSTR(HA_NAME)] = F("Diagnostic reset");
doc[FPSTR(HA_NAME)] = F("Reset diagnostic");
doc[FPSTR(HA_COMMAND_TOPIC)] = devicePrefix + F("/state/set");
doc[FPSTR(HA_COMMAND_TEMPLATE)] = F("{\"actions\": {\"diagnosticReset\": true}}");
doc[FPSTR(HA_COMMAND_TEMPLATE)] = F("{\"actions\": {\"resetDiagnostic\": true}}");
return publish(getTopic("button", "diagnostic_reset").c_str(), doc);
return publish(getTopic("button", "reset_diagnostic").c_str(), doc);
}

View File

@@ -147,14 +147,14 @@ protected:
}
if (!doc["heating"]["maxTemp"].isNull() && doc["heating"]["maxTemp"].is<unsigned char>()) {
if (doc["heating"]["maxTemp"].as<unsigned char>() > 0 && doc["heating"]["maxTemp"].as<unsigned char>() <= 100 && doc["heating"]["maxTemp"].as<unsigned char>() > settings.heating.minTemp) {
if (doc["heating"]["maxTemp"].as<unsigned char>() > 0 && doc["heating"]["maxTemp"].as<unsigned char>() <= 100) {
settings.heating.maxTemp = doc["heating"]["maxTemp"].as<unsigned char>();
flag = true;
}
}
if (!doc["heating"]["minTemp"].isNull() && doc["heating"]["minTemp"].is<unsigned char>()) {
if (doc["heating"]["minTemp"].as<unsigned char>() >= 0 && doc["heating"]["minTemp"].as<unsigned char>() < 100 && doc["heating"]["minTemp"].as<unsigned char>() < settings.heating.maxTemp) {
if (doc["heating"]["minTemp"].as<unsigned char>() >= 0 && doc["heating"]["minTemp"].as<unsigned char>() < 100) {
settings.heating.minTemp = doc["heating"]["minTemp"].as<unsigned char>();
flag = true;
}
@@ -335,12 +335,12 @@ protected:
vars.actions.restart = true;
}
if (!doc["actions"]["faultReset"].isNull() && doc["actions"]["faultReset"].is<bool>() && doc["actions"]["faultReset"].as<bool>()) {
vars.actions.faultReset = true;
if (!doc["actions"]["resetFault"].isNull() && doc["actions"]["resetFault"].is<bool>() && doc["actions"]["resetFault"].as<bool>()) {
vars.actions.resetFault = true;
}
if (!doc["actions"]["diagnosticReset"].isNull() && doc["actions"]["diagnosticReset"].is<bool>() && doc["actions"]["diagnosticReset"].as<bool>()) {
vars.actions.diagnosticReset = true;
if (!doc["actions"]["resetDiagnostic"].isNull() && doc["actions"]["resetDiagnostic"].is<bool>() && doc["actions"]["resetDiagnostic"].as<bool>()) {
vars.actions.resetDiagnostic = true;
}
if (flag) {
@@ -441,8 +441,8 @@ protected:
// buttons
haHelper.publishButtonRestart(false);
haHelper.publishButtonFaultReset();
haHelper.publishButtonDiagnosticReset();
haHelper.publishButtonResetFault();
haHelper.publishButtonResetDiagnostic();
}
static bool publishNonStaticHaEntities(bool force = false) {
@@ -648,6 +648,28 @@ protected:
StaticJsonDocument<2048> doc;
DeserializationError dErr = deserializeJson(doc, (const byte*) payload, length);
if (dErr != DeserializationError::Ok || doc.isNull()) {
const char* errMsg;
switch (dErr.code()) {
case DeserializationError::EmptyInput:
case DeserializationError::IncompleteInput:
case DeserializationError::InvalidInput:
errMsg = "invalid input";
break;
case DeserializationError::NoMemory:
errMsg = "no memory";
break;
case DeserializationError::TooDeep:
errMsg = "too deep";
break;
default:
errMsg = "failed";
break;
}
Log.swarningln("MQTT.MSG", "No deserialization: %s", errMsg);
return;
}

View File

@@ -90,34 +90,51 @@ protected:
Log.straceln("OT", "Master type: %u, version: %u", vars.parameters.masterType, vars.parameters.masterVersion);
Log.straceln("OT", "Slave type: %u, version: %u", vars.parameters.slaveType, vars.parameters.slaveVersion);
// DHW min/max temp
if (settings.opentherm.dhwPresent) {
if (updateMinMaxDhwTemp()) {
if (settings.dhw.minTemp < vars.parameters.dhwMinTemp) {
settings.dhw.minTemp = vars.parameters.dhwMinTemp;
Log.snoticeln("OT.DHW", "Updated min temp: %d", settings.dhw.minTemp);
}
if (settings.dhw.maxTemp > vars.parameters.dhwMaxTemp) {
settings.dhw.maxTemp = vars.parameters.dhwMaxTemp;
Log.snoticeln("OT.DHW", "Updated max temp: %d", settings.dhw.maxTemp);
}
} else {
Log.swarningln("OT.DHW", "Failed get min/max temp");
}
if (settings.dhw.minTemp >= settings.dhw.maxTemp) {
settings.dhw.minTemp = 30;
settings.dhw.maxTemp = 60;
}
}
// Heating min/max temp
if (updateMinMaxHeatingTemp()) {
if (settings.heating.minTemp < vars.parameters.heatingMinTemp) {
settings.heating.minTemp = vars.parameters.heatingMinTemp;
Log.snoticeln("OT.HEATING", "Updated min temp: %d", settings.heating.minTemp);
}
if (settings.heating.maxTemp > vars.parameters.heatingMaxTemp) {
settings.heating.maxTemp = vars.parameters.heatingMaxTemp;
Log.snoticeln("OT.HEATING", "Updated max temp: %d", settings.heating.maxTemp);
}
} else {
Log.swarningln("OT.HEATING", "Failed get min/max temp");
}
if (settings.heating.minTemp >= settings.heating.maxTemp) {
settings.heating.minTemp = 20;
settings.heating.maxTemp = 90;
}
// force
setMaxHeatingTemp(settings.heating.maxTemp);
@@ -152,7 +169,7 @@ protected:
yield();
// fault reset action
if (vars.actions.faultReset) {
if (vars.actions.resetFault) {
if (vars.states.fault) {
if (ot->sendBoilerReset()) {
Log.sinfoln("OT", "Boiler fault reset successfully");
@@ -162,12 +179,12 @@ protected:
}
}
vars.actions.faultReset = false;
vars.actions.resetFault = false;
yield();
}
// diag reset action
if (vars.actions.diagnosticReset) {
if (vars.actions.resetDiagnostic) {
if (vars.states.diagnostic) {
if (ot->sendServiceReset()) {
Log.sinfoln("OT", "Boiler diagnostic reset successfully");
@@ -177,7 +194,7 @@ protected:
}
}
vars.actions.diagnosticReset = false;
vars.actions.resetDiagnostic = false;
yield();
}

View File

@@ -125,7 +125,7 @@ struct Variables {
struct {
bool restart = false;
bool faultReset = false;
bool diagnosticReset = false;
bool resetFault = false;
bool resetDiagnostic = false;
} actions;
} vars;