Link HVACs
curl --request POST \
--url https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/hvacs \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"externalHvacs": [
"8413731391660801"
]
}
'import requests
url = "https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/hvacs"
payload = { "externalHvacs": ["8413731391660801"] }
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({externalHvacs: ['8413731391660801']})
};
fetch('https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/hvacs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/hvacs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'externalHvacs' => [
'8413731391660801'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/hvacs"
payload := strings.NewReader("{\n \"externalHvacs\": [\n \"8413731391660801\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/hvacs")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"externalHvacs\": [\n \"8413731391660801\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/hvacs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"externalHvacs\": [\n \"8413731391660801\"\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"isLinked": true,
"vendor": "VIESSMANN",
"name": "Viessmann Vitotronic 200",
"externalId": "8413731391660801",
"model": "Vitotronic 200",
"type": "AC",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
Connect HVAC
Link HVACs
Connects the provided list of HVACs from the vendor account to the Energy Hub.
POST
/
v1.0.0
/
link
/
users
/
{userId}
/
vendor-accounts
/
{vendorAccountId}
/
hvacs
Link HVACs
curl --request POST \
--url https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/hvacs \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"externalHvacs": [
"8413731391660801"
]
}
'import requests
url = "https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/hvacs"
payload = { "externalHvacs": ["8413731391660801"] }
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({externalHvacs: ['8413731391660801']})
};
fetch('https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/hvacs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/hvacs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'externalHvacs' => [
'8413731391660801'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/hvacs"
payload := strings.NewReader("{\n \"externalHvacs\": [\n \"8413731391660801\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/hvacs")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"externalHvacs\": [\n \"8413731391660801\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/hvacs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"externalHvacs\": [\n \"8413731391660801\"\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"isLinked": true,
"vendor": "VIESSMANN",
"name": "Viessmann Vitotronic 200",
"externalId": "8413731391660801",
"model": "Vitotronic 200",
"type": "AC",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
Authorizations
API key used for authorization and authentication.
Body
application/json
Object for HVAC that should be added to the Energy Hub.
List of external IDs of HVACs to be linked to the Energy Hub.
List of external IDs of HVACs to be linked to the Energy Hub.
Example:
["8413731391660801"]
Response
Created
Indicates if the HVAC is linked to the Energy Hub.
The vendor of the HVAC.
Available options:
VIESSMANN, DAIKIN, VAILLANT The name of the HVAC in human-readable format.
Example:
"Viessmann Vitotronic 200"
ID of the device in external vendor system.
Example:
"8413731391660801"
The model of the HVAC.
Example:
"Vitotronic 200"
The type of the HVAC.
Available options:
AC, HEATING_CIRCUIT, DHW, THERMOSTAT The ID of the HVAC.

