updates to allow one probe to be associated with multiple temperature

sites
main
inmysocks 2026-02-07 20:10:51 +01:00
parent 671b68d70a
commit 98150ad7f2
1 changed files with 95 additions and 10 deletions

View File

@ -56,12 +56,16 @@ function createPool() {
//connection.release();
} else {
results.forEach(function (thisRow) {
settings[thisRow.node_id] = {
measurement_interval: thisRow.measurement_interval_minutes,
measurement_offset: thisRow.offset_from_midnight_minutes,
wake_window_length: thisRow.wake_window_length_minutes,
temperature_site: thisRow.group_id,
};
if(Object.keys(settings).indexOf(thisRow.node_id) > -1) {
settings[thisRow.node_id].temperature_site.push(thisRow.group_id)
} else {
settings[thisRow.node_id] = {
measurement_interval: thisRow.measurement_interval_minutes,
measurement_offset: thisRow.offset_from_midnight_minutes,
wake_window_length: thisRow.wake_window_length_minutes,
temperature_site: [thisRow.group_id],
};
}
});
connection.release();
}
@ -72,6 +76,54 @@ function createPool() {
return pool;
}
function update_settings() {
pool.getConnection(function (err, connection) {
if (err) {
console.log("error setting the database: ", err);
} else {
connection.execute(
`SELECT
datavis_node2group.node_id,
datavis_node2group.group_id,
datavis_nodeconfiguration.measurement_interval_minutes,
datavis_nodeconfiguration.offset_from_midnight_minutes,
datavis_nodeconfiguration.wake_window_length_minutes
FROM datavis_grouptype
JOIN datavis_group2type
ON datavis_grouptype.unique_id=datavis_group2type.type_id
JOIN datavis_node2group
ON datavis_group2type.group_id=datavis_node2group.group_id
JOIN datavis_nodeconfiguration
ON datavis_nodeconfiguration.node_id=datavis_node2group.node_id
WHERE datavis_grouptype.name = 'Temperature Site';`,
[],
function (err2, results) {
if (err2) {
console.log(`Some other error getting node settings: ${err2}`);
//connection.release();
} else {
results.forEach(function (thisRow) {
if(Object.keys(settings).indexOf(thisRow.node_id) > -1) {
settings[thisRow.node_id].temperature_site.push(thisRow.group_id)
} else {
settings[thisRow.node_id] = {
measurement_interval: thisRow.measurement_interval_minutes,
measurement_offset: thisRow.offset_from_midnight_minutes,
wake_window_length: thisRow.wake_window_length_minutes,
temperature_site: [thisRow.group_id],
};
}
});
connection.release();
}
},
);
}
});
}
setInterval(update_settings, 60000)
const socket = dgram.createSocket("udp4");
let stream = fs.createWriteStream(`${filePath}/${thisDate}-log.dat`, {
flags: "a+",
@ -345,7 +397,7 @@ function storeType1Messages(msgs) {
storeType1Messages(msgs.slice(-1 * (msgs.length % 2500)));
} else {
let theseParams = [];
msgs.forEach(function (msg) {
/*msgs.forEach(function (msg) {
// YYYY-MM-DD HH:mm:ss
const server_received_time = sqlCurrentTimestamp();
theseParams.push(
@ -367,11 +419,44 @@ function storeType1Messages(msgs) {
msg.data.remaining_charge_capacity || 500000,
server_received_time,
);
});
});*/
let num_rows = 0
for(let i =0; i < msgs.length; i++) {
if(settings[msg.source.slice(4)]) {
settings[msg.source.slice(4)] = {
measurement_interval: 360,
measurement_offset: 0,
wake_window_length: 4,
temperature_site: ["Unknowable 1"],
}
}
settings[msg.source.slice(4)].temperature_site.forEach(temperature_site => {
num_rows += 1
theseParams.push(
msg.source.slice(4),
msg.reporting_node || "000000000000",
temperature_site || "Unknowable 1",
msg.timestamp,
msg.data["18_inch_temperature"] || 500000,
msg.data["36_inch_temperature"] || 500000,
msg.data.device_temperature || 500000,
msg.data.ambient_temperature || 500000,
msg.data.relative_humidity || 500000,
msg.data.barometric_pressure || 500000,
msg.data.accelerometer_x || 500000,
msg.data.accelerometer_y || 500000,
msg.data.accelerometer_z || 500000,
msg.data.battery_charge_percent || 500000,
msg.data.battery_voltage || 500000,
msg.data.remaining_charge_capacity || 500000,
server_received_time,
);
})
}
const thisSQL =
"INSERT IGNORE INTO datavis_measurement (source_node_id, reporting_node_id, associated_group_id, collection_time, temperature_18_inch, temperature_36_inch, device_temperature, ambient_temperature, relative_humidity, barometric_pressure, accelerometer_x, accelerometer_y, accelerometer_z, battery_charge_percent, battery_voltage, remaining_battery_capacity, server_received_time) VALUES " +
"(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?),"
.repeat(msgs.length)
.repeat(num_rows)
.slice(0, -1) +
";";
pool.getConnection(function (err, connection) {
@ -469,7 +554,7 @@ function storeType13Messages(msgs) {
});
});
const thisSQL =
"INSERT INTO datavis_nodefilemanifest (node_id,collection_time,program_id,program_version,server_received_time) VALUES " +
"INSERT IGNORE INTO datavis_nodefilemanifest (node_id,collection_time,program_id,program_version,server_received_time) VALUES " +
"(?,?,?,?,?),".repeat(n).slice(0, -1) +
";";
pool.getConnection(function (err, connection) {