-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpvoutput-api.js
46 lines (33 loc) · 1.14 KB
/
pvoutput-api.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
var request = require('request');
var querystring = require('querystring');
var moment = require('moment');
function PvoutputAPI(settings) {
var apiKey = settings.apiKey;
var systemId = settings.systemId;
this.debug = settings.debug || false;
this.send = function(timestamp, solarWatt, solarWattHour, consumptionWatt, consumptionWattHour, callback) {
var timestamp = moment(timestamp);
var date = timestamp.format('YYYYMMDD');
var time = timestamp.format('HH:mm');
var params = {
key: apiKey,
sid: systemId,
d: date,
t: time,
v1: solarWatt,
v3: consumptionWatt,
v4: consumptionWattHour
};
if (solarWattHour != 0) {
params.v2 = solarWattHour;
}
var query = querystring.stringify(params);
var options = {
url: 'http://pvoutput.org/service/r2/addstatus.jsp?' + query
};
request.get(options, function (err, httpResponse, body) {
callback(httpResponse.statusCode, body, options.url);
});
};
}
module.exports = PvoutputAPI;