Zur besten Antwort gewählt
Jul 14, 2023 - 08:44
siteCurrentPowerFlow.LOAD.currentPower
ausprobiert?
{"siteCurrentPowerFlow":{"updateRefreshRate":3,"unit":"kW","connections":[{"fro
m":"STORAGE","to":"Load"}],"GRID":{"status":"Active","currentPower":0.0},"LOAD"
:{"status":"Active","currentPower":0.38},"PV":{"status":"Idle","currentPower":0.0},"STORAGE":{"status":"Discharging","
currentPower":0.38,"chargeLevel":80,"critical":false}}}
Ich habe - glaube ich - schon alle Varianten probiert. Aber egal, was ich in Pfad eingebe, ich bekomme nicht die gewollten Daten.
Kann mir bitte jemand auf die Sprünge helfen, was ich unter Pfad eingeben muß, damit ich z.B. an den unterstrichenen Wert rankomme?
Vielen Dank schon mal im Voraus.
Haben Sie die gleiche Frage? Dieser Frage folgen
Jul 14, 2023 - 08:44
Jul 14, 2023 - 09:13
Hallo Fonzo, ja, hatte ich. Ging auch nicht.
ich habe es aber noch rausbekommen. Der Pfad heisst dann: siteCurrentPowerFlow."LOAD".currentPower
Dafür habe ich ein neues Problem. In der gelieferten JSON wechseln die "connections" ab und zu.
Mal ist "Grid" (also Netz) an erster Stelle, und mal an zweiter Stelle
Wenn aus dem Netz bezogen wird an Stelle 2:
{"siteCurrentPowerFlow":{"updateRefreshRate":3,"unit":"kW","connections":[{"fro
m":"PV","to":"Load"},{"from":"GRID","to":"Load"},{"from":"PV","to":"Storage"}],"GRID":{"status":"Active","currentPower":0.07},"
LOAD":{"status":"Active","currentPower":0.18},"PV":{"status":"Active","currentP
ower":3.76},"STORAGE":{"status":"Charging","currentPower":3.65,"chargeLevel":97
,"critical":false}}}
Wenn ins Netz eingespeist wird an Stelle 1:
{"siteCurrentPowerFlow":{"updateRefreshRate":3,"unit":"kW","connections":[{"from":"LOAD","to":"Grid"},{"from":"PV","to":"Load"},{"from":"PV","to":"Storage"}],"GRID":{"status":"Acti
ve","currentPower":0.16},"LOAD":{"status":"Active","currentPower":0.19},"PV":{"
status":"Active","currentPower":3.88},"STORAGE":{"status":"Charging","currentPo
wer":3.53,"chargeLevel":98,"critical":false}}}
Also müsste die Abfrage entweder siteCurrentPowerFlow.connections[0] oder siteCurrentPowerFlow.connections[1] lauten.
Gibt es irgendeine Möglichkeit in der Abfrage, rauszubekommen, welche Stelle ich abfragen muß, um immer "Grid" zu bekommen?
Jul 15, 2023 - 18:07
var url = 'https://dummyjson.com/products';
// Benutze das HTTP- oder HTTPS-Modul je nach URL.
var httpx = (url.indexOf('https://') === 0) ? require('https') : require('http');
var req = httpx.get(url, function(response) {
console.log('Antwort erhalten.', response.statusCode);
var responseData = '';
response.on('data', function(chunk) {
responseData += chunk;
});
response.on('end', function() {
var jsonData = JSON.parse(responseData);
const product = jsonData.products.find(item => item.id === 6);
console.log('Title:', product.title);
console.log('Description:', product.description);
});
});
req.on('error', function(err) {
console.error(err);
});
Jul 16, 2023 - 13:58
Hallo Fonzo, Du bist super! Herzlichen Dank für Deine Mühe.
Trotzdem komme ich nicht klar :-(
Das Ergebnis der Abfrage sieht so aus:
<overview>
<lastUpdateTime>2023-07-16 12:48:39</lastUpdateTime>
<lifeTimeData>
<energy>1014883.0</energy>
</lifeTimeData>
<lastYearData>
<energy>963854.0</energy>
</lastYearData>
<lastMonthData>
<energy>899542.0</energy>
</lastMonthData>
<lastDayData>
<energy>30307.0</energy>
</lastDayData>
<currentPower>
<power>3860.171</power>
</currentPower>
<measuredBy>INVERTER</measuredBy>
</overview>
Ich habe Dein Scriptbeispiel genommen und hinsichtlich Adresse angepasst.
var url = 'https://monitoringapi.solaredge.com/site/12345/overview?api_key=mein_api_key'/
/ Benutze das HTTP- oder HTTPS-Modul je nach URL.
var httpx = (url.indexOf('https://') === 0) ? require('https') : require('http');
var req = httpx.get(url, function(response) {
console.log('Antwort erhalten.', response.statusCode);
var responseData = '';
response.on('data', function(chunk) {
responseData += chunk;
});
response.on('end', function() {
var jsonData = JSON.parse(responseData);
const product = jsonData.products.find(item => item.id === 2);
console.log('Title:', product.title);
console.log('Description:', product.description);
});
});
executeDeviceCommand(
"Neo Server CCU3",
"lifetimedata",
{"value":"setValue","ext":""},
function(err) {
err && console.error(err.message);
}
);
Das Script läuft auch durch und liefert ein Ergebnis.
Aber das Ergebnis ist "0".
Igendetwas mache ich noch falsch... Hilfe
Jul 16, 2023 - 17:41
var jsonData = JSON.parse(responseData);
const product = jsonData.products.find(item => item.id === 6);
console.log('Title:', product.title);
console.log('Description:', product.description);
{"overview":{"lastUpdateTime":"2023-07-16 13:24:31","lifeTimeData":{"energy":1017584.0},"lastYearData":{"energy":966555.0
},"lastMonthData":{"energy":902243.0},"lastDayData":{"energy":33008.0},"current
Power":{"power":10004.761},"measuredBy":"INVERTER"}}
Neuen Kommentar hinzufügen