diff --git a/lib/Equitherm/Equitherm.h b/lib/Equitherm/Equitherm.h index 41cb046..c0dd13a 100644 --- a/lib/Equitherm/Equitherm.h +++ b/lib/Equitherm/Equitherm.h @@ -17,7 +17,7 @@ public: float Kk = 0.0; float Kt = 0.0; - Equitherm() {} + Equitherm() = default; // kn, kk, kt Equitherm(float new_kn, float new_kk, float new_kt) { diff --git a/lib/HomeAssistantHelper/HomeAssistantHelper.h b/lib/HomeAssistantHelper/HomeAssistantHelper.h index 99a5c7f..c27f028 100644 --- a/lib/HomeAssistantHelper/HomeAssistantHelper.h +++ b/lib/HomeAssistantHelper/HomeAssistantHelper.h @@ -6,7 +6,7 @@ class HomeAssistantHelper { public: typedef std::function PublishEventCallback; - HomeAssistantHelper() {} + HomeAssistantHelper() = default; void setWriter() { this->writer = nullptr; diff --git a/lib/WebServerHandlers/DynamicPage.h b/lib/WebServerHandlers/DynamicPage.h index c455d45..db91f04 100644 --- a/lib/WebServerHandlers/DynamicPage.h +++ b/lib/WebServerHandlers/DynamicPage.h @@ -177,7 +177,6 @@ public: } else { sizeArgName = length - size_t(argStartPos - currentBuf) - 1; - Serial.printf("sizeArgName: %d\r\n", sizeArgName); // send all content if arg len > space if (sizeArgName >= sizeof(argName)) { diff --git a/src/HaHelper.h b/src/HaHelper.h index c306a05..06eee2f 100644 --- a/src/HaHelper.h +++ b/src/HaHelper.h @@ -415,7 +415,7 @@ public: doc[FPSTR(HA_COMMAND_TOPIC)] = this->getDeviceTopic(F("settings/set")); doc[FPSTR(HA_COMMAND_TEMPLATE)] = F("{\"dhw\": {\"target\" : {{ value|int(0) }}}}"); doc[FPSTR(HA_MIN)] = minTemp; - doc[FPSTR(HA_MAX)] = maxTemp <= minTemp ? maxTemp : maxTemp; + doc[FPSTR(HA_MAX)] = maxTemp > minTemp ? maxTemp : minTemp; doc[FPSTR(HA_STEP)] = 1; doc[FPSTR(HA_MODE)] = "box"; doc[FPSTR(HA_EXPIRE_AFTER)] = 120; diff --git a/src/MainTask.h b/src/MainTask.h index 952b8f4..b0866f1 100644 --- a/src/MainTask.h +++ b/src/MainTask.h @@ -20,14 +20,11 @@ public: } ~MainTask() { - if (this->blinker != nullptr) { - delete this->blinker; - } + delete this->blinker; } protected: - const static byte REASON_PUMP_START_HEATING = 1; - const static byte REASON_PUMP_START_ANTISTUCK = 2; + enum class PumpStartReason {NONE, HEATING, ANTISTUCK}; Blinker* blinker = nullptr; bool blinkerInitialized = false; @@ -38,7 +35,7 @@ protected: unsigned long restartSignalTime = 0; bool heatingEnabled = false; unsigned long heatingDisabledTime = 0; - byte externalPumpStartReason; + PumpStartReason extPumpStartReason = PumpStartReason::NONE; unsigned long externalPumpStartTime = 0; bool telnetStarted = false; @@ -57,12 +54,12 @@ protected: void setup() { #ifdef LED_STATUS_PIN pinMode(LED_STATUS_PIN, OUTPUT); - digitalWrite(LED_STATUS_PIN, false); + digitalWrite(LED_STATUS_PIN, LOW); #endif if (settings.externalPump.pin != 0) { pinMode(settings.externalPump.pin, OUTPUT); - digitalWrite(settings.externalPump.pin, false); + digitalWrite(settings.externalPump.pin, LOW); } } @@ -250,14 +247,14 @@ protected: if (!this->blinker->running() && millis() - endBlinkTime >= 5000) { if (errCount == 0) { if (!ledOn) { - digitalWrite(ledPin, true); + digitalWrite(ledPin, HIGH); ledOn = true; } return; } else if (ledOn) { - digitalWrite(ledPin, false); + digitalWrite(ledPin, LOW); ledOn = false; endBlinkTime = millis(); return; @@ -289,7 +286,7 @@ protected: if (!settings.externalPump.use || settings.externalPump.pin == 0) { if (vars.states.externalPump) { if (settings.externalPump.pin != 0) { - digitalWrite(settings.externalPump.pin, false); + digitalWrite(settings.externalPump.pin, LOW); } vars.states.externalPump = false; @@ -302,16 +299,16 @@ protected: } if (vars.states.externalPump && !this->heatingEnabled) { - if (this->externalPumpStartReason == MainTask::REASON_PUMP_START_HEATING && millis() - this->heatingDisabledTime > (settings.externalPump.postCirculationTime * 1000u)) { - digitalWrite(settings.externalPump.pin, false); + if (this->extPumpStartReason == MainTask::PumpStartReason::HEATING && millis() - this->heatingDisabledTime > (settings.externalPump.postCirculationTime * 1000u)) { + digitalWrite(settings.externalPump.pin, LOW); vars.states.externalPump = false; vars.parameters.extPumpLastEnableTime = millis(); Log.sinfoln("EXTPUMP", F("Disabled: expired post circulation time")); - } else if (this->externalPumpStartReason == MainTask::REASON_PUMP_START_ANTISTUCK && millis() - this->externalPumpStartTime >= (settings.externalPump.antiStuckTime * 1000u)) { - digitalWrite(settings.externalPump.pin, false); + } else if (this->extPumpStartReason == MainTask::PumpStartReason::ANTISTUCK && millis() - this->externalPumpStartTime >= (settings.externalPump.antiStuckTime * 1000u)) { + digitalWrite(settings.externalPump.pin, LOW); vars.states.externalPump = false; vars.parameters.extPumpLastEnableTime = millis(); @@ -319,24 +316,24 @@ protected: Log.sinfoln("EXTPUMP", F("Disabled: expired anti stuck time")); } - } else if (vars.states.externalPump && this->heatingEnabled && this->externalPumpStartReason == MainTask::REASON_PUMP_START_ANTISTUCK) { - this->externalPumpStartReason = MainTask::REASON_PUMP_START_HEATING; + } else if (vars.states.externalPump && this->heatingEnabled && this->extPumpStartReason == MainTask::PumpStartReason::ANTISTUCK) { + this->extPumpStartReason = MainTask::PumpStartReason::HEATING; } else if (!vars.states.externalPump && this->heatingEnabled) { vars.states.externalPump = true; this->externalPumpStartTime = millis(); - this->externalPumpStartReason = MainTask::REASON_PUMP_START_HEATING; + this->extPumpStartReason = MainTask::PumpStartReason::HEATING; - digitalWrite(settings.externalPump.pin, true); + digitalWrite(settings.externalPump.pin, HIGH); Log.sinfoln("EXTPUMP", F("Enabled: heating on")); } else if (!vars.states.externalPump && (vars.parameters.extPumpLastEnableTime == 0 || millis() - vars.parameters.extPumpLastEnableTime >= (settings.externalPump.antiStuckInterval * 1000ul))) { vars.states.externalPump = true; this->externalPumpStartTime = millis(); - this->externalPumpStartReason = MainTask::REASON_PUMP_START_ANTISTUCK; + this->extPumpStartReason = MainTask::PumpStartReason::ANTISTUCK; - digitalWrite(settings.externalPump.pin, true); + digitalWrite(settings.externalPump.pin, HIGH); Log.sinfoln("EXTPUMP", F("Enabled: anti stuck")); } diff --git a/src/MqttTask.h b/src/MqttTask.h index 2b65023..5a1ea88 100644 --- a/src/MqttTask.h +++ b/src/MqttTask.h @@ -15,9 +15,7 @@ public: } ~MqttTask() { - if (this->haHelper != nullptr) { - delete this->haHelper; - } + delete this->haHelper; if (this->client != nullptr) { if (this->client->connected()) { @@ -27,13 +25,8 @@ public: delete this->client; } - if (this->writer != nullptr) { - delete this->writer; - } - - if (this->wifiClient != nullptr) { - delete this->wifiClient; - } + delete this->writer; + delete this->wifiClient; } void disable() { diff --git a/src/OpenThermTask.h b/src/OpenThermTask.h index 6873a66..5d53215 100644 --- a/src/OpenThermTask.h +++ b/src/OpenThermTask.h @@ -54,9 +54,9 @@ protected: #ifdef LED_OT_RX_PIN { - digitalWrite(LED_OT_RX_PIN, true); + digitalWrite(LED_OT_RX_PIN, HIGH); delayMicroseconds(2000); - digitalWrite(LED_OT_RX_PIN, false); + digitalWrite(LED_OT_RX_PIN, LOW); } #endif } @@ -71,7 +71,7 @@ protected: #ifdef LED_OT_RX_PIN pinMode(LED_OT_RX_PIN, OUTPUT); - digitalWrite(LED_OT_RX_PIN, false); + digitalWrite(LED_OT_RX_PIN, LOW); #endif } diff --git a/src/PortalTask.h b/src/PortalTask.h index 3b26744..8534493 100644 --- a/src/PortalTask.h +++ b/src/PortalTask.h @@ -28,9 +28,7 @@ public: } ~PortalTask() { - if (this->bufferedWebServer != nullptr) { - delete this->bufferedWebServer; - } + delete this->bufferedWebServer; if (this->webServer != nullptr) { this->stopWebServer(); diff --git a/src/RegulatorTask.h b/src/RegulatorTask.h index 8a93d94..150092d 100644 --- a/src/RegulatorTask.h +++ b/src/RegulatorTask.h @@ -159,7 +159,7 @@ protected: if (vars.parameters.heatingEnabled) { float pidResult = getPidTemp( settings.equitherm.enable ? (settings.pid.maxTemp * -1) : settings.pid.minTemp, - settings.equitherm.enable ? settings.pid.maxTemp : settings.pid.maxTemp + settings.pid.maxTemp ); if (fabs(prevPidResult - pidResult) + 0.0001 >= 0.5) { diff --git a/src/Settings.h b/src/Settings.h index a841d8c..9545ccf 100644 --- a/src/Settings.h +++ b/src/Settings.h @@ -110,7 +110,7 @@ struct Settings { // 1 - manual, 2 - ds18b20, 3 - ble byte type = 1; byte pin = SENSOR_INDOOR_PIN_DEFAULT; - char bleAddresss[18] = "00:00:00:00:00:00"; + uint8_t bleAddresss[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; float offset = 0.0f; } indoor; } sensors; @@ -166,17 +166,17 @@ struct Variables { unsigned long extPumpLastEnableTime = 0; byte dhwMinTemp = DEFAULT_DHW_MIN_TEMP; byte dhwMaxTemp = DEFAULT_DHW_MAX_TEMP; - byte maxModulation; - uint8_t slaveMemberId; - uint8_t slaveFlags; - uint8_t slaveType; - uint8_t slaveVersion; - float slaveOtVersion; - uint8_t masterMemberId; - uint8_t masterFlags; - uint8_t masterType; - uint8_t masterVersion; - float masterOtVersion; + byte maxModulation = 0; + uint8_t slaveMemberId = 0; + uint8_t slaveFlags = 0; + uint8_t slaveType = 0; + uint8_t slaveVersion = 0; + float slaveOtVersion = 0.0f; + uint8_t masterMemberId = 0; + uint8_t masterFlags = 0; + uint8_t masterType = 0; + uint8_t masterVersion = 0; + float masterOtVersion = 0; } parameters; struct { diff --git a/src/utils.h b/src/utils.h index 46c4522..1d71eb5 100644 --- a/src/utils.h +++ b/src/utils.h @@ -232,7 +232,7 @@ bool jsonToNetworkSettings(const JsonVariantConst src, NetworkSettings& dst) { } - // ap + // sta if (!src["sta"]["ssid"].isNull()) { String value = src["sta"]["ssid"].as(); @@ -329,7 +329,19 @@ void settingsToJson(const Settings& src, JsonVariant dst, bool safe = false) { dst["sensors"]["indoor"]["type"] = src.sensors.indoor.type; dst["sensors"]["indoor"]["pin"] = src.sensors.indoor.pin; - dst["sensors"]["indoor"]["bleAddresss"] = src.sensors.indoor.bleAddresss; + + char bleAddress[18]; + sprintf( + bleAddress, + "%02x:%02x:%02x:%02x:%02x:%02x", + src.sensors.indoor.bleAddresss[0], + src.sensors.indoor.bleAddresss[1], + src.sensors.indoor.bleAddresss[2], + src.sensors.indoor.bleAddresss[3], + src.sensors.indoor.bleAddresss[4], + src.sensors.indoor.bleAddresss[5] + ); + dst["sensors"]["indoor"]["bleAddresss"] = String(bleAddress); dst["sensors"]["indoor"]["offset"] = roundd(src.sensors.indoor.offset, 2); if (!safe) { @@ -486,7 +498,7 @@ bool jsonToSettings(const JsonVariantConst src, Settings& dst, bool safe = false if (!src["mqtt"]["port"].isNull()) { unsigned short value = src["mqtt"]["port"].as(); - if (value >= 0 && value <= 65536) { + if (value > 0 && value <= 65535) { dst.mqtt.port = value; changed = true; } @@ -821,9 +833,12 @@ bool jsonToSettings(const JsonVariantConst src, Settings& dst, bool safe = false #if USE_BLE if (!src["sensors"]["indoor"]["bleAddresss"].isNull()) { String value = src["sensors"]["indoor"]["bleAddresss"].as(); + int tmp[6]; + if(sscanf(value.c_str(), "%02x:%02x:%02x:%02x:%02x:%02x", &tmp[0], &tmp[1], &tmp[2], &tmp[3], &tmp[4], &tmp[5]) == 6) { + for(uint8_t i = 0; i < 6; i++) { + dst.sensors.indoor.bleAddresss[i] = (uint8_t) tmp[i]; + } - if (value.length() < sizeof(dst.sensors.indoor.bleAddresss)) { - strcpy(dst.sensors.indoor.bleAddresss, value.c_str()); changed = true; } }