thermferm/mqtt.c

changeset 515
7ab5cf2afc0c
parent 514
f5a00ad53329
child 518
fd36bedab944
--- a/thermferm/mqtt.c	Sat Jun 10 13:00:14 2017 +0200
+++ b/thermferm/mqtt.c	Sat Jun 10 23:43:56 2017 +0200
@@ -178,19 +178,20 @@
 
 
 
-void pub_domoticz_temp(int idx, char *value) {
+void pub_domoticz_temp(int idx, int value) {
     char	*dload = NULL;
-    char	sidx[10];
+    char	sidx[10], sval[20];
 
     if (idx == 0)
 	return;
 
     sprintf(sidx, "%d", idx);
+    sprintf(sval, "%.3f", value / 1000.0);
 
     dload = xstrcpy((char *)"{\"command\":\"udevice\",\"idx\":");
     dload = xstrcat(dload, sidx);
     dload = xstrcat(dload, (char *)",\"nvalue\":0,\"svalue\":\"");
-    dload = xstrcat(dload, value);
+    dload = xstrcat(dload, sval);
     dload = xstrcat(dload, (char *)"\"}");
     publisher(mosq, (char *)"domoticz/in", dload, false);
     free(dload);
@@ -254,7 +255,6 @@
         sprintf(buf, "%.3f", unit->air_temperature / 1000.0);
         payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
-	pub_domoticz_temp(unit->air_idx, buf);      
     } else {
 	payload = xstrcat(payload, (char *)"\",\"air\":null");
     }
@@ -268,7 +268,6 @@
         sprintf(buf, "%.3f", unit->beer_temperature / 1000.0);
         payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
-	pub_domoticz_temp(unit->beer_idx, buf);
     } else {
 	payload = xstrcat(payload, (char *)",\"beer\":null");
     }
@@ -280,7 +279,6 @@
 	sprintf(buf, "%d", unit->heater_state);
 	payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
-	pub_domoticz_output(unit->heater_idx, unit->heater_state);
     } else {
 	payload = xstrcat(payload, (char *)",\"heater\":null");
     }
@@ -292,7 +290,6 @@
 	sprintf(buf, "%d", unit->cooler_state);
 	payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
-	pub_domoticz_output(unit->cooler_idx, unit->cooler_state);
     } else {
 	payload = xstrcat(payload, (char *)",\"cooler\":null");
     }
@@ -304,7 +301,6 @@
 	sprintf(buf, "%d", unit->fan_state);
 	payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
-	pub_domoticz_output(unit->fan_idx, unit->fan_state);
     } else {
 	payload = xstrcat(payload, (char *)",\"fan\":null");
     }
@@ -316,7 +312,6 @@
 	sprintf(buf, "%d", unit->door_state);
 	payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
-	pub_domoticz_output(unit->door_idx, unit->door_state);
     } else {
 	payload = xstrcat(payload, (char *)",\"door\":null");
     }
@@ -328,7 +323,6 @@
 	sprintf(buf, "%d", unit->light_state);
 	payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
-	pub_domoticz_output(unit->light_idx, unit->light_state);
     } else {
 	payload = xstrcat(payload, (char *)",\"light\":null");
     }
@@ -340,7 +334,6 @@
 	sprintf(buf, "%d", unit->psu_state);
 	payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
-	pub_domoticz_output(unit->psu_idx, unit->psu_state);
     } else {
 	payload = xstrcat(payload, (char *)",\"psu\":null");
     }

mercurial