corrected problem with havg

api.js
   - unnecessary export deleted
   - import of logit added

actions/data4map.js
   - logits removed

databases/influx.js
   - logits removed

databases/mongo.js
   - logits removed

sensorspecials/noise.js
   - repeated code put to a function
   - correctred hour count at havg

package.json
  "version": "1.2.2",
  "date": "2023-04-24",
This commit is contained in:
rxf
2023-04-24 11:54:30 +02:00
parent 144f36e0a0
commit 2cf418756d
6 changed files with 56 additions and 46 deletions
+47 -38
View File
@@ -206,6 +206,16 @@ async function getdavgData(opts) {
return {err: erg.err, values: val}
}
// addDatetime
// add the actual date to wert, if werte is undefined
const addDatetime = (werte, item) => {
if (werte.datetime === undefined) {
let dt = DateTime.fromISO(item.datetime, {zone: 'utc'})
werte.datetime = dt.startOf('day').toISO()
}
}
// *********************************************
// getdaynightData
@@ -246,31 +256,30 @@ async function getdaynightData(opts) {
// 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.values.length;) {
const length = erg.values.length
for (let i = 6; i < length;) {
let dsum = 0, dcnt = 0;
let nsum = 0, ncnt = 0;
let werte = {};
for (let k = 0; k < 16; k++, i++) {
const item = erg.values[i]
if (item.n_sum != -1) {
if (werte.datetime === undefined) {
let dt = DateTime.fromISO(item.datetime, {zone: 'utc'})
werte.datetime = dt.startOf('day').toISO()
if ( i < length) {
const item = erg.values[i]
if (item.n_sum != -1) {
addDatetime(werte, item)
dsum += item.n_sum;
dcnt += item.count;
}
dsum += item.n_sum;
dcnt += item.count;
}
}
if (i < (erg.values.length - 8)) {
if (i < (length - 8)) {
const item = erg.values[i]
for (let k = 0; k < 8; k++, i++) {
if (item.n_sum != -1) {
if (werte.datetime === undefined) {
let dt = DateTime.fromISO(item.datetime, {zone: 'utc'})
werte.datetime = dt.startOf('day').toISO()
if (i < length) {
if (item.n_sum != -1) {
addDatetime(werte, item)
nsum += item.n_sum;
ncnt += item.count;
}
nsum += item.n_sum;
ncnt += item.count;
}
}
} else {
@@ -348,44 +357,42 @@ 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.values.length;) {
const length = erg.values.length
for (let i = 6; i < 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;
for (let k = 0; k < 12; k++, i++) {
const item = erg.values[i]
if (item.n_sum != -1) {
if (werte.datetime == undefined) {
let dt = DateTime.fromISO(item.datetime, {zone: 'utc'})
werte.datetime = dt.startOf('day').toISO()
if ( i < length) {
const item = erg.values[i]
if (item.n_sum != -1) {
addDatetime(werte, item)
dsum += item.n_sum;
dcnt += item.count;
}
dsum += item.n_sum;
dcnt += item.count;
}
}
for (let k = 0; k < 4; k++, i++) {
const item = erg.values[i]
if (item.n_sum != -1) {
if (werte.datetime == undefined) {
let dt = DateTime.fromISO(item.datetime, {zone: 'utc'})
werte.datetime = dt.startOf('day').toISO()
if ( i < length) {
const item = erg.values[i]
if (item.n_sum != -1) {
addDatetime(werte, item)
esum += item.n_sum;
ecnt += item.count;
}
esum += item.n_sum;
ecnt += item.count;
}
}
if (i < (erg.values.length - 8)) {
for (let k = 0; k < 8; k++, i++) {
const item = erg.values[i]
if (item.n_sum != -1) {
if (werte.datetime == undefined) {
let dt = DateTime.fromISO(item.datetime, {zone: 'utc'})
werte.datetime = dt.startOf('day').toISO()
if (i < length) {
const item = erg.values[i]
if (item.n_sum != -1) {
addDatetime(werte, item)
nsum += item.n_sum;
ncnt += item.count;
}
nsum += item.n_sum;
ncnt += item.count;
}
}
} else {
@@ -487,7 +494,9 @@ peak = data
// To easily extract the values, we copy the data from docs into a new array, so that the
// 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
// For havg add the missed hours to the arry
const misshours = DateTime.fromISO(ret.values[0].datetime, {zone: 'utc'}).get('hour')
let hoursArr = new Array(opts.span * 24 + misshours); // 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