Geospatial Time Series Database
Geospatial Time Series Database (GeoTSDB) Smart Module endpoints for managing geospatial time series collections and retrieving GeoJSON data stored in GeoTSDB for this home.
Endpoints
The Collection object
- idstring
Geospatial Time Series Collection ID. Must be unique within each home. Must be 1 or more alphanumeric characters and may contain dashes ('-'), underscores ('_'), and colons (':') can be used after the first alphanumeric character but must be followed by 1+ alphanumeric characters.
- moduleIdstring
ID of Smart Module that created this collection.
The Geospatial Time Series Data object
- collectionIdstring
Identifier of the GeoTSDB collection.
- beginstring
The begin time of data entries. The format follows RFC3339.
- endstring
The end time of data entries. The format follows RFC3339.
- dataarray
Geospatial Time-series data. Each entry contains the timestamp of the value in RFC3339 format and GeoJSON formatted location data.
The Current Object Count Data object
- collectionIdstring
Identifier of the GeoTSDB collection.
- dataarray
The array of count data per area.
- timestampstring
Time in RFC3339 format.
The Historical Object Count Data object
- collectionIdstring
Identifier of the GeoTSDB collection.
- counterIdstring
Identifier of the object counter.
- dataarray
The array of count data per area.
- timestampstring
Time in RFC3339 format.
The Object Counter Configuration object
- namestring
The name of the object counter config.
- frequencystring
The frequency to count objects in the areas.
- areaSearchKeyPrefixstring
The target area ID prefix. The object counter counts objects in the found area and stores the results per area.
- objectSearchKeyPrefixesarray
The searchKey prefixes to filter the counted objects. The object counter counts for objects searched for the keyword specified here
- attributesobject
The attribute names and values to search the objects.
The Object Counter Configuration object
- counterIdstring
Object counter ID. Must be unique within each home. Must be 1 or more alphanumeric characters and may contain dashes ('-'), underscores ('_'), and colons (':') can be used after the first alphanumeric character but must be followed by 1+ alphanumeric characters.
- namestring
The name of the object counter config.
- collectionIdstring
The collection ID to count the number of objects. It allows you to specify wildcard character (*) to count objects in the all of collections in the module.
- frequencystring
The frequency to count objects in the areas.
- areaSearchKeyPrefixstring
The target area ID prefix. The object counter counts objects in the found area and stores the results per area.
- objectSearchKeyPrefixesarray
The searchKey prefixes to filter the counted objects. The object counter counts objects searched with the keywords specified here
- attributesobject
The attribute names and values to search the objects.
Get all geospatial time series collections
Endpoint
get /homes/{homeId}/smartModules/{moduleId}/collections
Description
Get the list of all geospatial time series collections being stored for this home.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
Request Headers What's this?
Authorization
required
Must contain a user or project API key.
Response
- 200An array of geospatial time series collections are returned.
- 401Authorization is required to access this resource.
- 403Request failed because of denied permission.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Response Body Sample
[
{
"id": "california",
"moduleId": "geotsdb"
},
{
"id": "tokyo",
"moduleId": "geotsdb"
}
]
Get geospatial time series collection
Endpoint
get /homes/{homeId}/smartModules/{moduleId}/collections/{collectionId}
Description
Get the information of a specific geospatial time series collection.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
collectionId
string
required
Collection ID. It must be unique per home.
Request Headers What's this?
Authorization
required
Must contain a user or project API key.
Response
- 200Information of the requested geospatial time series collection is returned.
- 401Authorization is required to access this resource.
- 403Request failed because of denied permission.
- 404The requested geospatial time series collection is not found.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Response Body Sample
[
{
"id": "california",
"moduleId": "geotsdb"
}
]
Create a geospatial time series collection
Endpoint
post /homes/{homeId}/smartModules/{moduleId}/collections/{collectionId}
Description
Create a new geospatial time series collection with the specified collectionId
for this home explicitly. Collections are usually created automatically when geospatial
data is first injected.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
collectionId
string
required
Collection ID. It must be unique per home.
Request Headers What's this?
Authorization
required
Must contain a user or project API key.
Response
- 201Collection successfully created.
- 401Authorization is required to access this resource.
- 403Request failed because of invalid data or denied permission.
- 409Request failed due to the collection already exists.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Delete geospatial time series collection
Endpoint
delete /homes/{homeId}/smartModules/{moduleId}/collections/{collectionId}
Description
Delete a specific geospatial collection and all its data.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
collectionId
string
required
Collection ID. It must be unique per home.
Request Headers What's this?
Authorization
required
Must contain a user or project API key.
Response
- 204Collection successfully deleted.
- 401Authorization is required to access this resource.
- 403Request failed because of invalid data or denied permission.
- 404The requested collection does not exist or is not accessible.
- 409The collection cannot be deleted because it is being used by another part of the system.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Update collection
Endpoint
patch /homes/{homeId}/smartModules/{moduleId}/collections/{collectionId}
Description
Update the collection with the specified ID.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
collectionId
string
required
Collection ID. It must be unique per home.
Response
- 204The collection has been successfully updated.
- 401Authorization is required to access this resource.
- 403Request failed because of invalid data or denied permission.
- 404The requested collection does not exist or is not accessible.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Get GeoJSON formatted geospatial data
Endpoint
get /homes/{homeId}/smartModules/{moduleId}/collections/{collectionId}/data
Description
Get GeoJSON formatted geospatial data specified by collection ID. Use comma-separated
searchKeys
string in query parameters to fetch multiple records representing object
locations. Use the begin
and end
parameters to fetch entries by time range. Use the ts
parameters to fetch one entry before a point in time. Use the latest
parameter to fetch the
latest record without any specified time. The areaIds
, floorId
, and attributeQuery
parameters are optional filters that ca be used in conjunction with the time range query
parameters to fetch records with specific values.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
collectionId
string
required
Collection ID. It must be unique per home.
Query Parameters
searchKeys
string
required
Specify keywords to search specific objects in the GeoTSDB storage. The
searchKeys
parameter allows multiple values, separated by commas (","). For example, if you specify thesearchKeys
as "building::st_ave,worker::john_smith", objects withsearchKey
such as "building::st_ave" and "worker::john_smith" will be returned.begin
string
The beginning time of the data entries. The format follows RFC3339. It's required when the
latest
isfalse
andts
is not specified.end
string
The end time of the data entries. The format follows RFC3339. It's required when the
latest
isfalse
andts
is not specified.ts
string
The point in time (in RFC3339) to fetch data entries from.
latest
boolean
The flag to fetch the latest data entry.
areaIds
string
Specify area IDs to search objects only in the specified areas from the GeoTSDB storage. The
areaIds
parameter allows multiple values, separated by commas (",").floorId
integer
Specify floor ID to search objects in the specified floor ID from the GeoTSDB.
attributeQuery
string
A filter string starting with a conjunction. Supported conjunctions are
AND()
andOR()
. A conjunction takes a comma-separated condition string likeAND (group==="group_1",maxSpeed<5)
. Each condition string defines a filter for the attribute value. The left-hand side must be a valid attribute field name. The right-hand side must be a value condition. For example,group==="group_1"
matches any records where thegroup
attribute value exactly matches"group_1"
. Supported operators are followingOperator ===
exact match ==
substring match ~==
included in array as exact match. name~==["john"|"jeff"|"jack"]
matches one of the three.~=
included in array as substring match. name~=["j"|"e"]
matches "john", "jeff", "jack", and "ethan".<
less than <=
less than or equal to >
greater than >=
greater than or equal to This parameter is only supported when the
latest
istrue
in the query.
Response
- 200A list of datum objects are returned in the response body.
- 401Authorization is required to access this resource.
- 403Request failed because of denied permission.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Delete collection data
Endpoint
delete /homes/{homeId}/smartModules/{moduleId}/collections/{collectionId}/data
Description
Delete data entries of a geospatial collection that fall within a given time range.
If only the begin
parameter is specified, all entries timestamped after begin
will be deleted. If only the end
parameter is specified, all entries timestamped
before end
will be deleted. This API supports the bucket-level deletion only.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
collectionId
string
required
Collection ID. It must be unique per home.
Query Parameters
searchKeys
string
required
Specify keywords to delete specific objects in the GeoTSDB storage. The
searchKeys
parameter allows multiple values, separated by commas (","). For example, if you specify thesearchKeys
as "building::st_ave,worker::john_smith", objects withsearchKey
such as "building::st_ave" and "worker::john_smith" will be returned.begin
string
The beginning of the time range. The format follows RFC3339.
end
string
The end of the time range. The format follows RFC3339.
Request Headers What's this?
Authorization
required
Must contain a user or project API key.
Response
- 204The data entries have been successfully deleted.
- 401Authorization is required to access this resource.
- 403Request failed because of invalid data or denied permission.
- 404The required data entry does not exist or is not accessible.
- 409The data entry cannot be deleted because it is being used by another part of the system.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Create datum
Endpoint
post /homes/{homeId}/smartModules/{moduleId}/collections/{collectionId}/data
Description
Create a new datum. The request body should contain a valid datum object.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
collectionId
string
required
Collection ID. It must be unique per home.
Response
- 201Successfully created the datum. The created object is returned in the response body.
- 401Authorization is required to access this resource.
- 403Request failed because of invalid data or denied permission.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Get the current number of objects in an areas
Endpoint
get /homes/{homeId}/smartModules/{moduleId}/collections/{collectionId}/data/count
Description
Get the current number of objects in an area by collection ID. Use the begin
and end
parameters to specify the time range to filter target objects. Do not count the objects outside
of this period. The counter values are calculated for each value specified for the areaIds
parameter. areaIds
, floorId
, and searchKeyPrefixes
are optional parameters to filter
the target objects.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
collectionId
string
required
Collection ID. It must be unique per home.
Query Parameters
begin
string
The beginning time of the data entries. The format follows RFC3339.
end
string
The end time of the data entries. The format follows RFC3339.
areaIds
string
Specify area IDs to count the number of objects in the specified areas from the GeoTSDB storage. The
areaIds
parameter allows multiple values, separated by commas (","). The counter values are calculated for each value specified forareaIds
parameter.floorId
integer
Specify floor ID to search target objects to count the number of objects in the area.
attributeQuery
string
A filter string starting with a conjunction. Supported conjunctions are
AND()
andOR()
. A conjunction takes a comma-separated condition string likeAND (group==="group_1",maxSpeed<5)
. Each condition string defines a filter for the attribute value. The left-hand side must be a valid attribute field name. The right-hand side must be a value condition. For example,group==="group_1"
matches any records where thegroup
attribute value exactly matches"group_1"
. Supported operators are followingOperator ===
exact match ==
substring match ~==
included in array as exact match. name~==["john"|"jeff"|"jack"]
matches one of the three.~=
included in array as substring match. name~=["j"|"e"]
matches "john", "jeff", "jack", and "ethan".<
less than <=
less than or equal to >
greater than >=
greater than or equal to searchKeyPrefixes
string
A comma-delimited list of search keys. If you specify
searchKeyPrefixes
, the system will retrieve all location data that has a searchKey beginning with this prefix. For example, if you specifysearchKeyPrefixes
as "foo::", objects with searchKey such as "foo::bar" and "foo::bazz" will be returned.
Request Headers What's this?
Authorization
required
Must contain a user or project API key.
Response
- 200The requested counted data entries are returned.
- 401Authorization is required to access this resource.
- 403Request failed because of invalid data or denied permission.
- 404Any requested object counted data entries are not found.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Response Body Sample
{
"timestamp": "2023-03-25T09:00:00+09:00",
"collectionId": "california",
"data": [
{
"areaId": "sfo_office",
"count": 32
}
]
}
Delete count
Endpoint
delete /homes/{homeId}/smartModules/{moduleId}/collections/{collectionId}/data/count
Description
Delete the count with the specified ID.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
collectionId
string
required
Collection ID. It must be unique per home.
Response
- 204The count has been successfully deleted.
- 401Authorization is required to access this resource.
- 403Request failed because of invalid data or denied permission.
- 404The required count does not exist or is not accessible.
- 409The count cannot be deleted because it is being used by another part of the system.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Get historical counted time series data
Endpoint
get /homes/{homeId}/smartModules/{moduleId}/collections/{collectionId}/counts/{counterId}
Description
Get historical counted data specified by area IDs. Use comma-separated areaIds
string in query
parameters to fetch the records per each value Use the begin
and end
parameters to fetch
entries by time range. Use the ts
parameters to fetch one entry before a point in time.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
collectionId
string
required
Collection ID. It must be unique per home.
counterId
string
required
Counter ID. It must be unique per collection.
Query Parameters
begin
string
The beginning time of the data entries. The format follows RFC3339. It's required when the
ts
is not specified.end
string
The end time of the data entries. The format follows RFC3339. It's required when the
ts
is not specified.ts
string
The point in time (in RFC3339) to fetch data entries from.
areaIds
string
required
Specify the list of area IDs to search counted history associated with the areas. The
areaIds
parameter allows multiple values, separated by commas (",").
Request Headers What's this?
Authorization
required
Must contain a user or project API key.
Response
- 200The requested historical counted data entries are returned.
- 401Authorization is required to access this resource.
- 403Request failed because of denied permission.
- 404Any requested historical object counted data entries are not found.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Response Body Sample
{
"collectionId": "office",
"counterId": "number_of_tools",
"data": [
{
"timestamp": "2023-03-25T09:00:00+09:00",
"areaId": "sfo_office",
"count": 40
},
{
"timestamp": "2023-03-25T09:00:00+09:00",
"areaId": "tyo_office",
"count": 12
}
]
}
Delete historical counted time series data
Endpoint
delete /homes/{homeId}/smartModules/{moduleId}/collections/{collectionId}/counts/{counterId}
Description
Delete historical counted data entries that fall within a given time range.
If only the begin
parameter is specified, all entries timestamped after begin
will be deleted. If only the end
parameter is specified, all entries timestamped
before end
will be deleted. This API supports bucket-level (1 day) deletion only.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
collectionId
string
required
Collection ID. It must be unique per home.
counterId
string
required
Counter ID. It must be unique per collection.
Query Parameters
begin
string
The beginning of the time range. The format follows RFC3339.
end
string
The end of the time range. The format follows RFC3339.
areaIds
string
required
Specify the list of area IDs to delete counted history associated with the areas. The
areaIds
parameter allows multiple values, separated by commas (",").
Request Headers What's this?
Authorization
required
Must contain a user or project API key.
Response
- 204The data entries have been successfully deleted.
- 401Authorization is required to access this resource.
- 403Request failed because of invalid data or denied permission.
- 404The required historical counted data does not exist or is not accessible.
- 409The historical counted data cannot be deleted because it is being used by another part of the system.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Get object counter configs
Endpoint
get /homes/{homeId}/smartModules/{moduleId}/counters
Description
Get a list of object counter configs.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
Query Parameters
collectionIds
string
Specify the list of collection IDs to search object counter configs. The
collectionIds
parameter allows multiple values, separated by commas (",").counterIds
string
Specify the list of counter IDs to search object counter configs. The
counterIds
parameter allows multiple values, separated by commas (",").
Request Headers What's this?
Authorization
required
Must contain a user or project API key.
Response
- 200A list of object counter configs are returned.
- 401Authorization is required to access this resource.
- 403Request failed because of denied permission.
- 404Any requested object counter config data entries are not found. body
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Response Body Sample
[
{
"counterId": "number_of_tools",
"name": "The number of tools in area",
"collectionId": "*",
"frequency": "30s",
"areaSearchKeyPrefix": "office::",
"objectSearchKeyPrefixes": [
"driver::",
"hammer::"
],
"attributes": [
{
"name": "vendor",
"values": [
"max",
"philips"
]
}
]
},
{
"counterId": "number_of_materials",
"name": "The number of materials in area",
"collectionId": "*",
"frequency": "60s",
"areaSearchKeyPrefix": "office::",
"objectSearchKeyPrefixes": [
"nail::",
"screw::"
],
"attributes": [
{
"name": "vendor"
}
]
}
]
Get object counter config
Endpoint
get /homes/{homeId}/smartModules/{moduleId}/counters/{counterId}
Description
Return the object counter config with the specified ID.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
counterId
string
required
Counter ID. It must be unique per collection.
Response
- 200The object counter config is returned.
- 401Authorization is required to access this resource.
- 403Request failed because of denied permission.
- 404The requested object counter config does not exist or is not accessible.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Response Body Sample
{
"counterId": "number_of_tools",
"name": "The number of tools in area",
"collectionId": "*",
"frequency": "60s",
"areaSearchKeyPrefix": "office::",
"objectSearchKeyPrefixes": [
"driver::",
"hammer::"
],
"attributes": [
{
"name": "vendor",
"values": [
"max",
"philips"
]
}
]
}
Create object counter config
Endpoint
post /homes/{homeId}/smartModules/{moduleId}/counters/{counterId}
Description
Create a new object counter config. The request body should contain a valid object counter config object. The collection ID of the config allows wildcard character (*) which specifies all of the collections in the module.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
counterId
string
required
Counter ID. It must be unique per collection.
Request Headers What's this?
Authorization
required
Must contain a user or project API key.
Request Body
counterId
string
required
Object counter ID. Must be unique within each home. Must be 1 or more alphanumeric characters and may contain dashes ('-'), underscores ('_'), and colons (':') can be used after the first alphanumeric character but must be followed by 1+ alphanumeric characters.
name
string
The name of the object counter config.
collectionId
string
required
The collection ID to count the number of objects. It allows you to specify wildcard character (*) to count objects in the all of collections in the module.
frequency
string
required
The frequency to count objects in the areas.
Options are 5s, 30s, 60s
areaSearchKeyPrefix
string
required
The target area ID prefix. The object counter counts objects in the found area and stores the results per area.
objectSearchKeyPrefixes
array
The searchKey prefixes to filter the counted objects. The object counter counts objects searched with the keywords specified here
attributes
object
The attribute names and values to search the objects.
Response
- 204Successfully created the object counter config.
- 400Request failed because of invalid data or denied permission.
- 401Authorization is required to access this resource.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Request Body Sample
{
"counterId": "number_of_tools",
"name": "The number of tools in area",
"collectionId": "*",
"frequency": "60s",
"areaSearchKeyPrefix": "office::",
"objectSearchKeyPrefixes": [
"driver::",
"hammer::"
],
"attributes": [
{
"name": "vendor",
"values": [
"max",
"philips"
]
}
]
}
Update object counter config
Endpoint
put /homes/{homeId}/smartModules/{moduleId}/counters/{counterId}
Description
Update a new object counter config. The request body should contain a valid object counter config object.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
counterId
string
required
Counter ID. It must be unique per collection.
Request Headers What's this?
Authorization
required
Must contain a user or project API key.
Response
- 204Successfully created the object counter config.
- 400Request failed because of invalid data or denied permission.
- 401Authorization is required to access this resource.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Request Body Sample
{
"name": "The number of tools in area",
"frequency": "60s",
"areaSearchKeyPrefix": "office::",
"objectSearchKeyPrefixes": [
"driver::",
"hammer::"
],
"attributes": [
{
"name": "vendor",
"values": [
"max",
"philips"
]
}
]
}
Delete object counter config
Endpoint
delete /homes/{homeId}/smartModules/{moduleId}/counters/{counterId}
Description
Delete the object counter config with the specified ID.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
counterId
string
required
Counter ID. It must be unique per collection.
Query Parameters
collectionId
string
Specify the collection ID to delete the object counter config.
Request Headers What's this?
Authorization
required
Must contain a user or project API key.
Response
- 204The data entries have been successfully deleted.
- 401Authorization is required to access this resource.
- 403Request failed because of invalid data or denied permission.
- 404The required object counter config does not exist or is not accessible.
- 409The object counter config cannot be deleted because it is being used by another part of the system.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.
Update counter
Endpoint
patch /homes/{homeId}/smartModules/{moduleId}/counters/{counterId}
Description
Update the counter with the specified ID.
Path Parameters
homeId
integer
required
The unique ID for a home.
moduleId
string
required
The unique ID for a smart module.
counterId
string
required
Counter ID. It must be unique per collection.
Response
- 204The counter has been successfully updated.
- 401Authorization is required to access this resource.
- 403Request failed because of invalid data or denied permission.
- 404The requested counter does not exist or is not accessible.
- 500An unexpected error has occurred.
- 503The service is temporarily unavailable.