mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 00:09:51 +03:00
added HA state_class https://github.com/emsesp/EMS-ESP/issues/776
This commit is contained in:
14
src/mqtt.cpp
14
src/mqtt.cpp
@@ -1018,6 +1018,8 @@ void Mqtt::publish_mqtt_ha_sensor(uint8_t type, // EMSdevice
|
|||||||
// normal HA sensor, not a boolean one
|
// normal HA sensor, not a boolean one
|
||||||
snprintf_P(topic, sizeof(topic), PSTR("sensor/%s/%s/config"), mqtt_base_.c_str(), uniq.c_str()); // topic
|
snprintf_P(topic, sizeof(topic), PSTR("sensor/%s/%s/config"), mqtt_base_.c_str(), uniq.c_str()); // topic
|
||||||
|
|
||||||
|
bool set_state_class = false;
|
||||||
|
|
||||||
// unit of measure and map the HA icon
|
// unit of measure and map the HA icon
|
||||||
if (uom != DeviceValueUOM::NONE) {
|
if (uom != DeviceValueUOM::NONE) {
|
||||||
doc["unit_of_meas"] = EMSdevice::uom_to_string(uom);
|
doc["unit_of_meas"] = EMSdevice::uom_to_string(uom);
|
||||||
@@ -1026,9 +1028,11 @@ void Mqtt::publish_mqtt_ha_sensor(uint8_t type, // EMSdevice
|
|||||||
switch (uom) {
|
switch (uom) {
|
||||||
case DeviceValueUOM::DEGREES:
|
case DeviceValueUOM::DEGREES:
|
||||||
doc["ic"] = F_(icondegrees);
|
doc["ic"] = F_(icondegrees);
|
||||||
|
set_state_class = true;
|
||||||
break;
|
break;
|
||||||
case DeviceValueUOM::PERCENT:
|
case DeviceValueUOM::PERCENT:
|
||||||
doc["ic"] = F_(iconpercent);
|
doc["ic"] = F_(iconpercent);
|
||||||
|
set_state_class = true;
|
||||||
break;
|
break;
|
||||||
case DeviceValueUOM::SECONDS:
|
case DeviceValueUOM::SECONDS:
|
||||||
case DeviceValueUOM::MINUTES:
|
case DeviceValueUOM::MINUTES:
|
||||||
@@ -1040,20 +1044,25 @@ void Mqtt::publish_mqtt_ha_sensor(uint8_t type, // EMSdevice
|
|||||||
break;
|
break;
|
||||||
case DeviceValueUOM::LMIN:
|
case DeviceValueUOM::LMIN:
|
||||||
doc["ic"] = F_(iconlmin);
|
doc["ic"] = F_(iconlmin);
|
||||||
|
set_state_class = true;
|
||||||
break;
|
break;
|
||||||
case DeviceValueUOM::WH:
|
case DeviceValueUOM::WH:
|
||||||
case DeviceValueUOM::KWH:
|
case DeviceValueUOM::KWH:
|
||||||
doc["ic"] = F_(iconkwh);
|
doc["ic"] = F_(iconkwh);
|
||||||
|
set_state_class = true;
|
||||||
break;
|
break;
|
||||||
case DeviceValueUOM::UA:
|
case DeviceValueUOM::UA:
|
||||||
doc["ic"] = F_(iconua);
|
doc["ic"] = F_(iconua);
|
||||||
|
set_state_class = true;
|
||||||
break;
|
break;
|
||||||
case DeviceValueUOM::BAR:
|
case DeviceValueUOM::BAR:
|
||||||
doc["ic"] = F_(iconbar);
|
doc["ic"] = F_(iconbar);
|
||||||
|
set_state_class = true;
|
||||||
break;
|
break;
|
||||||
case DeviceValueUOM::W:
|
case DeviceValueUOM::W:
|
||||||
case DeviceValueUOM::KW:
|
case DeviceValueUOM::KW:
|
||||||
doc["ic"] = F_(iconkw);
|
doc["ic"] = F_(iconkw);
|
||||||
|
set_state_class = true;
|
||||||
break;
|
break;
|
||||||
case DeviceValueUOM::DBM:
|
case DeviceValueUOM::DBM:
|
||||||
doc["ic"] = F_(icondbm);
|
doc["ic"] = F_(icondbm);
|
||||||
@@ -1065,6 +1074,11 @@ void Mqtt::publish_mqtt_ha_sensor(uint8_t type, // EMSdevice
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// see if we need to set the state_class
|
||||||
|
if (set_state_class) {
|
||||||
|
doc["state_class"] = F("measurement");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonObject dev = doc.createNestedObject("dev");
|
JsonObject dev = doc.createNestedObject("dev");
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
#define EMSESP_APP_VERSION "3.2.2b3"
|
#define EMSESP_APP_VERSION "3.2.2b4"
|
||||||
|
|||||||
Reference in New Issue
Block a user