1218 } |
1218 } |
1219 |
1219 |
1220 /* |
1220 /* |
1221 * Build and send websocket message. |
1221 * Build and send websocket message. |
1222 */ |
1222 */ |
1223 payload = xstrcpy((char *)"{\"fermenter\":"); |
1223 payload = xstrcpy((char *)"{\"type\":\"fermenter\",\"unit\":\""); |
1224 payloadu = unit_data(unit, true); |
1224 payload = xstrcat(payload, unit->alias); |
|
1225 payload = xstrcat(payload, (char *)"\",\"metric\":"); |
|
1226 payloadu = unit_data(unit, false); |
1225 payload = xstrcat(payload, payloadu); |
1227 payload = xstrcat(payload, payloadu); |
1226 payload = xstrcat(payload, (char *)"}"); |
1228 payload = xstrcat(payload, (char *)"}"); |
1227 ws_broadcast(payload); |
1229 ws_broadcast(payload); |
1228 free(payload); |
1230 free(payload); |
1229 payload = NULL; |
1231 payload = NULL; |
1230 free(payloadu); |
1232 free(payloadu); |
1231 payloadu = NULL; |
1233 payloadu = NULL; |
|
1234 |
|
1235 unit->mqtt_flag &= ~MQTT_FLAG_DATA; |
1232 } |
1236 } |
1233 |
1237 |
1234 |
1238 |
1235 |
1239 |
1236 void publishDBirth(units_list *unit) |
1240 void publishDBirth(units_list *unit) |
1408 void node_ws(void) |
1412 void node_ws(void) |
1409 { |
1413 { |
1410 char *payload = NULL, buf[64]; |
1414 char *payload = NULL, buf[64]; |
1411 struct utsname ubuf; |
1415 struct utsname ubuf; |
1412 |
1416 |
1413 payload = xstrcpy((char *)"{\"thermferm\":{"); |
1417 payload = xstrcpy((char *)"{\"type\":\"global\",\"name\":\""); |
1414 |
1418 payload = xstrcat(payload, Config.name); |
|
1419 payload = xstrcat(payload, (char *)"\",\"node\":\""); |
1415 if (uname(&ubuf) == 0) { |
1420 if (uname(&ubuf) == 0) { |
1416 payload = xstrcat(payload, (char *)"\"node\":\""); |
|
1417 payload = xstrcat(payload, ubuf.nodename); |
1421 payload = xstrcat(payload, ubuf.nodename); |
1418 payload = xstrcat(payload, (char *)"\",\"os\":\""); |
1422 payload = xstrcat(payload, (char *)"\",\"os\":\""); |
1419 payload = xstrcat(payload, ubuf.sysname); |
1423 payload = xstrcat(payload, ubuf.sysname); |
1420 payload = xstrcat(payload, (char *)"\",\"os_version\":\""); |
1424 payload = xstrcat(payload, (char *)"\",\"os_version\":\""); |
1421 payload = xstrcat(payload, ubuf.release); |
1425 payload = xstrcat(payload, ubuf.release); |
1422 payload = xstrcat(payload, (char *)"\""); |
|
1423 } else { |
1426 } else { |
1424 payload = xstrcat(payload, (char *)"\"node\":\"Unknown\",\"os\":\"Unknown\",\"os_version\":\"Unknown\""); |
1427 payload = xstrcat(payload, (char *)"Unknown\",\"os\":\"Unknown\",\"os_version\":\"Unknown"); |
1425 } |
1428 } |
1426 payload = xstrcat(payload, (char *)",\"FW\":\""); |
1429 payload = xstrcat(payload, (char *)"\",\"FW\":\""); |
1427 payload = xstrcat(payload, (char *)VERSION); |
1430 payload = xstrcat(payload, (char *)VERSION); |
1428 payload = xstrcat(payload, (char *)"\""); |
1431 payload = xstrcat(payload, (char *)"\""); |
1429 |
1432 |
1430 if (Config.temp_address || Config.hum_address) { |
1433 if (Config.temp_address || Config.hum_address) { |
1431 payload = xstrcat(payload, (char *)",\"THB\":{"); |
1434 payload = xstrcat(payload, (char *)",\"THB\":{"); |