thermferm/thermferm.c

changeset 504
862de87f9f89
parent 503
003c20125212
child 505
727fe541a48d
child 506
cdcd07bbee30
--- 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

mercurial