From 70e577e29f16f1b6d4a06f979d033d472c6a3830 Mon Sep 17 00:00:00 2001 From: Yurii Date: Thu, 23 Nov 2023 05:11:58 +0300 Subject: [PATCH] states.faultCode moved to sensors.faultCode, states.rssi moved to sensors.rssi, states.uptime moved to sensors.uptime --- src/HaHelper.h | 8 +++++--- src/MainTask.h | 2 +- src/MqttTask.h | 6 +++--- src/OpenThermTask.h | 2 +- src/Settings.h | 4 ++-- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/HaHelper.h b/src/HaHelper.h index a74c8e2..e7989b3 100644 --- a/src/HaHelper.h +++ b/src/HaHelper.h @@ -864,13 +864,14 @@ public: doc[FPSTR(HA_NAME)] = F("Fault code"); doc[FPSTR(HA_ICON)] = F("mdi:chat-alert-outline"); doc[FPSTR(HA_STATE_TOPIC)] = devicePrefix + F("/state"); - doc[FPSTR(HA_VALUE_TEMPLATE)] = F("{{ \"E%02d\"|format(value_json.states.faultCode) }}"); + doc[FPSTR(HA_VALUE_TEMPLATE)] = F("{{ \"E%02d\"|format(value_json.sensors.faultCode) }}"); return publish(getTopic("sensor", "fault_code").c_str(), doc); } bool publishSensorRssi(bool enabledByDefault = true) { StaticJsonDocument<1536> doc; + doc[FPSTR(HA_AVAILABILITY)][FPSTR(HA_TOPIC)] = devicePrefix + F("/status"); doc[FPSTR(HA_ENABLED_BY_DEFAULT)] = enabledByDefault; doc[FPSTR(HA_UNIQUE_ID)] = devicePrefix + F("_rssi"); doc[FPSTR(HA_OBJECT_ID)] = devicePrefix + F("_rssi"); @@ -881,13 +882,14 @@ public: doc[FPSTR(HA_NAME)] = F("RSSI"); doc[FPSTR(HA_ICON)] = F("mdi:signal"); doc[FPSTR(HA_STATE_TOPIC)] = devicePrefix + F("/state"); - doc[FPSTR(HA_VALUE_TEMPLATE)] = F("{{ value_json.states.rssi|float(0)|round(1) }}"); + doc[FPSTR(HA_VALUE_TEMPLATE)] = F("{{ value_json.sensors.rssi|float(0)|round(1) }}"); return publish(getTopic("sensor", "rssi").c_str(), doc); } bool publishSensorUptime(bool enabledByDefault = true) { StaticJsonDocument<1536> doc; + doc[FPSTR(HA_AVAILABILITY)][FPSTR(HA_TOPIC)] = devicePrefix + F("/status"); doc[FPSTR(HA_ENABLED_BY_DEFAULT)] = enabledByDefault; doc[FPSTR(HA_UNIQUE_ID)] = devicePrefix + F("_uptime"); doc[FPSTR(HA_OBJECT_ID)] = devicePrefix + F("_uptime"); @@ -898,7 +900,7 @@ public: doc[FPSTR(HA_NAME)] = F("Uptime"); doc[FPSTR(HA_ICON)] = F("mdi:clock-start"); doc[FPSTR(HA_STATE_TOPIC)] = devicePrefix + F("/state"); - doc[FPSTR(HA_VALUE_TEMPLATE)] = F("{{ value_json.states.uptime|int(0) }}"); + doc[FPSTR(HA_VALUE_TEMPLATE)] = F("{{ value_json.sensors.uptime|int(0) }}"); return publish(getTopic("sensor", "uptime").c_str(), doc); } diff --git a/src/MainTask.h b/src/MainTask.h index a280e18..2ade73e 100644 --- a/src/MainTask.h +++ b/src/MainTask.h @@ -54,7 +54,7 @@ protected: if (WiFi.status() == WL_CONNECTED) { //timeClient.update(); - vars.states.rssi = WiFi.RSSI(); + vars.sensors.rssi = WiFi.RSSI(); if (!tMqtt->isEnabled() && strlen(settings.mqtt.server) > 0) { tMqtt->enable(); diff --git a/src/MqttTask.h b/src/MqttTask.h index 28d5535..417b152 100644 --- a/src/MqttTask.h +++ b/src/MqttTask.h @@ -595,13 +595,13 @@ protected: doc["states"]["flame"] = vars.states.flame; doc["states"]["fault"] = vars.states.fault; doc["states"]["diagnostic"] = vars.states.diagnostic; - doc["states"]["faultCode"] = vars.states.faultCode; - doc["states"]["rssi"] = vars.states.rssi; - doc["states"]["uptime"] = (unsigned long) (millis() / 1000); doc["sensors"]["modulation"] = vars.sensors.modulation; doc["sensors"]["pressure"] = vars.sensors.pressure; doc["sensors"]["dhwFlowRate"] = vars.sensors.dhwFlowRate; + doc["sensors"]["faultCode"] = vars.sensors.faultCode; + doc["sensors"]["rssi"] = vars.sensors.rssi; + doc["sensors"]["uptime"] = (unsigned long) (millis() / 1000); doc["temperatures"]["indoor"] = vars.temperatures.indoor; doc["temperatures"]["outdoor"] = vars.temperatures.outdoor; diff --git a/src/OpenThermTask.h b/src/OpenThermTask.h index 1c96c2e..a8b51a1 100644 --- a/src/OpenThermTask.h +++ b/src/OpenThermTask.h @@ -528,7 +528,7 @@ protected: return false; } - vars.states.faultCode = response & 0xFF; + vars.sensors.faultCode = response & 0xFF; return true; } diff --git a/src/Settings.h b/src/Settings.h index 14c07de..2177ff7 100644 --- a/src/Settings.h +++ b/src/Settings.h @@ -94,14 +94,14 @@ struct Variables { bool flame = false; bool fault = false; bool diagnostic = false; - byte faultCode = 0; - int8_t rssi = 0; } states; struct { float modulation = 0.0f; float pressure = 0.0f; float dhwFlowRate = 0.0f; + byte faultCode = 0; + int8_t rssi = 0; } sensors; struct {