Send a building command
const url = 'https://example.com/gateway/example/v1/buildings/example/commands';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '"example"'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/gateway/example/v1/buildings/example/commands \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '"example"'A command for equipment or a group of the building, such as bl:SetActivePower, bl:SetPowerLimit or bl:SubmitReservePlan.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The connection (abonnement) to call through, as Verbindingen in the connector names it.
Object id of the building: the register identification in dotted form, for example nl.bag.pand.0014100040022681.
The object id of the building: its register identification in dotted form, e.g. nl.bag.pand.0014100040022681.
Request Bodyrequired
Section titled “Request Bodyrequired”Request of POST /v1/buildings/{building_id}/commands. bl:SetActivePower and bl:SetPowerLimit take { value, unit } (group total; positive delivers power to the building). bl:SubmitReservePlan takes { blocks: [{ start, end, value, unit }] }.
object
RFC 3339 timestamp.
RFC 3339 timestamp.
Lets the consumer retry safely: the same key returns the same receipt.
Exactly one of asset_class and group_id.
object
Compact IRI such as brick:Temperature_Sensor or unit:DEG_C.
Exactly one of asset_class and group_id.
object
Compact IRI such as brick:Temperature_Sensor or unit:DEG_C.
object
Responses
Section titled “Responses”Received.
202 response of every write. Confirms receipt, not execution.
object
Protocol version, carried by every response.
Object id of the building: the register identification in dotted form, for example nl.bag.pand.0014100040022681.
RFC 3339 timestamp.
object
Invalid_request, unauthenticated, building_not_found, point_not_writable, value_out_of_range, unit_mismatch, rate_limited and upstream_unavailable come from the proposal. forbidden, point_not_found, type_mismatch, target_not_found, command_not_supported, expired, not_found and internal are extensions. Clients must accept unknown codes.
Stable address of a point, for example 9b41d0aa.
Exactly one of asset_class and group_id.
object
Compact IRI such as brick:Temperature_Sensor or unit:DEG_C.
Exactly one of asset_class and group_id.
object
Compact IRI such as brick:Temperature_Sensor or unit:DEG_C.
Extension: the individual asset that failed a building-level command.
ISO 8601 duration with exact units only (W, D, H, M, S), for example PT15M.
Example
{ "status": "accepted", "rejected": [ { "code": "invalid_request" } ]}invalid_request, or a write the backend refuses as a whole (point_not_writable, value_out_of_range, …).
Body of every 4xx and 5xx response. building_id is present when the request addressed a building.
object
Protocol version, carried by every response.
Object id of the building: the register identification in dotted form, for example nl.bag.pand.0014100040022681.
object
Invalid_request, unauthenticated, building_not_found, point_not_writable, value_out_of_range, unit_mismatch, rate_limited and upstream_unavailable come from the proposal. forbidden, point_not_found, type_mismatch, target_not_found, command_not_supported, expired, not_found and internal are extensions. Clients must accept unknown codes.
Which field caused it, for example setpoints[0].value.
ISO 8601 duration with exact units only (W, D, H, M, S), for example PT15M.
Example
{ "error": { "code": "invalid_request" }}From the backend: unauthenticated: no or a wrong key. From the gateway: unauthenticated: no key, an unknown key, or an invalid token of the control plane.
Body of every 4xx and 5xx response. building_id is present when the request addressed a building.
object
Protocol version, carried by every response.
Object id of the building: the register identification in dotted form, for example nl.bag.pand.0014100040022681.
object
Invalid_request, unauthenticated, building_not_found, point_not_writable, value_out_of_range, unit_mismatch, rate_limited and upstream_unavailable come from the proposal. forbidden, point_not_found, type_mismatch, target_not_found, command_not_supported, expired, not_found and internal are extensions. Clients must accept unknown codes.
Which field caused it, for example setpoints[0].value.
ISO 8601 duration with exact units only (W, D, H, M, S), for example PT15M.
An answer of the gateway itself, not one it passes on.
object
object
Whether the same request may succeed later.
Example
{ "error": { "code": "invalid_request" }}From the backend: forbidden: the key may not use this building. From the gateway: forbidden: the key lacks the gateway scope, its app may not use this connection, or the app may only read. The provider’s data plane refuses with 403 what the agreement does not cover.
Body of every 4xx and 5xx response. building_id is present when the request addressed a building.
object
Protocol version, carried by every response.
Object id of the building: the register identification in dotted form, for example nl.bag.pand.0014100040022681.
object
Invalid_request, unauthenticated, building_not_found, point_not_writable, value_out_of_range, unit_mismatch, rate_limited and upstream_unavailable come from the proposal. forbidden, point_not_found, type_mismatch, target_not_found, command_not_supported, expired, not_found and internal are extensions. Clients must accept unknown codes.
Which field caused it, for example setpoints[0].value.
ISO 8601 duration with exact units only (W, D, H, M, S), for example PT15M.
An answer of the gateway itself, not one it passes on.
object
object
Whether the same request may succeed later.
Example
{ "error": { "code": "invalid_request" }}building_not_found, or not_found for an unknown route.
Body of every 4xx and 5xx response. building_id is present when the request addressed a building.
object
Protocol version, carried by every response.
Object id of the building: the register identification in dotted form, for example nl.bag.pand.0014100040022681.
object
Invalid_request, unauthenticated, building_not_found, point_not_writable, value_out_of_range, unit_mismatch, rate_limited and upstream_unavailable come from the proposal. forbidden, point_not_found, type_mismatch, target_not_found, command_not_supported, expired, not_found and internal are extensions. Clients must accept unknown codes.
Which field caused it, for example setpoints[0].value.
ISO 8601 duration with exact units only (W, D, H, M, S), for example PT15M.
Example
{ "error": { "code": "invalid_request" }}invalid_request: the body is larger than 16 MiB.
An answer of the gateway itself, not one it passes on.
object
object
Whether the same request may succeed later.
Example
{ "error": { "code": "forbidden" }}rate_limited; retry_after says when to try again.
Body of every 4xx and 5xx response. building_id is present when the request addressed a building.
object
Protocol version, carried by every response.
Object id of the building: the register identification in dotted form, for example nl.bag.pand.0014100040022681.
object
Invalid_request, unauthenticated, building_not_found, point_not_writable, value_out_of_range, unit_mismatch, rate_limited and upstream_unavailable come from the proposal. forbidden, point_not_found, type_mismatch, target_not_found, command_not_supported, expired, not_found and internal are extensions. Clients must accept unknown codes.
Which field caused it, for example setpoints[0].value.
ISO 8601 duration with exact units only (W, D, H, M, S), for example PT15M.
Example
{ "error": { "code": "invalid_request" }}upstream_unavailable: the provider’s data plane could not be reached, its answer was larger than 16 MiB, or, when the agreement requires signed requests, its answer had no valid signature.
An answer of the gateway itself, not one it passes on.
object
object
Whether the same request may succeed later.
Example
{ "error": { "code": "forbidden" }}From the backend: upstream_unavailable: the building’s systems cannot be reached; retryable. From the gateway: upstream_unavailable: the connection is not active (yet), or renewing the access token failed; evidence_unavailable: the agreement requires signed requests and the request or answer could not be recorded; standby: another instance of this data plane is active. Retryable.
Body of every 4xx and 5xx response. building_id is present when the request addressed a building.
object
Protocol version, carried by every response.
Object id of the building: the register identification in dotted form, for example nl.bag.pand.0014100040022681.
object
Invalid_request, unauthenticated, building_not_found, point_not_writable, value_out_of_range, unit_mismatch, rate_limited and upstream_unavailable come from the proposal. forbidden, point_not_found, type_mismatch, target_not_found, command_not_supported, expired, not_found and internal are extensions. Clients must accept unknown codes.
Which field caused it, for example setpoints[0].value.
ISO 8601 duration with exact units only (W, D, H, M, S), for example PT15M.
An answer of the gateway itself, not one it passes on.
object
object
Whether the same request may succeed later.
Example
{ "error": { "code": "invalid_request" }}