Hallo Leute,
ich lese hier schon sehr lange mit und habe bis jetzt fast alle Probleme mit Hilfe des Forums lösen können.
Jetzt stehe ich an einer Sache an und komme nicht weiter, daher habe ich mich jetzt mal angemeldet unf hoffe ihr könnt mir ein wenig helfen…
Nun zum Problem:
Ich nutze für eine meiner Klimaanlagen einen Sensibo Sky Adapter. Es ist möglich die aktuellen Einstellung über eine URL abzufragen. Das klappt soweit auch. Was leider nicht klappt, ist das zerlegen in die einzelnen Datenpunkte...
Hier die Antwort der URL in einem Browser:
{"status": "success", "moreResults": true, "result": [{"status": "Success", "reason": "UserRequest", "acState": {"on": false, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["on"], "id": "YfW8tx7HND", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["targetTemperature"], "id": "AjGJjSuvHX", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 77, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 25, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["targetTemperature"], "id": "jdrfSqMWYD", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["on"], "id": "HQvfSiJosK", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": false, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["on"], "id": "LxE4dT59Hb", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["on"], "id": "wmPZngxUuY", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": false, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["on"], "id": "gf4Ye7waWu", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["on"], "id": "DsXUNFuh8m", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": false, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["on"], "id": "D5KratY3vr", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["fanLevel"], "id": "JE4DhCUodg", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "medium", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["fanLevel"], "id": "fy2E7fVLMz", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "medium_low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["fanLevel"], "id": "wbxgs2QKFX", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["swing"], "id": "F8FYwDyhnr", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "stopped"}, "changedProperties": ["swing"], "id": "vzFJx2sNia", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "fixedTop"}, "changedProperties": ["swing"], "id": "s8MKwEBf2v", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "fixedMiddleTop"}, "changedProperties": ["swing"], "id": "wDis4aUxvw", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "fixedMiddle"}, "changedProperties": ["swing"], "id": "AR5krPydeZ", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "fixedMiddleBottom"}, "changedProperties": ["swing"], "id": "rEWXkbNrhN", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "fixedBottom"}, "changedProperties": ["swing"], "id": "sdVjPCnGbE", "failureReason": null}, {"status": "Success", "reason": "UserRequest", "acState": {"on": true, "nativeTargetTemperature": 75, "fanLevel": "low", "temperatureUnit": "C", "targetTemperature": 24, "nativeTemperatureUnit": "F", "mode": "cool", "swing": "rangeFull"}, "changedProperties": ["swing"], "id": "YKJemgmtE5", "failureReason": null}]}
Hier das Script, es werden aber keine Datenpunkte erstellt…
`var request = require('request');
Intervall = setInterval(SendRequest,10000);
function SendRequest(){
var options = {
url: 'https://home.sensibo.com/api/v2/pods/2mXar2sZ/acStates?apiKey=rBQm5j58LKw76FrUzLIU5KhgYoP2Rz',
};
request(options, function (error, response, body){
if (!error){
CreateDevices(JSON.parse(body));
console.log(body);
}
else{ console.error(error);}
});
}//End of Function SendRequest
function CreateDevices(data){
if ("undefined" !== typeof data.response){
var Group_by='name';
for (i = 0; i < data.response.length; i++) {
for (var ObjName in data.response[i]) {
if (!getObject('javascript.0.tests.Devices.'+data.response[i][Group_by].toString().replace(/\s+/g, '_')+'.'+ObjName)){
createState('javascript.0.tests.Devices.'+data.response[i][Group_by].toString().replace(/\s+/g, '_')+'.'+ObjName,data.response[i][ObjName],{type: typeof data.response[i][ObjName], role: ObjName});
console.log('ERSTELLT');
}
else{setState('javascript.0.tests.Devices.'+data.response[i][Group_by].toString().replace(/\s+/g, '_')+'.'+ObjName,data.response[i][ObjName],akt=true)}
}
}
}
else{console.warn('Response in JSON nicht gefunden ! ')}
}//End of Function CreateDevices`
Das Problem ist, das in "function CreateDevices(data)" direkt zu "else{console.warn('Response in JSON nicht gefunden ! ')}" geht und in den Log eingetragen wird. Datenpunkte werden keine erstellt..
Für mich sind momentan nur die Werte aus result/0/ wichtig, da dies die aktuellen Sollwerte sind.
Wäre super, wenn ihr mir einen Tipp geben könnt, warum mein Script nicht geht....
Vielen Dank im Voraus an die Community![/i][/i][/i][/i][/i][/i][/i]