diff -r f5a00ad53329 -r 7ab5cf2afc0c thermferm/mqtt.c --- 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"); }