thermferm/mqtt.c

changeset 703
344470c6bb1c
parent 698
92a080c1a5d5
child 708
13555c27b592
--- a/thermferm/mqtt.c	Wed Apr 24 11:04:00 2024 +0200
+++ b/thermferm/mqtt.c	Wed Apr 24 16:46:45 2024 +0200
@@ -936,6 +936,9 @@
         payload = xstrcat(payload, (char *)"\",\"temperature\":");
         sprintf(buf, "%.3f", unit->air_temperature / 1000.0);
         payload = xstrcat(payload, buf);
+	payload = xstrcat(payload, (char *)",\"idx\":");
+	sprintf(buf, "%d", unit->air_idx);
+	payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
 	pub_domoticz_temp(unit->air_idx, unit->air_temperature);
     } else {
@@ -953,6 +956,9 @@
         payload = xstrcat(payload, (char *)"\",\"temperature\":");
         sprintf(buf, "%.3f", unit->beer_temperature / 1000.0);
         payload = xstrcat(payload, buf);
+	payload = xstrcat(payload, (char *)",\"idx\":");
+        sprintf(buf, "%d", unit->beer_idx);
+        payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
 	pub_domoticz_temp(unit->beer_idx, unit->beer_temperature);
     } else {
@@ -970,6 +976,9 @@
 	payload = xstrcat(payload, (char *)"\",\"temperature\":");
 	sprintf(buf, "%.3f", unit->chiller_temperature / 1000.0);
 	payload = xstrcat(payload, buf);
+	payload = xstrcat(payload, (char *)",\"idx\":");
+        sprintf(buf, "%d", unit->chiller_idx);
+        payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
 	pub_domoticz_temp(unit->chiller_idx, unit->chiller_temperature);
     } else {
@@ -988,6 +997,12 @@
 	payload = xstrcat(payload, (char *)",\"usage\":");
 	sprintf(buf, "%d", unit->heater_usage);
 	payload = xstrcat(payload, buf);
+	payload = xstrcat(payload, (char *)",\"idx\":");
+        sprintf(buf, "%d", unit->heater_idx);
+        payload = xstrcat(payload, buf);
+	payload = xstrcat(payload, (char *)",\"delay\":");
+        sprintf(buf, "%d", unit->heater_delay);
+        payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
 	pub_domoticz_output(unit->heater_idx, unit->heater_state);
     } else {
@@ -1006,6 +1021,12 @@
 	payload = xstrcat(payload, (char *)",\"usage\":");
 	sprintf(buf, "%d", unit->cooler_usage);
 	payload = xstrcat(payload, buf);
+	payload = xstrcat(payload, (char *)",\"idx\":");
+        sprintf(buf, "%d", unit->cooler_idx);
+        payload = xstrcat(payload, buf);
+	payload = xstrcat(payload, (char *)",\"delay\":");
+        sprintf(buf, "%d", unit->cooler_delay);
+        payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
 	pub_domoticz_output(unit->cooler_idx, unit->cooler_state);
     } else {
@@ -1024,6 +1045,12 @@
 	payload = xstrcat(payload, (char *)",\"usage\":");
 	sprintf(buf, "%d", unit->fan_usage);
 	payload = xstrcat(payload, buf);
+	payload = xstrcat(payload, (char *)",\"idx\":");
+        sprintf(buf, "%d", unit->fan_idx);
+        payload = xstrcat(payload, buf);
+	payload = xstrcat(payload, (char *)",\"delay\":");
+        sprintf(buf, "%d", unit->fan_delay);
+        payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
 	pub_domoticz_output(unit->fan_idx, unit->fan_state);
     } else {
@@ -1042,6 +1069,12 @@
 	payload = xstrcat(payload, (char *)",\"usage\":");
 	sprintf(buf, "%d", unit->light_usage);
 	payload = xstrcat(payload, buf);
+	payload = xstrcat(payload, (char *)",\"idx\":");
+        sprintf(buf, "%d", unit->light_idx);
+        payload = xstrcat(payload, buf);
+	payload = xstrcat(payload, (char *)",\"delay\":");
+        sprintf(buf, "%d", unit->light_delay);
+        payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
 	pub_domoticz_output(unit->light_idx, unit->light_state);
     } else {
@@ -1057,6 +1090,9 @@
 	payload = xstrcat(payload, (char *)"\",\"state\":");
 	sprintf(buf, "%d", (unit->door_state) ? 0:1);
 	payload = xstrcat(payload, buf);
+	payload = xstrcat(payload, (char *)",\"idx\":");
+        sprintf(buf, "%d", unit->door_idx);
+        payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
 	pub_domoticz_output(unit->door_idx, unit->door_state);
     } else {
@@ -1072,6 +1108,9 @@
 	payload = xstrcat(payload, (char *)"\",\"state\":");
 	sprintf(buf, "%d", unit->psu_state);
 	payload = xstrcat(payload, buf);
+	payload = xstrcat(payload, (char *)",\"idx\":");
+        sprintf(buf, "%d", unit->psu_idx);
+        payload = xstrcat(payload, buf);
 	payload = xstrcat(payload, (char *)"}");
 	pub_domoticz_output(unit->psu_idx, unit->psu_state);
     } else {
@@ -1095,6 +1134,38 @@
     sprintf(buf, "%d", unit->alarm_flag);
     payload = xstrcat(payload, buf);
 
+    payload = xstrcat(payload, (char *)",\"pidc\":{\"P\":");
+    sprintf(buf, "%.3f", unit->PID_cool->pGain);
+    payload = xstrcat(payload, buf);
+    payload = xstrcat(payload, (char *)",\"I\":");
+    sprintf(buf, "%.3f", unit->PID_cool->iGain);
+    payload = xstrcat(payload, buf);
+    payload = xstrcat(payload, (char *)",\"D\":");
+    sprintf(buf, "%.3f", unit->PID_cool->dGain);
+    payload = xstrcat(payload, buf);
+    payload = xstrcat(payload, (char *)",\"imax\":");
+    sprintf(buf, "%.1f", unit->PID_cool->iMax);
+    payload = xstrcat(payload, buf);
+    payload = xstrcat(payload, (char *)",\"idle\":");
+    sprintf(buf, "%.2f", unit->PID_cool->idleRange);
+    payload = xstrcat(payload, buf);
+    payload = xstrcat(payload, (char *)"},\"pidh\":{\"P\":");
+    sprintf(buf, "%.3f", unit->PID_heat->pGain);
+    payload = xstrcat(payload, buf);
+    payload = xstrcat(payload, (char *)",\"I\":");
+    sprintf(buf, "%.3f", unit->PID_heat->iGain);
+    payload = xstrcat(payload, buf);
+    payload = xstrcat(payload, (char *)",\"D\":");
+    sprintf(buf, "%.3f", unit->PID_heat->dGain);
+    payload = xstrcat(payload, buf);
+    payload = xstrcat(payload, (char *)",\"imax\":");
+    sprintf(buf, "%.1f", unit->PID_heat->iMax);
+    payload = xstrcat(payload, buf);
+    payload = xstrcat(payload, (char *)",\"idle\":");
+    sprintf(buf, "%.2f", unit->PID_heat->idleRange);
+    payload = xstrcat(payload, buf);
+    payload = xstrcat(payload, (char *)"}");
+
     /*
      * Loaded profile and state
      */

mercurial