79 fprintf(stdout, "MySQL: connected\n"); |
79 fprintf(stdout, "MySQL: connected\n"); |
80 |
80 |
81 /* |
81 /* |
82 * Restore nodes from the database |
82 * Restore nodes from the database |
83 */ |
83 */ |
84 if (mysql_query(con, "SELECT * FROM nodes")) { |
84 if (mysql_query(con, "SELECT * FROM mon_nodes")) { |
85 syslog(LOG_NOTICE, "MySQL: SELECT * FROM nodes error %u (%s))", mysql_errno(con), mysql_error(con)); |
85 syslog(LOG_NOTICE, "MySQL: SELECT * FROM mon_nodes error %u (%s))", mysql_errno(con), mysql_error(con)); |
86 } else { |
86 } else { |
87 res_set = mysql_store_result(con); |
87 res_set = mysql_store_result(con); |
88 if (res_set == NULL) { |
88 if (res_set == NULL) { |
89 syslog(LOG_NOTICE, "MySQL: mysq_store_result error %u (%s))", mysql_errno(con), mysql_error(con)); |
89 syslog(LOG_NOTICE, "MySQL: mysq_store_result error %u (%s))", mysql_errno(con), mysql_error(con)); |
90 } else { |
90 } else { |
128 } |
128 } |
129 mysql_free_result(res_set); |
129 mysql_free_result(res_set); |
130 } |
130 } |
131 } |
131 } |
132 |
132 |
133 if (mysql_query(con, "SELECT * FROM fermenters")) { |
133 if (mysql_query(con, "SELECT * FROM mon_fermenters")) { |
134 syslog(LOG_NOTICE, "MySQL: SELECT * FROM fermenters error %u (%s))", mysql_errno(con), mysql_error(con)); |
134 syslog(LOG_NOTICE, "MySQL: SELECT * FROM mon_fermenters error %u (%s))", mysql_errno(con), mysql_error(con)); |
135 } else { |
135 } else { |
136 res_set = mysql_store_result(con); |
136 res_set = mysql_store_result(con); |
137 if (res_set == NULL) { |
137 if (res_set == NULL) { |
138 syslog(LOG_NOTICE, "MySQL: mysq_store_result error %u (%s))", mysql_errno(con), mysql_error(con)); |
138 syslog(LOG_NOTICE, "MySQL: mysq_store_result error %u (%s))", mysql_errno(con), mysql_error(con)); |
139 } else { |
139 } else { |
333 mytime = localtime(&node->lastseen); |
333 mytime = localtime(&node->lastseen); |
334 snprintf(last, 20, "%04d-%02d-%02d %02d:%02d:%02d", |
334 snprintf(last, 20, "%04d-%02d-%02d %02d:%02d:%02d", |
335 mytime->tm_year + 1900, mytime->tm_mon + 1, mytime->tm_mday, mytime->tm_hour, mytime->tm_min, mytime->tm_sec); |
335 mytime->tm_year + 1900, mytime->tm_mon + 1, mytime->tm_mday, mytime->tm_hour, mytime->tm_min, mytime->tm_sec); |
336 |
336 |
337 snprintf(query, 511, |
337 snprintf(query, 511, |
338 "INSERT INTO nodes SET uuid='%s', node='%s', online='%s', group_id='%s', " \ |
338 "INSERT INTO mon_nodes SET uuid='%s', node='%s', online='%s', group_id='%s', " \ |
339 "hardwaremake='%s', hardwaremodel='%s', os='%s', os_version='%s', firmware='%s', firstseen='%s', lastseen='%s', " \ |
339 "hardwaremake='%s', hardwaremodel='%s', os='%s', os_version='%s', firmware='%s', firstseen='%s', lastseen='%s', " \ |
340 "temperature='%.3f', humidity='%.3f', barometer='%.3f', gps_latitude='%.8f', gps_longitude='%.8f', gps_altitude='%.8f', " \ |
340 "temperature='%.3f', humidity='%.3f', barometer='%.3f', gps_latitude='%.8f', gps_longitude='%.8f', gps_altitude='%.8f', " \ |
341 "net_address='%s', net_ifname='%s', net_rssi='%d'", |
341 "net_address='%s', net_ifname='%s', net_rssi='%d'", |
342 node->uuid, node->node, node->online ?"Y":"N", node->group_id, |
342 node->uuid, node->node, node->online ?"Y":"N", node->group_id, |
343 node->hardwaremake, node->hardwaremodel, node->os, node->os_version, node->firmware, first, last, |
343 node->hardwaremake, node->hardwaremodel, node->os, node->os_version, node->firmware, first, last, |
344 node->temperature, node->humidity, node->barometer, node->gps_latitude, node->gps_longitude, node->gps_altitude, |
344 node->temperature, node->humidity, node->barometer, node->gps_latitude, node->gps_longitude, node->gps_altitude, |
345 node->net_address, node->net_ifname, node->net_rssi); |
345 node->net_address, node->net_ifname, node->net_rssi); |
346 |
346 |
347 if (mysql_query(con, query)) { |
347 if (mysql_query(con, query)) { |
348 syslog(LOG_NOTICE, "MySQL: INSERT INTO nodes error %u (%s))", mysql_errno(con), mysql_error(con)); |
348 syslog(LOG_NOTICE, "MySQL: INSERT INTO mon_nodes error %u (%s))", mysql_errno(con), mysql_error(con)); |
349 } else { |
349 } else { |
350 syslog(LOG_NOTICE, "MySQL: insert new node %s", node->node); |
350 syslog(LOG_NOTICE, "MySQL: insert new node %s", node->node); |
351 } |
351 } |
352 |
352 |
353 free(query); |
353 free(query); |
363 mytime = localtime(&node->lastseen); |
363 mytime = localtime(&node->lastseen); |
364 snprintf(last, 20, "%04d-%02d-%02d %02d:%02d:%02d", |
364 snprintf(last, 20, "%04d-%02d-%02d %02d:%02d:%02d", |
365 mytime->tm_year + 1900, mytime->tm_mon + 1, mytime->tm_mday, mytime->tm_hour, mytime->tm_min, mytime->tm_sec); |
365 mytime->tm_year + 1900, mytime->tm_mon + 1, mytime->tm_mday, mytime->tm_hour, mytime->tm_min, mytime->tm_sec); |
366 |
366 |
367 snprintf(query, 511, |
367 snprintf(query, 511, |
368 "UPDATE nodes SET online='%s', hardwaremake='%s', hardwaremodel='%s', os='%s', os_version='%s', firmware='%s', lastseen='%s', " \ |
368 "UPDATE mon_nodes SET online='%s', hardwaremake='%s', hardwaremodel='%s', os='%s', os_version='%s', firmware='%s', lastseen='%s', " \ |
369 "temperature='%.3f', humidity='%.3f', barometer='%.3f', gps_latitude='%.8f', gps_longitude='%.8f', gps_altitude='%.8f', " \ |
369 "temperature='%.3f', humidity='%.3f', barometer='%.3f', gps_latitude='%.8f', gps_longitude='%.8f', gps_altitude='%.8f', " \ |
370 "net_address='%s', net_ifname='%s', net_rssi='%d' WHERE uuid='%s'", |
370 "net_address='%s', net_ifname='%s', net_rssi='%d' WHERE uuid='%s'", |
371 node->online ?"Y":"N", node->hardwaremake, node->hardwaremodel, node->os, node->os_version, node->firmware, last, |
371 node->online ?"Y":"N", node->hardwaremake, node->hardwaremodel, node->os, node->os_version, node->firmware, last, |
372 node->temperature, node->humidity, node->barometer, node->gps_latitude, node->gps_longitude, node->gps_altitude, |
372 node->temperature, node->humidity, node->barometer, node->gps_latitude, node->gps_longitude, node->gps_altitude, |
373 node->net_address, node->net_ifname, node->net_rssi, node->uuid); |
373 node->net_address, node->net_ifname, node->net_rssi, node->uuid); |
374 |
374 |
375 if (mysql_query(con, query)) { |
375 if (mysql_query(con, query)) { |
376 syslog(LOG_NOTICE, "MySQL: UPDATE nodes error %u (%s))", mysql_errno(con), mysql_error(con)); |
376 syslog(LOG_NOTICE, "MySQL: UPDATE mon_nodes error %u (%s))", mysql_errno(con), mysql_error(con)); |
377 } |
377 } |
378 |
378 |
379 free(query); |
379 free(query); |
380 } |
380 } |
381 |
381 |
383 |
383 |
384 void node_mysql_death(char *node) |
384 void node_mysql_death(char *node) |
385 { |
385 { |
386 char *query = malloc(512); |
386 char *query = malloc(512); |
387 |
387 |
388 snprintf(query, 511, "UPDATE nodes SET online='N' WHERE node='%s'", node); |
388 snprintf(query, 511, "UPDATE mon_nodes SET online='N' WHERE node='%s'", node); |
389 // printf("%s\n", query); |
389 // printf("%s\n", query); |
390 |
390 |
391 if (mysql_query(con, query)) { |
391 if (mysql_query(con, query)) { |
392 syslog(LOG_NOTICE, "MySQL: UPDATE nodes error %u (%s))", mysql_errno(con), mysql_error(con)); |
392 syslog(LOG_NOTICE, "MySQL: UPDATE mon_nodes error %u (%s))", mysql_errno(con), mysql_error(con)); |
393 } |
393 } |
394 |
394 |
395 free(query); |
395 free(query); |
396 } |
396 } |
397 |
397 |
400 void fermenter_mysql_insert(sys_fermenter_list *fermenter) |
400 void fermenter_mysql_insert(sys_fermenter_list *fermenter) |
401 { |
401 { |
402 char *query = malloc(2560); |
402 char *query = malloc(2560); |
403 |
403 |
404 snprintf(query, 2559, |
404 snprintf(query, 2559, |
405 "INSERT INTO fermenters SET uuid='%s', alias='%s', node='%s', online='%s', " \ |
405 "INSERT INTO mon_fermenters SET uuid='%s', alias='%s', node='%s', online='%s', " \ |
406 "beercode='%s', beername='%s', " \ |
406 "beercode='%s', beername='%s', " \ |
407 "air_address='%s', air_state='%s', air_temperature='%.3f', " \ |
407 "air_address='%s', air_state='%s', air_temperature='%.3f', " \ |
408 "beer_address='%s', beer_state='%s', beer_temperature='%.3f', " \ |
408 "beer_address='%s', beer_state='%s', beer_temperature='%.3f', " \ |
409 "chiller_address='%s', chiller_state='%s', chiller_temperature='%.3f', " \ |
409 "chiller_address='%s', chiller_state='%s', chiller_temperature='%.3f', " \ |
410 "heater_address='%s', heater_state='%d', heater_usage='%lu', " \ |
410 "heater_address='%s', heater_state='%d', heater_usage='%lu', " \ |
434 fermenter->profile_steps ? fermenter->profile_steps : "", fermenter->stage); |
434 fermenter->profile_steps ? fermenter->profile_steps : "", fermenter->stage); |
435 |
435 |
436 // printf("%s\n", query); |
436 // printf("%s\n", query); |
437 |
437 |
438 if (mysql_query(con, query)) { |
438 if (mysql_query(con, query)) { |
439 syslog(LOG_NOTICE, "MySQL: INSERT INTO fermenters error %u (%s))", mysql_errno(con), mysql_error(con)); |
439 syslog(LOG_NOTICE, "MySQL: INSERT INTO mon_fermenters error %u (%s))", mysql_errno(con), mysql_error(con)); |
440 } else { |
440 } else { |
441 syslog(LOG_NOTICE, "MySQL: insert new fermenter %s/%s", fermenter->node, fermenter->alias); |
441 syslog(LOG_NOTICE, "MySQL: insert new fermenter %s/%s", fermenter->node, fermenter->alias); |
442 } |
442 } |
443 |
443 |
444 free(query); |
444 free(query); |
448 void fermenter_mysql_update(sys_fermenter_list *fermenter) |
448 void fermenter_mysql_update(sys_fermenter_list *fermenter) |
449 { |
449 { |
450 char *query = malloc(2560); |
450 char *query = malloc(2560); |
451 |
451 |
452 snprintf(query, 2559, |
452 snprintf(query, 2559, |
453 "UPDATE fermenters SET online='%s', beercode='%s', beername='%s', " \ |
453 "UPDATE mon_fermenters SET online='%s', beercode='%s', beername='%s', " \ |
454 "air_address='%s', air_state='%s', air_temperature='%.3f', " \ |
454 "air_address='%s', air_state='%s', air_temperature='%.3f', " \ |
455 "beer_address='%s', beer_state='%s', beer_temperature='%.3f', " \ |
455 "beer_address='%s', beer_state='%s', beer_temperature='%.3f', " \ |
456 "chiller_address='%s', chiller_state='%s', chiller_temperature='%.3f', " \ |
456 "chiller_address='%s', chiller_state='%s', chiller_temperature='%.3f', " \ |
457 "heater_address='%s', heater_state='%d', heater_usage='%lu', " \ |
457 "heater_address='%s', heater_state='%d', heater_usage='%lu', " \ |
458 "cooler_address='%s', cooler_state='%d', cooler_usage='%lu', " \ |
458 "cooler_address='%s', cooler_state='%d', cooler_usage='%lu', " \ |
493 void fermenter_mysql_death(char *node, char *alias) |
493 void fermenter_mysql_death(char *node, char *alias) |
494 { |
494 { |
495 char *query = malloc(512); |
495 char *query = malloc(512); |
496 |
496 |
497 if (alias) |
497 if (alias) |
498 snprintf(query, 511, "UPDATE fermenters SET online='N' WHERE node='%s' and alias='%s'", node, alias); |
498 snprintf(query, 511, "UPDATE mon_fermenters SET online='N' WHERE node='%s' and alias='%s'", node, alias); |
499 else |
499 else |
500 snprintf(query, 511, "UPDATE fermenters SET online='N' WHERE node='%s'", node); |
500 snprintf(query, 511, "UPDATE mon_fermenters SET online='N' WHERE node='%s'", node); |
501 |
501 |
502 if (mysql_query(con, query)) { |
502 if (mysql_query(con, query)) { |
503 syslog(LOG_NOTICE, "MySQL: UPDATE fermenters error %u (%s))", mysql_errno(con), mysql_error(con)); |
503 syslog(LOG_NOTICE, "MySQL: UPDATE mon_fermenters error %u (%s))", mysql_errno(con), mysql_error(con)); |
504 } |
504 } |
505 |
505 |
506 free(query); |
506 free(query); |
507 } |
507 } |
508 |
508 |