1
0
mirror of https://github.com/beestat/app.git synced 2025-07-09 03:04:07 -04:00

Fixed #245 - Sensor data is thrown away if any sensor in the set has missing data

This commit is contained in:
Jon Ziebell 2020-02-17 23:21:52 -05:00
parent aca4c69720
commit 5f2efbc7ba

View File

@ -733,13 +733,10 @@ class runtime extends cora\api {
foreach($sensor['capability'] as $capability) { foreach($sensor['capability'] as $capability) {
if( if(
$capability['id'] == $capability_identifier && $capability['id'] == $capability_identifier &&
in_array($capability['type'], ['temperature', 'occupancy']) === true in_array($capability['type'], ['temperature', 'occupancy']) === true &&
$value !== null
) { ) {
if ($value === null) { $datas[$sensor['sensor_id']][$capability['type']] = ($capability['type'] === 'temperature') ? ($value * 10) : $value;
continue 3; // If temperature or occupancy are null, ignore
} else {
$datas[$sensor['sensor_id']][$capability['type']] = ($capability['type'] === 'temperature') ? ($value * 10) : $value;
}
} }
} }
} }
@ -747,12 +744,14 @@ class runtime extends cora\api {
// Create or update the database // Create or update the database
foreach ($datas as $data) { foreach ($datas as $data) {
if(isset($existing_timestamps[$data['sensor_id']][$data['timestamp']]) === true) { if(isset($data['temperature']) === true && isset($data['occupancy']) === true) {
$data['runtime_sensor_id'] = $existing_timestamps[$data['sensor_id']][$data['timestamp']]; if(isset($existing_timestamps[$data['sensor_id']][$data['timestamp']]) === true) {
$this->database->update('runtime_sensor', $data, 'id'); $data['runtime_sensor_id'] = $existing_timestamps[$data['sensor_id']][$data['timestamp']];
} $this->database->update('runtime_sensor', $data, 'id');
else { }
$existing_timestamps[$data['sensor_id']][$data['timestamp']] = $this->database->create('runtime_sensor', $data, 'id'); else {
$existing_timestamps[$data['sensor_id']][$data['timestamp']] = $this->database->create('runtime_sensor', $data, 'id');
}
} }
} }
} }