mirror of
https://github.com/arendst/Tasmota.git
synced 2026-07-28 04:15:53 +00:00
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:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user