use hostname for HA MQTT configs - #549

This commit is contained in:
proddy
2020-10-11 13:31:20 +02:00
parent ab3e4731a4
commit 97c948b623
5 changed files with 34 additions and 20 deletions

View File

@@ -86,7 +86,11 @@ void Boiler::register_mqtt_ha_config() {
doc["name"] = F("Service Code");
doc["uniq_id"] = F("boiler");
doc["ic"] = F("mdi:home-thermometer-outline");
doc["stat_t"] = F("ems-esp/boiler_data");
char stat_t[50];
snprintf_P(stat_t, sizeof(stat_t), PSTR("%s/boiler_data"), System::hostname().c_str());
doc["stat_t"] = stat_t;
doc["val_tpl"] = F("{{value_json.serviceCode}}");
JsonObject dev = doc.createNestedObject("dev");
dev["name"] = F("EMS-ESP Boiler");

View File

@@ -83,7 +83,7 @@ void Solar::device_info_web(JsonArray & root) {
if (Helpers::hasValue(pumpWorkMin_)) {
JsonObject dataElement = root.createNestedObject();
dataElement["n"] = F_(pumpWorkMin);
dataElement["n"] = F_(pumpWorkMin);
char time_str[60];
snprintf_P(time_str, sizeof(time_str), PSTR("%d days %d hours %d minutes"), pumpWorkMin_ / 1440, (pumpWorkMin_ % 1440) / 60, pumpWorkMin_ % 60);
dataElement["v"] = time_str;
@@ -143,13 +143,17 @@ void Solar::publish_values() {
void Solar::register_mqtt_ha_config() {
// Create the Master device
StaticJsonDocument<EMSESP_MAX_JSON_SIZE_MEDIUM> doc;
doc["name"] = "EMS-ESP";
doc["uniq_id"] = "solar";
doc["ic"] = "mdi:home-thermometer-outline";
doc["stat_t"] = "ems-esp/solar_data";
doc["val_tpl"] = "{{value_json.solarPump}}";
doc["name"] = F("EMS-ESP");
doc["uniq_id"] = F("solar");
doc["ic"] = F("mdi:home-thermometer-outline");
char stat_t[50];
snprintf_P(stat_t, sizeof(stat_t), PSTR("%s/solar_data"), System::hostname().c_str());
doc["stat_t"] = stat_t;
doc["val_tpl"] = F("{{value_json.solarPump}}");
JsonObject dev = doc.createNestedObject("dev");
dev["name"] = "EMS-ESP Solar";
dev["name"] = F("EMS-ESP Solar");
dev["sw"] = EMSESP_APP_VERSION;
dev["mf"] = this->brand_to_string();
dev["mdl"] = this->name();

View File

@@ -722,13 +722,13 @@ void Thermostat::register_mqtt_ha_config(uint8_t hc_num) {
snprintf_P(str2, sizeof(str2), PSTR("thermostat_hc%d"), hc_num);
doc["uniq_id"] = str2;
doc["~"] = System::hostname(); // ems-esp
char str3[40];
snprintf_P(str3, sizeof(str3), PSTR("~/%s"), str2);
doc["mode_cmd_t"] = str3;
doc["temp_cmd_t"] = str3;
doc["uniq_id"] = str2;
doc["~"] = F("ems-esp");
doc["mode_cmd_t"] = str3;
doc["temp_cmd_t"] = str3;
doc["mode_stat_t"] = F("~/thermostat_data");
doc["temp_stat_t"] = F("~/thermostat_data");
doc["curr_temp_t"] = F("~/thermostat_data");