Link PV inverters
curl --request POST \
--url https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/pv-inverters \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"externalPvInverters": [
"8413731391660801"
]
}
'import requests
url = "https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/pv-inverters"
payload = { "externalPvInverters": ["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({externalPvInverters: ['8413731391660801']})
};
fetch('https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/pv-inverters', 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}/pv-inverters",
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([
'externalPvInverters' => [
'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}/pv-inverters"
payload := strings.NewReader("{\n \"externalPvInverters\": [\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}/pv-inverters")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"externalPvInverters\": [\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}/pv-inverters")
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 \"externalPvInverters\": [\n \"8413731391660801\"\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"isLinked": true,
"vendor": "FRONIUS",
"name": "My PV inverter",
"externalId": "8413731391660801",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"siteName": "My Home"
}
]Connect Home Power Device
Link PV inverters
Connects the provided list of PV inverters from the vendor account to the Energy Hub.
POST
/
v1.0.0
/
link
/
users
/
{userId}
/
vendor-accounts
/
{vendorAccountId}
/
pv-inverters
Link PV inverters
curl --request POST \
--url https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/pv-inverters \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"externalPvInverters": [
"8413731391660801"
]
}
'import requests
url = "https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/pv-inverters"
payload = { "externalPvInverters": ["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({externalPvInverters: ['8413731391660801']})
};
fetch('https://api.energy-hub.io/v1.0.0/link/users/{userId}/vendor-accounts/{vendorAccountId}/pv-inverters', 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}/pv-inverters",
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([
'externalPvInverters' => [
'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}/pv-inverters"
payload := strings.NewReader("{\n \"externalPvInverters\": [\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}/pv-inverters")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"externalPvInverters\": [\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}/pv-inverters")
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 \"externalPvInverters\": [\n \"8413731391660801\"\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"isLinked": true,
"vendor": "FRONIUS",
"name": "My PV inverter",
"externalId": "8413731391660801",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"siteName": "My Home"
}
]Authorizations
API key used for authorization and authentication.
Body
application/json
Object for PV inverters IDs request that should be added to the Energy Hub.
List of external IDs of PV inverters to be linked to the Energy Hub.
List of external IDs of PV inverters to be linked to the Energy Hub.
Example:
["8413731391660801"]
Response
Created
Indicates if the PV inverter is linked to the Energy Hub.
The vendor of the PV inverter.
Available options:
FRONIUS, TESLA, HUAWEI, SMA The display name of the PV inverter.
Example:
"My PV inverter"
ID of the PV inverter in external vendor system.
Example:
"8413731391660801"
The ID of the PV inverter.
The site name of the home energy device.
Example:
"My Home"

