Submit command for vehicle charging schedule
curl --request POST \
--url https://api.energy-hub.io/v1.0.0/users/{userId}/vehicles/{vehicleId}/commands/charging-schedule \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"schedules": [
{
"start": "08:00",
"end": "12:00",
"chargeRateMax": 12,
"days": [],
"location": {
"latitude": 52.2726,
"longitude": 8.0498
},
"stateOfChargeTarget": 80,
"type": "CHARGE"
}
]
}
'import requests
url = "https://api.energy-hub.io/v1.0.0/users/{userId}/vehicles/{vehicleId}/commands/charging-schedule"
payload = { "schedules": [
{
"start": "08:00",
"end": "12:00",
"chargeRateMax": 12,
"days": [],
"location": {
"latitude": 52.2726,
"longitude": 8.0498
},
"stateOfChargeTarget": 80,
"type": "CHARGE"
}
] }
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({
schedules: [
{
start: '08:00',
end: '12:00',
chargeRateMax: 12,
days: [],
location: {latitude: 52.2726, longitude: 8.0498},
stateOfChargeTarget: 80,
type: 'CHARGE'
}
]
})
};
fetch('https://api.energy-hub.io/v1.0.0/users/{userId}/vehicles/{vehicleId}/commands/charging-schedule', 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/users/{userId}/vehicles/{vehicleId}/commands/charging-schedule",
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([
'schedules' => [
[
'start' => '08:00',
'end' => '12:00',
'chargeRateMax' => 12,
'days' => [
],
'location' => [
'latitude' => 52.2726,
'longitude' => 8.0498
],
'stateOfChargeTarget' => 80,
'type' => 'CHARGE'
]
]
]),
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/users/{userId}/vehicles/{vehicleId}/commands/charging-schedule"
payload := strings.NewReader("{\n \"schedules\": [\n {\n \"start\": \"08:00\",\n \"end\": \"12:00\",\n \"chargeRateMax\": 12,\n \"days\": [],\n \"location\": {\n \"latitude\": 52.2726,\n \"longitude\": 8.0498\n },\n \"stateOfChargeTarget\": 80,\n \"type\": \"CHARGE\"\n }\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/users/{userId}/vehicles/{vehicleId}/commands/charging-schedule")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"schedules\": [\n {\n \"start\": \"08:00\",\n \"end\": \"12:00\",\n \"chargeRateMax\": 12,\n \"days\": [],\n \"location\": {\n \"latitude\": 52.2726,\n \"longitude\": 8.0498\n },\n \"stateOfChargeTarget\": 80,\n \"type\": \"CHARGE\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.energy-hub.io/v1.0.0/users/{userId}/vehicles/{vehicleId}/commands/charging-schedule")
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 \"schedules\": [\n {\n \"start\": \"08:00\",\n \"end\": \"12:00\",\n \"chargeRateMax\": 12,\n \"days\": [],\n \"location\": {\n \"latitude\": 52.2726,\n \"longitude\": 8.0498\n },\n \"stateOfChargeTarget\": 80,\n \"type\": \"CHARGE\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"userId": "896f9d5a-b618-48a2-98ae-957059bf1bc9",
"deviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Vehicle for user
Submit command for vehicle charging schedule
This endpoint creates an asynchronously executed command request to schedule charging.
POST
/
v1.0.0
/
users
/
{userId}
/
vehicles
/
{vehicleId}
/
commands
/
charging-schedule
Submit command for vehicle charging schedule
curl --request POST \
--url https://api.energy-hub.io/v1.0.0/users/{userId}/vehicles/{vehicleId}/commands/charging-schedule \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"schedules": [
{
"start": "08:00",
"end": "12:00",
"chargeRateMax": 12,
"days": [],
"location": {
"latitude": 52.2726,
"longitude": 8.0498
},
"stateOfChargeTarget": 80,
"type": "CHARGE"
}
]
}
'import requests
url = "https://api.energy-hub.io/v1.0.0/users/{userId}/vehicles/{vehicleId}/commands/charging-schedule"
payload = { "schedules": [
{
"start": "08:00",
"end": "12:00",
"chargeRateMax": 12,
"days": [],
"location": {
"latitude": 52.2726,
"longitude": 8.0498
},
"stateOfChargeTarget": 80,
"type": "CHARGE"
}
] }
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({
schedules: [
{
start: '08:00',
end: '12:00',
chargeRateMax: 12,
days: [],
location: {latitude: 52.2726, longitude: 8.0498},
stateOfChargeTarget: 80,
type: 'CHARGE'
}
]
})
};
fetch('https://api.energy-hub.io/v1.0.0/users/{userId}/vehicles/{vehicleId}/commands/charging-schedule', 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/users/{userId}/vehicles/{vehicleId}/commands/charging-schedule",
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([
'schedules' => [
[
'start' => '08:00',
'end' => '12:00',
'chargeRateMax' => 12,
'days' => [
],
'location' => [
'latitude' => 52.2726,
'longitude' => 8.0498
],
'stateOfChargeTarget' => 80,
'type' => 'CHARGE'
]
]
]),
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/users/{userId}/vehicles/{vehicleId}/commands/charging-schedule"
payload := strings.NewReader("{\n \"schedules\": [\n {\n \"start\": \"08:00\",\n \"end\": \"12:00\",\n \"chargeRateMax\": 12,\n \"days\": [],\n \"location\": {\n \"latitude\": 52.2726,\n \"longitude\": 8.0498\n },\n \"stateOfChargeTarget\": 80,\n \"type\": \"CHARGE\"\n }\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/users/{userId}/vehicles/{vehicleId}/commands/charging-schedule")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"schedules\": [\n {\n \"start\": \"08:00\",\n \"end\": \"12:00\",\n \"chargeRateMax\": 12,\n \"days\": [],\n \"location\": {\n \"latitude\": 52.2726,\n \"longitude\": 8.0498\n },\n \"stateOfChargeTarget\": 80,\n \"type\": \"CHARGE\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.energy-hub.io/v1.0.0/users/{userId}/vehicles/{vehicleId}/commands/charging-schedule")
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 \"schedules\": [\n {\n \"start\": \"08:00\",\n \"end\": \"12:00\",\n \"chargeRateMax\": 12,\n \"days\": [],\n \"location\": {\n \"latitude\": 52.2726,\n \"longitude\": 8.0498\n },\n \"stateOfChargeTarget\": 80,\n \"type\": \"CHARGE\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"userId": "896f9d5a-b618-48a2-98ae-957059bf1bc9",
"deviceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Charging Schedules are only supported for BMW, MINI and Tesla
vehicles.
Authorizations
API key used for authorization and authentication.
Path Parameters
Vehicle ID
Body
application/json
New schedule be to set. UTC expected.
The list of schedule events.
Show child attributes
Show child attributes
Response
Successful operation
The timestamp when command is created.
The ID of the command.
The state of the command.
PENDING- Command is waiting to be executed.FAILED- Execution of command has failed.EXECUTED- Command has been executed successfully.
Available options:
PENDING, EXECUTED, FAILED The name of the command type to execute.
Available options:
CHARGING_START, CHARGING_STOP, SET_CHARGING_CURRENT, SET_CHARGING_SCHEDULE The ID of the user.
Example:
"896f9d5a-b618-48a2-98ae-957059bf1bc9"
The ID of the vehicle.
⌘I

