Browse Source

create fake consumption data, and add it in to the graph..

main
John-Mark Gurney 5 years ago
parent
commit
2506993c8a
3 changed files with 26 additions and 16 deletions
  1. +7
    -7
      fakedata.py
  2. +0
    -1
      root/js/solardash.base.js
  3. +19
    -8
      root/js/solardash.file.jspp

+ 7
- 7
fakedata.py View File

@@ -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))

+ 0
- 1
root/js/solardash.base.js View File

@@ -73,7 +73,6 @@ socket.onmessage = function(m) {

var solarchart = Highcharts.stockChart('solarchart', {
chart: {
type: 'area',
zoomType: 'x'
},
title: {


+ 19
- 8
root/js/solardash.file.jspp View File

@@ -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,
}
}



Loading…
Cancel
Save