mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2026-09-13 13:44:10 +00:00
val_tpl for undefined: 'None'
This commit is contained in:
@@ -729,7 +729,7 @@ void AnalogSensor::publish_values(const bool force) {
|
|||||||
}
|
}
|
||||||
// don't bother with value template conditions if using Domoticz which doesn't fully support MQTT Discovery
|
// don't bother with value template conditions if using Domoticz which doesn't fully support MQTT Discovery
|
||||||
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
||||||
config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + "}}";
|
config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + " else 'None'}}";
|
||||||
} else {
|
} else {
|
||||||
config["val_tpl"] = (std::string) "{{" + val_obj + "}}";
|
config["val_tpl"] = (std::string) "{{" + val_obj + "}}";
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-3
@@ -1019,7 +1019,7 @@ bool Mqtt::publish_ha_sensor_config(uint8_t type, // EMSdev
|
|||||||
std::string topic_str(topic);
|
std::string topic_str(topic);
|
||||||
doc["def_ent_id"] = Helpers::toLower(topic_str.substr(0, topic_str.find("/"))) + "." + Helpers::toLower(uniq_id);
|
doc["def_ent_id"] = Helpers::toLower(topic_str.substr(0, topic_str.find("/"))) + "." + Helpers::toLower(uniq_id);
|
||||||
|
|
||||||
char sample_val[30] = "'None'"; // sample, correct(!) entity value, used only to prevent warning/error in HA if real value is not published yet
|
// char sample_val[30] = "'None'"; // sample, correct(!) entity value, used only to prevent warning/error in HA if real value is not published yet
|
||||||
|
|
||||||
// we add the command topic parameter for commands
|
// we add the command topic parameter for commands
|
||||||
if (has_cmd) {
|
if (has_cmd) {
|
||||||
@@ -1136,10 +1136,11 @@ bool Mqtt::publish_ha_sensor_config(uint8_t type, // EMSdev
|
|||||||
doc["val_tpl"] = val_tpl;
|
doc["val_tpl"] = val_tpl;
|
||||||
} else if (uom == DeviceValueUOM::UPTIME) {
|
} else if (uom == DeviceValueUOM::UPTIME) {
|
||||||
// uptime
|
// uptime
|
||||||
doc["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + " else 'None' }}";
|
doc["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + " else 'None'}}";
|
||||||
} else {
|
} else {
|
||||||
// default
|
// default
|
||||||
doc["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + " else " + sample_val + "}}";
|
// doc["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + " else " + sample_val + "}}";
|
||||||
|
doc["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + " else 'None'}}";
|
||||||
}
|
}
|
||||||
add_ha_avty_section(doc.as<JsonObject>(), stat_t, val_cond); // adds availability section
|
add_ha_avty_section(doc.as<JsonObject>(), stat_t, val_cond); // adds availability section
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+1
-1
@@ -229,7 +229,7 @@ void Shower::create_ha_discovery() {
|
|||||||
|
|
||||||
// don't bother with value template conditions if using Domoticz which doesn't fully support MQTT Discovery
|
// don't bother with value template conditions if using Domoticz which doesn't fully support MQTT Discovery
|
||||||
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
||||||
doc["val_tpl"] = "{{value_json.duration if value_json.duration is defined else 0}}";
|
doc["val_tpl"] = "{{value_json.duration if value_json.duration is defined else 'None'}}";
|
||||||
} else {
|
} else {
|
||||||
doc["val_tpl"] = "{{value_json.duration}}";
|
doc["val_tpl"] = "{{value_json.duration}}";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -543,7 +543,7 @@ void TemperatureSensor::publish_values(const bool force) {
|
|||||||
// for the value template, there's a problem still with Domoticz probably due to the special characters.
|
// for the value template, there's a problem still with Domoticz probably due to the special characters.
|
||||||
// See https://github.com/emsesp/EMS-ESP32/issues/1360
|
// See https://github.com/emsesp/EMS-ESP32/issues/1360
|
||||||
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
||||||
config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + " else -55}}";
|
config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + " else 'None'}}";
|
||||||
} else {
|
} else {
|
||||||
config["val_tpl"] = (std::string) "{{" + val_obj + "}}"; // omit value conditional Jinja2 template code
|
config["val_tpl"] = (std::string) "{{" + val_obj + "}}"; // omit value conditional Jinja2 template code
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -501,7 +501,7 @@ void WebCustomEntityService::publish(const bool force) {
|
|||||||
snprintf(val_cond, sizeof(val_cond), "%s is defined", val_obj);
|
snprintf(val_cond, sizeof(val_cond), "%s is defined", val_obj);
|
||||||
// don't bother with value template conditions if using Domoticz which doesn't fully support MQTT Discovery
|
// don't bother with value template conditions if using Domoticz which doesn't fully support MQTT Discovery
|
||||||
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
||||||
config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + "}}";
|
config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + " else 'None'}}";
|
||||||
} else {
|
} else {
|
||||||
config["val_tpl"] = (std::string) "{{" + val_obj + "}}";
|
config["val_tpl"] = (std::string) "{{" + val_obj + "}}";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -275,7 +275,7 @@ void WebSchedulerService::publish(const bool force) {
|
|||||||
|
|
||||||
char val_tpl[150];
|
char val_tpl[150];
|
||||||
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
||||||
snprintf(val_tpl, sizeof(val_tpl), "{{%s if %s}}", val_obj, val_cond);
|
snprintf(val_tpl, sizeof(val_tpl), "{{%s if %s else 'None'}}", val_obj, val_cond);
|
||||||
} else {
|
} else {
|
||||||
snprintf(val_tpl, sizeof(val_tpl), "{{%s}}", val_obj); // omit value conditional Jinja2 template code
|
snprintf(val_tpl, sizeof(val_tpl), "{{%s}}", val_obj); // omit value conditional Jinja2 template code
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user