diff -r 8f946f9d125a -r 44bcfe087f9e thermferm/server.c --- a/thermferm/server.c Wed Apr 01 23:13:08 2015 +0200 +++ b/thermferm/server.c Thu Apr 02 21:53:28 2015 +0200 @@ -415,9 +415,10 @@ if ((fp = fopen(name, "r"))) { char buffer[256], outbuf[256], q[5]; - char *date_n, *mode_n, *air_n, *beer_n, *target_n, *heater_n, *cooler_n; + char *date_n, *mode_n, *air_n, *beer_n, *target_n, *heater_n, *cooler_n, *room_n; char *heater_u, *cooler_u; int lines = 0, heater_l = 0, cooler_l = 0, h = 0, c = 0, heat_used = 0, cool_used = 0, graphstep = 0; + float room_t = 0.0; srv_send((char *)"212 Logfile list follows:"); while (fgets(buffer, sizeof(buffer)-1, fp) != NULL) { @@ -439,7 +440,21 @@ while (fgets(buffer, sizeof(buffer)-1, fp) != NULL) { /* - * 2014-11-15 18:39,BEER,20.312,19.750,20.0,0,NA,NA,NA,78105,NA,NA + * 2014-11-15 18:39,BEER,20.312,19.750,20.0,0,NA,NA,NA,78105,NA,NA,18.000 + * | | | | | | | | | | | | | + * date_n | | | | | | | | | | | | + * mode_n ----------+ | | | | | | | | | | | + * air_n -----------------+ | | | | | | | | | | + * beer_n -----------------------+ | | | | | | | | | + * target_n ---------------------------+ | | | | | | | | + * heater_n -------------------------------+ | | | | | | | + * cooler_n ---------------------------------+ | | | | | | + * not used ------------------------------------+ | | | | | + * not used ---------------------------------------+ | | | | + * heater_u --------------------------------------------+ | | | + * cooler_u ------------------------------------------------+ | | + * not used ---------------------------------------------------+ | + * room_n ----------------------------------------------------------+ */ q[0] = buffer[11]; q[1] = buffer[12]; @@ -457,6 +472,8 @@ heater_u = strtok(NULL, ",\0"); /* current door state */ heater_u = strtok(NULL, ",\0"); /* heater use counter */ cooler_u = strtok(NULL, ",\0"); /* cooler use counter */ + room_n = strtok(NULL, ",\0"); /* fan use counter */ + room_n = strtok(NULL, ",\0"); /* room temperature */ if (strncmp(mode_n, (char *)"Mode", 4)) { /* @@ -468,22 +485,24 @@ ((graphstep == 4) && ((q[2] == '0' && q[3] == '0') || (q[2] == '3' && q[3] == '0'))) || ((graphstep == 5) && (q[2] == '0' && q[3] == '0')) ) { heat_used = cool_used = 0; - if (strcmp(heater_u, "NA") && (sscanf(heater_u, "%d", &h) == 1)) { + if (heater_u && strcmp(heater_u, "NA") && (sscanf(heater_u, "%d", &h) == 1)) { if (h && heater_l) { heat_used = ((h - heater_l) * 100) / (GRAPH_INTERVAL[graphstep] * 60); } } - if (strcmp(cooler_u, "NA") && (sscanf(cooler_u, "%d", &c) == 1)) { + if (cooler_u && strcmp(cooler_u, "NA") && (sscanf(cooler_u, "%d", &c) == 1)) { if (c && cooler_l) { cool_used = ((c - cooler_l) * 100) / (GRAPH_INTERVAL[graphstep] * 60); } } - snprintf(outbuf, 255, "%s,%s,%s,%s,%s,%s,%s,%d,%d", - date_n, mode_n, air_n, beer_n, target_n, heater_n, cooler_n, heat_used, cool_used); + if (room_n) + sscanf(room_n, "%f", &room_t); + snprintf(outbuf, 255, "%s,%s,%s,%s,%s,%s,%s,%d,%d,%.1f", + date_n, mode_n, air_n, beer_n, target_n, heater_n, cooler_n, heat_used, cool_used, room_t); srv_send(outbuf); - if (h && strcmp(heater_u, "NA")) + if (heater_u && h && strcmp(heater_u, "NA")) heater_l = h; - if (c & strcmp(cooler_u, "NA")) + if (cooler_u && c & strcmp(cooler_u, "NA")) cooler_l = c; } }