From 4ba9f6f330accef126ffe0ee4dd9d3dca7b57e2d Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Tue, 14 Mar 2023 15:17:16 +0100 Subject: [PATCH] names for entityFormat and discoveryType --- src/analogsensor.cpp | 2 +- src/dallassensor.cpp | 2 +- src/mqtt.cpp | 10 +++++----- src/mqtt.h | 3 +++ src/shower.cpp | 2 +- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/analogsensor.cpp b/src/analogsensor.cpp index dbcdc61c3..0fc13f839 100644 --- a/src/analogsensor.cpp +++ b/src/analogsensor.cpp @@ -497,7 +497,7 @@ void AnalogSensor::publish_values(const bool force) { config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + " else " + sample_val + "}}"; char uniq_s[70]; - if (Mqtt::entity_format() == 2) { + if (Mqtt::entity_format() == Mqtt::entitiyFormat::MULTI_SHORT) { snprintf(uniq_s, sizeof(uniq_s), "%s_analogsensor_%02d", Mqtt::basename().c_str(), sensor.gpio()); } else { snprintf(uniq_s, sizeof(uniq_s), "analogsensor_%02d", sensor.gpio()); diff --git a/src/dallassensor.cpp b/src/dallassensor.cpp index 8c11c0fe8..e10a9f7f5 100644 --- a/src/dallassensor.cpp +++ b/src/dallassensor.cpp @@ -528,7 +528,7 @@ void DallasSensor::publish_values(const bool force) { config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + " else -55}}"; char uniq_s[70]; - if (Mqtt::entity_format() == 2) { + if (Mqtt::entity_format() == Mqtt::entitiyFormat::MULTI_SHORT) { snprintf(uniq_s, sizeof(uniq_s), "%s_dallassensor_%s", Mqtt::basename().c_str(), sensor.id().c_str()); } else { snprintf(uniq_s, sizeof(uniq_s), "dallassensor_%s", sensor.id().c_str()); diff --git a/src/mqtt.cpp b/src/mqtt.cpp index 22356b6da..3280bc2bc 100644 --- a/src/mqtt.cpp +++ b/src/mqtt.cpp @@ -612,7 +612,7 @@ void Mqtt::ha_status() { StaticJsonDocument doc; char uniq[70]; - if (Mqtt::entity_format() == 2) { + if (Mqtt::entity_format() == entitiyFormat::MULTI_SHORT) { snprintf(uniq, sizeof(uniq), "%s_system_status", mqtt_basename_.c_str()); } else { strcpy(uniq, "system_status"); @@ -998,10 +998,10 @@ void Mqtt::publish_ha_sensor_config(uint8_t type, // EMSdev // build unique identifier also used as object_id which also becomes the Entity ID in HA char uniq_id[80]; - if (Mqtt::entity_format() == 2) { + if (Mqtt::entity_format() == entitiyFormat::MULTI_SHORT) { // prefix base name to each uniq_id and use the shortname snprintf(uniq_id, sizeof(uniq_id), "%s_%s_%s", mqtt_basename_.c_str(), device_name, entity_with_tag); - } else if (Mqtt::entity_format() == 1) { + } else if (Mqtt::entity_format() == entitiyFormat::SINGLE_SHORT) { // shortname, no mqtt base. This is the default version. snprintf(uniq_id, sizeof(uniq_id), "%s_%s", device_name, entity_with_tag); } else { @@ -1035,7 +1035,7 @@ void Mqtt::publish_ha_sensor_config(uint8_t type, // EMSdev case DeviceValueType::SHORT: case DeviceValueType::USHORT: case DeviceValueType::ULONG: - if (discovery_type() == 0) { + if (discovery_type() == discoveryType::HOMEASSISTANT) { // Home Assistant // number - https://www.home-assistant.io/integrations/number.mqtt snprintf(topic, sizeof(topic), "number/%s", config_topic); @@ -1368,7 +1368,7 @@ void Mqtt::publish_ha_climate_config(const uint8_t tag, const bool has_roomtemp, snprintf(name_s, sizeof(name_s), "Hc%d", hc_num); - if (Mqtt::entity_format() == 2) { + if (Mqtt::entity_format() == entitiyFormat::MULTI_SHORT) { snprintf(uniq_id_s, sizeof(uniq_id_s), "%s_thermostat_hc%d", mqtt_basename_.c_str(), hc_num); // add basename } else { snprintf(uniq_id_s, sizeof(uniq_id_s), "thermostat_hc%d", hc_num); // backward compatible with v3.4 diff --git a/src/mqtt.h b/src/mqtt.h index 19db5c866..c1be14df7 100644 --- a/src/mqtt.h +++ b/src/mqtt.h @@ -53,6 +53,9 @@ struct MqttMessage { class Mqtt { public: + enum discoveryType : uint8_t { HOMEASSISTANT, DOMOTICZ }; + enum entitiyFormat : uint8_t { SINGLE_LONG, SINGLE_SHORT, MULTI_SHORT }; + void loop(); void start(); diff --git a/src/shower.cpp b/src/shower.cpp index d5ad3af12..847801d13 100644 --- a/src/shower.cpp +++ b/src/shower.cpp @@ -155,7 +155,7 @@ void Shower::set_shower_state(bool state, bool force) { doc["name"] = "Shower Active"; char str[70]; - if (Mqtt::entity_format() == 2) { + if (Mqtt::entity_format() == Mqtt::entitiyFormat::MULTI_SHORT) { snprintf(str, sizeof(str), "%s_shower_active", Mqtt::basename().c_str()); } else { snprintf(str, sizeof(str), "shower_active"); // v3.4 compatible