Hallo
Ich versuche gerade meine ersten Schritte mit iobroker Skripte zu machen.
Ziel ist es eine Webadresse welche ein JSON zurückgibt auszulesen und das Ergebnis zur Verfügung zu stellen damit es angezeigt werden kann.
Das ist mein Skript welcher die Seite ausliest
const request = require('request');
let url = "http://192.168.0.118/rest/kiwigrid/wizard/devices/";
let options = { json: true };
schedule('*/10 * * * * *', function () {
request(url, options, (error, res, body) => {
if (error) {
return console.log(error)
};
if (!error && res.statusCode == 200) {
var myText = JSON.stringify(body);
console.log(myText);
};
});
});
Hier das JSON welches zurück gegeben wird.
{
"result": {
"items": [
{
"tagValues": {
"IdLabelSet": {
"tagName": "IdLabelSet",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": null
},
"StateLockedIsSet": {
"tagName": "StateLockedIsSet",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": false
},
"IdDevicesMap": {
"tagName": "IdDevicesMap",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": {
"LOCATION": [
"c80cbbc3-b0f6-4582-a98d-2bcc54afc114"
],
"INVERTER": [
"urn:sunspec:sma:inverter:305148784",
"urn:solarwatt:myreserve:bc:a30b000a3ef8",
"urn:solarwatt:myreserve:pv:a30b000a3ef8"
],
"PV_PLANT": [
"5a4029ee-7b84-4d5a-821a-a13eae5b7b8d"
]
}
},
"IdName": {
"tagName": "IdName",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": "SEM"
},
"MigratedToScheduleApp": {
"tagName": "MigratedToScheduleApp",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": true
},
"FractionFeedInLimit": {
"tagName": "FractionFeedInLimit",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": 70
},
"ModeManagement": {
"tagName": "ModeManagement",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": "OFF"
},
"IdConsumerSettingsMap": {
"tagName": "IdConsumerSettingsMap",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": {}
},
"ModeTestActive": {
"tagName": "ModeTestActive",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": false
},
"IdFingerPrintVersion": {
"tagName": "IdFingerPrintVersion",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": 0
},
"IdInterfaceList": {
"tagName": "IdInterfaceList",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": []
},
"StateDevice": {
"tagName": "StateDevice",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": "OK"
},
"IdConsumerManagementIntervalsMap": {
"tagName": "IdConsumerManagementIntervalsMap",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": {}
},
"IdSerialNumber": {
"tagName": "IdSerialNumber",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": null
},
"FractionFeedInTestLimit": {
"tagName": "FractionFeedInTestLimit",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": null
},
"ModeActive": {
"tagName": "ModeActive",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": false
},
"IdConsumerSelectionList": {
"tagName": "IdConsumerSelectionList",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": []
},
"IdModelCode": {
"tagName": "IdModelCode",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": null
},
"IdFirmware": {
"tagName": "IdFirmware",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": null
},
"PasswordLock": {
"tagName": "PasswordLock",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": null
},
"StateVisibleIsSet": {
"tagName": "StateVisibleIsSet",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": false
},
"PowerInSwitchedOnDevices": {
"tagName": "PowerInSwitchedOnDevices",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": 0
},
"IdManufacturer": {
"tagName": "IdManufacturer",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": null
},
"StateErrorList": {
"tagName": "StateErrorList",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": []
},
"IdManageableDeviceInfo": {
"tagName": "IdManageableDeviceInfo",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": {
"c80cbbc3-b0f6-4582-a98d-2bcc54afc114": {
"powerPotencial": -302,
"activeDevices": []
}
}
},
"IdDriver": {
"tagName": "IdDriver",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": "com.solarwatt.devices.sem/com.kiwigrid.lib.ddk.driver.StaticDeviceDriver"
},
"IdFingerPrint": {
"tagName": "IdFingerPrint",
"guid": "urn:solarwatt:sem:ERC04-000008368",
"value": "urn:solarwatt:sem:ERC04-000008368"
}
},
"deviceModel": [
{
"deviceClass": "com.kiwigrid.lib.device.Device"
},
{
"deviceClass": "com.solarwatt.devices.sem.SmartEnergyManagement"
}
],
"guid": "urn:solarwatt:sem:ERC04-000008368"
},
{
"tagValues": {
"IdSerialNumber": {
"tagName": "IdSerialNumber",
"guid": "5a4029ee-7b84-4d5a-821a-a13eae5b7b8d",
"value": null
},
"TimePowerOutForecastGranularity": {
"tagName": "TimePowerOutForecastGranularity",
"guid": "5a4029ee-7b84-4d5a-821a-a13eae5b7b8d",
"value": 900000
},
"FractionDeratingLimit": {
"tagName": "FractionDeratingLimit",
"guid": "5a4029ee-7b84-4d5a-821a-a13eae5b7b8d",
"value": 0.7
},
"StateErrorList": {
"tagName": "StateErrorList",
"guid": "5a4029ee-7b84-4d5a-821a-a13eae5b7b8d",
"value": []
},
"IdDriver": {
"tagName": "IdDriver",
"guid": "5a4029ee-7b84-4d5a-821a-a13eae5b7b8d",
"value": "com.kiwigrid.devices.pvplant/com.kiwigrid.lib.driver.virtual.VirtualDriver"
},
"IdInverterList": {
"tagName": "IdInverterList",
"guid": "5a4029ee-7b84-4d5a-821a-a13eae5b7b8d",
"value": [
"urn:solarwatt:myreserve:pv:a30b000a3ef8"
]
},
"ForecastPowerOut": {
"tagName": "ForecastPowerOut",
"guid": "5a4029ee-7b84-4d5a-821a-a13eae5b7b8d",
"value": null
},
"WorkACOut": {
"tagName": "WorkACOut",
"guid": "5a4029ee-7b84-4d5a-821a-a13eae5b7b8d",
"value": 4308752895.798027
},
"StateLockedIsSet": {
"tagName": "StateLockedIsSet",
"guid": "5a4029ee-7b84-4d5a-821a-a13eae5b7b8d",
"value": false
},
"PowerOutForecastNow": {
"tagName": "PowerOutForecastNow",
"guid": "5a4029ee-7b84-4d5a-821a-a13eae5b7b8d",
"value": 2244.03
},
"IdFirmware": {
"tagName": "IdFirmware",
"guid": "5a4029ee-7b84-4d5a-821a-a13eae5b7b8d",
"value": null
},
"DateInstallation": {
"tagName": "DateInstallation",
"guid": "5a4029ee-7b84-4d5a-821a-a13eae5b7b8d",
"value": 1546905600000
},
usw...
Wie kann ich das Ergebnis nun als Objekt zur Verfügung stellen so das ich es in VIS einbinden kann?
Bin für jede Hilfe dankbar
Martin