arg_pos += len;
}
-static void rrd_point(time_t t, int id, double val, char *unit)
+static void rrd_point(time_t t, const char *name, double val, char *unit)
{
char rr_name[256];
- snprintf(rr_name, sizeof(rr_name), "sensor-%d.rrd", id);
+ snprintf(rr_name, sizeof(rr_name), "sensor-%s.rrd", name);
struct stat st;
if (stat(rr_name, &st) < 0 || !st.st_size) {
#define TIME_OFFSET 946681200 // Timestamp of 2000-01-01 00:00:00
-static int data_point_counter;
+static int data_point_counter; // Since last log message
-static double correct_point(int id, double val)
+static double correct_point(int id, double val, const char **name)
{
/*
- * Manually calculated corrections for my sensors.
+ * Manually calculated corrections and renames for my sensors.
* Replace with your formulae.
*/
switch (id) {
case 10415:
+ *name = "ursarium";
return val - 0.93;
case 19246:
+ *name = "catarium";
return val + 0.49;
case 12133:
+ *name = "balcony";
return val + 0.44;
default:
return val;
static void cooked_point(time_t t, int id, double val, char *unit, int q)
{
- double val2 = correct_point(id, val);
+ char namebuf[16];
+ snprintf(namebuf, sizeof(namebuf), "%d", id);
+ const char *name = namebuf;
+
+ double val2 = correct_point(id, val, &name);
if (debug_raw_data) {
struct tm tm;
localtime_r(&t, &tm);
char tbuf[64];
strftime(tbuf, sizeof(tbuf), "%Y-%m-%d %H:%M:%S", &tm);
- printf("== %s id=%d val=%.3f val2=%.3f unit=%s q=%d\n", tbuf, id, val, val2, unit, q);
+ printf("== %s id=%d name=%s val=%.3f val2=%.3f unit=%s q=%d\n", tbuf, id, name, val, val2, unit, q);
}
data_point_counter++;
- rrd_point(t, id, val2, unit);
+ rrd_point(t, name, val2, unit);
}
static void raw_point(int t, int id, int raw, int q)