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