--- a/bmsd/nodes.c Sat Jun 13 13:50:57 2020 +0200 +++ b/bmsd/nodes.c Mon Jun 15 20:26:46 2020 +0200 @@ -82,7 +82,7 @@ node->firstseen = node->lastseen = time(NULL); node->temperature = node->humidity = node->barometer = 0.0; node->gps_latitude = node->gps_longitude = node->gps_altitude = 0.0; - node->net_address = node->net_ifname = NULL; + node->net_address = node->net_ifname = node->net_ssid = NULL; node->net_rssi = 0; node->interval = 300; } @@ -171,6 +171,11 @@ free(node->net_ifname); node->net_ifname = xstrcpy((char *)json_object_get_string(val)); } + if (json_object_object_get_ex(metric2, "ssid", &val)) { + if (node->net_ssid) + free(node->net_ssid); + node->net_ssid = xstrcpy((char *)json_object_get_string(val)); + } if (json_object_object_get_ex(metric2, "rssi", &val)) { node->net_rssi = json_object_get_int(val); } @@ -233,6 +238,11 @@ msg = xstrcat(msg, (char *)"\",\"net_address\":\""); msg = xstrcat(msg, node->net_address); msg = xstrcat(msg, (char *)"\""); + if (node->net_ssid) { + msg = xstrcat(msg, (char *)",\"net_ssid\":\""); + msg = xstrcat(msg, node->net_ssid); + msg = xstrcat(msg, (char *)"\""); + } if (node->net_rssi != 0) { msg = xstrcat(msg, (char *)",\"net_rssi\":"); snprintf(buf, 64, "%d", node->net_rssi); @@ -278,7 +288,7 @@ printf("THB %.2f %.2f %.2f\n", node->temperature, node->humidity, node->barometer); printf("GPS %.5f %.5f %.5f\n", node->gps_latitude, node->gps_longitude, node->gps_altitude); printf("net %s:%s\n", node->net_ifname, node->net_address); - printf("rssi %d\n", node->net_rssi); + printf("ssid rssi %s %d\n", node->net_ssid, node->net_rssi); printf("interval %d\n", node->interval); } }