@streit187 sagte in Solarprognose:
Das ist vermutlich nicht schön aber es tut was es soll. Leider nur an einem Tag weil das Objekt direkt aufgerufen wird.
Wie kann ich denn hier die Objekt Nummer aufrufen ähnlich der Eigenschaft mit [0[ bzw. [1]?
Dank an alle - ich habe mir hier für ein interessantes Thema viel abgeschaut und beide Grafen in ein Diagramm zusammengefasst:
Hier eine Lösung für die zwei weiteren DP; ob sie auf Dauer funktioniert, sehe ich dann morgen mit neuen Daten.
const url = 'http://www.solarprognose.de/web/solarprediction/api/v1?_format=json&access-token=....&item=inverter&id=412&type=hourly';
const path = '0_userdata.0.SolarGraph.';
const idLeistung_Energie = path + 'Leistung_Energie';
const idEnergieMaxHeute = path + 'EnergieMaxHeute';
const idEnergieMaxMorgen = path + 'EnergieMaxMorgen';
var Leistung_Energie = {
"axisLabels": ["8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18"],
"graphs": [{
"data": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"type": "line",
"legendText":"Leistung",
"yAxis_min": 0,
"yAxis_max": 8,
"yAxis_step": 1,
"yAxis_position": "left",
"yAxis_appendix": " kW",
"datalabel_show": false
},
{
"data": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
"type": "line",
"line_UseFillColor": true,
"legendText":"Energie",
"yAxis_min": 0,
"yAxis_max": 64,
"yAxis_step": 8,
"yAxis_position": "right",
"yAxis_appendix": " kWh",
"yAxis_color": "#91d430",
"datalabel_show": false
}
]
};
createState(idLeistung_Energie, JSON.stringify(Leistung_Energie), {type: 'string', name: 'Leistung_Energie', role: 'table'});
createState(idEnergieMaxHeute, 0, {type: 'number', role: 'value', name: 'EnergieMaxHeute', read: true, write: false, unit: 'kWh'});
createState(idEnergieMaxMorgen, 0, {type: 'number', role: 'value', name: 'EnergieMaxMorgen', read: true, write: false, unit: 'kWh'});
schedule('5 7,9,12,14,16,18 * * *', function() {
request(url, function (error, response, result) {
if(error) log(error, 'error');
else {
let obj = JSON.parse(result);
if(obj.status) log('Fehler: ' + obj.status, 'warn');
else {
let data = obj.data;
Leistung_Energie.axisLabels = [];
Leistung_Energie.graphs[0].data = [];
Leistung_Energie.graphs[1].data = [];
let i = 0;
for(let entry in data) {
let time = formatDate(parseInt(entry), 'hh');
Leistung_Energie.axisLabels.push(time);
Leistung_Energie.graphs[0].data.push(data[entry][0]);
Leistung_Energie.graphs[1].data.push(data[entry][1]);
if (time == '19')
if (i == 0) { setState(idEnergieMaxHeute, data[entry][1], true); i = i+1 }
else setState(idEnergieMaxMorgen, data[entry][1], true);
}
setState(idLeistung_Energie, JSON.stringify(Leistung_Energie), true);
}
}
});
});