Domotics
API for communication with ZBOS by Zora Robotics.
Channels
zbos/domotics/systems/get
PUB
Get domotics systems
see zbos/domotics/systems/get/response/\{key} for response
zbos/domotics/systems/get/response/\{key}
SUB
Get domotics systems response
All domotics systems that are configured
Array<DomoticsSystem>
Payload
Name |
Type |
Description |
Accepted values |
|
array (object) |
Any |
|
|
string |
unique id of the domotics system |
Any |
|
string |
brand of the domotics system, eg: homeassistant, creadomotics, … |
Any |
|
string |
state of the domotics system |
* |
|
string |
human-readable name of the domotics system |
Any |
zbos/domotics/systems/changed/event
SUB
Domotics systems changed event
Fires all systems when the configuration of any of the domotics systems changes
Array<DomoticsSystem>
Payload
Name |
Type |
Description |
Accepted values |
|
array (object) |
Any |
|
|
string |
unique id of the domotics system |
Any |
|
string |
brand of the domotics system, eg: homeassistant, creadomotics, … |
Any |
|
string |
state of the domotics system |
* |
|
string |
human-readable name of the domotics system |
Any |
zbos/domotics/devices/get
PUB
Get domotics devices
see zbos/domotics/devices/get/response/\{key} for response
DomoticsDevicesGetRequest
Payload
Name |
Type |
Description |
Accepted values |
|
string |
Required random key |
Any |
|
array (string) |
Optional, device ids to filter on |
Any |
|
array (string) |
Optional, room ids to filter on |
Any |
|
array (string) |
Optional, tags to filter on |
Any |
|
string |
Optional, device type to filter on |
Any |
|
array (string) |
Optional, system ids to filter on |
Any |
|
boolean |
Optional, if set to true, only devices with actions will be returned |
Any |
|
string |
Optional. Set the language for all labels. Otherwise it will be the default language. The language format is ISO 639-1 language code, Eg: 'en' or 'en-US' |
Any |
Examples of payload
{
"key": "abc"
}
{
"key": "abc",
"ids": [
"light.kitchen"
]
}
{
"key": "abc",
"rooms": [
"kitchen"
]
}
{
"key": "abc",
"tags": [
"kitchen",
"central"
]
}
{
"key": "abc",
"type": "light"
}
{
"key": "abc",
"system_ids": [
"homeassistant_0d8cfe8b42594518975c10ebafe04c0c"
]
}
{
"key": "abc",
"with_actions_only": true
}
zbos/domotics/devices/get/response/\{key}
SUB
Get domotics devices response
All domotics devices that are configured
Array<DomoticsDevice>
Payload
Name |
Type |
Description |
Accepted values |
|
array (object) |
Any |
|
|
string |
Unique id |
Any |
|
string |
Device type. Different brands have different types |
Any |
|
string |
Generic brand-independent device type |
Any |
|
string |
Human-readable representation of the generic type |
Any |
|
string |
Human-readable name |
Any |
|
string |
Optional, id of the room the device is in |
Any |
|
array (string) |
Optional, list of tags the device has |
Any |
|
string |
System ID this device belongs to |
Any |
|
string |
Brand of the system this device belongs to |
Any |
|
object |
Definitions of all actions you can perform with the device |
Any |
|
object |
Definitions of all attributes of the device |
Any |
Examples of payload
{
"id": "light.kitchen",
"type": "light",
"name": "Central light in the kitchen",
"room": "kitchen",
"tags": [
"kitchen",
"central"
],
"brand": "homeassistant",
"actions": {
"turn_on": {
"label": "Turn On",
"components": {
"brightness": {
"required": false,
"type": "integer",
"label": "Brightness",
"range": {
"min": 0,
"max": 255
}
}
}
},
"turn_off": {
"label": "Turn Off"
},
"toggle": {
"label": "Toggle",
"components": {
"brightness": {
"required": false,
"type": "integer",
"label": "Brightness",
"range": {
"min": 0,
"max": 255
}
}
}
}
},
"attributes": {
"state": {
"type": "select_single",
"label": "State",
"options": [
{
"key": "on",
"value": "on",
"label": "On"
},
{
"key": "off",
"value": "off",
"label": "Off"
}
]
},
"brightness": {
"type": "integer",
"label": "Brightness",
"range": {
"min": 0,
"max": 255
}
}
},
"type_generic": "light",
"type_translation": "Light",
"system_id": "homeassistant_0d8cfe8b42594518975c10ebafe04c0c"
}
zbos/domotics/devices/actions/execute
PUB
Update device state
Updates all devices that match the "ids", "rooms", "tags", and "system_ids" filter |Leave any of the filters empty to ignore them.
DomoticsDevicesActionsExecuteRequest
Payload
Name |
Type |
Description |
Accepted values |
|
string |
Required random key |
Any |
|
array (string) |
Optional, Ids of the devices |
Any |
|
array (string) |
Optional, Rooms of the devices |
Any |
|
array (string) |
Optional, Tags of the devices |
Any |
|
array (string) |
Optional, System Ids of devices |
Any |
|
string |
Type of the device |
Any |
|
string |
Action that should be performed |
Any |
|
object |
Map of attributes for the action |
Any |
Examples of payload
{
"key": "abc",
"ids": [
"light.kitchen"
],
"type": "light",
"action": "turn_on",
"attributes": {
"brightness": 112
}
}
{
"key": "abc",
"rooms": [
"kitchen"
],
"tags": [
"central"
],
"type": "light",
"action": "turn_off",
"system_ids": [
"homeassistant_0d8cfe8b42594518975c10ebafe04c0c"
]
}
zbos/domotics/states/get
PUB
Get domotics states
see zbos/domotics/states/get/response/\{key} for response
DomoticsStatesGetRequest
Payload
Name |
Type |
Description |
Accepted values |
|
string |
Required random key |
Any |
|
array (string) |
Optional, ids to filter on |
Any |
|
array (string) |
Optional, room ids to filter on |
Any |
|
array (string) |
Optional, tags to filter on |
Any |
|
string |
Optional, type to filter on |
Any |
|
array (string) |
Optional, system ids to filter on |
Any |
zbos/domotics/states/get/response/\{key}
SUB
Get domotics states response
All the domotics states with their full data
Array<DomoticsState>
Payload
Name |
Type |
Description |
Accepted values |
|
array (object) |
Any |
|
|
string |
Unique id |
Any |
|
string |
Device type |
Any |
|
string |
Human-readable name |
Any |
|
string |
Optional, id of the room the device is in |
Any |
|
array (string) |
Optional, list of tags the device has |
Any |
|
string |
System ID this device belongs to |
Any |
|
string |
Brand of the system this device belongs to |
Any |
|
string |
The main state value |
Any |
|
object |
The entire JSON as returned by the domotics system |
Any |
Examples of payload
{
"id": "light.kitchen",
"type": "light",
"name": "Central light in the kitchen",
"room": "kitchen",
"tags": [
"kitchen",
"central"
],
"brand": "homeassistant",
"state": "on",
"data": {
"entity_id": {
"content": "light.kitchen",
"string": true
},
"state": {
"content": "on",
"string": true
},
"attributes": {
"supported_color_modes": [
{
"content": "brightness",
"string": true
}
],
"color_mode": {
"content": "brightness",
"string": true
},
"brightness": {
"content": "22",
"string": false
},
"friendly_name": {
"content": "Central light in the kitchen",
"string": true
},
"supported_features": {
"content": "0",
"string": false
}
},
"last_changed": {
"content": "2021-07-08T07:06:46.351322+00:00",
"string": true
},
"last_updated": {
"content": "2021-07-08T07:07:14.279327+00:00",
"string": true
},
"context": {
"id": {
"content": "4dd02cfa0ba03df611e6b468d84a61b0",
"string": true
},
"parent_id": {
"string": false,
"content": "null"
},
"user_id": {
"string": false,
"content": "null"
}
}
},
"system_id": "homeassistant_0d8cfe8b42594518975c10ebafe04c0c"
}
zbos/domotics/states/changed/event
SUB
Domotics state changed event
Fired when a state changed
DomoticsState
Payload
Name |
Type |
Description |
Accepted values |
|
string |
Unique id |
Any |
|
string |
Device type |
Any |
|
string |
Human-readable name |
Any |
|
string |
Optional, id of the room the device is in |
Any |
|
array (string) |
Optional, list of tags the device has |
Any |
|
string |
System ID this device belongs to |
Any |
|
string |
Brand of the system this device belongs to |
Any |
|
string |
The main state value |
Any |
|
object |
The entire JSON as returned by the domotics system |
Any |
Examples of payload
{
"id": "light.kitchen",
"type": "light",
"name": "Central light in the kitchen",
"room": "kitchen",
"tags": [
"kitchen",
"central"
],
"brand": "homeassistant",
"state": "on",
"data": {
"entity_id": {
"content": "light.kitchen",
"string": true
},
"old_state": {
"entity_id": {
"content": "light.kitchen",
"string": true
},
"state": {
"content": "on",
"string": true
},
"attributes": {
"supported_color_modes": [
{
"content": "brightness",
"string": true
}
],
"color_mode": {
"content": "brightness",
"string": true
},
"brightness": {
"content": "22",
"string": false
},
"friendly_name": {
"content": "Central light in the kitchen",
"string": true
},
"supported_features": {
"content": "0",
"string": false
}
},
"last_changed": {
"content": "2021-07-08T07:06:46.351322+00:00",
"string": true
},
"last_updated": {
"content": "2021-07-08T07:07:14.279327+00:00",
"string": true
},
"context": {
"id": {
"content": "4dd02cfa0ba03df611e6b468d84a61b0",
"string": true
},
"parent_id": {
"string": false,
"content": "null"
},
"user_id": {
"string": false,
"content": "null"
}
}
},
"new_state": {
"entity_id": {
"content": "light.kitchen",
"string": true
},
"state": {
"content": "off",
"string": true
},
"attributes": {
"supported_color_modes": [
{
"content": "brightness",
"string": true
}
],
"color_mode": {
"content": "brightness",
"string": true
},
"brightness": {
"content": "0",
"string": false
},
"friendly_name": {
"content": "Central light in the kitchen",
"string": true
},
"supported_features": {
"content": "0",
"string": false
}
},
"last_changed": {
"content": "2021-07-08T07:06:46.351322+00:00",
"string": true
},
"last_updated": {
"content": "2021-07-08T07:07:14.279327+00:00",
"string": true
},
"context": {
"id": {
"content": "4dd02cfa0ba03df611e6b468d84a61b0",
"string": true
},
"parent_id": {
"string": false,
"content": "null"
},
"user_id": {
"string": false,
"content": "null"
}
}
}
},
"system_id": "homeassistant_0d8cfe8b42594518975c10ebafe04c0c"
}
zbos/domotics/events/types/get
PUB
Get domotics event types
see zbos/domotics/events/types/get/response/\{key} for response
zbos/domotics/events/types/get/response/\{key}
SUB
Get domotics event types response
All the possible event types that can occur
zbos/domotics/events/event
SUB
Domotics event
Fired when a domotics event is fired
DomoticsEvent
Payload
Name |
Type |
Description |
Accepted values |
|
string |
Type of the event |
Any |
|
string |
System ID this event originates from |
Any |
|
object |
The entire JSON of the event data, as returned by the domotics system |
Any |
Examples of payload
{
"type": "knx_event",
"data": {
"data": [
{
"content": "255",
"string": false
}
],
"destination": {
"content": "0/4/1",
"string": true
},
"direction": {
"content": "Incoming",
"string": true
},
"source": {
"content": "1.1.1",
"string": true
},
"telegramtype": {
"content": "GroupValueWrite",
"string": true
}
},
"system_id": "homeassistant_0d8cfe8b42594518975c10ebafe04c0c"
}
zbos/domotics/camera/image/get
PUB
Get camera image
see zbos/domotics/camera/image/get/response/\{key} for response
zbos/domotics/homeassistant/services/call
PUB
Call Home Assistant service
Call a Home Assistant service, see https://www.home-assistant.io/docs/scripts/service-calls\ for more information.
HomeAssistantServiceCall
Payload
Name |
Type |
Description |
Accepted values |
|
string |
The domain of the service, eg: 'light' |
Any |
|
string |
The service itself, eg: 'turn_on' |
Any |
|
object |
The data that should be passed to the service |
Any |
|
array (string) |
Optional, system ids of Home Assistant instances this call should execute on |
Any |
zbos/domotics/discovery/entries/get
zbos/domotics/discovery/entries/get/response/\{key}
SUB
response: Get discovered domotics entries
Array<DomoticsDiscoveryEntry>
Payload
Name |
Type |
Description |
Accepted values |
|
array (object) |
Any |
|
|
string |
Identifier for this discovery entry |
Any |
|
string |
Integration that handles the configuration of this discovery entry |
Any |
|
string |
Human-readable name for this discovery entry |
Any |
|
string |
URL path to the entry icon, this is usually an icon for the handler |
Any |
|
string |
The current step of the discovery process |
Any |
zbos/domotics/discovery/device/translation/get
PUB
Get device title translations
DomoticsDiscoveryTranslationGetRequest
Payload
Name |
Type |
Description |
Accepted values |
|
string |
Required random key |
Any |
|
string |
Optional, only used for config translations. Handler to retrieve translations from |
Any |
|
string |
ISO 639-1 language code, Eg: 'en' or 'en-US' |
Any |
|
string |
Optional, system id to filter on |
Any |
zbos/domotics/discovery/config/form/get
zbos/domotics/discovery/config/form/get/response/\{key}
SUB
response: Get the config form for a discovered entry
DomoticsDiscoveryConfigForm
Payload
Name |
Type |
Description |
Accepted values |
|
string |
Integration that handles the configuration of this discovery entry |
Any |
|
string |
The current step of the discovery process |
Any |
|
array (object) |
Schema to build and validate user input |
Any |
|
string |
Any |
|
|
string |
* |
|
|
object |
Any |
|
|
boolean |
Any |
|
|
object |
Any |
|
|
string |
Any |
|
|
object |
Any |
|
|
object |
Any |
|
|
string |
Grid type only |
Any |
|
array (object) |
Grid type only |
Any |
|
object |
Any |
|
|
object |
Any |
|
|
object |
Any |
|
|
string |
Any |
|
|
string |
Any |
|
|
object |
Any |
|
|
object |
Any |
|
|
string |
Any |
|
|
object |
String or array of strings |
Any |
|
string |
Any |
|
|
boolean |
Any |
|
|
array (string) |
Any |
|
|
array (string) |
Any |
|
|
object |
Any |
|
|
string |
Any |
|
|
string |
Any |
|
|
string |
Any |
|
|
object |
Any |
|
|
string |
Any |
|
|
object |
String or array of strings |
Any |
|
string |
Any |
|
|
boolean |
Any |
|
|
array (string) |
Any |
|
|
array (string) |
Any |
|
|
boolean |
Any |
|
|
boolean |
Any |
|
|
object |
Any |
|
|
string |
Any |
|
|
object |
Any |
|
|
object |
Any |
|
|
object |
Any |
|
|
number |
Any |
|
|
number |
Any |
|
|
object |
Any |
|
|
object |
Any |
|
|
object |
Any |
|
|
string |
Any |
|
|
string |
Any |
|
|
string |
Any |
|
|
object |
Any |
|
|
string |
Any |
|
|
object |
String or array of strings |
Any |
|
string |
Any |
|
|
boolean |
Any |
|
|
array (string) |
Any |
|
|
array (string) |
Any |
|
|
boolean |
Any |
|
|
object |
Any |
|
|
boolean |
Any |
|
|
object |
Any |
|
|
string |
Any |
|
|
object |
String or array of strings |
Any |
|
string |
Any |
|
|
boolean |
Any |
|
|
array (string) |
Any |
|
|
array (string) |
Any |
|
|
object |
Any |
|
|
string |
Any |
|
|
string |
Any |
|
|
object |
Any |
|
|
boolean |
Any |
|
|
string |
Any |
|
|
object |
Any |
|
|
object |
Any |
|
|
number |
Any |
|
|
number |
Any |
|
|
number |
Any |
|
|
string |
* |
|
|
string |
Any |
|
|
object |
Any |
|
|
object |
Any |
|
|
boolean |
Any |
|
|
boolean |
Any |
|
|
string |
* |
|
|
object |
List of string or list of \{ value: string, label: string } |
Any |
|
object |
Any |
|
|
boolean |
Any |
|
|
string |
* |
|
|
string |
Any |
|
|
object |
Any |
|
|
object |
Any |
|
|
string |
Any |
|
|
object |
String or array of strings |
Any |
|
string |
Any |
|
|
boolean |
Any |
|
|
array (string) |
Any |
|
|
array (string) |
Any |
|
|
object |
Any |
|
|
string |
Any |
|
|
string |
Any |
|
|
string |
Any |
|
|
object |
Any |
|
|
string |
Any |
|
|
object |
String or array of strings |
Any |
|
string |
Any |
|
|
boolean |
Any |
|
|
array (string) |
Any |
|
|
array (string) |
Any |
|
|
boolean |
Any |
|
|
object |
Any |
|
|
object |
Any |
|
|
object |
Any |
|
|
string |
Constant type only |
Any |
|
integer |
Integer type only |
Any |
|
integer |
Integer type only |
Any |
|
object |
Select or multi-select type only |
Any |
|
string |
String type only |
Any |
|
object |
Optional errors dictionary |
Any |
|
object |
Detailed information about this step |
Any |
Examples of payload
{
"handler": "entry1_handler",
"errors": {},
"step_id": "discovery_confirm",
"data_schema": [
{
"name": "username",
"type": "string",
"required": true
},
{
"name": "password",
"type": "string",
"required": true
}
],
"description_placeholders": {
"name": "Entry 1",
"ip_address": "192.168.0.1",
"local_user_documentation_url": "https://google.com"
}
}
zbos/domotics/discovery/config/form/submit
PUB
Submit the config form for a discovered entry
This data should be validated according to the data schema
DomoticsDiscoveryConfigFormSubmitRequest
Payload
Name |
Type |
Description |
Accepted values |
|
string |
Required random key |
Any |
|
string |
ID of the entry to submit to |
Any |
|
object |
The form data to submit, this should be a dictionary of the data schema received in the form get request |
Any |
|
string |
Optional, system id to filter on |
Any |
zbos/domotics/discovery/config/form/submit/response/\{key}
zbos/domotics/discovery/config/translation/get
PUB
Get translations for a discovery handler
DomoticsDiscoveryTranslationGetRequest
Payload
Name |
Type |
Description |
Accepted values |
|
string |
Required random key |
Any |
|
string |
Optional, only used for config translations. Handler to retrieve translations from |
Any |
|
string |
ISO 639-1 language code, Eg: 'en' or 'en-US' |
Any |
|
string |
Optional, system id to filter on |
Any |
zbos/domotics/discovery/config/translation/get/response/\{key}
SUB
response: Get translations for a discovery handler
Map
Examples of payload
{
"component.entry1_handler.config.error.invalid_auth": "Invalid authentication",
"component.entry1_handler.config.flow_title": "{name} ({ip_address})",
"component.entry1_handler.config.step.discovery_confirm.data.password": "Password",
"component.entry1_handler.config.step.discovery_confirm.data.username": "Username",
"component.entry1_handler.config.step.discovery_confirm.description": "Do you want to setup {name} ({ip_address})?",
"component.entry1_handler.config.step.discovery_confirm.title": "Entry 1 Discovered"
}