diff -r 003c20125212 -r 862de87f9f89 thermferm/thermferm.c --- a/thermferm/thermferm.c Thu May 12 21:43:07 2016 +0200 +++ b/thermferm/thermferm.c Sat Apr 29 17:07:36 2017 +0200 @@ -1071,12 +1071,20 @@ mqtt_publish_int(unit->alias, (char *)"state", (unit->mode != UNITMODE_OFF) ? 1 : 0); if (unit->name) mqtt_publish_str(unit->alias, (char *)"name", unit->name); + else + mqtt_publish_clear(unit->alias, (char *)"name"); if (unit->heater_address) mqtt_publish_int(unit->alias, (char *)"heater", 0); + else + mqtt_publish_clear(unit->alias, (char *)"heater"); if (unit->cooler_address) mqtt_publish_int(unit->alias, (char *)"cooler", 0); + else + mqtt_publish_clear(unit->alias, (char *)"cooler"); if (unit->fan_address) mqtt_publish_int(unit->alias, (char *)"fan", 0); + else + mqtt_publish_clear(unit->alias, (char *)"fan"); if (unit->air_address) unit->mqtt_flag |= MQTT_FLAG_AIR; if (unit->beer_address) @@ -1942,14 +1950,37 @@ for (unit = Config.units; unit; unit = unit->next) { if (unit->mode != UNITMODE_OFF) { - if (unit->heater_address) + if (unit->heater_address) { mqtt_publish_int(unit->alias, (char *)"heater", 0); - if (unit->cooler_address) + mqtt_publish_clear(unit->alias, (char *)"heater"); + } + if (unit->cooler_address) { mqtt_publish_int(unit->alias, (char *)"cooler", 0); - if (unit->fan_address) + mqtt_publish_clear(unit->alias, (char *)"cooler"); + } + if (unit->fan_address) { mqtt_publish_int(unit->alias, (char *)"fan", 0); + mqtt_publish_clear(unit->alias, (char *)"fan"); + } mqtt_publish_int(unit->alias, (char *)"state", 0); + mqtt_publish_clear(unit->alias, (char *)"state"); } + mqtt_publish_clear(unit->alias, (char *)"air/temperature"); + mqtt_publish_clear(unit->alias, (char *)"air"); + mqtt_publish_clear(unit->alias, (char *)"beer/temperature"); + mqtt_publish_clear(unit->alias, (char *)"beer"); + mqtt_publish_clear(unit->alias, (char *)"setpoint/high"); + mqtt_publish_clear(unit->alias, (char *)"setpoint/low"); + mqtt_publish_clear(unit->alias, (char *)"setpoint"); + mqtt_publish_clear(unit->alias, (char *)"door"); + mqtt_publish_clear(unit->alias, (char *)"name"); + mqtt_publish_clear(unit->alias, (char *)"mode"); + mqtt_publish_clear(unit->alias, (char *)"12volt"); + mqtt_publish_clear(unit->alias, (char *)"profile/uuid"); + mqtt_publish_clear(unit->alias, (char *)"profile/state"); + mqtt_publish_clear(unit->alias, (char *)"profile/name"); + mqtt_publish_clear(unit->alias, (char *)"profile/fridgemode"); + mqtt_publish_clear(unit->alias, (char *)"profile/percent"); /* * Turn everything off