mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-08 00:39:50 +03:00
fix shower on/off when using non-default MQTT booleans
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user