fix shower on/off when using non-default MQTT booleans

This commit is contained in:
proddy
2021-07-05 21:44:38 +02:00
parent bb1602f179
commit 75795ab1e9

View File

@@ -118,8 +118,11 @@ void Shower::send_mqtt_stat(bool state, bool force) {
doc["uniq_id"] = FJSON("shower_active"); doc["uniq_id"] = FJSON("shower_active");
doc["~"] = Mqtt::base(); // default ems-esp doc["~"] = Mqtt::base(); // default ems-esp
doc["stat_t"] = FJSON("~/shower_active"); doc["stat_t"] = FJSON("~/shower_active");
JsonObject dev = doc.createNestedObject("dev"); char result[10];
JsonArray ids = dev.createNestedArray("ids"); doc[F("payload_on")] = Helpers::render_boolean(result, true);
doc[F("payload_off")] = Helpers::render_boolean(result, false);
JsonObject dev = doc.createNestedObject("dev");
JsonArray ids = dev.createNestedArray("ids");
ids.add("ems-esp"); ids.add("ems-esp");
char topic[Mqtt::MQTT_TOPIC_MAX_SIZE]; char topic[Mqtt::MQTT_TOPIC_MAX_SIZE];
@@ -151,19 +154,9 @@ void Shower::shower_alert_start() {
void Shower::publish_values() { void Shower::publish_values() {
StaticJsonDocument<EMSESP_JSON_SIZE_SMALL> doc; StaticJsonDocument<EMSESP_JSON_SIZE_SMALL> doc;
if (Mqtt::bool_format() == BOOL_FORMAT_ONOFF) { char result[10];
doc["shower_timer"] = shower_timer_ ? "on" : "off"; doc["shower_timer"] = Helpers::render_boolean(result, shower_timer_);
doc["shower_alert"] = shower_alert_ ? "on" : "off"; doc["shower_alert"] = Helpers::render_boolean(result, shower_alert_);
} else if (Mqtt::bool_format() == BOOL_FORMAT_ONOFF_CAP) {
doc["shower_timer"] = shower_timer_ ? "ON" : "OFF";
doc["shower_alert"] = shower_alert_ ? "ON" : "OFF";
} else if (Mqtt::bool_format() == BOOL_FORMAT_TRUEFALSE) {
doc["shower_timer"] = shower_timer_;
doc["shower_alert"] = shower_alert_;
} else {
doc["shower_timer"] = shower_timer_ ? 1 : 0;
doc["shower_alert"] = shower_alert_ ? 1 : 0;
}
// only publish shower duration if there is a value // only publish shower duration if there is a value
if (duration_ > SHOWER_MIN_DURATION) { if (duration_ > SHOWER_MIN_DURATION) {