MiELHVAC update (#24488)

* Update xdrv_44_miel_hvac.ino

* Update xdrv_44_miel_hvac.ino

- added energy sensors POWER, ENERGY TOTAL, FREQUENCY
- other changes and improvements

* Update xdrv_44_miel_hvac.ino

- added all available mode mapping to Home Assistant
This commit is contained in:
Grzegorz
2026-02-24 11:22:15 +01:00
committed by GitHub
parent faf90677bd
commit 77f5f63d35
@@ -1222,6 +1222,7 @@ miel_hvac_publish_settings(struct miel_hvac_softc *sc)
char hex[(sizeof(sc->sc_settings) + 1) * 2]; char hex[(sizeof(sc->sc_settings) + 1) * 2];
char temp[33]; char temp[33];
const char *name; const char *name;
const char *ha_name = "off";
bool widevane_isee = (set->widevane == 0x80 || set->widevane == 0xaa || set->widevane == 0x28); bool widevane_isee = (set->widevane == 0x80 || set->widevane == 0xaa || set->widevane == 0x28);
name = miel_hvac_map_byval(set->power, miel_hvac_power_map, nitems(miel_hvac_power_map)); name = miel_hvac_map_byval(set->power, miel_hvac_power_map, nitems(miel_hvac_power_map));
@@ -1234,7 +1235,36 @@ miel_hvac_publish_settings(struct miel_hvac_softc *sc)
if (name != NULL) if (name != NULL)
{ {
ResponseAppend_P(PSTR(",\"" D_JSON_IRHVAC_MODE "\":\"%s\""), name); ResponseAppend_P(PSTR(",\"" D_JSON_IRHVAC_MODE "\":\"%s\""), name);
ResponseAppend_P(PSTR(",\"HA" D_JSON_IRHVAC_MODE "\":\"%s\""), set->power ? name : "off"); if (set->power)
{
switch (set->mode & MIEL_HVAC_SETTINGS_MODE_MASK)
{
case MIEL_HVAC_SETTINGS_MODE_HEAT:
case MIEL_HVAC_SETTINGS_MODE_HEAT_ISEE:
ha_name = "heat";
break;
case MIEL_HVAC_SETTINGS_MODE_COOL:
case MIEL_HVAC_SETTINGS_MODE_COOL_ISEE:
ha_name = "cool";
break;
case MIEL_HVAC_SETTINGS_MODE_DRY:
case MIEL_HVAC_SETTINGS_MODE_DRY_ISEE:
ha_name = "dry";
break;
case MIEL_HVAC_SETTINGS_MODE_FAN:
ha_name = "fan_only";
break;
case MIEL_HVAC_SETTINGS_MODE_AUTO:
ha_name = "auto";
break;
}
}
ResponseAppend_P(PSTR(",\"HA" D_JSON_IRHVAC_MODE "\":\"%s\""), ha_name);
} }
if (set->temp05 == 0) if (set->temp05 == 0)
{ {
@@ -1455,7 +1485,7 @@ miel_hvac_sensor(struct miel_hvac_softc *sc)
name = miel_hvac_map_byval(set->power, miel_hvac_power_map, nitems(miel_hvac_power_map)); name = miel_hvac_map_byval(set->power, miel_hvac_power_map, nitems(miel_hvac_power_map));
if (name != NULL) if (name != NULL)
{ {
ResponseAppend_P(PSTR("\"" D_JSON_IRHVAC_POWER "\":\"%s\""), name); ResponseAppend_P(PSTR("\"PowerState\":\"%s\""), name);
} }
mode = miel_hvac_map_byval(set->mode & MIEL_HVAC_SETTINGS_MODE_MASK, miel_hvac_mode_map, nitems(miel_hvac_mode_map)); mode = miel_hvac_map_byval(set->mode & MIEL_HVAC_SETTINGS_MODE_MASK, miel_hvac_mode_map, nitems(miel_hvac_mode_map));
@@ -1787,7 +1817,6 @@ bool Xdrv44(uint32_t function)
miel_hvac_pre_init(); miel_hvac_pre_init();
return false; return false;
} }
struct miel_hvac_softc *sc = miel_hvac_sc; struct miel_hvac_softc *sc = miel_hvac_sc;
if (sc == NULL) if (sc == NULL)
return false; return false;