From 2506993c8ab834392bb5c91125171786b7305a04 Mon Sep 17 00:00:00 2001 From: John-Mark Gurney Date: Tue, 3 Mar 2020 01:11:43 -0800 Subject: [PATCH] create fake consumption data, and add it in to the graph.. --- fakedata.py | 14 +++++++------- root/js/solardash.base.js | 1 - root/js/solardash.file.jspp | 27 +++++++++++++++++++-------- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/fakedata.py b/fakedata.py index f370dde..8a50189 100644 --- a/fakedata.py +++ b/fakedata.py @@ -110,8 +110,9 @@ def distribute(s, e, prod, minsize): #print('start') prodpoints = [] +prodindex = [] conspoints = [] -index = [] +consindex = [] def serializearrowasmili(obj): if not isinstance(obj, arrow.Arrow): @@ -124,25 +125,24 @@ for i in arrow.Arrow.range('day', startdate, enddate): s, e = makestartend(i) noon = i.replace(hour=12) - index.append((noon, whprod)) + prodindex.append((noon, whprod)) #print(repr(i), whprod) dist = [] - conspoints.extend(makeconsumption(s, rand.uniform(400,800), 100, timedelta(minutes=1))) + tmppoints = makeconsumption(s, rand.uniform(400,800), 100, timedelta(minutes=1)) + consindex.append((noon, sum((i[1] / 60 for i in tmppoints), 0))) + conspoints.extend(tmppoints) # zero points for non-production import sys - print(repr((i, s)), file=sys.stderr) dist.extend(distribute(i, s, 0, timedelta(minutes=5))) # production - print(repr((s, e)), file=sys.stderr) dist.extend(distribute(s, e, whprod, timedelta(seconds=20))) # zero points for non-production eod = i.replace(hour=23, minute=55) - print(repr((e, eod)), file=sys.stderr) dist.extend(distribute(e, eod, 0, timedelta(minutes=5))) # print timestamps as miliseconds @@ -156,4 +156,4 @@ for i in arrow.Arrow.range('day', startdate, enddate): #print(json.dumps(tuple(dist), indent=2)) prodpoints.extend(dist) -print('fakedata =', json.dumps(dict(production=prodpoints, consumption=conspoints, index=index), default=serializearrowasmili)) +print('fakedata =', json.dumps(dict(production=prodpoints, prodindex=prodindex, consumption=conspoints, consindex=consindex), default=serializearrowasmili)) diff --git a/root/js/solardash.base.js b/root/js/solardash.base.js index 09eeae4..09811a2 100644 --- a/root/js/solardash.base.js +++ b/root/js/solardash.base.js @@ -73,7 +73,6 @@ socket.onmessage = function(m) { var solarchart = Highcharts.stockChart('solarchart', { chart: { - type: 'area', zoomType: 'x' }, title: { diff --git a/root/js/solardash.file.jspp b/root/js/solardash.file.jspp index 5a65bed..9a5195f 100644 --- a/root/js/solardash.file.jspp +++ b/root/js/solardash.file.jspp @@ -54,16 +54,27 @@ WebSocketTest.prototype.send = function (s) { if (msg[2] == 'NaN') msg[2] = Infinity; var loidx, hiidx; + + // production loidx = fakedata.production.bisect([msg[1], 0]); if (loidx > 0) loidx -= 1; hiidx = fakedata.production.bisect([msg[2], 0]) + 1; - var subar = fakedata.production.slice(loidx, hiidx); - subar = reducepoints(subar, 800); + var prodar = fakedata.production.slice(loidx, hiidx); + prodar = reducepoints(prodar, 800); + + // consumption + loidx = fakedata.consumption.bisect([msg[1], 0]); + if (loidx > 0) + loidx -= 1; + hiidx = fakedata.consumption.bisect([msg[2], 0]) + 1; + var consar = fakedata.consumption.slice(loidx, hiidx); + consar = reducepoints(consar, 800); + var data = { - "production": subar, - "consumption": subar, - "grid": subar, + "production": prodar, + "consumption": consar, + "grid": prodar, } this.makercv('windata ' + JSON.stringify(data)); } @@ -93,9 +104,9 @@ WebSocketTest.prototype.makercv = function (m) { function getoverviewdata() { return { - grid: fakedata.index, - consumption: fakedata.index, - production: fakedata.index, + grid: fakedata.prodindex, + consumption: fakedata.consindex, + production: fakedata.prodindex, } }