Hallo,
Denke es gab einen Kopierfehler, probier bitte den mal aus. Es gibt nur folgende Parameter, mehr bekomme ich aus der API nicht raus:
[
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "4",
"parameterName": "Aktuelle Außenlufttemperatur (BT1)",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-12-20T11:58:06+00:00",
"value": 6.5,
"strVal": "6.5°C",
"smartHomeCategories": [
"sh-outdoorTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "8",
"parameterName": "Vorlauf (BT2)",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-12-20T11:26:55+00:00",
"value": 25.6,
"strVal": "25.6°C",
"smartHomeCategories": [
"sh-supplyTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "10",
"parameterName": "Rücklauf (BT3)",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-12-20T10:00:50+00:00",
"value": 23.4,
"strVal": "23.4°C",
"smartHomeCategories": [
"sh-returnTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "12",
"parameterName": "Brauchwasserbereitung (BT6)",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-12-20T11:53:18+00:00",
"value": 47.4,
"strVal": "47.4°C",
"smartHomeCategories": [
"sh-hwTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "13",
"parameterName": "Eintritt Wärmequellenmedium (BT10)",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-12-20T09:26:42+00:00",
"value": 8.2,
"strVal": "8.2°C",
"smartHomeCategories": [
"sh-returnTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "14",
"parameterName": "Austritt Wärmequellenmedium (BT11)",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-12-20T10:35:30+00:00",
"value": 4.2,
"strVal": "4.2°C",
"smartHomeCategories": [
"sh-supplyTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "54",
"parameterName": "Mittlere Temperatur (BT1)",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-12-20T11:09:24+00:00",
"value": 4,
"strVal": "4°C",
"smartHomeCategories": [
"sh-outdoorTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "781",
"parameterName": "Gradminuten",
"parameterUnit": "DM",
"writable": true,
"timestamp": "2023-12-20T12:33:24+00:00",
"value": -252,
"strVal": "-252DM",
"smartHomeCategories": [],
"minValue": -30000,
"maxValue": 30000,
"stepValue": 20,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "1708",
"parameterName": "Berechneter Vorlauf Klimatisierungssystem 1",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-11-27T17:22:59+00:00",
"value": 25,
"strVal": "25°C",
"smartHomeCategories": [
"sh-supplyTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
}
]
Hier der abgeänderte Code:
Denke es gab einen Kopierfehler, probier bitte den mal aus. Es gibt nur folgende Parameter, mehr bekomme ich aus der API nicht raus:
[
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "4",
"parameterName": "Aktuelle Außenlufttemperatur (BT1)",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-12-20T11:58:06+00:00",
"value": 6.5,
"strVal": "6.5°C",
"smartHomeCategories": [
"sh-outdoorTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "8",
"parameterName": "Vorlauf (BT2)",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-12-20T11:26:55+00:00",
"value": 25.6,
"strVal": "25.6°C",
"smartHomeCategories": [
"sh-supplyTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "10",
"parameterName": "Rücklauf (BT3)",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-12-20T10:00:50+00:00",
"value": 23.4,
"strVal": "23.4°C",
"smartHomeCategories": [
"sh-returnTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "12",
"parameterName": "Brauchwasserbereitung (BT6)",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-12-20T11:53:18+00:00",
"value": 47.4,
"strVal": "47.4°C",
"smartHomeCategories": [
"sh-hwTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "13",
"parameterName": "Eintritt Wärmequellenmedium (BT10)",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-12-20T09:26:42+00:00",
"value": 8.2,
"strVal": "8.2°C",
"smartHomeCategories": [
"sh-returnTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "14",
"parameterName": "Austritt Wärmequellenmedium (BT11)",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-12-20T10:35:30+00:00",
"value": 4.2,
"strVal": "4.2°C",
"smartHomeCategories": [
"sh-supplyTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "54",
"parameterName": "Mittlere Temperatur (BT1)",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-12-20T11:09:24+00:00",
"value": 4,
"strVal": "4°C",
"smartHomeCategories": [
"sh-outdoorTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "781",
"parameterName": "Gradminuten",
"parameterUnit": "DM",
"writable": true,
"timestamp": "2023-12-20T12:33:24+00:00",
"value": -252,
"strVal": "-252DM",
"smartHomeCategories": [],
"minValue": -30000,
"maxValue": 30000,
"stepValue": 20,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
{
"category": "NIBE S1155-12 EM 3X400V",
"parameterId": "1708",
"parameterName": "Berechneter Vorlauf Klimatisierungssystem 1",
"parameterUnit": "°C",
"writable": false,
"timestamp": "2023-11-27T17:22:59+00:00",
"value": 25,
"strVal": "25°C",
"smartHomeCategories": [
"sh-supplyTemp"
],
"minValue": null,
"maxValue": null,
"stepValue": 1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
}
]
Hier der abgeänderte Code:
Code:
###[DEF]### [name =MY UPLINK NUBI ] [e#1 trigger= Abfragen] [e#2 = user(mail) ] [e#3 = password ] [a#1 =Aussentemperatur [°C] ] [a#2 =Vorlauf ] [a#3 =Rücklauf ] [a#4 =Brauchwasserbereitung ] [a#5 =Eintritt Wärmequellenmedium ] [a#6 =Austritt Wärmequellenmedium ] [a#7 =Mittlere Temperatur ] [a#8 =Gradminuten ] [a#9 =Berechneter Vorlauf Klimatisierungssystem ] [a#10 =Alarmliste ] [a#11 =debug ] [v#100 = 0.1 ] [v#101 = 19001988 ] [v#102 = Abfrage KNC Wärmempumpe ] [v#103 = 0 ] ###[/DEF]### ###[HELP]### Keine Hilfe verfügbar ###[/HELP]### ###[LBS]### <? function LB_LBSID($id) { if ($E=logic_getInputs($id)) { if ($E[1]['refresh'] && $E[1]['value']) { callLogicFunctionExec(LBSID, $id); } } } ?> ###[/LBS]### ###[EXEC]### <? require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php"); set_time_limit(10); sql_connect(); //------------------------------------------------------------------------------------- $E = getLogicEingangDataAll($id); $user = $E[2]['value']; $password = $E[3]['value']; // Url zuweisen $url_token='https://api.myuplink.com/oauth/token'; $url_system='https://api.myuplink.com/v2/systems/me?page=1&itemsPerPage=10'; $payload_login =('{"grant_type":"password","email":"'.$user.'","password":"'.$password.'"}'); $payload_token =('grant_type=password&username='.$user.'&password='.$password.'&client_id=My-Uplink-Web'); //Token auslesen $ch = curl_init($url_token); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload_token); curl_setopt($ch, CURLOPT_HTTPHEADER, array('application/x-www-form-urlencoded, Accept-Language: de-DE')); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); //Login und Token auslesen $obj = json_decode($result); $access_token = $obj->access_token; $refresh_token = $obj->refresh_token; $token_type = $obj->token_type; //System-ID auslesen $ch = curl_init($url_system); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HTTPHEADER, array('text/plain', 'Authorization: Bearer '. $access_token)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); $array_system=json_decode($result,true); //SystemID Auslesen foreach ($array_system['systems'] as $v) { $systemid=$v['systemId']; } //Device-ID auslesen foreach ($array_system['systems']['0']['devices'] as $v) { $deviceid=$v['id']; } //URLs definieren für Abfragen der Points und Notifications $url_params='https://api.myuplink.com/v2/devices/'. $deviceid . '/points'; $url_notification='https://api.myuplink.com/v2/systems/'. $systemid .'/notifications/active?page=1&itemsPerPage=20'; //Points auslesen $ch = curl_init($url_params); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HTTPHEADER, array('application/json', 'Accept-Language: de-DE', 'text/plain', '*/*', 'Authorization: Bearer '. $access_token)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); $arr_datapoints = json_decode($result); //Array durchgehen und alle Parameter wegschreiben $i=0; foreach ($arr_datapoints as $v){ //$array[$i]['parameterName'] = $v->parameterName; $array[$i]['value'] = $v->value; $i++; } $keys = array_keys($array); for($i = 0; $i < count($array); $i++) { foreach($array[$keys[$i]] as $key => $value) { logic_setOutput($id,$i+1, $value); } } //Aktive Alarme auslesen $ch = curl_init($url_notification); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Language: de-DE', 'text/plain', '*/*', 'Authorization: Bearer '. $access_token)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); $arr_notifications = json_decode($result); logic_setOutput($id, 10, $arr_notifications); ?> ###[/EXEC]###
Kommentar