Some errors fixed, works for api.js

This commit is contained in:
rxf
2023-03-24 15:30:41 +01:00
parent c4c90b4455
commit 26e4b75a6f
7 changed files with 134 additions and 76 deletions
+45 -42
View File
@@ -124,11 +124,11 @@ const getLiveData = async (opt) => {
//
// *********************************************
const gethavgData = async (opts, props) => {
let e = await getNoiseAVGData(opts)
let erg = await getNoiseAVGData(opts)
if (opts.csv) {
let csvStr = "datetime,n_AVG,peakcount\n"
if(!e.err) {
for (let item of e) {
if(!erg.err) {
for (let item of erg.values) {
if (item.n_AVG != -1) {
csvStr += item.datetime + ',' + item.n_AVG + ',' + item.peakcount + '\n'
}
@@ -136,7 +136,7 @@ const gethavgData = async (opts, props) => {
}
return csvStr
} else {
return {err: e.err, values: e.values}
return {err: erg.err, values: erg.values}
}
}
@@ -172,18 +172,19 @@ async function getdavgData(opts) {
let val = [];
let csvStr = 'datetime,n_AVG,peakcount\n';
if(!erg.err) {
for (let i = 0; i < erg.length; i += 24) {
for (let i = 0; i < erg.values.length; i += 24) {
let sum = 0;
let count = 0;
let pk = 0;
let werte = {};
for (let k = 0; k < 24; k++) {
if ((erg[i + k] != null) && (erg[i + k].n_sum != -1)) {
sum += erg[i + k].n_sum;
count += erg[i + k].count;
pk += erg[i + k].peakcount;
const item = erg.values[i + k]
if ((item != null) && (item.n_sum != -1)) {
sum += item.n_sum;
count += item.count;
pk += item.peakcount;
if (werte.datetime === undefined) {
let dt = DateTime.fromISO(erg[i + k].datetime, {zone: 'utc'})
let dt = DateTime.fromISO(item.datetime, {zone: 'utc'})
werte.datetime = dt.startOf('day').toISO()
}
}
@@ -241,32 +242,33 @@ async function getdaynightData(opts) {
if(!erg.err) {
let done = false;
let dt;
// The received houerly data array always (!!) starts at 0h00 local (!) time.
// The received hourly data array always (!!) starts at 0h00 local (!) time.
// So to calculate day values, we skip the first 6 hour and start from there
// now we add 16 hour for day and following 8 hour for night
for (let i = 6; i < erg.length;) {
for (let i = 6; i < erg.values.length;) {
let dsum = 0, dcnt = 0;
let nsum = 0, ncnt = 0;
let werte = {};
const item = erg.values[i]
for (let k = 0; k < 16; k++, i++) {
if (erg[i].n_sum != -1) {
if (item.n_sum != -1) {
if (werte.datetime === undefined) {
let dt = DateTime.fromISO(erg[i].datetime, {zone: 'utc'})
let dt = DateTime.fromISO(item.datetime, {zone: 'utc'})
werte.datetime = dt.startOf('day').toISO()
}
dsum += erg[i].n_sum;
dcnt += erg[i].count;
dsum += item.n_sum;
dcnt += item.count;
}
}
if (i < (erg.length - 8)) {
if (i < (erg.values.length - 8)) {
for (let k = 0; k < 8; k++, i++) {
if (erg[i].n_sum != -1) {
if (item.n_sum != -1) {
if (werte.datetime === undefined) {
let dt = DateTime.fromISO(erg[i].datetime, {zone: 'utc'})
let dt = DateTime.fromISO(item.datetime, {zone: 'utc'})
werte.datetime = dt.startOf('day').toISO()
}
nsum += erg[i].n_sum;
ncnt += erg[i].count;
nsum += item.n_sum;
ncnt += item.count;
}
}
} else {
@@ -343,38 +345,39 @@ async function getLdenData(opts) {
// So to calculate day values, we skip the first 6 hour and start from there
// now we add 12 hour for day and following 4 hour for evening and
// additional 8 hours for night
for (let i = 6; i < erg.length;) {
for (let i = 6; i < erg.values.length;) {
let dsum = 0, dcnt = 0;
let nsum = 0, ncnt = 0;
let esum = 0, ecnt = 0;
let werte = {};
let dayAVG = 0, evnAVG = 0, nightAVG = 0;
const item = erg.values[i]
for (let k = 0; k < 12; k++, i++) {
if (erg[i].n_sum != -1) {
if (item.n_sum != -1) {
if (werte.datetime == undefined) {
werte.datetime = erg[i].datetime;
werte.datetime = item.datetime;
}
dsum += erg[i].n_sum;
dcnt += erg[i].count;
dsum += item.n_sum;
dcnt += item.count;
}
}
for (let k = 0; k < 4; k++, i++) {
if (erg[i].n_sum != -1) {
if (item.n_sum != -1) {
if (werte.datetime == undefined) {
werte.datetime = erg[i].datetime;
werte.datetime = item.datetime;
}
esum += erg[i].n_sum;
ecnt += erg[i].count;
esum += item.n_sum;
ecnt += item.count;
}
}
if (i < (erg.length - 8)) {
if (i < (erg.values.length - 8)) {
for (let k = 0; k < 8; k++, i++) {
if (erg[i].n_sum != -1) {
if (item.n_sum != -1) {
if (werte.datetime == undefined) {
werte.datetime = erg[i].datetime;
werte.datetime = item.datetime;
}
nsum += erg[i].n_sum;
ncnt += erg[i].count;
nsum += item.n_sum;
ncnt += item.count;
}
}
} else {
@@ -488,18 +491,18 @@ peak = data
// hour in an element in docs becomes the index into the new array (for every new day this
// index will be incremented by 24). Missing values are marked by: {n_sum=-1, n_AVG=-1}.
let hoursArr = new Array(opts.span * 24); // generate new array
hoursArr.fill(emptyValues); // fill array with 'empty' values
let startDay = DateTime.fromISO(ret.values[0].datetime, {zone: 'utc'}).get('day'); // calc first day
let k = 0;
hoursArr.fill(emptyValues) // fill array with 'empty' values
let startDay = DateTime.fromISO(ret.values[0].datetime, {zone: 'utc'}).get('day') // calc first day
let k = 0
for (let d of ret.values) { // loop through docs
let stunde = DateTime.fromISO(d.datetime, {zone: 'utc'}).get('hour') // get current hour
let day = DateTime.fromISO(d.datetime, {zone: 'utc'}).get('day') // get current day
if (day != startDay) { // if date has changed
k += 24; // increment index by 24
startDay = day;
k += 24 // increment index by 24
startDay = day
}
hoursArr[k+stunde] = d; // copy date into hourArray
hoursArr[k+stunde] = d // copy date into hourArray
}
return hoursArr;
return { err: ret.err, values: hoursArr}
}