Sinds kort heb ik zonnepanelen icm een Solaredge inverter. Nu heb ik op GitHub een paar mooie scripts gevonden om meer info uit mijn omvormer te halen, dit mbv de API die ik van mijn leverancier heb ontvangen.
Ik kan nu de gegevens van elke dag binnenhalen, echter ik mis nu van een maand de historie.
Het volgende script leest de waarden van vandaag uit. Graag zou ik iets willen aanpassen zodat ik ook van een ander dag (en andere maand) de gegevens nog kan binnenhalen. Wie weet wat er dan aangepast moet worden in het script. Deze draait op Google Sheets.
Ik kan nu de gegevens van elke dag binnenhalen, echter ik mis nu van een maand de historie.
Het volgende script leest de waarden van vandaag uit. Graag zou ik iets willen aanpassen zodat ik ook van een ander dag (en andere maand) de gegevens nog kan binnenhalen. Wie weet wat er dan aangepast moet worden in het script. Deze draait op Google Sheets.
JavaScript:
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
47
48
49
50
| function getInverter() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("inverter_data"); var sheetSiteInfo = ss.getSheetByName("details"); //date configs and column/row values var date = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd"); //Logger.log(date); //solaredge configuration //get the total days in the current month var startTime = "%2001:00:00"; var endTime = "%2023:00:00"; var siteId = sheetSiteInfo.getRange("B2").getValue(); var apiKey = sheetSiteInfo.getRange("B7").getValue(); var inverterSerial = sheetSiteInfo.getRange("B8").getValue(); var solarEdgeUrl = "https://monitoringapi.solaredge.com/equipment/"+siteId+"/"+inverterSerial+"/data.xml?api_key="+apiKey+"&startTime="+date+startTime+"&endTime="+date+endTime; Logger.log("SolarEdge URL="+solarEdgeUrl); //go get some data var response = UrlFetchApp.fetch(solarEdgeUrl).getContentText(); Logger.log(response) //now parse it and get our values var artifact = XmlService.parse(response); var inverter = new Array(); var timeValues = artifact.getRootElement().getChild("telemetries").getChildren("onePhaseInverterTelemetry"); Logger.log(timeValues); for(var i = 0; i < timeValues.length; i++) { timeStats=[timeValues[i].getChild("date").getValue(),timeValues[i].getChild("totalActivePower").getValue(),timeValues[i].getChild("temperature").getValue() * 1.8 + 32] inverter.push(timeStats); } //Logger.log(inverter) //Logger.log(inverter.length); //clear the cells before writing sheet.getRange("A2:C1000").clearContent(); //During early morning hours there won't be any data if (inverter.length != 0) { var arrayRange = sheet.getRange("A2:C"+((inverter.length)+1)); arrayRange.setValues(inverter); var timeRange = sheet.getRange("A2:A"+((inverter.length)+1)); timeRange.setNumberFormat("HH:mm"); } } |
[ Voor 0% gewijzigd door ThinkPad op 14-07-2016 11:46 . Reden: [code]-tags toegevoegd om het leesbaarder te maken. ]