main/task_mqtt.c

changeset 8
c6bbd1380f22
parent 4
2a57c466bf45
child 9
a85995941d0d
--- a/main/task_mqtt.c	Wed Oct 09 22:51:37 2019 +0200
+++ b/main/task_mqtt.c	Fri Oct 11 13:12:34 2019 +0200
@@ -19,8 +19,8 @@
 const int TASK_MQTT_DISCONNECT = BIT1;			///< Request MQTT disconnect
 const int TASK_MQTT_CONNECTED = BIT2;			///< MQTT is connected
 
-const char			*sensState[] = { "Ok", "Error" };
-const char			*unitMode[] = { "Off", "On" };
+const char			*sensState[] = { "OK", "ERROR" };
+const char			*unitMode[] = { "OFF", "ON" };
 
 extern DS18B20_State            *ds18b20_state;         ///< DS18B20 state
 extern SemaphoreHandle_t        xSemaphoreDS18B20;      ///< DS18B20 lock semaphore
@@ -76,7 +76,7 @@
 {
     char        *tmp;
 
-    tmp = xstrcpy((char *)"mbv1.0/co2meter/");
+    tmp = xstrcpy((char *)"mbv1.0/co2meters/");
     tmp = xstrcat(tmp, msgtype);
     tmp = xstrcat(tmp, (char *)"/");
     tmp = xstrcat(tmp, config.hostname);
@@ -106,9 +106,14 @@
     	payload = xstrcat(payload, units[i].uuid);
     	payload = xstrcat(payload, (char *)"\",\"alias\":\"");
     	payload = xstrcat(payload, units[i].alias);
+        payload = xstrcat(payload, (char *)"\",\"mode\":\"");
+        payload = xstrcat(payload, (char *)unitMode[units[i].mode]);
+	payload = xstrcat(payload, (char *)"\",\"alarm\":");
+	sprintf(buf, "%d", units[i].alarm);
+	payload = xstrcat(payload, buf);
 
     	// temperature_state temperature_address temperature
-    	payload = xstrcat(payload, (char *)"\",\"temperature\":{\"state\":\"");
+    	payload = xstrcat(payload, (char *)",\"temperature\":{\"state\":\"");
     	payload = xstrcat(payload, (char *)sensState[units[i].temperature_state]);
     	payload = xstrcat(payload, (char *)"\",\"address\":\"");
     	payload = xstrcat(payload, (char *)units[i].temperature_rom_code);
@@ -131,9 +136,7 @@
     	payload = xstrcat(payload, (char *)",\"bar\":");
     	sprintf(buf, "%.2f", units[i].pressure / 1000.0);
     	payload = xstrcat(payload, buf);
-    	payload = xstrcat(payload, (char *)"},\"mode\":\"");
-	payload = xstrcat(payload, (char *)unitMode[units[i].mode]);
-    	payload = xstrcat(payload, (char *)"\"}");
+    	payload = xstrcat(payload, (char *)"}}");
 	xSemaphoreGive(xSemaphoreUnits);
     }
     return payload;

mercurial