Welcome to the Butlr GraphQL API a powerful and flexible interface that allows you to query a variety of entities such as floors, rooms, zones, sensors, and hives. By crafting precise queries, you can fetch only the data you need, avoiding over-fetching or under-fetching of information. This results in optimized performance and reduced bandwidth usage, enabling seamless access and management of your smart building ecosystem.
API Endpoints
https://api.butlr.io/api/v3/graphql
Headers
# Requires a JWT from Butlr to authenticate any graphql request.
Authorization: Bearer YOUR_JWT_HERE
Queries
buckets
Description
Fetch information about buckets. INTERNAL_USE_ONLY
Response
Returns [Bucket!]
Example
Query
query buckets {
buckets {
database
bucket
}
}
Response
{
"data": {
"buckets": [
{
"database": "xyz789",
"bucket": "xyz789"
}
]
}
}
clients
Description
Fetch information about clients with the specified IDs. INTERNAL_USE_ONLY
Response
Returns a Clients!
Arguments
Name | Description |
---|---|
ids - [String!]
|
The ids of the clients to fetch. (ie. ["client_xxxxxxxx"]) |
Example
Query
query clients($ids: [String!]) {
clients(ids: $ids) {
data {
client_id
database
}
}
}
Variables
{"ids": ["abc123"]}
Response
{"data": {"clients": {"data": [Client]}}}
fixtures
Description
Fetch information about fixtures with the specified IDs
Response
Returns a Fixtures!
Arguments
Name | Description |
---|---|
ids - [String!]
|
The ids of the fixtures to fetch. (ie. ["fixture_xxxxxxxx"]) |
Example
Query
query fixtures($ids: [String!]) {
fixtures(ids: $ids) {
data {
client_id
floor_id
room_id
fixture_id
auto_calibrated_at
center
scale
fixture_type
rotation
metadata {
...MetaDataFragment
}
}
}
}
Variables
{"ids": ["xyz789"]}
Response
{"data": {"fixtures": {"data": [Fixture]}}}
floors
Description
Fetch information about floors with the specified IDs
Response
Returns a Floors!
Arguments
Name | Description |
---|---|
ids - [String!]
|
The ids of the floors to fetch. (ie. ["space_xxxxxxxx"]) |
Example
Query
query floors($ids: [String!]) {
floors(ids: $ids) {
data {
client_id
floor_id
metadata {
...MetaDataFragment
}
name
address
timezone
occupancy_mode
area {
...AreaFragment
}
capacity {
...CapacityFragment
}
installation_date
installation_status
sensors {
...SensorFragment
}
hives {
...HiveFragment
}
rooms {
...RoomFragment
}
zones {
...ZoneFragment
}
fixtures {
...FixtureFragment
}
floor_plans {
...FloorPlanFragment
}
floorNumber
}
}
}
Variables
{"ids": ["xyz789"]}
Response
{"data": {"floors": {"data": [Floor]}}}
hives
Description
Fetch information about hives with the specified IDs or serial numbers
Response
Returns a Hives!
Example
Query
query hives(
$ids: [String!],
$serial_numbers: [String!]
) {
hives(
ids: $ids,
serial_numbers: $serial_numbers
) {
data {
client_id
floor_id
floor {
...FloorFragment
}
room_id
room {
...RoomFragment
}
hive_id
metadata {
...MetaDataFragment
}
serial_number
hive_version
hive_type
last_heartbeat
last_raw_message
last_compressed_message
last_occupancy_message
last_detection_message
last_network_id
is_streaming
broker {
...HiveBrokerFragment
}
topics {
...HiveTopicsFragment
}
activated_at
is_online
net_path_stability
coordinates
name
config {
...HiveConfigFragment
}
connection_health {
...ConnectionHealthHiveFragment
}
sensors {
...SensorFragment
}
}
}
}
Variables
{
"ids": ["xyz789"],
"serial_numbers": ["abc123"]
}
Response
{"data": {"hives": {"data": [Hive]}}}
rooms
Description
Fetch information about rooms with the specified IDs
Response
Returns a Rooms!
Arguments
Name | Description |
---|---|
ids - [String!]
|
The ids of the rooms to fetch. (ie. ["room_xxxxxxxx"]) |
Example
Query
query rooms($ids: [String!]) {
rooms(ids: $ids) {
data {
client_id
floor_id
floor {
...FloorFragment
}
room_id
metadata {
...MetaDataFragment
}
name
area {
...AreaFragment
}
color
coordinates
auto_calibrated_at
capacity {
...CapacityFragment
}
rotation
room_type
sensors {
...SensorFragment
}
}
}
}
Variables
{"ids": ["abc123"]}
Response
{"data": {"rooms": {"data": [Room]}}}
sensors
Description
Fetch information about sensors with the specified parameters
Response
Returns a Sensors!
Arguments
Name | Description |
---|---|
ids - [String!]
|
The ids of the sensors to fetch. (ie. ["sensor_xxxxxxxx"]) |
mac_addresses - [String!]
|
The mac addresses of the sensors to fetch. (ie. ["00-00-00-00-00-00"]) |
floor_ids - [String!]
|
The floor ids of the sensors to fetch. (ie. ["space_xxxxxxxx"]) |
room_ids - [String!]
|
The room ids of the sensors to fetch. (ie. ["room_xxxxxxxx"]) |
hive_ids - [String!]
|
The hive ids of the sensors to fetch. (ie. ["hive_xxxxxxxx"]) |
hive_serials - [String!]
|
The hive serial numbers of the sensors to fetch. (ie. ["1000000abc123"]) |
Example
Query
query sensors(
$ids: [String!],
$mac_addresses: [String!],
$floor_ids: [String!],
$room_ids: [String!],
$hive_ids: [String!],
$hive_serials: [String!]
) {
sensors(
ids: $ids,
mac_addresses: $mac_addresses,
floor_ids: $floor_ids,
room_ids: $room_ids,
hive_ids: $hive_ids,
hive_serials: $hive_serials
) {
data {
client_id
floor_id
floor {
...FloorFragment
}
room_id
room {
...RoomFragment
}
hive_id
hive {
...HiveFragment
}
hive_serial
zones {
...ZoneFragment
}
zone_ids
sensor_id
metadata {
...MetaDataFragment
}
name
mac_address
mode
model
sensitivity
center
height
is_entrance
is_online
parallel_to_door
active_hours
calibration {
...SensorCalibrationFragment
}
door_line
generation
in_direction
last_heartbeat
last_raw_message
last_compressed_message
last_occupancy_message
last_detection_message
messages_per_second
is_streaming
orientation
effective_field_of_view
field_of_view
algo_config {
...AlgoConfigFragment
}
connection_health {
...ConnectionHealthSensorFragment
}
config {
...SensorConfigFragment
}
last_battery_change_date
next_battery_change_date
}
}
}
Variables
{
"ids": ["xyz789"],
"mac_addresses": ["xyz789"],
"floor_ids": ["xyz789"],
"room_ids": ["abc123"],
"hive_ids": ["abc123"],
"hive_serials": ["abc123"]
}
Response
{"data": {"sensors": {"data": [Sensor]}}}
zones
Description
Fetch information about zones with the specified IDs
Response
Returns a Zones!
Arguments
Name | Description |
---|---|
ids - [String!]
|
The ids of the zones to fetch. (ie. ["zone_xxxxxxxx"]) |
Example
Query
query zones($ids: [String!]) {
zones(ids: $ids) {
data {
client_id
floor_id
room_id
zone_id
metadata {
...MetaDataFragment
}
name
area {
...AreaFragment
}
color
coordinates
rotation
capacity {
...CapacityFragment
}
zone_type
tags
sensors {
...SensorFragment
}
}
}
}
Variables
{"ids": ["xyz789"]}
Response
{"data": {"zones": {"data": [Zone]}}}
Mutations
createFixtures
Description
Create multiple Fixture entities
Response
Returns [FixtureDetails!]
Arguments
Name | Description |
---|---|
fixtures - [CreateFixtureInput!]!
|
A list of CreateFixtureInput objects containing the information for creating new Fixture entities |
Example
Query
mutation createFixtures($fixtures: [CreateFixtureInput!]!) {
createFixtures(fixtures: $fixtures) {
client_id
metadata {
created_at
updated_at
deleted_at
}
auto_calibrated_at
fixture_type
fixture_id
name
floor_id
center
rotation
scale
type
}
}
Variables
{"fixtures": [CreateFixtureInput]}
Response
{
"data": {
"createFixtures": [
{
"client_id": "xyz789",
"metadata": MetaData,
"auto_calibrated_at": 123,
"fixture_type": "abc123",
"fixture_id": 4,
"name": "abc123",
"floor_id": "abc123",
"center": [123.45],
"rotation": 123.45,
"scale": [123.45],
"type": "abc123"
}
]
}
}
createFloors
Description
Create multiple Floor entities
Response
Returns [FloorDetails!]
Arguments
Name | Description |
---|---|
floors - [CreateFloorInput!]!
|
A list of CreateFloorInput objects containing the information for creating new Floor entities |
Example
Query
mutation createFloors($floors: [CreateFloorInput!]!) {
createFloors(floors: $floors) {
metadata {
created_at
updated_at
deleted_at
}
client_id
floor_id
name
address
area {
value
unit
}
capacity {
mid
max
}
installation_date
occupancy_mode
timezone
installation_status
}
}
Variables
{"floors": [CreateFloorInput]}
Response
{
"data": {
"createFloors": [
{
"metadata": MetaData,
"client_id": "xyz789",
"floor_id": "xyz789",
"name": "xyz789",
"address": "xyz789",
"area": Area,
"capacity": Capacity,
"installation_date": 987,
"occupancy_mode": "abc123",
"timezone": "abc123",
"installation_status": "NOT_INSTALLED"
}
]
}
}
createHives
Description
Create multiple Hive entities
Response
Returns [HiveDetails!]
Arguments
Name | Description |
---|---|
hives - [CreateHiveInput!]!
|
A list of CreateHiveInput objects containing the information for creating new Hive entities |
Example
Query
mutation createHives($hives: [CreateHiveInput!]!) {
createHives(hives: $hives) {
floor_id
metadata {
created_at
updated_at
deleted_at
}
client_id
hive_id
serial_number
space_id
broker {
hive_serial
address
username
password
port
tls {
...CertificateFragment
}
}
topics {
command
detections
raw
compressed
}
is_online
activated_at
net_path_stability
coordinates
name
color
sensor_ids
room_id
config {
hive_serial
heartbeat_interval
on_change_interval
baudrate
modem_device
timezone
mqtt {
...HiveMQTTConfigFragment
}
frame_rate {
...HiveFrameRateConfigFragment
}
required_bandwidth {
...HiveRequiredBandwidthConfigFragment
}
auto_sensor_fw_updates_enabled
}
hive_version
hive_type
}
}
Variables
{"hives": [CreateHiveInput]}
Response
{
"data": {
"createHives": [
{
"floor_id": "xyz789",
"metadata": MetaData,
"client_id": "xyz789",
"hive_id": "4",
"serial_number": "xyz789",
"space_id": "xyz789",
"broker": HiveBroker,
"topics": HiveTopics,
"is_online": true,
"activated_at": 987,
"net_path_stability": 123.45,
"coordinates": [123.45],
"name": "abc123",
"color": [123.45],
"sensor_ids": ["abc123"],
"room_id": "xyz789",
"config": HiveConfig,
"hive_version": "xyz789",
"hive_type": "xyz789"
}
]
}
}
createRooms
Description
Create multiple Room entities
Response
Returns [RoomDetails!]
Arguments
Name | Description |
---|---|
rooms - [CreateRoomInput!]!
|
A list of CreateRoomInput objects containing the information for creating new Room entities |
Example
Query
mutation createRooms($rooms: [CreateRoomInput!]!) {
createRooms(rooms: $rooms) {
client_id
floor_id
room_id
metadata {
created_at
updated_at
deleted_at
}
name
room_type
coordinates
rotation
color
area {
value
unit
}
capacity {
mid
max
}
tags
auto_calibrated_at
}
}
Variables
{"rooms": [CreateRoomInput]}
Response
{
"data": {
"createRooms": [
{
"client_id": "xyz789",
"floor_id": "xyz789",
"room_id": 4,
"metadata": MetaData,
"name": "abc123",
"room_type": "xyz789",
"coordinates": [123.45],
"rotation": 123.45,
"color": [123.45],
"area": Area,
"capacity": Capacity,
"tags": ["xyz789"],
"auto_calibrated_at": 123
}
]
}
}
createSensors
Description
Create multiple Sensor entities
Response
Returns [SensorDetails!]
Arguments
Name | Description |
---|---|
sensors - [CreateSensorInput!]!
|
A list of CreateSensorInput objects containing the information for creating new Sensor entities |
Example
Query
mutation createSensors($sensors: [CreateSensorInput!]!) {
createSensors(sensors: $sensors) {
client_id
floor_id
room_id
hive_id
hive_serial
zone_ids
sensor_id
metadata {
created_at
updated_at
deleted_at
}
name
mac_address
mode
model
sensitivity
center
height
is_entrance
is_online
parallel_to_door
active_hours
calibration {
auto_calibrated_at
auto_calibrate_start
auto_calibrate_end
auto_calibrate_person
}
door_line
generation
in_direction
last_heartbeat
orientation
effective_field_of_view
field_of_view
coordinates
color
algo_config {
cold_person_detection
blacklist
sunlight
shortened_doorline
}
config {
deployment_config {
...SensorDeploymentConfigFragment
}
current_firmware_version
config_firmware_version
force_90_fov
}
last_battery_change_date
next_battery_change_date
}
}
Variables
{"sensors": [CreateSensorInput]}
Response
{
"data": {
"createSensors": [
{
"client_id": "abc123",
"floor_id": "xyz789",
"room_id": "xyz789",
"hive_id": "abc123",
"hive_serial": "xyz789",
"zone_ids": ["abc123"],
"sensor_id": 4,
"metadata": MetaData,
"name": "abc123",
"mac_address": "xyz789",
"mode": "xyz789",
"model": "xyz789",
"sensitivity": 123.45,
"center": [123.45],
"height": 987.65,
"is_entrance": true,
"is_online": false,
"parallel_to_door": true,
"active_hours": [123.45],
"calibration": SensorCalibration,
"door_line": 987.65,
"generation": 987.65,
"in_direction": 123.45,
"last_heartbeat": 123,
"orientation": [987.65],
"effective_field_of_view": 987.65,
"field_of_view": 123.45,
"coordinates": [987.65],
"color": [987.65],
"algo_config": AlgoConfig,
"config": SensorConfig,
"last_battery_change_date": "10:15:30Z",
"next_battery_change_date": "10:15:30Z"
}
]
}
}
createZones
Description
Create multiple Zone entities
Response
Returns [ZoneDetails!]
Arguments
Name | Description |
---|---|
zones - [CreateZoneInput!]!
|
A list of CreateZoneInput objects containing the information for creating new Zone entities |
Example
Query
mutation createZones($zones: [CreateZoneInput!]!) {
createZones(zones: $zones) {
client_id
metadata {
created_at
updated_at
deleted_at
}
zone_type
zone_id
name
floor_id
room_id
coordinates
rotation
color
area {
value
unit
}
capacity {
mid
max
}
tags
type
}
}
Variables
{"zones": [CreateZoneInput]}
Response
{
"data": {
"createZones": [
{
"client_id": "xyz789",
"metadata": MetaData,
"zone_type": "abc123",
"zone_id": "xyz789",
"name": "xyz789",
"floor_id": "abc123",
"room_id": "xyz789",
"coordinates": [123.45],
"rotation": 987.65,
"color": [987.65],
"area": Area,
"capacity": Capacity,
"tags": ["abc123"],
"type": "abc123"
}
]
}
}
deleteFixtures
Description
Delete multiple Fixture entities
Response
Returns [FixtureDetails!]
Arguments
Name | Description |
---|---|
ids - [String!]
|
A list of Fixture IDs to delete |
Example
Query
mutation deleteFixtures($ids: [String!]) {
deleteFixtures(ids: $ids) {
client_id
metadata {
created_at
updated_at
deleted_at
}
auto_calibrated_at
fixture_type
fixture_id
name
floor_id
center
rotation
scale
type
}
}
Variables
{"ids": ["abc123"]}
Response
{
"data": {
"deleteFixtures": [
{
"client_id": "xyz789",
"metadata": MetaData,
"auto_calibrated_at": 123,
"fixture_type": "abc123",
"fixture_id": 4,
"name": "xyz789",
"floor_id": "abc123",
"center": [123.45],
"rotation": 987.65,
"scale": [987.65],
"type": "xyz789"
}
]
}
}
deleteFloorplans
Description
Delete multiple floor plans
Response
Returns [FloorPlanIDs!]
Arguments
Name | Description |
---|---|
ids - [DeleteFloorPlanInput!]
|
A list of floor and floor plan ids |
Example
Query
mutation deleteFloorplans($ids: [DeleteFloorPlanInput!]) {
deleteFloorplans(ids: $ids) {
floor_id
floor_plan_id
}
}
Variables
{"ids": [DeleteFloorPlanInput]}
Response
{
"data": {
"deleteFloorplans": [
{
"floor_id": "xyz789",
"floor_plan_id": "xyz789"
}
]
}
}
deleteFloors
Description
Delete multiple Floor entities
Response
Returns [FloorDetails!]
Arguments
Name | Description |
---|---|
ids - [String!]
|
A list of Floor IDs to delete |
Example
Query
mutation deleteFloors($ids: [String!]) {
deleteFloors(ids: $ids) {
metadata {
created_at
updated_at
deleted_at
}
client_id
floor_id
name
address
area {
value
unit
}
capacity {
mid
max
}
installation_date
occupancy_mode
timezone
installation_status
}
}
Variables
{"ids": ["abc123"]}
Response
{
"data": {
"deleteFloors": [
{
"metadata": MetaData,
"client_id": "xyz789",
"floor_id": "abc123",
"name": "abc123",
"address": "abc123",
"area": Area,
"capacity": Capacity,
"installation_date": 987,
"occupancy_mode": "xyz789",
"timezone": "xyz789",
"installation_status": "NOT_INSTALLED"
}
]
}
}
deleteHives
Description
Delete multiple Hive entities
Response
Returns [HiveDetails!]
Example
Query
mutation deleteHives(
$ids: [String!],
$serial_numbers: [String!]
) {
deleteHives(
ids: $ids,
serial_numbers: $serial_numbers
) {
floor_id
metadata {
created_at
updated_at
deleted_at
}
client_id
hive_id
serial_number
space_id
broker {
hive_serial
address
username
password
port
tls {
...CertificateFragment
}
}
topics {
command
detections
raw
compressed
}
is_online
activated_at
net_path_stability
coordinates
name
color
sensor_ids
room_id
config {
hive_serial
heartbeat_interval
on_change_interval
baudrate
modem_device
timezone
mqtt {
...HiveMQTTConfigFragment
}
frame_rate {
...HiveFrameRateConfigFragment
}
required_bandwidth {
...HiveRequiredBandwidthConfigFragment
}
auto_sensor_fw_updates_enabled
}
hive_version
hive_type
}
}
Variables
{
"ids": ["xyz789"],
"serial_numbers": ["xyz789"]
}
Response
{
"data": {
"deleteHives": [
{
"floor_id": "xyz789",
"metadata": MetaData,
"client_id": "xyz789",
"hive_id": "4",
"serial_number": "xyz789",
"space_id": "xyz789",
"broker": HiveBroker,
"topics": HiveTopics,
"is_online": true,
"activated_at": 987,
"net_path_stability": 123.45,
"coordinates": [123.45],
"name": "xyz789",
"color": [123.45],
"sensor_ids": ["xyz789"],
"room_id": "xyz789",
"config": HiveConfig,
"hive_version": "abc123",
"hive_type": "xyz789"
}
]
}
}
deleteRooms
Description
Delete multiple Room entities
Response
Returns [RoomDetails!]
Arguments
Name | Description |
---|---|
ids - [String!]
|
A list of Room IDs to delete |
Example
Query
mutation deleteRooms($ids: [String!]) {
deleteRooms(ids: $ids) {
client_id
floor_id
room_id
metadata {
created_at
updated_at
deleted_at
}
name
room_type
coordinates
rotation
color
area {
value
unit
}
capacity {
mid
max
}
tags
auto_calibrated_at
}
}
Variables
{"ids": ["abc123"]}
Response
{
"data": {
"deleteRooms": [
{
"client_id": "abc123",
"floor_id": "abc123",
"room_id": 4,
"metadata": MetaData,
"name": "abc123",
"room_type": "xyz789",
"coordinates": [987.65],
"rotation": 987.65,
"color": [987.65],
"area": Area,
"capacity": Capacity,
"tags": ["xyz789"],
"auto_calibrated_at": 123
}
]
}
}
deleteSensors
Description
Delete multiple Sensor entities
Response
Returns [SensorDetails!]
Example
Query
mutation deleteSensors(
$ids: [String!],
$mac_addresses: [String!]
) {
deleteSensors(
ids: $ids,
mac_addresses: $mac_addresses
) {
client_id
floor_id
room_id
hive_id
hive_serial
zone_ids
sensor_id
metadata {
created_at
updated_at
deleted_at
}
name
mac_address
mode
model
sensitivity
center
height
is_entrance
is_online
parallel_to_door
active_hours
calibration {
auto_calibrated_at
auto_calibrate_start
auto_calibrate_end
auto_calibrate_person
}
door_line
generation
in_direction
last_heartbeat
orientation
effective_field_of_view
field_of_view
coordinates
color
algo_config {
cold_person_detection
blacklist
sunlight
shortened_doorline
}
config {
deployment_config {
...SensorDeploymentConfigFragment
}
current_firmware_version
config_firmware_version
force_90_fov
}
last_battery_change_date
next_battery_change_date
}
}
Variables
{
"ids": ["abc123"],
"mac_addresses": ["abc123"]
}
Response
{
"data": {
"deleteSensors": [
{
"client_id": "abc123",
"floor_id": "abc123",
"room_id": "abc123",
"hive_id": "xyz789",
"hive_serial": "abc123",
"zone_ids": ["xyz789"],
"sensor_id": "4",
"metadata": MetaData,
"name": "abc123",
"mac_address": "abc123",
"mode": "xyz789",
"model": "abc123",
"sensitivity": 987.65,
"center": [987.65],
"height": 123.45,
"is_entrance": true,
"is_online": false,
"parallel_to_door": true,
"active_hours": [987.65],
"calibration": SensorCalibration,
"door_line": 987.65,
"generation": 987.65,
"in_direction": 123.45,
"last_heartbeat": 987,
"orientation": [987.65],
"effective_field_of_view": 987.65,
"field_of_view": 987.65,
"coordinates": [123.45],
"color": [987.65],
"algo_config": AlgoConfig,
"config": SensorConfig,
"last_battery_change_date": "10:15:30Z",
"next_battery_change_date": "10:15:30Z"
}
]
}
}
deleteZones
Description
Delete multiple Zone entities
Response
Returns [ZoneDetails!]
Arguments
Name | Description |
---|---|
ids - [String!]
|
A list of Zone IDs to delete |
Example
Query
mutation deleteZones($ids: [String!]) {
deleteZones(ids: $ids) {
client_id
metadata {
created_at
updated_at
deleted_at
}
zone_type
zone_id
name
floor_id
room_id
coordinates
rotation
color
area {
value
unit
}
capacity {
mid
max
}
tags
type
}
}
Variables
{"ids": ["abc123"]}
Response
{
"data": {
"deleteZones": [
{
"client_id": "abc123",
"metadata": MetaData,
"zone_type": "xyz789",
"zone_id": "abc123",
"name": "xyz789",
"floor_id": "abc123",
"room_id": "xyz789",
"coordinates": [123.45],
"rotation": 987.65,
"color": [987.65],
"area": Area,
"capacity": Capacity,
"tags": ["abc123"],
"type": "xyz789"
}
]
}
}
updateFixtures
Description
Update multiple Fixture entities
Response
Returns [FixtureDetails!]
Arguments
Name | Description |
---|---|
fixtures - [UpdateFixtureInput!]!
|
A list of UpdateFixtureInput objects containing the information for updating existing Fixture entities |
Example
Query
mutation updateFixtures($fixtures: [UpdateFixtureInput!]!) {
updateFixtures(fixtures: $fixtures) {
client_id
metadata {
created_at
updated_at
deleted_at
}
auto_calibrated_at
fixture_type
fixture_id
name
floor_id
center
rotation
scale
type
}
}
Variables
{"fixtures": [UpdateFixtureInput]}
Response
{
"data": {
"updateFixtures": [
{
"client_id": "abc123",
"metadata": MetaData,
"auto_calibrated_at": 123,
"fixture_type": "xyz789",
"fixture_id": "4",
"name": "xyz789",
"floor_id": "abc123",
"center": [987.65],
"rotation": 123.45,
"scale": [987.65],
"type": "xyz789"
}
]
}
}
updateFloorplans
Description
Mutation to update floor plans
Response
Returns [FloorPlan!]
Arguments
Name | Description |
---|---|
floor_plans - [UpdateFloorPlanInput!]
|
An array of UpdateFloorPlanInput objects. Each object represents the updated details of a floor plan |
Example
Query
mutation updateFloorplans($floor_plans: [UpdateFloorPlanInput!]) {
updateFloorplans(floor_plans: $floor_plans) {
floor_plan_id
coordinates
name
url
}
}
Variables
{"floor_plans": [UpdateFloorPlanInput]}
Response
{
"data": {
"updateFloorplans": [
{
"floor_plan_id": "xyz789",
"coordinates": [123.45],
"name": "abc123",
"url": "abc123"
}
]
}
}
updateFloors
Description
Update multiple Floor entities
Response
Returns [FloorDetails!]
Arguments
Name | Description |
---|---|
floors - [UpdateFloorInput!]!
|
A list of UpdateFloorInput objects containing the information for updating existing Floor entities |
Example
Query
mutation updateFloors($floors: [UpdateFloorInput!]!) {
updateFloors(floors: $floors) {
metadata {
created_at
updated_at
deleted_at
}
client_id
floor_id
name
address
area {
value
unit
}
capacity {
mid
max
}
installation_date
occupancy_mode
timezone
installation_status
}
}
Variables
{"floors": [UpdateFloorInput]}
Response
{
"data": {
"updateFloors": [
{
"metadata": MetaData,
"client_id": "abc123",
"floor_id": "xyz789",
"name": "abc123",
"address": "abc123",
"area": Area,
"capacity": Capacity,
"installation_date": 987,
"occupancy_mode": "xyz789",
"timezone": "abc123",
"installation_status": "NOT_INSTALLED"
}
]
}
}
updateHives
Description
Update multiple Hive entities
Response
Returns [HiveDetails!]
Arguments
Name | Description |
---|---|
hives - [UpdateHiveInput!]!
|
A list of UpdateHiveInput objects containing the information for updating existing Hive entities |
Example
Query
mutation updateHives($hives: [UpdateHiveInput!]!) {
updateHives(hives: $hives) {
floor_id
metadata {
created_at
updated_at
deleted_at
}
client_id
hive_id
serial_number
space_id
broker {
hive_serial
address
username
password
port
tls {
...CertificateFragment
}
}
topics {
command
detections
raw
compressed
}
is_online
activated_at
net_path_stability
coordinates
name
color
sensor_ids
room_id
config {
hive_serial
heartbeat_interval
on_change_interval
baudrate
modem_device
timezone
mqtt {
...HiveMQTTConfigFragment
}
frame_rate {
...HiveFrameRateConfigFragment
}
required_bandwidth {
...HiveRequiredBandwidthConfigFragment
}
auto_sensor_fw_updates_enabled
}
hive_version
hive_type
}
}
Variables
{"hives": [UpdateHiveInput]}
Response
{
"data": {
"updateHives": [
{
"floor_id": "abc123",
"metadata": MetaData,
"client_id": "abc123",
"hive_id": 4,
"serial_number": "abc123",
"space_id": "abc123",
"broker": HiveBroker,
"topics": HiveTopics,
"is_online": false,
"activated_at": 987,
"net_path_stability": 987.65,
"coordinates": [123.45],
"name": "abc123",
"color": [123.45],
"sensor_ids": ["abc123"],
"room_id": "xyz789",
"config": HiveConfig,
"hive_version": "xyz789",
"hive_type": "abc123"
}
]
}
}
updateHivesHeartbeats
Description
Update heartbeats for multiple Hive entities. INTERNAL_USE_ONLY
Response
Returns a Boolean!
Arguments
Name | Description |
---|---|
hive_heartbeats - [UpdateHiveHeartbeatInput!]
|
An array of UpdateHiveHeartbeatInput objects. Each input is one hive's heartbeat |
Example
Query
mutation updateHivesHeartbeats($hive_heartbeats: [UpdateHiveHeartbeatInput!]) {
updateHivesHeartbeats(hive_heartbeats: $hive_heartbeats)
}
Variables
{"hive_heartbeats": [UpdateHiveHeartbeatInput]}
Response
{"data": {"updateHivesHeartbeats": true}}
updateRooms
Description
Update multiple Room entities
Response
Returns [RoomDetails!]
Arguments
Name | Description |
---|---|
rooms - [UpdateRoomInput!]!
|
A list of UpdateRoomInput objects containing the information for updating existing Room entities |
Example
Query
mutation updateRooms($rooms: [UpdateRoomInput!]!) {
updateRooms(rooms: $rooms) {
client_id
floor_id
room_id
metadata {
created_at
updated_at
deleted_at
}
name
room_type
coordinates
rotation
color
area {
value
unit
}
capacity {
mid
max
}
tags
auto_calibrated_at
}
}
Variables
{"rooms": [UpdateRoomInput]}
Response
{
"data": {
"updateRooms": [
{
"client_id": "xyz789",
"floor_id": "xyz789",
"room_id": 4,
"metadata": MetaData,
"name": "abc123",
"room_type": "xyz789",
"coordinates": [123.45],
"rotation": 987.65,
"color": [123.45],
"area": Area,
"capacity": Capacity,
"tags": ["xyz789"],
"auto_calibrated_at": 987
}
]
}
}
updateSensors
Description
Update multiple Sensor entities
Response
Returns [SensorDetails!]
Arguments
Name | Description |
---|---|
sensors - [UpdateSensorInput!]!
|
A list of UpdateSensorInput objects containing the information for updating existing Sensor entities |
Example
Query
mutation updateSensors($sensors: [UpdateSensorInput!]!) {
updateSensors(sensors: $sensors) {
client_id
floor_id
room_id
hive_id
hive_serial
zone_ids
sensor_id
metadata {
created_at
updated_at
deleted_at
}
name
mac_address
mode
model
sensitivity
center
height
is_entrance
is_online
parallel_to_door
active_hours
calibration {
auto_calibrated_at
auto_calibrate_start
auto_calibrate_end
auto_calibrate_person
}
door_line
generation
in_direction
last_heartbeat
orientation
effective_field_of_view
field_of_view
coordinates
color
algo_config {
cold_person_detection
blacklist
sunlight
shortened_doorline
}
config {
deployment_config {
...SensorDeploymentConfigFragment
}
current_firmware_version
config_firmware_version
force_90_fov
}
last_battery_change_date
next_battery_change_date
}
}
Variables
{"sensors": [UpdateSensorInput]}
Response
{
"data": {
"updateSensors": [
{
"client_id": "abc123",
"floor_id": "xyz789",
"room_id": "abc123",
"hive_id": "xyz789",
"hive_serial": "xyz789",
"zone_ids": ["xyz789"],
"sensor_id": "4",
"metadata": MetaData,
"name": "abc123",
"mac_address": "xyz789",
"mode": "abc123",
"model": "abc123",
"sensitivity": 987.65,
"center": [123.45],
"height": 123.45,
"is_entrance": true,
"is_online": false,
"parallel_to_door": true,
"active_hours": [123.45],
"calibration": SensorCalibration,
"door_line": 123.45,
"generation": 123.45,
"in_direction": 987.65,
"last_heartbeat": 987,
"orientation": [987.65],
"effective_field_of_view": 123.45,
"field_of_view": 987.65,
"coordinates": [987.65],
"color": [123.45],
"algo_config": AlgoConfig,
"config": SensorConfig,
"last_battery_change_date": "10:15:30Z",
"next_battery_change_date": "10:15:30Z"
}
]
}
}
updateSensorsHeartbeats
Description
Update heartbeats for multiple Sensor entities. INTERNAL_USE_ONLY
Response
Returns a Boolean!
Arguments
Name | Description |
---|---|
mac_addresses - [String!]
|
A list of MAC addresses for the Sensors to update heartbeats |
Example
Query
mutation updateSensorsHeartbeats($mac_addresses: [String!]) {
updateSensorsHeartbeats(mac_addresses: $mac_addresses)
}
Variables
{"mac_addresses": ["xyz789"]}
Response
{"data": {"updateSensorsHeartbeats": true}}
updateZones
Description
Update multiple Zone entities
Response
Returns [ZoneDetails!]
Arguments
Name | Description |
---|---|
zones - [UpdateZoneInput!]!
|
A list of UpdateZoneInput objects containing the information for updating existing Zone entities |
Example
Query
mutation updateZones($zones: [UpdateZoneInput!]!) {
updateZones(zones: $zones) {
client_id
metadata {
created_at
updated_at
deleted_at
}
zone_type
zone_id
name
floor_id
room_id
coordinates
rotation
color
area {
value
unit
}
capacity {
mid
max
}
tags
type
}
}
Variables
{"zones": [UpdateZoneInput]}
Response
{
"data": {
"updateZones": [
{
"client_id": "abc123",
"metadata": MetaData,
"zone_type": "abc123",
"zone_id": "xyz789",
"name": "abc123",
"floor_id": "abc123",
"room_id": "abc123",
"coordinates": [123.45],
"rotation": 123.45,
"color": [987.65],
"area": Area,
"capacity": Capacity,
"tags": ["xyz789"],
"type": "abc123"
}
]
}
}
upsertSensors
Description
Upsert multiple Sensor entities
Response
Returns [SensorDetails!]
Arguments
Name | Description |
---|---|
sensors - [CreateSensorInput!]!
|
A list of CreateSensorInput objects containing the information for upserting Sensor entities |
Example
Query
mutation upsertSensors($sensors: [CreateSensorInput!]!) {
upsertSensors(sensors: $sensors) {
client_id
floor_id
room_id
hive_id
hive_serial
zone_ids
sensor_id
metadata {
created_at
updated_at
deleted_at
}
name
mac_address
mode
model
sensitivity
center
height
is_entrance
is_online
parallel_to_door
active_hours
calibration {
auto_calibrated_at
auto_calibrate_start
auto_calibrate_end
auto_calibrate_person
}
door_line
generation
in_direction
last_heartbeat
orientation
effective_field_of_view
field_of_view
coordinates
color
algo_config {
cold_person_detection
blacklist
sunlight
shortened_doorline
}
config {
deployment_config {
...SensorDeploymentConfigFragment
}
current_firmware_version
config_firmware_version
force_90_fov
}
last_battery_change_date
next_battery_change_date
}
}
Variables
{"sensors": [CreateSensorInput]}
Response
{
"data": {
"upsertSensors": [
{
"client_id": "abc123",
"floor_id": "abc123",
"room_id": "abc123",
"hive_id": "abc123",
"hive_serial": "abc123",
"zone_ids": ["xyz789"],
"sensor_id": 4,
"metadata": MetaData,
"name": "abc123",
"mac_address": "abc123",
"mode": "xyz789",
"model": "xyz789",
"sensitivity": 123.45,
"center": [987.65],
"height": 987.65,
"is_entrance": false,
"is_online": true,
"parallel_to_door": true,
"active_hours": [123.45],
"calibration": SensorCalibration,
"door_line": 123.45,
"generation": 987.65,
"in_direction": 987.65,
"last_heartbeat": 123,
"orientation": [987.65],
"effective_field_of_view": 987.65,
"field_of_view": 123.45,
"coordinates": [987.65],
"color": [987.65],
"algo_config": AlgoConfig,
"config": SensorConfig,
"last_battery_change_date": "10:15:30Z",
"next_battery_change_date": "10:15:30Z"
}
]
}
}
Types
AddressInput
Description
An input type for an address
Fields
Input Field | Description |
---|---|
address1 - String
|
The first line of the address |
address2 - String
|
The second line of the address (optional) |
city - String
|
The city where the address is located |
state - String
|
The state where the address is located (optional) |
zip - String
|
The zip or postal code of the address |
country - String
|
The country where the address is located |
Example
{
"address1": "abc123",
"address2": "abc123",
"city": "abc123",
"state": "xyz789",
"zip": "abc123",
"country": "abc123"
}
AlgoConfig
Description
The type representing the algorithm configuration settings for a sensor
Fields
Field Name | Description |
---|---|
cold_person_detection - Boolean!
|
Indicates if cold person detection is enabled |
blacklist - [Float!]
|
A list of blacklisted coordinate areas for the sensor |
sunlight - Boolean!
|
Indicates if sunlight detection is enabled |
shortened_doorline - [Float!]
|
Shortened doorline setting values |
Example
{
"cold_person_detection": false,
"blacklist": [123.45],
"sunlight": false,
"shortened_doorline": [987.65]
}
AlgoConfigInput
Description
The input object used for updating sensor algorithm configuration settings
Fields
Input Field | Description |
---|---|
blacklist - [Float!]
|
A list of blacklisted coordinate areas for the sensor (optional) |
cold_person_detection - Boolean
|
Indicates if cold person detection is enabled (optional) |
shortened_doorline - [Float!]
|
Shortened doorline setting values (optional) |
sunlight - Boolean
|
Indicates if sunlight detection is enabled (optional) |
Example
{
"blacklist": [123.45],
"cold_person_detection": true,
"shortened_doorline": [123.45],
"sunlight": true
}
Area
AreaInput
Boolean
Description
The Boolean
scalar type represents true
or false
Bucket
Capacity
CapacityInput
Certificate
Description
A type representing a certificate with its CA, certificate, and key
Example
{
"ca": "abc123",
"certificate": "abc123",
"key": "abc123"
}
Client
Description
A Client represents a registered client in the Butlr system with their associated client ID and database. INTERNAL_USE_ONLY
Example
{
"client_id": "xyz789",
"database": "abc123"
}
Clients
Description
A wrapper for a list of Client objects
Fields
Field Name | Description |
---|---|
data - [Client!]
|
The list of Client objects |
Example
{"data": [Client]}
ConnectionHealthCodeHive
Description
Represents a specific connection health code for a hive
Fields
Field Name | Description |
---|---|
code - ConnectionHealthCodeStatusHive!
|
The type of connection health code |
description - String!
|
A description of the connection health issue |
last_timestamp - Int
|
The timestamp of the last recorded event related to the code |
compared_timestamp - Int!
|
The timestamp of the last comparison for the code |
is_error - Boolean!
|
Indicates whether the code represents an error |
Example
{
"code": "NO_HIVE_STREAMING",
"description": "abc123",
"last_timestamp": 123,
"compared_timestamp": 987,
"is_error": false
}
ConnectionHealthCodeSensor
Description
Represents a specific connection health code for a sensor
Fields
Field Name | Description |
---|---|
code - ConnectionHealthCodeStatusSensor!
|
The type of connection health code |
description - String!
|
A description of the connection health issue |
last_timestamp - Int
|
The timestamp of the last recorded event related to the code |
compared_timestamp - Int!
|
The timestamp of the last comparison for the code |
is_error - Boolean!
|
Indicates whether the code represents an error |
Example
{
"code": "NO_HIVE_STREAMING",
"description": "xyz789",
"last_timestamp": 987,
"compared_timestamp": 123,
"is_error": true
}
ConnectionHealthCodeStatusHive
Description
The possible types of connection health codes for a hive
Values
Enum Value | Description |
---|---|
|
The hive is not streaming data |
|
The hive has not sent a heartbeat recently |
|
The hive is streaming data |
|
The hive has sent a heartbeat recently |
Example
"NO_HIVE_STREAMING"
ConnectionHealthCodeStatusSensor
Description
The possible types of connection health codes for a sensor
Values
Enum Value | Description |
---|---|
|
The hive is not streaming data |
|
The hive has not sent a heartbeat recently |
|
The sensor is not streaming data |
|
The sensor has not sent a heartbeat recently |
|
The sensor is streaming data |
|
The sensor has sent a heartbeat recently |
|
The hive is streaming data |
|
The hive has sent a heartbeat recently |
Example
"NO_HIVE_STREAMING"
ConnectionHealthHive
Description
Represents a hive that provides connection health data
Fields
Field Name | Description |
---|---|
status - ConnectionHealthStatus!
|
The overall health status of the hive's connection |
codes - [ConnectionHealthCodeHive!]!
|
A list of detailed connection health codes for the hive |
Example
{
"status": "NOT_CONNECTED",
"codes": [ConnectionHealthCodeHive]
}
ConnectionHealthSensor
Description
Represents a sensor that provides connection health data
Fields
Field Name | Description |
---|---|
status - ConnectionHealthStatus!
|
The overall health status of the sensor's connection to the hive |
codes - [ConnectionHealthCodeSensor!]!
|
A list of detailed connection health codes for the sensor |
Example
{
"status": "NOT_CONNECTED",
"codes": [ConnectionHealthCodeSensor]
}
ConnectionHealthStatus
Description
The overall health status of a connection
Values
Enum Value | Description |
---|---|
|
The connection is not connected |
|
The connection is partially connected, meaning it may be experiencing some issues |
|
The connection is fully connected and operational |
Example
"NOT_CONNECTED"
CreateFixtureInput
Description
Input type for creating a new fixture
Fields
Input Field | Description |
---|---|
floor_id - String!
|
The identifier for the floor where the fixture will be located |
center - [Float!]
|
The center coordinates (x, y, z) of the new fixture |
rotation - Float!
|
The rotation of the new fixture in degrees |
scale - [Float!]
|
The scale dimensions (x, y, z) of the new fixture |
type - String!
|
The type of the new fixture |
auto_calibrated_at - Int!
|
The timestamp when the fixture was last auto-calibrated |
fixture_type - String!
|
The type of the new fixture |
Example
{
"floor_id": "xyz789",
"center": [123.45],
"rotation": 123.45,
"scale": [987.65],
"type": "xyz789",
"auto_calibrated_at": 987,
"fixture_type": "xyz789"
}
CreateFloorInput
Description
An input type for creating a new floor
Fields
Input Field | Description |
---|---|
name - String!
|
The name of the floor |
address - AddressInput
|
The address of the building |
area - AreaInput
|
The area information of the floor |
capacity - CapacityInput
|
The capacity information of the floor |
installation_date - Int
|
The installation date timestamp of the floor |
timezone - String
|
The timezone of the floor location |
Example
{
"name": "abc123",
"address": AddressInput,
"area": AreaInput,
"capacity": CapacityInput,
"installation_date": 987,
"timezone": "xyz789"
}
CreateHiveInput
Description
Input for creating a new Hive entity
Fields
Input Field | Description |
---|---|
serial_number - String!
|
Serial number of the Hive |
floor_id - String
|
Floor ID where the Hive will be located |
room_id - String
|
Room ID where the Hive will be located |
name - String
|
Name of the Hive |
model - String
|
Model of the Hive |
broker - HiveBrokerInput
|
MQTT broker configuration for the Hive |
topics - HiveTopicsInput
|
MQTT topics configuration for the Hive |
coordinates - [Float!]
|
Coordinates of the Hive in the room |
color - [Float!]
|
Color of the Hive |
config - HiveConfigInput
|
Configuration settings for the Hive |
hive_version - String
|
Hive software version |
hive_type - String
|
Type of the Hive device |
Example
{
"serial_number": "xyz789",
"floor_id": "abc123",
"room_id": "abc123",
"name": "xyz789",
"model": "abc123",
"broker": HiveBrokerInput,
"topics": HiveTopicsInput,
"coordinates": [123.45],
"color": [987.65],
"config": HiveConfigInput,
"hive_version": "abc123",
"hive_type": "abc123"
}
CreateRoomInput
Description
Input for creating a Room entity
Fields
Input Field | Description |
---|---|
room_id - ID
|
Provide your own ID for this room to make this operation idempotent. It will re-create the room if it already exists, overwriting any provided values |
floor_id - String!
|
The unique identifier of the associated floor |
name - String!
|
The display name of the room |
room_type - String
|
The type of room (e.g., 'office', 'conference') |
coordinates - [Float!]
|
The coordinates of the room's vertices |
color - [Float!]
|
The RGBA color associated with the room |
area - AreaInput
|
The area of the room |
capacity - CapacityInput
|
The room's capacity information |
rotation - Float
|
The new rotation of the room (in degrees) |
Example
{
"room_id": 4,
"floor_id": "abc123",
"name": "abc123",
"room_type": "xyz789",
"coordinates": [123.45],
"color": [987.65],
"area": AreaInput,
"capacity": CapacityInput,
"rotation": 123.45
}
CreateSensorInput
Description
The input object used for creating a new sensor with various attributes
Fields
Input Field | Description |
---|---|
sensor_id - ID
|
Provide your own ID for this room to make this operation idempotent. It will re-create the sensor if it already exists, overwriting any provided values |
floor_id - String
|
The unique identifier of the floor that will contain the sensor (optional) |
room_id - String
|
The unique identifier of the room that will contain the sensor (optional) |
hive_id - String
|
The unique identifier of the hive that the sensor will belong to (optional) |
hive_serial - String
|
The serial number of the hive that the sensor will belong to (optional) |
name - String
|
The name of the sensor (optional) |
mac_address - String!
|
The MAC address of the sensor |
mode - String
|
The operational mode of the sensor (optional) |
model - String
|
The model of the sensor (optional) |
sensitivity - Float
|
The sensitivity level of the sensor (optional) |
center - [Float!]
|
The center coordinates of the sensor's coverage area |
height - Float
|
The height of the sensor (optional) |
is_entrance - Boolean
|
Indicates if the sensor is located at an entrance (optional) |
parallel_to_door - Boolean
|
Indicates if the sensor is parallel to a door (optional) |
active_hours - [Float!]
|
The active hours for the sensor |
calibration - SensorCalibrationInput
|
The calibration information of the sensor (optional) |
door_line - Float
|
The door line distance value for the sensor (optional) |
generation - Float
|
The generation of the sensor (optional) |
in_direction - Float
|
The direction value for the sensor's detection area (optional) |
orientation - [Float!]
|
The orientation of the sensor (optional) |
field_of_view - Float
|
The field of view value for the sensor (optional) |
color - [Float!]
|
The color of the sensor (optional) |
algo_config - AlgoConfigInput
|
The algorithm configuration settings for the sensor (optional) |
config - SensorConfigInput
|
The configuration settings for the sensor (optional) |
Example
{
"sensor_id": 4,
"floor_id": "xyz789",
"room_id": "abc123",
"hive_id": "xyz789",
"hive_serial": "abc123",
"name": "abc123",
"mac_address": "abc123",
"mode": "abc123",
"model": "xyz789",
"sensitivity": 123.45,
"center": [123.45],
"height": 123.45,
"is_entrance": false,
"parallel_to_door": false,
"active_hours": [987.65],
"calibration": SensorCalibrationInput,
"door_line": 123.45,
"generation": 987.65,
"in_direction": 987.65,
"orientation": [987.65],
"field_of_view": 123.45,
"color": [987.65],
"algo_config": AlgoConfigInput,
"config": SensorConfigInput
}
CreateZoneInput
Description
The input type required to create a new zone
Fields
Input Field | Description |
---|---|
zone_id - ID
|
Provide your own ID for this room to make this operation idempotent. It will re-create the room if it already exists, overwriting any provided values |
floor_id - String!
|
The unique identifier of the floor that will contain the zone |
room_id - String
|
The unique identifier of the room that will contain the zone (optional) |
zone_type - String
|
The type of the zone (e.g., 'office', 'conference room', etc.) |
name - String!
|
The name of the zone |
coordinates - [Float!]
|
The coordinates of the zone's location within the space |
rotation - Float
|
The new rotation of the zone (in degrees) |
color - [Float!]
|
The color of the zone |
capacity - CapacityInput
|
The capacity information of the zone |
Example
{
"zone_id": 4,
"floor_id": "abc123",
"room_id": "xyz789",
"zone_type": "xyz789",
"name": "abc123",
"coordinates": [123.45],
"rotation": 123.45,
"color": [123.45],
"capacity": CapacityInput
}
DEPLOYMENTSTATUS
Description
An enum representing the possible deployment statuses of a sensor device
Values
Enum Value | Description |
---|---|
|
The deployment status is undefined |
|
The deployment of the sensor device is pending |
|
The deployment of the sensor device is in progress |
|
The deployment of the sensor device has been completed successfully |
|
The deployment of the sensor device has failed |
|
The sensor device could not be found |
|
The deployment of the sensor device was terminated |
Example
"UNDEFINED"
DeleteFloorPlanInput
Fixture
Description
A Fixture represents a furniture or piece of equipment within a room, including its associated data and metadata
Fields
Field Name | Description |
---|---|
client_id - String!
|
The unique identifier for the client associated with the fixture |
floor_id - String!
|
The identifier for the floor where the fixture is located |
room_id - String!
|
The identifier for the room where the fixture is located |
fixture_id - String!
|
The unique identifier for the fixture |
auto_calibrated_at - Int!
|
The timestamp when the fixture was last auto-calibrated |
center - [Float!]
|
The center coordinates (x, y, z) of the fixture |
scale - [Float!]
|
The scale dimensions (x, y, z) of the fixture |
fixture_type - String!
|
The type of the fixture |
rotation - Float!
|
The rotation of the fixture in degrees |
metadata - MetaData!
|
The metadata associated with the fixture |
Example
{
"client_id": "xyz789",
"floor_id": "xyz789",
"room_id": "abc123",
"fixture_id": "xyz789",
"auto_calibrated_at": 987,
"center": [123.45],
"scale": [987.65],
"fixture_type": "abc123",
"rotation": 123.45,
"metadata": MetaData
}
FixtureDetails
Description
A type representing the details of a specific fixture
Fields
Field Name | Description |
---|---|
client_id - String!
|
The unique identifier for the client associated with the fixture |
metadata - MetaData!
|
The metadata associated with the fixture |
auto_calibrated_at - Int!
|
The timestamp when the fixture was last auto-calibrated |
fixture_type - String!
|
The type of the fixture |
fixture_id - ID!
|
The unique identifier for the fixture |
name - String!
|
The name of the fixture |
floor_id - String!
|
The identifier for the floor where the fixture is located |
center - [Float!]
|
The center coordinates (x, y, z) of the fixture |
rotation - Float!
|
The rotation of the fixture in degrees |
scale - [Float!]
|
The scale dimensions (x, y, z) of the fixture |
type - String!
|
The type of the fixture |
Example
{
"client_id": "xyz789",
"metadata": MetaData,
"auto_calibrated_at": 123,
"fixture_type": "xyz789",
"fixture_id": "4",
"name": "abc123",
"floor_id": "abc123",
"center": [123.45],
"rotation": 987.65,
"scale": [987.65],
"type": "abc123"
}
Fixtures
Description
A wrapper for a list of Fixture objects
Fields
Field Name | Description |
---|---|
data - [Fixture!]
|
The list of Fixture objects |
Example
{"data": [Fixture]}
Float
Description
The Float
scalar type represents signed double-precision fractional values as specified by IEEE 754
Example
987.65
Floor
Description
A type representing a floor in a building
Fields
Field Name | Description |
---|---|
client_id - String!
|
The unique identifier for the client associated with the floor |
floor_id - ID!
|
The unique identifier for the floor |
metadata - MetaData!
|
The metadata associated with the floor |
name - String!
|
The name of the floor |
address - String!
|
The address of the building |
timezone - String!
|
The timezone of the floor location |
occupancy_mode - String!
|
The occupancy mode for the floor |
area - Area!
|
The area information of the floor |
capacity - Capacity!
|
The capacity information of the floor |
installation_date - Int!
|
The installation date timestamp of the floor |
installation_status - InstallationStatus!
|
The installation status of the floor |
sensors - [Sensor!]
|
The list of sensors associated with the floor |
hives - [Hive!]
|
The list of hives associated with the floor |
rooms - [Room!]
|
The list of rooms associated with the floor |
Arguments
|
|
zones - [Zone!]
|
The list of zones associated with the floor |
Arguments
|
|
fixtures - [Fixture!]
|
The list of fixtures associated with the floor |
Arguments
|
|
floor_plans - [FloorPlan!]
|
The list of floor plans associated with the floor |
floorNumber - Int
|
The floor number of the floor. Floor numbers are unique among floors in one building |
Example
{
"client_id": "xyz789",
"floor_id": "4",
"metadata": MetaData,
"name": "xyz789",
"address": "xyz789",
"timezone": "abc123",
"occupancy_mode": "abc123",
"area": Area,
"capacity": Capacity,
"installation_date": 123,
"installation_status": "NOT_INSTALLED",
"sensors": [Sensor],
"hives": [Hive],
"rooms": [Room],
"zones": [Zone],
"fixtures": [Fixture],
"floor_plans": [FloorPlan],
"floorNumber": 123
}
FloorDetails
Description
A type representing detailed information about a floor in a building
Fields
Field Name | Description |
---|---|
metadata - MetaData!
|
The metadata associated with the floor |
client_id - String!
|
The unique identifier for the client associated with the floor |
floor_id - String!
|
The unique identifier for the floor |
name - String!
|
The name of the floor |
address - String!
|
The address of the building |
area - Area!
|
The area information of the floor |
capacity - Capacity!
|
The capacity information of the floor |
installation_date - Int!
|
The installation date timestamp of the floor |
occupancy_mode - String!
|
The occupancy mode for the floor |
timezone - String!
|
The timezone of the floor location |
installation_status - InstallationStatus!
|
The installation status of the floor |
Example
{
"metadata": MetaData,
"client_id": "abc123",
"floor_id": "xyz789",
"name": "xyz789",
"address": "xyz789",
"area": Area,
"capacity": Capacity,
"installation_date": 123,
"occupancy_mode": "abc123",
"timezone": "xyz789",
"installation_status": "NOT_INSTALLED"
}
FloorPlan
Description
Type representing a floor plan
Example
{
"floor_plan_id": "abc123",
"coordinates": [987.65],
"name": "abc123",
"url": "xyz789"
}
FloorPlanIDs
Description
A type representing the floor plan associated with a floor
Example
{
"floor_id": "abc123",
"floor_plan_id": "xyz789"
}
Floors
Description
A wrapper for a list of floors
Fields
Field Name | Description |
---|---|
data - [Floor!]
|
The list of floors |
Example
{"data": [Floor]}
Hive
Description
Hive entity that represents a device on the floor of a building
Fields
Field Name | Description |
---|---|
client_id - String!
|
Client ID associated with the Hive |
floor_id - String!
|
Floor ID where the Hive is located |
floor - Floor
|
Floor entity associated with the Hive |
room_id - String!
|
Room ID where the Hive is located |
room - Room
|
Room entity associated with the Hive |
hive_id - ID!
|
Unique identifier of the Hive |
metadata - MetaData!
|
MetaData associated with the Hive |
serial_number - String!
|
Serial number of the Hive |
hive_version - String!
|
Hive software version |
hive_type - String!
|
Type of the Hive device |
last_heartbeat - Int
|
Timestamp of the last heartbeat received from the Hive |
last_raw_message - Int
|
Timestamp of the last raw message received from the Hive |
last_compressed_message - Int
|
Timestamp of the last compressed message received from the Hive |
last_occupancy_message - Int
|
Timestamp of the last occupancy message received from the Hive |
last_detection_message - Int
|
Timestamp of the last detection message received from the Hive |
last_network_id - Int
|
Last network id received from the Hive |
is_streaming - Boolean!
|
Indicates if the sensor is streaming |
broker - HiveBroker
|
MQTT broker configuration for the Hive |
topics - HiveTopics
|
MQTT topics configuration for the Hive |
activated_at - Int!
|
Timestamp when the Hive was activated |
is_online - Boolean!
|
Hive online status |
net_path_stability - Float!
|
Network path stability of the Hive |
coordinates - [Float!]!
|
Coordinates of the Hive in the room |
name - String!
|
Name of the Hive |
config - HiveConfig
|
Configuration settings of the Hive |
connection_health - ConnectionHealthHive!
|
The connection health of the hive |
sensors - [Sensor!]
|
List of sensors associated with the Hive. Can be filtered by providing a list of sensor IDs |
Arguments
|
Example
{
"client_id": "abc123",
"floor_id": "abc123",
"floor": Floor,
"room_id": "xyz789",
"room": Room,
"hive_id": 4,
"metadata": MetaData,
"serial_number": "xyz789",
"hive_version": "xyz789",
"hive_type": "xyz789",
"last_heartbeat": 123,
"last_raw_message": 987,
"last_compressed_message": 987,
"last_occupancy_message": 123,
"last_detection_message": 987,
"last_network_id": 987,
"is_streaming": true,
"broker": HiveBroker,
"topics": HiveTopics,
"activated_at": 987,
"is_online": true,
"net_path_stability": 123.45,
"coordinates": [987.65],
"name": "xyz789",
"config": HiveConfig,
"connection_health": ConnectionHealthHive,
"sensors": [Sensor]
}
HiveBroker
Description
Hive MQTT broker configuration settings
Example
{
"hive_serial": "xyz789",
"address": "abc123",
"username": "xyz789",
"password": "xyz789",
"port": 123,
"tls": Certificate
}
HiveBrokerInput
Description
Input for updating a Hive's MQTT broker configuration
Example
{
"address": "abc123",
"username": "abc123",
"password": "abc123",
"port": 123
}
HiveCompressionConfig
HiveCompressionConfigInput
Description
Input type for updating Hive MQTT message compression configuration settings
Example
{"size": 987, "max_time_interval": 987}
HiveConfig
Description
Represents the configuration settings for a Hive
Fields
Field Name | Description |
---|---|
hive_serial - String!
|
The serial number of the Hive |
heartbeat_interval - Int!
|
The interval between heartbeats in seconds |
on_change_interval - Int!
|
The interval between changes in seconds |
baudrate - Int!
|
The baud rate for communication |
modem_device - String!
|
The modem device identifier |
timezone - String!
|
The timezone of the Hive |
mqtt - HiveMQTTConfig!
|
The MQTT configuration settings for the Hive |
frame_rate - HiveFrameRateConfig!
|
The frame rate configuration settings for the Hive |
required_bandwidth - HiveRequiredBandwidthConfig!
|
The required bandwidth configuration settings for the Hive |
auto_sensor_fw_updates_enabled - Boolean!
|
When enabled, a hive will be able to auto-update it's attached sensors during inactive hours. When disabled, a hive will not auto-update it's attached sensors |
Example
{
"hive_serial": "xyz789",
"heartbeat_interval": 987,
"on_change_interval": 123,
"baudrate": 987,
"modem_device": "abc123",
"timezone": "xyz789",
"mqtt": HiveMQTTConfig,
"frame_rate": HiveFrameRateConfig,
"required_bandwidth": HiveRequiredBandwidthConfig,
"auto_sensor_fw_updates_enabled": false
}
HiveConfigInput
Description
Input type for updating Hive configuration settings
Fields
Input Field | Description |
---|---|
heartbeat_interval - Int
|
The interval between consecutive heartbeats sent by the Hive (in seconds) |
on_change_interval - Int
|
The interval between sending data updates to the server when there is a change (in seconds) |
baudrate - Int
|
The baud rate for the Hive's serial communication |
modem_device - String
|
The modem device identifier for the Hive |
timezone - String
|
The timezone string for the Hive |
mqtt - HiveMQTTConfigInput
|
The input object for updating Hive MQTT configuration settings |
frame_rate - HiveFrameRateConfigInput
|
The input object for updating Hive frame rate configuration settings |
required_bandwidth - HiveRequiredBandwidthConfigInput
|
The input object for updating Hive required bandwidth configuration settings |
auto_sensor_fw_updates_enabled - Boolean
|
When enabled, a hive will be able to auto-update it's attached sensors during inactive hours. When disabled, a hive will not auto-update it's attached sensors |
Example
{
"heartbeat_interval": 987,
"on_change_interval": 123,
"baudrate": 123,
"modem_device": "xyz789",
"timezone": "abc123",
"mqtt": HiveMQTTConfigInput,
"frame_rate": HiveFrameRateConfigInput,
"required_bandwidth": HiveRequiredBandwidthConfigInput,
"auto_sensor_fw_updates_enabled": false
}
HiveDetails
Description
Type representing detailed information about a Hive entity
Fields
Field Name | Description |
---|---|
floor_id - String!
|
Floor ID where the Hive is located |
metadata - MetaData!
|
Metadata associated with the Hive |
client_id - String!
|
Client ID associated with the Hive |
hive_id - ID!
|
Unique identifier of the Hive |
serial_number - String!
|
Serial number of the Hive |
space_id - String!
|
Space ID associated with the Hive |
broker - HiveBroker!
|
MQTT broker configuration for the Hive |
topics - HiveTopics!
|
MQTT topics configuration for the Hive |
is_online - Boolean!
|
Online status of the Hive |
activated_at - Int!
|
Activation timestamp of the Hive |
net_path_stability - Float!
|
Network path stability of the Hive |
coordinates - [Float!]
|
Coordinates of the Hive in the room |
name - String!
|
Name of the Hive |
color - [Float!]
|
Color of the Hive |
sensor_ids - [String!]
|
List of sensor IDs associated with the Hive |
room_id - String!
|
Room ID where the Hive is located |
config - HiveConfig!
|
Configuration settings for the Hive |
hive_version - String!
|
Hive software version |
hive_type - String!
|
Type of the Hive device |
Example
{
"floor_id": "xyz789",
"metadata": MetaData,
"client_id": "xyz789",
"hive_id": 4,
"serial_number": "xyz789",
"space_id": "xyz789",
"broker": HiveBroker,
"topics": HiveTopics,
"is_online": true,
"activated_at": 123,
"net_path_stability": 123.45,
"coordinates": [123.45],
"name": "xyz789",
"color": [987.65],
"sensor_ids": ["xyz789"],
"room_id": "abc123",
"config": HiveConfig,
"hive_version": "abc123",
"hive_type": "abc123"
}
HiveFrameRateConfig
Description
Represents the frame rate configuration settings for a Hive
Fields
Field Name | Description |
---|---|
check_interval - Int!
|
The interval between checks in seconds |
monday - String!
|
The frame rate for Monday |
tuesday - String!
|
The frame rate for Tuesday |
wednesday - String!
|
The frame rate for Wednesday |
thursday - String!
|
The frame rate for Thursday |
friday - String!
|
The frame rate for Friday |
saturday - String!
|
The frame rate for Saturday |
sunday - String!
|
The frame rate for Sunday |
traffic - String!
|
The frame rate for traffic mode |
presence - String!
|
The frame rate for presence mode |
sleep - String!
|
The frame rate for sleep mode |
repeater - String!
|
The frame rate for repeater mode |
Example
{
"check_interval": 987,
"monday": "xyz789",
"tuesday": "xyz789",
"wednesday": "abc123",
"thursday": "xyz789",
"friday": "xyz789",
"saturday": "xyz789",
"sunday": "xyz789",
"traffic": "abc123",
"presence": "abc123",
"sleep": "abc123",
"repeater": "abc123"
}
HiveFrameRateConfigInput
Description
Input type for updating Hive frame rate configuration settings
Fields
Input Field | Description |
---|---|
check_interval - Int
|
The interval at which the frame rate check is performed (in seconds) |
monday - String
|
The frame rate configuration for Monday |
tuesday - String
|
The frame rate configuration for Tuesday |
wednesday - String
|
The frame rate configuration for Wednesday |
thursday - String
|
The frame rate configuration for Thursday |
friday - String
|
The frame rate configuration for Friday |
saturday - String
|
The frame rate configuration for Saturday |
sunday - String
|
The frame rate configuration for Sunday |
traffic - String
|
The frame rate configuration for traffic mode |
presence - String
|
The frame rate configuration for presence mode |
sleep - String
|
The frame rate configuration for sleep mode |
repeater - String
|
The frame rate configuration for repeater mode |
Example
{
"check_interval": 123,
"monday": "xyz789",
"tuesday": "abc123",
"wednesday": "abc123",
"thursday": "xyz789",
"friday": "xyz789",
"saturday": "xyz789",
"sunday": "abc123",
"traffic": "xyz789",
"presence": "xyz789",
"sleep": "xyz789",
"repeater": "xyz789"
}
HiveMQTTConfig
Description
Represents the MQTT configuration settings for a Hive
Fields
Field Name | Description |
---|---|
qos - Int!
|
The Quality of Service (QoS) level for the MQTT connection |
secured - Boolean!
|
Indicates whether the connection is secured |
max_inflight_messages - Int!
|
The maximum number of inflight messages allowed |
keep_alive - Int!
|
The keep-alive interval in seconds |
compression - Boolean!
|
Indicates whether compression is enabled |
compression_config - HiveCompressionConfig!
|
The compression configuration settings for the Hive |
Example
{
"qos": 123,
"secured": false,
"max_inflight_messages": 123,
"keep_alive": 987,
"compression": false,
"compression_config": HiveCompressionConfig
}
HiveMQTTConfigInput
Description
Input type for updating Hive MQTT configuration settings
Fields
Input Field | Description |
---|---|
qos - Int
|
The Quality of Service (QoS) level for MQTT messages (0, 1, or 2) |
secured - Boolean
|
A flag indicating whether the MQTT connection is secured (uses TLS) |
max_inflight_messages - Int
|
The maximum number of inflight messages allowed for the MQTT connection |
keep_alive - Int
|
The keep-alive interval for the MQTT connection (in seconds) |
compression - Boolean
|
A flag indicating whether MQTT message compression is enabled. (If enabled, QOS will be set to 2, otherwise QOS will be set to 1) |
compression_config - HiveCompressionConfigInput
|
The input object for updating Hive MQTT compression configuration settings |
Example
{
"qos": 123,
"secured": false,
"max_inflight_messages": 123,
"keep_alive": 123,
"compression": true,
"compression_config": HiveCompressionConfigInput
}
HiveRequiredBandwidthConfig
Description
Represents the required bandwidth configuration settings for a Hive
Fields
Field Name | Description |
---|---|
presence - Int!
|
The required bandwidth for presence mode in milliseconds (ms) |
traffic - Int!
|
The required bandwidth for traffic mode in milliseconds (ms) |
repeater - Int!
|
The required bandwidth for repeater mode in milliseconds (ms) |
sleep - Int!
|
The required bandwidth for sleep mode in milliseconds (ms) |
Example
{"presence": 987, "traffic": 987, "repeater": 123, "sleep": 123}
HiveRequiredBandwidthConfigInput
Description
Input type for updating Hive required bandwidth configuration settings
Fields
Input Field | Description |
---|---|
presence - Int
|
The required bandwidth for presence mode in milliseconds (ms) |
traffic - Int
|
The required bandwidth for traffic mode in milliseconds (ms) |
repeater - Int
|
The required bandwidth for repeater mode in milliseconds (ms) |
sleep - Int
|
The required bandwidth for sleep mode in milliseconds (ms) |
Example
{"presence": 123, "traffic": 987, "repeater": 987, "sleep": 987}
HiveTopics
Description
Hive MQTT topics configuration settings
Example
{
"command": "xyz789",
"detections": "abc123",
"raw": "abc123",
"compressed": "xyz789"
}
HiveTopicsInput
Description
Input for updating a Hive's MQTT topics configuration
Example
{
"command": "abc123",
"detections": "xyz789",
"raw": "xyz789",
"compressed": "xyz789"
}
Hives
Description
A wrapper type for a list of Hive entities
Fields
Field Name | Description |
---|---|
data - [Hive!]
|
List of Hive entities |
Example
{"data": [Hive]}
ID
Description
The ID
scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4"
) or integer (such as 4
) input value will be accepted as an ID
Example
"4"
InstallationStatus
Description
The installation status of a floor
Values
Enum Value | Description |
---|---|
|
The floor is yet to be installed |
|
Installation of the floor is currently underway |
|
Quality Assurance (QA) checks are being carried out post-installation of the floor |
|
The floor has been successfully installed and has passed any necessary QA checks |
Example
"NOT_INSTALLED"
Int
Description
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1
Example
123
MetaData
Description
A type representing metadata information for various entities
Example
{"created_at": 123, "updated_at": 987, "deleted_at": 123}
Room
Description
A Room entity represents a specific area within a Floor
Fields
Field Name | Description |
---|---|
client_id - String!
|
The unique identifier of the associated client |
floor_id - String!
|
The unique identifier of the associated floor |
floor - Floor!
|
The Floor entity associated with the Room |
room_id - String!
|
The unique identifier of the room |
metadata - MetaData!
|
The MetaData associated with the room |
name - String!
|
The display name of the room |
area - Area!
|
The area of the room |
color - [Float!]
|
The RGBA color associated with the room |
coordinates - [Float!]
|
The coordinates of the room's vertices |
auto_calibrated_at - Int!
|
The timestamp when the room was last auto-calibrated |
capacity - Capacity!
|
The room's capacity information |
rotation - Float
|
The room's clockwise rotation (in degrees) |
room_type - String!
|
The type of room (e.g., 'office', 'conference') |
sensors - [Sensor!]
|
A list of associated Sensor entities |
Arguments
|
Example
{
"client_id": "abc123",
"floor_id": "xyz789",
"floor": Floor,
"room_id": "xyz789",
"metadata": MetaData,
"name": "xyz789",
"area": Area,
"color": [987.65],
"coordinates": [123.45],
"auto_calibrated_at": 123,
"capacity": Capacity,
"rotation": 987.65,
"room_type": "xyz789",
"sensors": [Sensor]
}
RoomDetails
Description
The type representing detailed information about a room
Fields
Field Name | Description |
---|---|
client_id - String!
|
The unique identifier of the client that owns the room |
floor_id - String!
|
The unique identifier of the floor that contains the room |
room_id - ID!
|
The unique identifier of the room |
metadata - MetaData!
|
Metadata associated with the room |
name - String!
|
The name of the room |
room_type - String!
|
The type of the room |
coordinates - [Float!]
|
The coordinates of the room |
rotation - Float
|
The room's clockwise rotation (in degrees) |
color - [Float!]
|
The color of the room |
area - Area!
|
The area of the room |
capacity - Capacity!
|
The capacity of the room |
tags - [String!]
|
A list of tags associated with the room |
auto_calibrated_at - Int!
|
The timestamp of the last auto-calibration event |
Example
{
"client_id": "abc123",
"floor_id": "xyz789",
"room_id": 4,
"metadata": MetaData,
"name": "xyz789",
"room_type": "abc123",
"coordinates": [987.65],
"rotation": 123.45,
"color": [987.65],
"area": Area,
"capacity": Capacity,
"tags": ["xyz789"],
"auto_calibrated_at": 987
}
Rooms
Description
A wrapper for a list of Room entities
Fields
Field Name | Description |
---|---|
data - [Room!]
|
A list of Room entities |
Example
{"data": [Room]}
Sensor
Description
The type representing detailed information about a sensor
Fields
Field Name | Description |
---|---|
client_id - String!
|
The unique identifier of the client that owns the sensor |
floor_id - String!
|
The unique identifier of the floor that contains the sensor |
floor - Floor
|
The floor object associated with the sensor |
room_id - String!
|
The unique identifier of the room that contains the sensor |
room - Room
|
The room object associated with the sensor |
hive_id - String!
|
The unique identifier of the hive that the sensor belongs to |
hive - Hive
|
The hive object associated with the sensor |
hive_serial - String!
|
The serial number of the hive that the sensor belongs to |
zones - [Zone!]
|
A list of zone objects associated with the sensor |
zone_ids - [String!]
|
A list of unique zone identifiers that the sensor is associated with |
sensor_id - ID!
|
The unique identifier of the sensor |
metadata - MetaData!
|
Metadata associated with the sensor |
name - String!
|
The name of the sensor |
mac_address - String!
|
The MAC address of the sensor |
mode - String!
|
The operational mode of the sensor |
model - String!
|
The model of the sensor |
sensitivity - Float!
|
The sensitivity level of the sensor |
center - [Float!]
|
The center coordinates of the sensor's coverage area |
height - Float!
|
The height of the sensor |
is_entrance - Boolean!
|
Indicates if the sensor is located at an entrance |
is_online - Boolean!
|
Indicates if the sensor is online |
parallel_to_door - Boolean!
|
Indicates if the sensor is parallel to a door |
active_hours - [Float!]
|
The active hours for the sensor |
calibration - SensorCalibration!
|
The calibration information of the sensor |
door_line - Float!
|
The door line distance value for the sensor |
generation - Float!
|
The generation of the sensor |
in_direction - Float!
|
The direction value for the sensor's detection area |
last_heartbeat - Int
|
The timestamp of the sensor's last heartbeat |
last_raw_message - Int
|
The timestamp of the sensor's last raw message |
last_compressed_message - Int
|
The timestamp of the sensor's last compressed message |
last_occupancy_message - Int
|
The timestamp of the sensor's last occupancy message |
last_detection_message - Int
|
The timestamp of the sensor's last detection message |
messages_per_second - Float!
|
The calculated messages received per second for the sensor, over the last 5 mins |
is_streaming - Boolean!
|
Indicates if the sensor is streaming |
orientation - [Float!]
|
The orientation of the sensor |
effective_field_of_view - Float!
|
The effective field of view value for the sensor |
field_of_view - Float!
|
The field of view value for the sensor |
algo_config - AlgoConfig!
|
The algorithm configuration settings for the sensor |
connection_health - ConnectionHealthSensor!
|
The connection health of the sensor |
config - SensorConfig!
|
The configuration settings for the sensor |
last_battery_change_date - Time
|
Last battery change date for the sensor |
next_battery_change_date - Time
|
Next battery change date for the sensor |
Example
{
"client_id": "abc123",
"floor_id": "abc123",
"floor": Floor,
"room_id": "abc123",
"room": Room,
"hive_id": "xyz789",
"hive": Hive,
"hive_serial": "xyz789",
"zones": [Zone],
"zone_ids": ["xyz789"],
"sensor_id": "4",
"metadata": MetaData,
"name": "abc123",
"mac_address": "abc123",
"mode": "xyz789",
"model": "xyz789",
"sensitivity": 123.45,
"center": [123.45],
"height": 123.45,
"is_entrance": false,
"is_online": true,
"parallel_to_door": false,
"active_hours": [123.45],
"calibration": SensorCalibration,
"door_line": 123.45,
"generation": 987.65,
"in_direction": 987.65,
"last_heartbeat": 123,
"last_raw_message": 987,
"last_compressed_message": 123,
"last_occupancy_message": 123,
"last_detection_message": 123,
"messages_per_second": 123.45,
"is_streaming": true,
"orientation": [987.65],
"effective_field_of_view": 987.65,
"field_of_view": 987.65,
"algo_config": AlgoConfig,
"connection_health": ConnectionHealthSensor,
"config": SensorConfig,
"last_battery_change_date": "10:15:30Z",
"next_battery_change_date": "10:15:30Z"
}
SensorCalibration
Description
The type representing the calibration information of a sensor
Fields
Field Name | Description |
---|---|
auto_calibrated_at - Int!
|
The timestamp of the last auto-calibration event |
auto_calibrate_start - Int!
|
The start time of the auto-calibration process |
auto_calibrate_end - Int!
|
The end time of the auto-calibration process |
auto_calibrate_person - Int!
|
The number of people detected during the auto-calibration process |
Example
{
"auto_calibrated_at": 987,
"auto_calibrate_start": 123,
"auto_calibrate_end": 123,
"auto_calibrate_person": 123
}
SensorCalibrationInput
Description
The input object used for updating sensor calibration attributes
Fields
Input Field | Description |
---|---|
auto_calibrated_at - Int
|
The timestamp of the last auto-calibration event (optional) |
auto_calibrate_start - Int
|
The start time of the auto-calibration process (optional) |
auto_calibrate_end - Int
|
The end time of the auto-calibration process (optional) |
auto_calibrate_person - Int
|
The number of people detected during the auto-calibration process (optional) |
Example
{
"auto_calibrated_at": 123,
"auto_calibrate_start": 987,
"auto_calibrate_end": 987,
"auto_calibrate_person": 123
}
SensorConfig
Description
The SensorConfig
type represents the configuration details of a sensor device
Fields
Field Name | Description |
---|---|
deployment_config - SensorDeploymentConfig!
|
The deployment configuration of the sensor device |
current_firmware_version - String!
|
The current version of firmware running on the sensor device |
config_firmware_version - String!
|
The version of firmware that this sensor configuration is compatible with |
force_90_fov - Boolean!
|
A flag indicating whether or not this is a Heatic 2 sensor that needs a software patch to tell it to publish the correct FOV value (90) |
Example
{
"deployment_config": SensorDeploymentConfig,
"current_firmware_version": "abc123",
"config_firmware_version": "abc123",
"force_90_fov": false
}
SensorConfigInput
Description
The SensorConfigInput
input type represents the input required to update the configuration details of a sensor device
Fields
Input Field | Description |
---|---|
deployment_config - SensorDeploymentConfigInput
|
The deployment configuration input of the sensor device |
current_firmware_version - String
|
The current version of firmware running on the sensor device |
config_firmware_version - String
|
The version of firmware that this sensor configuration is compatible with |
force_90_fov - Boolean
|
A flag indicating whether or not this is a Heatic 2 sensor that needs a software patch to tell it to publish the correct FOV value (90) |
Example
{
"deployment_config": SensorDeploymentConfigInput,
"current_firmware_version": "xyz789",
"config_firmware_version": "xyz789",
"force_90_fov": true
}
SensorDeploymentConfig
Description
The SensorDeploymentConfig
type represents the deployment configuration of a sensor device
Fields
Field Name | Description |
---|---|
update_id - String!
|
The update ID of the sensor deployment configuration |
status - DEPLOYMENTSTATUS!
|
The deployment status of the sensor device |
target_firmware_version - String!
|
The target version of firmware that the sensor device should be updated to |
update_start_time - Int!
|
The start time of the sensor device firmware update |
update_stop_time - Int!
|
The stop time of the sensor device firmware update |
retries - Int!
|
The number of times the firmware update has been attempted |
Example
{
"update_id": "abc123",
"status": "UNDEFINED",
"target_firmware_version": "xyz789",
"update_start_time": 123,
"update_stop_time": 987,
"retries": 987
}
SensorDeploymentConfigInput
Description
The SensorDeploymentConfigInput
input type represents the input required to update the deployment configuration details of a sensor device
Fields
Input Field | Description |
---|---|
update_id - String
|
The update ID of the sensor deployment configuration |
status - DEPLOYMENTSTATUS
|
The deployment status of the sensor device |
target_firmware_version - String
|
The target version of firmware that the sensor device should be updated to |
update_start_time - Int
|
The start time of the sensor device firmware update |
update_stop_time - Int
|
The stop time of the sensor device firmware update |
retries - Int
|
The number of times the firmware update has been attempted |
Example
{
"update_id": "xyz789",
"status": "UNDEFINED",
"target_firmware_version": "xyz789",
"update_start_time": 123,
"update_stop_time": 987,
"retries": 123
}
SensorDetails
Description
The type representing detailed information about a sensor
Fields
Field Name | Description |
---|---|
client_id - String!
|
The unique identifier of the client associated with the sensor |
floor_id - String!
|
The unique identifier of the floor that contains the sensor |
room_id - String!
|
The unique identifier of the room that contains the sensor |
hive_id - String!
|
The unique identifier of the hive that the sensor belongs to |
hive_serial - String!
|
The serial number of the hive that the sensor belongs to |
zone_ids - [String!]
|
A list of unique zone identifiers that the sensor is associated with |
sensor_id - ID!
|
The unique identifier of the sensor |
metadata - MetaData!
|
The metadata associated with the sensor |
name - String!
|
The name of the sensor |
mac_address - String!
|
The MAC address of the sensor |
mode - String!
|
The operational mode of the sensor |
model - String!
|
The model of the sensor |
sensitivity - Float!
|
The sensitivity level of the sensor |
center - [Float!]
|
The center coordinates of the sensor's coverage area |
height - Float!
|
The height of the sensor |
is_entrance - Boolean!
|
Indicates if the sensor is located at an entrance |
is_online - Boolean!
|
Indicates if the sensor is online |
parallel_to_door - Boolean!
|
Indicates if the sensor is parallel to a door |
active_hours - [Float!]
|
The active hours for the sensor |
calibration - SensorCalibration!
|
The calibration information of the sensor |
door_line - Float!
|
The door line distance value for the sensor |
generation - Float!
|
The generation of the sensor |
in_direction - Float!
|
The direction value for the sensor's detection area |
last_heartbeat - Int
|
The timestamp of the last heartbeat event |
orientation - [Float!]
|
The orientation of the sensor |
effective_field_of_view - Float!
|
The effective field of view value for the sensor |
field_of_view - Float!
|
The field of view value for the sensor |
coordinates - [Float!]
|
The coordinates of the sensor's location within the space |
color - [Float!]
|
The color of the sensor |
algo_config - AlgoConfig!
|
The algorithm configuration settings for the sensor |
config - SensorConfig!
|
The configuration settings for the sensor |
last_battery_change_date - Time
|
Last battery change date for the sensor |
next_battery_change_date - Time
|
Next battery change date for the sensor |
Example
{
"client_id": "abc123",
"floor_id": "abc123",
"room_id": "xyz789",
"hive_id": "xyz789",
"hive_serial": "xyz789",
"zone_ids": ["xyz789"],
"sensor_id": 4,
"metadata": MetaData,
"name": "xyz789",
"mac_address": "abc123",
"mode": "abc123",
"model": "xyz789",
"sensitivity": 123.45,
"center": [123.45],
"height": 123.45,
"is_entrance": true,
"is_online": true,
"parallel_to_door": false,
"active_hours": [987.65],
"calibration": SensorCalibration,
"door_line": 123.45,
"generation": 123.45,
"in_direction": 987.65,
"last_heartbeat": 987,
"orientation": [123.45],
"effective_field_of_view": 987.65,
"field_of_view": 123.45,
"coordinates": [123.45],
"color": [987.65],
"algo_config": AlgoConfig,
"config": SensorConfig,
"last_battery_change_date": "10:15:30Z",
"next_battery_change_date": "10:15:30Z"
}
Sensors
Description
The type representing a collection of Sensor objects
Fields
Field Name | Description |
---|---|
data - [Sensor!]
|
A list of Sensor objects |
Example
{"data": [Sensor]}
String
Description
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text
Example
"xyz789"
Time
Example
"10:15:30Z"
UpdateFixtureInput
Description
Input type for updating an existing fixture
Fields
Input Field | Description |
---|---|
fixture_id - ID!
|
The unique identifier for the fixture to be updated |
floor_id - String!
|
The identifier for the floor where the fixture is located |
center - [Float!]
|
The updated center coordinates (x, y, z) of the fixture |
rotation - Float!
|
The updated rotation of the fixture in degrees |
scale - [Float!]
|
The updated scale dimensions (x, y, z) of the fixture |
type - String!
|
The updated type of the fixture |
auto_calibrated_at - Int!
|
The updated timestamp when the fixture was last auto-calibrated |
fixture_type - String!
|
The updated type of the fixture |
Example
{
"fixture_id": 4,
"floor_id": "abc123",
"center": [123.45],
"rotation": 123.45,
"scale": [987.65],
"type": "abc123",
"auto_calibrated_at": 987,
"fixture_type": "xyz789"
}
UpdateFloorInput
Description
An input type for updating an existing floor
Fields
Input Field | Description |
---|---|
floor_id - ID!
|
The unique identifier for the floor |
name - String
|
The name of the floor |
address - String
|
The address of the building |
area - AreaInput
|
The area information of the floor |
capacity - CapacityInput
|
The capacity information of the floor |
installation_date - Int
|
The installation date timestamp of the floor |
occupancy_mode - String
|
The occupancy mode for the floor |
timezone - String
|
The timezone of the floor location |
installation_status - InstallationStatus
|
The installation status of the floor |
Example
{
"floor_id": "4",
"name": "abc123",
"address": "abc123",
"area": AreaInput,
"capacity": CapacityInput,
"installation_date": 123,
"occupancy_mode": "abc123",
"timezone": "abc123",
"installation_status": "NOT_INSTALLED"
}
UpdateFloorPlanInput
Description
An input type for updating the floor plan metadata
Example
{
"floor_id": "abc123",
"floor_plan_id": "abc123",
"name": "xyz789",
"coordinates": [123.45]
}
UpdateHiveHeartbeatInput
UpdateHiveInput
Description
Input for updating an existing Hive entity
Fields
Input Field | Description |
---|---|
floor_id - String
|
New Floor ID where the Hive will be located |
room_id - String
|
New Room ID where the Hive will be located |
serial_number - String!
|
Serial number of the Hive to update |
name - String
|
New name of the Hive |
broker - HiveBrokerInput
|
New MQTT broker configuration for the Hive |
coordinates - [Float!]
|
New coordinates of the Hive in the room |
color - [Float!]
|
New color of the Hive |
sensors - [UpdateHiveSensorInput!]
|
New sensor configuration for the Hive |
config - HiveConfigInput
|
New configuration settings for the Hive |
hive_version - String
|
New Hive software version |
hive_type - String
|
New type of the Hive device |
Example
{
"floor_id": "xyz789",
"room_id": "abc123",
"serial_number": "xyz789",
"name": "xyz789",
"broker": HiveBrokerInput,
"coordinates": [987.65],
"color": [123.45],
"sensors": [UpdateHiveSensorInput],
"config": HiveConfigInput,
"hive_version": "xyz789",
"hive_type": "xyz789"
}
UpdateHiveSensorInput
UpdateRoomInput
Description
The input object used for updating room attributes
Fields
Input Field | Description |
---|---|
room_id - ID!
|
The unique identifier of the room to be updated |
name - String
|
The new name of the room (optional) |
room_type - String
|
The new room type (optional) |
coordinates - [Float!]
|
The new coordinates of the room (optional) |
color - [Float!]
|
The new color of the room (optional) |
area - AreaInput
|
The new area of the room (optional) |
capacity - CapacityInput
|
The new capacity of the room (optional) |
rotation - Float
|
The new rotation of the room (in degrees) |
Example
{
"room_id": "4",
"name": "xyz789",
"room_type": "xyz789",
"coordinates": [123.45],
"color": [987.65],
"area": AreaInput,
"capacity": CapacityInput,
"rotation": 987.65
}
UpdateSensorInput
Description
The input object used for updating an existing sensor with various attributes
Fields
Input Field | Description |
---|---|
sensor_id - ID
|
The unique identifier of the sensor |
floor_id - String
|
The unique identifier of the floor that contains the sensor (optional) |
room_id - String
|
The unique identifier of the room that contains the sensor (optional) |
hive_id - String
|
The unique identifier of the hive that the sensor belongs to (optional) |
hive_serial - String
|
The serial number of the hive that the sensor belongs to (optional) |
name - String
|
The name of the sensor (optional) |
mac_address - String
|
The MAC address of the sensor (optional) |
mode - String
|
The operational mode of the sensor (optional) |
model - String
|
The model of the sensor (optional) |
sensitivity - Float
|
The sensitivity level of the sensor (optional) |
center - [Float!]
|
The center coordinates of the sensor's coverage area (optional) |
height - Float
|
The height of the sensor (optional) |
is_entrance - Boolean
|
Indicates if the sensor is located at an entrance (optional) |
parallel_to_door - Boolean
|
Indicates if the sensor is parallel to a door (optional) |
active_hours - [Float!]
|
The active hours for the sensor (optional) |
calibration - SensorCalibrationInput
|
The calibration information of the sensor (optional) |
door_line - Float
|
The door line distance value for the sensor (optional) |
generation - Float
|
The generation of the sensor (optional) |
in_direction - Float
|
The direction value for the sensor's detection area (optional) |
orientation - [Float!]
|
The orientation of the sensor (optional) |
field_of_view - Float
|
The field of view value for the sensor (optional) |
color - [Float!]
|
The color of the sensor (optional) |
algo_config - AlgoConfigInput
|
The algorithm configuration settings for the sensor (optional) |
config - SensorConfigInput
|
The configuration settings for the sensor (optional) |
last_battery_change_date - Time
|
Last battery change date for the sensor |
next_battery_change_date - Time
|
Next battery change date for the sensor |
Example
{
"sensor_id": "4",
"floor_id": "xyz789",
"room_id": "xyz789",
"hive_id": "abc123",
"hive_serial": "xyz789",
"name": "xyz789",
"mac_address": "abc123",
"mode": "abc123",
"model": "abc123",
"sensitivity": 987.65,
"center": [123.45],
"height": 987.65,
"is_entrance": true,
"parallel_to_door": true,
"active_hours": [123.45],
"calibration": SensorCalibrationInput,
"door_line": 987.65,
"generation": 123.45,
"in_direction": 987.65,
"orientation": [987.65],
"field_of_view": 123.45,
"color": [123.45],
"algo_config": AlgoConfigInput,
"config": SensorConfigInput,
"last_battery_change_date": "10:15:30Z",
"next_battery_change_date": "10:15:30Z"
}
UpdateZoneInput
Description
The input type required to update an existing zone
Fields
Input Field | Description |
---|---|
room_id - String
|
The unique identifier of the room that will contain the zone (optional) |
zone_id - ID!
|
The unique identifier of the zone to update |
zone_type - String
|
The type of the zone (e.g., 'office', 'conference room', etc.) |
name - String
|
The name of the zone |
coordinates - [Float!]
|
The coordinates of the zone's location within the space |
rotation - Float
|
The clockwise rotation of the zone (in degrees) |
color - [Float!]
|
The color of the zone |
area - AreaInput
|
The area information of the zone |
capacity - CapacityInput
|
The capacity information of the zone |
Example
{
"room_id": "abc123",
"zone_id": 4,
"zone_type": "abc123",
"name": "xyz789",
"coordinates": [987.65],
"rotation": 987.65,
"color": [987.65],
"area": AreaInput,
"capacity": CapacityInput
}
Zone
Description
The type representing information about a specific zone within a space
Fields
Field Name | Description |
---|---|
client_id - String!
|
The unique identifier of the client associated with the zone |
floor_id - String!
|
The unique identifier of the floor that contains the zone |
room_id - String!
|
The unique identifier of the room that contains the zone |
zone_id - String!
|
The unique identifier of the zone |
metadata - MetaData!
|
The metadata associated with the zone |
name - String!
|
The name of the zone |
area - Area!
|
The area information of the zone |
color - [Float!]
|
The color of the zone |
coordinates - [Float!]
|
The coordinates of the zone's location within the space |
rotation - Float
|
The clockwise rotation of the zone (in degrees) |
capacity - Capacity!
|
The capacity information of the zone |
zone_type - String!
|
The type of the zone (e.g., 'office', 'conference room', etc.) |
tags - [String!]
|
A list of tags associated with the zone |
sensors - [Sensor!]
|
A list of sensors associated with the zone |
Example
{
"client_id": "abc123",
"floor_id": "xyz789",
"room_id": "xyz789",
"zone_id": "xyz789",
"metadata": MetaData,
"name": "xyz789",
"area": Area,
"color": [123.45],
"coordinates": [123.45],
"rotation": 987.65,
"capacity": Capacity,
"zone_type": "abc123",
"tags": ["abc123"],
"sensors": [Sensor]
}
ZoneDetails
Description
The type representing detailed information about a specific zone
Fields
Field Name | Description |
---|---|
client_id - String!
|
The unique identifier of the client associated with the zone |
metadata - MetaData!
|
The metadata associated with the zone |
zone_type - String!
|
The type of the zone (e.g., 'office', 'conference room', etc.) |
zone_id - String!
|
The unique identifier of the zone |
name - String!
|
The name of the zone |
floor_id - String!
|
The unique identifier of the floor that contains the zone |
room_id - String!
|
The unique identifier of the room that contains the zone |
coordinates - [Float!]
|
The coordinates of the zone's location within the space |
rotation - Float
|
The clockwise rotation of the zone (in degrees) |
color - [Float!]
|
The color of the zone |
area - Area!
|
The area information of the zone |
capacity - Capacity
|
The capacity information of the zone (optional) |
tags - [String!]
|
A list of tags associated with the zone |
type - String!
|
The type of the zone |
Example
{
"client_id": "xyz789",
"metadata": MetaData,
"zone_type": "xyz789",
"zone_id": "xyz789",
"name": "xyz789",
"floor_id": "abc123",
"room_id": "abc123",
"coordinates": [123.45],
"rotation": 987.65,
"color": [987.65],
"area": Area,
"capacity": Capacity,
"tags": ["xyz789"],
"type": "abc123"
}
Zones
Description
The type representing a list of Zone objects
Fields
Field Name | Description |
---|---|
data - [Zone!]!
|
The list of Zone objects |
Example
{"data": [Zone]}