thermferm/server.c

changeset 689
f94b525f7563
parent 687
f5d05b420732
child 693
3518c07737d8
--- a/thermferm/server.c	Fri Apr 19 14:11:19 2024 +0200
+++ b/thermferm/server.c	Fri Apr 19 20:56:55 2024 +0200
@@ -674,43 +674,9 @@
     }
 
     if (strcmp(opt, (char *)"JSON") == 0) {
-	char		*payload = NULL, tbuf[64];
-	struct utsname	ubuf;
-
-    	payload = xstrcpy((char *)"{\"type\":\"global\",\"name\":\"");
-	payload = xstrcat(payload, Config.name);
-	payload = xstrcat(payload, (char *)"\",\"node\":\"");
-    	if (uname(&ubuf) == 0) {
-            payload = xstrcat(payload, ubuf.nodename);
-            payload = xstrcat(payload, (char *)"\",\"os\":\"");
-            payload = xstrcat(payload, ubuf.sysname);
-            payload = xstrcat(payload, (char *)"\",\"os_version\":\"");
-            payload = xstrcat(payload, ubuf.release);
-    	} else {
-            payload = xstrcat(payload, (char *)"Unknown\",\"os\":\"Unknown\",\"os_version\":\"Unknown");
-    	}
-    	payload = xstrcat(payload, (char *)"\",\"FW\":\"");
-    	payload = xstrcat(payload, (char *)VERSION);
-    	payload = xstrcat(payload, (char *)"\"");
+	char		*payload = NULL;
 
-    	if (Config.temp_address || Config.hum_address) {
-            payload = xstrcat(payload, (char *)",\"THB\":{");
-            if (Config.temp_address) {
-            	payload = xstrcat(payload, (char *)"\"temperature\":");
-            	sprintf(tbuf, "%.1f", Config.temp_value / 1000.0);
-            	payload = xstrcat(payload, tbuf);
-            }
-            if (Config.temp_address && Config.hum_address)
-            	payload = xstrcat(payload, (char *)",");
-            if (Config.hum_address) {
-            	payload = xstrcat(payload, (char *)"\"humidity\":");
-            	sprintf(tbuf, "%.1f", Config.hum_value / 1000.0);
-            	payload = xstrcat(payload, tbuf);
-            }
-            payload = xstrcat(payload, (char *)"}");
-    	}
-
-    	payload = xstrcat(payload, (char *)"}");
+	payload = global_json();
     	srv_send(s, (char *)"213 Global json data follows:");
 	srv_send(s, payload);
 	srv_send(s, (char *)".");

mercurial