mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 16:29:51 +03:00
domoticz warnings on custom entities - https://github.com/emsesp/EMS-ESP32/discussions/2408#discussioncomment-12896868
This commit is contained in:
@@ -594,7 +594,12 @@ void AnalogSensor::publish_values(const bool force) {
|
|||||||
if (sensor.type() == AnalogType::DIGITAL_IN || sensor.type() == AnalogType::DIGITAL_OUT) {
|
if (sensor.type() == AnalogType::DIGITAL_IN || sensor.type() == AnalogType::DIGITAL_OUT) {
|
||||||
Helpers::render_boolean(sample_val, false);
|
Helpers::render_boolean(sample_val, false);
|
||||||
}
|
}
|
||||||
config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + " else " + sample_val + "}}";
|
// don't bother with value template conditions if using Domoticz which doesn't fully support MQTT Discovery
|
||||||
|
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
||||||
|
config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + "}}";
|
||||||
|
} else {
|
||||||
|
config["val_tpl"] = (std::string) "{{" + val_obj + "}}";
|
||||||
|
}
|
||||||
|
|
||||||
char uniq_s[70];
|
char uniq_s[70];
|
||||||
if (Mqtt::entity_format() == Mqtt::entityFormat::MULTI_SHORT) {
|
if (Mqtt::entity_format() == Mqtt::entityFormat::MULTI_SHORT) {
|
||||||
|
|||||||
@@ -222,8 +222,15 @@ void Shower::set_shower_state(bool state, bool force) {
|
|||||||
snprintf(stat_t, sizeof(stat_t), "%s/shower_data", Mqtt::base().c_str());
|
snprintf(stat_t, sizeof(stat_t), "%s/shower_data", Mqtt::base().c_str());
|
||||||
doc["stat_t"] = stat_t;
|
doc["stat_t"] = stat_t;
|
||||||
|
|
||||||
doc["name"] = "Shower Duration";
|
doc["name"] = "Shower Duration";
|
||||||
doc["val_tpl"] = "{{value_json.duration if value_json.duration is defined else 0}}";
|
|
||||||
|
// don't bother with value template conditions if using Domoticz which doesn't fully support MQTT Discovery
|
||||||
|
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
||||||
|
doc["val_tpl"] = "{{value_json.duration if value_json.duration is defined else 0}}";
|
||||||
|
} else {
|
||||||
|
doc["val_tpl"] = "{{value_json.duration}}";
|
||||||
|
}
|
||||||
|
|
||||||
doc["unit_of_meas"] = "s";
|
doc["unit_of_meas"] = "s";
|
||||||
doc["stat_cla"] = "measurement";
|
doc["stat_cla"] = "measurement";
|
||||||
doc["dev_cla"] = "duration";
|
doc["dev_cla"] = "duration";
|
||||||
|
|||||||
@@ -1881,13 +1881,13 @@ void Boiler::process_UBAErrorMessage2(std::shared_ptr<const Telegram> telegram)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t date = 0;
|
uint32_t date = 0;
|
||||||
char code[sizeof(lastCode_)] = {0};
|
char code[sizeof(lastCode_)] = {0};
|
||||||
uint16_t codeNo = EMS_VALUE_INT16_NOTSET;
|
uint16_t codeNo = EMS_VALUE_INT16_NOTSET;
|
||||||
code[0] = telegram->message_data[5];
|
code[0] = telegram->message_data[5];
|
||||||
code[1] = telegram->message_data[6];
|
code[1] = telegram->message_data[6];
|
||||||
code[2] = telegram->message_data[7];
|
code[2] = telegram->message_data[7];
|
||||||
code[3] = 0;
|
code[3] = 0;
|
||||||
telegram->read_value(codeNo, 8);
|
telegram->read_value(codeNo, 8);
|
||||||
if (!std::isprint(code[0]) || !std::isprint(code[1]) || !std::isprint(code[2])) {
|
if (!std::isprint(code[0]) || !std::isprint(code[1]) || !std::isprint(code[2])) {
|
||||||
return;
|
return;
|
||||||
@@ -1947,13 +1947,13 @@ void Boiler::process_UBAErrorMessage3(std::shared_ptr<const Telegram> telegram)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t date = 0;
|
uint32_t date = 0;
|
||||||
char code[sizeof(lastCode_)] = {0};
|
char code[sizeof(lastCode_)] = {0};
|
||||||
uint16_t codeNo = EMS_VALUE_INT16_NOTSET;
|
uint16_t codeNo = EMS_VALUE_INT16_NOTSET;
|
||||||
code[0] = telegram->message_data[6];
|
code[0] = telegram->message_data[6];
|
||||||
code[1] = telegram->message_data[7];
|
code[1] = telegram->message_data[7];
|
||||||
code[2] = telegram->message_data[8];
|
code[2] = telegram->message_data[8];
|
||||||
code[3] = 0;
|
code[3] = 0;
|
||||||
telegram->read_value(codeNo, 9);
|
telegram->read_value(codeNo, 9);
|
||||||
if (!std::isprint(code[0]) || !std::isprint(code[1]) || !std::isprint(code[2])) {
|
if (!std::isprint(code[0]) || !std::isprint(code[1]) || !std::isprint(code[2])) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ class Boiler : public EMSdevice {
|
|||||||
char lastCode_[55]; // last error code
|
char lastCode_[55]; // last error code
|
||||||
char serviceCode_[4]; // 3 character status/service code
|
char serviceCode_[4]; // 3 character status/service code
|
||||||
uint16_t serviceCodeNumber_; // error/service code
|
uint16_t serviceCodeNumber_; // error/service code
|
||||||
uint32_t lastCodeDate_ = 0; // last code date
|
uint32_t lastCodeDate_ = 0; // last code date
|
||||||
uint8_t emergencyOps_;
|
uint8_t emergencyOps_;
|
||||||
uint8_t emergencyTemp_;
|
uint8_t emergencyTemp_;
|
||||||
uint16_t headertemp_; // see #1317
|
uint16_t headertemp_; // see #1317
|
||||||
|
|||||||
@@ -399,7 +399,12 @@ void WebCustomEntityService::publish(const bool force) {
|
|||||||
char val_cond[65];
|
char val_cond[65];
|
||||||
snprintf(val_obj, sizeof(val_obj), "value_json['%s']", entityItem.name.c_str());
|
snprintf(val_obj, sizeof(val_obj), "value_json['%s']", entityItem.name.c_str());
|
||||||
snprintf(val_cond, sizeof(val_cond), "%s is defined", val_obj);
|
snprintf(val_cond, sizeof(val_cond), "%s is defined", val_obj);
|
||||||
config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + "}}";
|
// don't bother with value template conditions if using Domoticz which doesn't fully support MQTT Discovery
|
||||||
|
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
||||||
|
config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + "}}";
|
||||||
|
} else {
|
||||||
|
config["val_tpl"] = (std::string) "{{" + val_obj + "}}";
|
||||||
|
}
|
||||||
|
|
||||||
char uniq_s[70];
|
char uniq_s[70];
|
||||||
snprintf(uniq_s, sizeof(uniq_s), "%s_%s", F_(custom), entityItem.name.c_str());
|
snprintf(uniq_s, sizeof(uniq_s), "%s_%s", F_(custom), entityItem.name.c_str());
|
||||||
|
|||||||
@@ -267,7 +267,12 @@ void WebSchedulerService::publish(const bool force) {
|
|||||||
char val_cond[65];
|
char val_cond[65];
|
||||||
snprintf(val_obj, sizeof(val_obj), "value_json['%s']", scheduleItem.name.c_str());
|
snprintf(val_obj, sizeof(val_obj), "value_json['%s']", scheduleItem.name.c_str());
|
||||||
snprintf(val_cond, sizeof(val_cond), "%s is defined", val_obj);
|
snprintf(val_cond, sizeof(val_cond), "%s is defined", val_obj);
|
||||||
config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + "}}";
|
|
||||||
|
if (Mqtt::discovery_type() == Mqtt::discoveryType::HOMEASSISTANT) {
|
||||||
|
config["val_tpl"] = (std::string) "{{" + val_obj + " if " + val_cond + "}}";
|
||||||
|
} else {
|
||||||
|
config["val_tpl"] = (std::string) "{{" + val_obj + "}}"; // omit value conditional Jinja2 template code
|
||||||
|
}
|
||||||
|
|
||||||
char uniq_s[70];
|
char uniq_s[70];
|
||||||
snprintf(uniq_s, sizeof(uniq_s), "%s_%s", F_(scheduler), scheduleItem.name.c_str());
|
snprintf(uniq_s, sizeof(uniq_s), "%s_%s", F_(scheduler), scheduleItem.name.c_str());
|
||||||
|
|||||||
Reference in New Issue
Block a user