diff --git a/tasmota/xdrv_44_miel_hvac.ino b/tasmota/xdrv_44_miel_hvac.ino index 026f9eac9..cad40e5d1 100644 --- a/tasmota/xdrv_44_miel_hvac.ino +++ b/tasmota/xdrv_44_miel_hvac.ino @@ -858,20 +858,30 @@ miel_hvac_publish_settings(struct miel_hvac_softc *sc) char hex[(sizeof(sc->sc_settings) + 1) * 2]; char temp[33]; const char *name; + uint8_t mode; + int iSee; Response_P(PSTR("{\"" D_JSON_IRHVAC_POWER "\":\"%s\""), set->power ? "ON" : "OFF"); - name = miel_hvac_map_byval( set->mode & - MIEL_HVAC_SETTINGS_MODE_MASK, + mode = set->mode & MIEL_HVAC_SETTINGS_MODE_MASK; + iSee = mode > 0x80; + if (iSee) + mode -= 0x80; + + name = miel_hvac_map_byval(mode, miel_hvac_mode_map, nitems(miel_hvac_mode_map)); - if (name != NULL) { - ResponseAppend_P(PSTR(",\"" D_JSON_IRHVAC_MODE "\":\"%s\""), - name); - ResponseAppend_P(PSTR(",\"HA" D_JSON_IRHVAC_MODE "\":\"%s\""), - set->power ? name : "off"); + if (name == NULL) { + snprintf(hex, sizeof(hex), PSTR("0x%02"), mode); + name = hex; } + ResponseAppend_P(PSTR(",\"" D_JSON_IRHVAC_MODE "\":\"%s\""), name); + ResponseAppend_P(PSTR(",\"HA" D_JSON_IRHVAC_MODE "\":\"%s\""), + set->power ? name : "off"); + + ResponseAppend_P(PSTR(",\"iSee\":\"%s\""), iSee ? "ON" : "OFF"); + dtostrfd(ConvertTemp(miel_hvac_temp2deg(set->temp)), Settings.flag2.temperature_resolution, temp); ResponseAppend_P(PSTR(",\"" D_JSON_IRHVAC_TEMP "\":%s"), temp);