API
API
Here you can find information about the TerrariumPI REST API. An interactive version can be found at your own TerrariumPI at http://[raspberrypi]:8090/api/swagger/
/api/areas/types/
GET Get available area types
Responses
200 Zero or more area types with supported sensor types.
| Name | Located in | Description | Type |
|---|---|---|---|
| type | body | Area type ID | String |
| name | body | Area type readable name | String |
| sensors | body | List of sensor types that can be used by this area type | Array of |
/api/areas/
GET Get existing areas
Responses
200 Zero or more areas
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| enclosure | body | The ID of the enclosure of which this area belongs to | String |
| name | body | Name of the area | String |
| type | body | Area type from the AreaType list | String |
| mode | body | Operating mode | String |
| setup | body | JSON setup data | String Default: {} |
| state | body | JSON state data | String Default: {} |
POST Add a new area to an enclosure {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| enclosure | body | The ID of the enclosure of which this area belongs to | String |
| name | body | Name of the area | String |
| type | body | Area type from the AreaType list | String |
| mode | body | Operating mode | String |
| setup | body | JSON setup data | String Default: {} |
Responses
200 A new created area
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| enclosure | body | The ID of the enclosure of which this area belongs to | String |
| name | body | Name of the area | String |
| type | body | Area type from the AreaType list | String |
| mode | body | Operating mode | String |
| setup | body | JSON setup data | String Default: {} |
| state | body | JSON state data | String Default: {} |
500 Unexpected server error
/api/areas/{id}/
GET Get a specific area
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of area to return | String |
Responses
200 The requested area
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| enclosure | body | The ID of the enclosure of which this area belongs to | String |
| name | body | Name of the area | String |
| type | body | Area type from the AreaType list | String |
| mode | body | Operating mode | String |
| setup | body | JSON setup data | String Default: {} |
| state | body | JSON state data | String Default: {} |
404 Area does not exists
500 Unexpected server error
PUT Update an existing area with new data {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of area to update | String |
| enclosure | body | The ID of the enclosure of which this area belongs to | String |
| name | body | Name of the area | String |
| type | body | Area type from the AreaType list | String |
| mode | body | Operating mode | String |
| setup | body | JSON setup data | String Default: {} |
Responses
200 The updated area
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| enclosure | body | The ID of the enclosure of which this area belongs to | String |
| name | body | Name of the area | String |
| type | body | Area type from the AreaType list | String |
| mode | body | Operating mode | String |
| setup | body | JSON setup data | String Default: {} |
| state | body | JSON state data | String Default: {} |
404 Area does not exists
500 Unexpected server error
DELETE Delete an existing area {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of area to delete | String |
Responses
200 Delete successfull
404 Area does not exists
500 Unexpected server error
/api/audio/hardware/
GET Get a list of supported soundcards
Responses
200 List of supported soundcards
| Name | Located in | Description | Type |
|---|---|---|---|
| index | body | Audio hardware ID | Integer |
| name | body | Audio hardware readable name | String |
/api/audio/files/
GET Get a list of existing audio files
Responses
200 Zero or more audio files
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| name | body | Artist and song name based on ID3 tag data | String |
| filename | body | The full path of the audio file | String |
| duration | body | Audio file duration in seconds | Number |
| filesize | body | Audio file size in bytes | Number |
POST Upload a new audio file {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| audiofiles | body | The uploaded audio file | |
Responses
200 Audio file is uploaded
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| name | body | Artist and song name based on ID3 tag data | String |
| filename | body | The full path of the audio file | String |
| duration | body | Audio file duration in seconds | Number |
| filesize | body | Audio file size in bytes | Number |
500 Unexpected server error
/api/audio/files/{file}
GET Get an existing audio file
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| file | path | ID of audio file | String |
Responses
200 The requested audio file
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| name | body | Artist and song name based on ID3 tag data | String |
| filename | body | The full path of the audio file | String |
| duration | body | Audio file duration in seconds | Number |
| filesize | body | Audio file size in bytes | Number |
404 Audio file does not exists
500 Unexpected server error
DELETE Delete an existing audio file {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| file | path | ID of audio file | String |
Responses
200 The requested audio file is deleted
404 Audio file does not exists
500 Unexpected server error
/api/buttons/hardware/
GET Get a list of supported buttons
Responses
200 List of supported hardware
| Name | Located in | Description | Type |
|---|---|---|---|
| hardware | body | Button hardware type ID | String |
| name | body | Button hardware type name | String |
/api/buttons/
GET Get a list of existing buttons
Responses
200 Zero or more buttons
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Button hardware type from ButtonHardware list | String |
| name | body | Name of the button | String |
| address | body | The address of the button | String |
| calibration | body | JSON data | String Default: {} |
| value | body | The current state of the button | Number |
POST Add a new button {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| hardware | body | Button hardware type from ButtonHardware list | String |
| name | body | Name of the button | String |
| address | body | The address of the button | String |
| calibration | body | JSON data | String Default: {} |
Responses
200 A new created button
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Button hardware type from ButtonHardware list | String |
| name | body | Name of the button | String |
| address | body | The address of the button | String |
| calibration | body | JSON data | String Default: {} |
| value | body | The current state of the button | Number |
500 Unexpected server error
/api/buttons/{id}/
GET Get a specific button
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of button to return | String |
Responses
200 The requested button
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Button hardware type from ButtonHardware list | String |
| name | body | Name of the button | String |
| address | body | The address of the button | String |
| calibration | body | JSON data | String Default: {} |
| value | body | The current state of the button | Number |
404 Button does not exists
500 Unexpected server error
PUT Update an existing button with new data {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of button to update | String |
| hardware | body | Button hardware type from ButtonHardware list | String |
| name | body | Name of the button | String |
| address | body | The address of the button | String |
| calibration | body | JSON data | String Default: {} |
Responses
200 The updated button
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Button hardware type from ButtonHardware list | String |
| name | body | Name of the button | String |
| address | body | The address of the button | String |
| calibration | body | JSON data | String Default: {} |
| value | body | The current state of the button | Number |
404 Button does not exists
500 Unexpected server error
DELETE Delete an existing button {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of button to delete | String |
Responses
200 Delete successfull
404 Button does not exists
500 Unexpected server error
/api/buttons/{id}/history/
GET Get the history for a specific button for a period of 1 day
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of button for which to get the history | String |
Responses
200 Button history for 1 day
| Name | Located in | Description | Type |
|---|---|---|---|
| timestamp | body | Button measurement unix timestamp | Integer |
| value | body | Button measurement state | Number |
404 Button does not exists
500 Unexpected server error
/api/buttons/{id}/history/{period}/
GET Get the history for a specific button for a period
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of button to return | String |
| period | path | Period | String |
Responses
200 Button history for {period}
| Name | Located in | Description | Type |
|---|---|---|---|
| timestamp | body | Button measurement unix timestamp | Integer |
| value | body | Button measurement state | Number |
404 Button does not exists
500 Unexpected server error
/api/calendar/
GET Get existing calendars
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| start | query | Start date and time for calendar items | String |
| end | query | End date and time for calendar items | String |
Responses
200 Zero or more calendars
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| summary | body | Event title | String |
| description | body | Event description | String |
| location | body | Event location | String |
| dtstart | body | Event start date and time | String |
| dtend | body | Event end date and time | String |
| all_day | body | True when the event is an all day event | Boolean |
| freq | body | Event repeat period | String |
| interval | body | Event repeat period value | Integer |
| repeatend | body | Event repeat end date and time | String |
POST Add a new calendar event {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| summary | body | Event title | String |
| description | body | Event description | String |
| location | body | Event location | String |
| dtstart | body | Event start date and time | String |
| dtend | body | Event end date and time | String |
| all_day | body | True when the event is an all day event | Boolean |
| freq | body | Event repeat period | String |
| interval | body | Event repeat period value | Integer |
| repeatend | body | Event repeat end date and time | String |
Responses
200 A new created calendar
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| summary | body | Event title | String |
| description | body | Event description | String |
| location | body | Event location | String |
| dtstart | body | Event start date and time | String |
| dtend | body | Event end date and time | String |
| all_day | body | True when the event is an all day event | Boolean |
| freq | body | Event repeat period | String |
| interval | body | Event repeat period value | Integer |
| repeatend | body | Event repeat end date and time | String |
500 Unexpected server error
/api/calendar/{id}/
GET Get a specific calendar
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of calendar to return | String |
Responses
200 The requested calendar
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| summary | body | Event title | String |
| description | body | Event description | String |
| location | body | Event location | String |
| dtstart | body | Event start date and time | String |
| dtend | body | Event end date and time | String |
| all_day | body | True when the event is an all day event | Boolean |
| freq | body | Event repeat period | String |
| interval | body | Event repeat period value | Integer |
| repeatend | body | Event repeat end date and time | String |
404 Calendar does not exists
500 Unexpected server error
PUT Update an existing calendar with new data {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of calendar to update | String |
| summary | body | Event title | String |
| description | body | Event description | String |
| location | body | Event location | String |
| dtstart | body | Event start date and time | String |
| dtend | body | Event end date and time | String |
| all_day | body | True when the event is an all day event | Boolean |
| freq | body | Event repeat period | String |
| interval | body | Event repeat period value | Integer |
| repeatend | body | Event repeat end date and time | String |
Responses
200 The updated calendar
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| summary | body | Event title | String |
| description | body | Event description | String |
| location | body | Event location | String |
| dtstart | body | Event start date and time | String |
| dtend | body | Event end date and time | String |
| all_day | body | True when the event is an all day event | Boolean |
| freq | body | Event repeat period | String |
| interval | body | Event repeat period value | Integer |
| repeatend | body | Event repeat end date and time | String |
404 Calendar does not exists
500 Unexpected server error
DELETE Delete an existing calendar {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of calendar to delete | String |
Responses
200 Delete successfull
404 Calendar does not exists
500 Unexpected server error
/api/calendar/download/
GET Download iCal
Responses
200 The calendar in iCal format
404 Calendar does not exists
500 Unexpected server error
/api/enclosures/
GET Get a list of existing enclosures
Responses
200 Zero or more enclosures
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| name | body | Name of the enclosure | String |
| image | body | Enclosure image | String |
| areas | body | A list of areas that are in this enclosure | Array of |
| doors | body | A list of doors (button) that are in this enclosure | Array of |
| webcams | body | A list of webcams that are in this enclosure | Array of |
POST Add a new enclosure {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| name | body | Name of the enclosure | String |
| image | body | Enclosure image | String |
| areas | body | A list of areas that are in this enclosure | Array of |
| doors | body | A list of doors (button) that are in this enclosure | Array of |
| webcams | body | A list of webcams that are in this enclosure | Array of |
Responses
200 A new created enclosure
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| name | body | Name of the enclosure | String |
| image | body | Enclosure image | String |
| areas | body | A list of areas that are in this enclosure | Array of |
| doors | body | A list of doors (button) that are in this enclosure | Array of |
| webcams | body | A list of webcams that are in this enclosure | Array of |
500 Unexpected server error
/api/enclosures/{id}/
GET Get a specific enclosure
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of enclosure to return | String |
Responses
200 The requested enclosure
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| name | body | Name of the enclosure | String |
| image | body | Enclosure image | String |
| areas | body | A list of areas that are in this enclosure | Array of |
| doors | body | A list of doors (button) that are in this enclosure | Array of |
| webcams | body | A list of webcams that are in this enclosure | Array of |
404 Enclosure does not exists
500 Unexpected server error
PUT Update an existing enclosure with new data {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of enclosure to update | String |
| name | body | Name of the enclosure | String |
| image | body | Enclosure image | String |
| areas | body | A list of areas that are in this enclosure | Array of |
| doors | body | A list of doors (button) that are in this enclosure | Array of |
| webcams | body | A list of webcams that are in this enclosure | Array of |
Responses
200 The updated enclosure
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| name | body | Name of the enclosure | String |
| image | body | Enclosure image | String |
| areas | body | A list of areas that are in this enclosure | Array of |
| doors | body | A list of doors (button) that are in this enclosure | Array of |
| webcams | body | A list of webcams that are in this enclosure | Array of |
404 Enclosure does not exists
500 Unexpected server error
DELETE Delete an existing enclosure {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of enclosure to delete | String |
Responses
200 Delete successfull
404 Enclosure does not exists
500 Unexpected server error
/api/{action}/
POST Restart/reboot/shutdown TerrariumPI {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| action | path | Action to perform | String |
Responses
200 Result of the action
| Name | Located in | Description | Type |
|---|---|---|---|
| message | body | Holds the return message from the server | String Default: Action succeeded |
/api/logfile/download/
GET Download the logfile {"Basic"=>[]}
Responses
200 Get the logfile in plain text
/api/playlists/
GET Get a list of existing playlists
Responses
200 Zero or more playlists
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| name | body | Name of the playlist | String |
| volume | body | Volume for this playlist | Number Default: 80 |
| shuffle | body | Enable shuffle for this playlist | Boolean |
| repeat | body | Enable repeating for this playlist | Boolean |
| files | body | List of audio files | Array of |
POST Add a new playlist {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| name | body | Name of the playlist | String |
| volume | body | Volume for this playlist | Number Default: 80 |
| shuffle | body | Enable shuffle for this playlist | Boolean |
| repeat | body | Enable repeating for this playlist | Boolean |
| files | body | List of audio files | Array of |
Responses
200 A new created playlist
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| name | body | Name of the playlist | String |
| volume | body | Volume for this playlist | Number Default: 80 |
| shuffle | body | Enable shuffle for this playlist | Boolean |
| repeat | body | Enable repeating for this playlist | Boolean |
| files | body | List of audio files | Array of |
500 Unexpected server error
/api/playlists/{id}/
GET Get a specific playlist
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of playlist to return | String |
Responses
200 The requested playlist
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| name | body | Name of the playlist | String |
| volume | body | Volume for this playlist | Number Default: 80 |
| shuffle | body | Enable shuffle for this playlist | Boolean |
| repeat | body | Enable repeating for this playlist | Boolean |
| files | body | List of audio files | Array of |
404 Playlist does not exists
500 Unexpected server error
PUT Update an existing playlist with new data {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of playlist to update | String |
| id | body | Auto generated ID | String |
| name | body | Name of the playlist | String |
| volume | body | Volume for this playlist | Number Default: 80 |
| shuffle | body | Enable shuffle for this playlist | Boolean |
| repeat | body | Enable repeating for this playlist | Boolean |
| files | body | List of audio files | Array of |
Responses
200 The updated playlist
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| name | body | Name of the playlist | String |
| volume | body | Volume for this playlist | Number Default: 80 |
| shuffle | body | Enable shuffle for this playlist | Boolean |
| repeat | body | Enable repeating for this playlist | Boolean |
| files | body | List of audio files | Array of |
404 Playlist does not exists
500 Unexpected server error
DELETE Delete an existing playlist {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of playlist to delete | String |
Responses
200 Delete successfull
404 Playlist does not exists
500 Unexpected server error
/api/relays/hardware/
GET Get a list of supported relays
Responses
200 List of supported hardware
| Name | Located in | Description | Type |
|---|---|---|---|
| hardware | body | Relay hardware type ID | String |
| name | body | Relay hardware type name | String |
/api/relays/scan/
POST Scan for new relays {"Basic"=>[]}
Responses
200 Found zero or more new relays
| Name | Located in | Description | Type |
|---|---|---|---|
| message | body | Holds the return message from the server | String Default: Action succeeded |
/api/relays/
GET Get a list of existing relays
Responses
200 Zero or more relays
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Relay hardware type from RelayHardware list | String |
| name | body | Name of the relay | String |
| address | body | The address of the relay | String |
| wattage | body | The amount of power in watts the relay uses when on | Number Default: 0 |
| flow | body | The amount of water in liter per minute the relay uses when on | Number Default: 0 |
| manual_mode | body | Is the relay in manual mode | Boolean |
| replacement | body | Last replacement date and time of the attached hardware | String Default: 1970-01-01 00:00:00 |
| calibration | body | JSON data | Object |
| value | body | The current state of the relay | Number |
| dimmer | body | Is the relay a dimmer | Boolean |
POST Add a new relay {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| hardware | body | Relay hardware type from RelayHardware list | String |
| name | body | Name of the relay | String |
| address | body | The address of the relay | String |
| wattage | body | The amount of power in watts the relay uses when on | Number Default: 0 |
| flow | body | The amount of water in liter per minute the relay uses when on | Number Default: 0 |
| calibration | body | JSON data | Object |
Responses
200 A new created relay
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Relay hardware type from RelayHardware list | String |
| name | body | Name of the relay | String |
| address | body | The address of the relay | String |
| wattage | body | The amount of power in watts the relay uses when on | Number Default: 0 |
| flow | body | The amount of water in liter per minute the relay uses when on | Number Default: 0 |
| manual_mode | body | Is the relay in manual mode | Boolean |
| replacement | body | Last replacement date and time of the attached hardware | String Default: 1970-01-01 00:00:00 |
| calibration | body | JSON data | Object |
| value | body | The current state of the relay | Number |
| dimmer | body | Is the relay a dimmer | Boolean |
500 Unexpected server error
/api/relays/{id}/
GET Get a specific relay
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of relay to return | String |
Responses
200 The requested relay
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Relay hardware type from RelayHardware list | String |
| name | body | Name of the relay | String |
| address | body | The address of the relay | String |
| wattage | body | The amount of power in watts the relay uses when on | Number Default: 0 |
| flow | body | The amount of water in liter per minute the relay uses when on | Number Default: 0 |
| manual_mode | body | Is the relay in manual mode | Boolean |
| replacement | body | Last replacement date and time of the attached hardware | String Default: 1970-01-01 00:00:00 |
| calibration | body | JSON data | Object |
| value | body | The current state of the relay | Number |
| dimmer | body | Is the relay a dimmer | Boolean |
404 Relay does not exists
500 Unexpected server error
PUT Update an existing relay with new data {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of relay to update | String |
| hardware | body | Relay hardware type from RelayHardware list | String |
| name | body | Name of the relay | String |
| address | body | The address of the relay | String |
| wattage | body | The amount of power in watts the relay uses when on | Number Default: 0 |
| flow | body | The amount of water in liter per minute the relay uses when on | Number Default: 0 |
| calibration | body | JSON data | Object |
Responses
200 The updated relay
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Relay hardware type from RelayHardware list | String |
| name | body | Name of the relay | String |
| address | body | The address of the relay | String |
| wattage | body | The amount of power in watts the relay uses when on | Number Default: 0 |
| flow | body | The amount of water in liter per minute the relay uses when on | Number Default: 0 |
| manual_mode | body | Is the relay in manual mode | Boolean |
| replacement | body | Last replacement date and time of the attached hardware | String Default: 1970-01-01 00:00:00 |
| calibration | body | JSON data | Object |
| value | body | The current state of the relay | Number |
| dimmer | body | Is the relay a dimmer | Boolean |
404 Relay does not exists
500 Unexpected server error
DELETE Delete an existing relay {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of relay to delete | String |
Responses
200 Delete successfull
404 Relay does not exists
500 Unexpected server error
/api/relays/{id}/history/
GET Get the history for a specific relay for a period of 1 day
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of relay for which to get the history | String |
Responses
200 Relay history for 1 day
| Name | Located in | Description | Type |
|---|---|---|---|
| timestamp | body | Relay measurement unix timestamp | Integer |
| value | body | Relay measurement state | Number |
404 Relay does not exists
500 Unexpected server error
/api/relays/{id}/history/{period}/
GET Get the history for a specific relay for a period
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of relay to return | String |
| period | path | Period | String |
Responses
200 Relay history for {period}
| Name | Located in | Description | Type |
|---|---|---|---|
| timestamp | body | Relay measurement unix timestamp | Integer |
| value | body | Relay measurement state | Number |
404 Relay does not exists
500 Unexpected server error
/api/relays/{id}/export/
GET Get the export for a specific relay for a period of 1 day {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of relay for which to get the export | String |
Responses
200 Relay export for 1 day
404 Relay does not exists
500 Unexpected server error
/api/relays/{id}/export/{period}/
GET Get the export for a specific relay for a period {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of relay to return | String |
| period | path | Period | String |
Responses
200 Relay export for {period}
404 Relay does not exists
500 Unexpected server error
/api/relays/{id}/{action}/
POST Change relay {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of relay | String |
| action | path | Relay action | String |
Responses
200 Return the new state
| Name | Located in | Description | Type |
|---|---|---|---|
| message | body | Holds the return message from the server | String Default: Action succeeded |
404 Relay does not exists
500 Unexpected server error
/api/sensors/hardware/
GET Get a list of supported sensors
Responses
200 List of supported hardware
| Name | Located in | Description | Type |
|---|---|---|---|
| hardware | body | Sensor hardware type ID | String |
| name | body | Sensor hardware type name | String |
| types | body | List of supported sensor types | Array of |
/api/sensors/scan/
POST Scan for new sensors
Responses
200 Found zero or more new sensors
| Name | Located in | Description | Type |
|---|---|---|---|
| message | body | Holds the return message from the server | String Default: Action succeeded |
/api/sensors/
GET Get a list of existing sensors
Responses
200 Zero or more sensors
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Sensor hardware type from SensorHardware list | String |
| type | body | The sensor measurement type | String |
| name | body | Name of the sensor | String |
| address | body | The address of the sensor | String |
| limit_min | body | The minimum value which is a valid measurement | Number Default: 0 |
| limit_max | body | The maximum value which is a valid measurement | Number Default: 100 |
| alarm_min | body | The minimum value which triggers the alarm | Number Default: 0 |
| alarm_max | body | The maximum value which triggers the alarm | Number Default: 100 |
| max_diff | body | The maximum difference between two measurements that is valid | Number Default: 0 |
| exclude_avg | body | Exclude this sensor from average calculation on the dashboard | Boolean |
| calibration | body | JSON data | Object |
| value | body | The current value of the sensor | Number |
| alarm | body | Is there a high or low alarm | Boolean |
| error | body | Is there a hardware problem with the sensor | Boolean |
POST Add a new sensor {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| hardware | body | Sensor hardware type from SensorHardware list | String |
| type | body | The sensor measurement type | String |
| name | body | Name of the sensor | String |
| address | body | The address of the sensor | String |
| limit_min | body | The minimum value which is a valid measurement | Number Default: 0 |
| limit_max | body | The maximum value which is a valid measurement | Number Default: 100 |
| alarm_min | body | The minimum value which triggers the alarm | Number Default: 0 |
| alarm_max | body | The maximum value which triggers the alarm | Number Default: 100 |
| max_diff | body | The maximum difference between two measurements that is valid | Number Default: 0 |
| exclude_avg | body | Exclude this sensor from average calculation on the dashboard | Boolean |
| calibration | body | JSON data | Object |
Responses
200 A new created sensor
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Sensor hardware type from SensorHardware list | String |
| type | body | The sensor measurement type | String |
| name | body | Name of the sensor | String |
| address | body | The address of the sensor | String |
| limit_min | body | The minimum value which is a valid measurement | Number Default: 0 |
| limit_max | body | The maximum value which is a valid measurement | Number Default: 100 |
| alarm_min | body | The minimum value which triggers the alarm | Number Default: 0 |
| alarm_max | body | The maximum value which triggers the alarm | Number Default: 100 |
| max_diff | body | The maximum difference between two measurements that is valid | Number Default: 0 |
| exclude_avg | body | Exclude this sensor from average calculation on the dashboard | Boolean |
| calibration | body | JSON data | Object |
| value | body | The current value of the sensor | Number |
| alarm | body | Is there a high or low alarm | Boolean |
| error | body | Is there a hardware problem with the sensor | Boolean |
500 Unexpected server error
/api/sensors/{id}/
GET Get a specific sensor
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of sensor to return | String |
Responses
200 The requested sensor
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Sensor hardware type from SensorHardware list | String |
| type | body | The sensor measurement type | String |
| name | body | Name of the sensor | String |
| address | body | The address of the sensor | String |
| limit_min | body | The minimum value which is a valid measurement | Number Default: 0 |
| limit_max | body | The maximum value which is a valid measurement | Number Default: 100 |
| alarm_min | body | The minimum value which triggers the alarm | Number Default: 0 |
| alarm_max | body | The maximum value which triggers the alarm | Number Default: 100 |
| max_diff | body | The maximum difference between two measurements that is valid | Number Default: 0 |
| exclude_avg | body | Exclude this sensor from average calculation on the dashboard | Boolean |
| calibration | body | JSON data | Object |
| value | body | The current value of the sensor | Number |
| alarm | body | Is there a high or low alarm | Boolean |
| error | body | Is there a hardware problem with the sensor | Boolean |
404 Sensor does not exists
500 Unexpected server error
PUT Update an existing sensor with new data {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of sensor to update | String |
| hardware | body | Sensor hardware type from SensorHardware list | String |
| type | body | The sensor measurement type | String |
| name | body | Name of the sensor | String |
| address | body | The address of the sensor | String |
| limit_min | body | The minimum value which is a valid measurement | Number Default: 0 |
| limit_max | body | The maximum value which is a valid measurement | Number Default: 100 |
| alarm_min | body | The minimum value which triggers the alarm | Number Default: 0 |
| alarm_max | body | The maximum value which triggers the alarm | Number Default: 100 |
| max_diff | body | The maximum difference between two measurements that is valid | Number Default: 0 |
| exclude_avg | body | Exclude this sensor from average calculation on the dashboard | Boolean |
| calibration | body | JSON data | Object |
Responses
200 The updated sensor
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Sensor hardware type from SensorHardware list | String |
| type | body | The sensor measurement type | String |
| name | body | Name of the sensor | String |
| address | body | The address of the sensor | String |
| limit_min | body | The minimum value which is a valid measurement | Number Default: 0 |
| limit_max | body | The maximum value which is a valid measurement | Number Default: 100 |
| alarm_min | body | The minimum value which triggers the alarm | Number Default: 0 |
| alarm_max | body | The maximum value which triggers the alarm | Number Default: 100 |
| max_diff | body | The maximum difference between two measurements that is valid | Number Default: 0 |
| exclude_avg | body | Exclude this sensor from average calculation on the dashboard | Boolean |
| calibration | body | JSON data | Object |
| value | body | The current value of the sensor | Number |
| alarm | body | Is there a high or low alarm | Boolean |
| error | body | Is there a hardware problem with the sensor | Boolean |
404 Sensor does not exists
500 Unexpected server error
DELETE Delete an existing sensor {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of sensor to delete | String |
Responses
200 Delete successfull
404 Sensor does not exists
500 Unexpected server error
/api/sensors/{type}/
GET Get all sensor of {type}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| type | path | A valid sensor type | String |
Responses
200 The requested sensors
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Sensor hardware type from SensorHardware list | String |
| type | body | The sensor measurement type | String |
| name | body | Name of the sensor | String |
| address | body | The address of the sensor | String |
| limit_min | body | The minimum value which is a valid measurement | Number Default: 0 |
| limit_max | body | The maximum value which is a valid measurement | Number Default: 100 |
| alarm_min | body | The minimum value which triggers the alarm | Number Default: 0 |
| alarm_max | body | The maximum value which triggers the alarm | Number Default: 100 |
| max_diff | body | The maximum difference between two measurements that is valid | Number Default: 0 |
| exclude_avg | body | Exclude this sensor from average calculation on the dashboard | Boolean |
| calibration | body | JSON data | Object |
| value | body | The current value of the sensor | Number |
| alarm | body | Is there a high or low alarm | Boolean |
| error | body | Is there a hardware problem with the sensor | Boolean |
404 Sensor type does not exists
500 Unexpected server error
/api/sensors/{filter}/history/
GET Get the history for a specific sensor or sensor type.
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| filter | path | Either a sensor ID or sensor type can be used as filter | String |
Responses
200 Sensor history for 1 day
| Name | Located in | Description | Type |
|---|---|---|---|
| timestamp | body | Sensor measurement unix timestamp | Integer |
| value | body | Sensor measurement value | Number |
| alarm_min | body | Sensor measurement low alarm value | Number |
| alarm_max | body | Sensor measurement high alarm value | Number |
404 Sensor does not exists
500 Unexpected server error
/api/sensors/{filter}/history/{period}/
GET Get the history for a specific sensor or sensor type.
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| filter | path | Either a sensor ID or sensor type can be used as filter | String |
| period | path | Period | String |
Responses
200 Sensor history for {period}
| Name | Located in | Description | Type |
|---|---|---|---|
| timestamp | body | Sensor measurement unix timestamp | Integer |
| value | body | Sensor measurement value | Number |
| alarm_min | body | Sensor measurement low alarm value | Number |
| alarm_max | body | Sensor measurement high alarm value | Number |
404 Sensor does not exists
500 Unexpected server error
/api/sensors/{filter}/export/
GET Get the export for a specific sensor or sensor type. {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| filter | path | Either a sensor ID or sensor type can be used as filter | String |
Responses
200 Sensor export for 1 day
404 Sensor does not exists
500 Unexpected server error
/api/sensors/{filter}/export/{period}/
GET Get the export for a specific sensor or sensor type. {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| filter | path | Either a sensor ID or sensor type can be used as filter | String |
| period | path | Period | String |
Responses
200 Sensor export for {period}
404 Sensor does not exists
500 Unexpected server error
/api/system_status/
GET Get the current state
Responses
200 System status
| Name | Located in | Description | Type |
|---|---|---|---|
| is_day | body | Is the system in day mode | Boolean |
| uptime | body | System uptime in seconds | Integer |
| load | body | System load in percentage and absolute values. It contains the current, last 5 minutes and last 15 minutes load | Object |
| cpu_temperature | body | The current system CPU temperature | Integer |
| memory | body | System memory usage status | Object |
| storage | body | System disk usage status | Object |
/api/settings/
GET Get all settings {"Basic"=>[]}
Responses
200 All settings
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Setting ID | String |
| value | body | Setting value | String |
PUT Update multiple settings {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| body | body | All settings to change in one action | |
Responses
200 All settings
| Name | Located in | Description | Type |
|---|---|---|---|
| message | body | Holds the return message from the server | String Default: Action succeeded |
400 Password fields do not match.
POST Add a new setting {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| value | body | Setting value | String |
Responses
200 All settings
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Setting ID | String |
| value | body | Setting value | String |
/api/settings/{id}/
GET Get a setting {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | Setting ID | String |
Responses
200 All settings
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Setting ID | String |
| value | body | Setting value | String |
PUT Update a setting {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | The setting to update | String |
| value | body | Setting value | String |
Responses
200 All settings
| Name | Located in | Description | Type |
|---|---|---|---|
| message | body | Holds the return message from the server | String Default: Action succeeded |
400 Password fields do not match.
DELETE Delete a setting {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | The setting to delete | String |
Responses
200 All settings
| Name | Located in | Description | Type |
|---|---|---|---|
| message | body | Holds the return message from the server | String Default: Action succeeded |
404 Setting does not exists
/api/weather/
GET Get weather data
Responses
200 Weather data
| Name | Located in | Description | Type |
|---|---|---|---|
| location | body | The location based on the weather setting data | Object |
| sun | body | The sun rise and set values based on the weather setting data | Object |
| is_day | body | Is it currently day? | Boolean |
| indicators | body | Temperature and other indicators based on locale | Object |
| credits | body | Credits information from the free weather source | Object |
| forecast | body | A seven day weather forecast | Array of Object |
/api/weather/forecast/
GET Get weather temperature forecast
Responses
200 Weather forecast data
| Name | Located in | Description | Type |
|---|---|---|---|
| value | body | Weather forecast temperature in the selected temperature indicator value | Number |
| timestamp | body | Weather forecast unix timestamp | Number |
/api/webcams/hardware/
GET Get a list of supported webcams
Responses
200 List of supported hardware
| Name | Located in | Description | Type |
|---|---|---|---|
| hardware | body | Webcam hardware ID | String |
| name | body | Webcam hardware readable name | String |
/api/webcams/
GET Get a list of existing webcams
Responses
200 Zero or more webcams
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Webcam hardware type from WebcamHardware list | String |
| name | body | Name of the webcam | String |
| address | body | The address of the webcam | String |
| width | body | The webcam resolution width in pixels | Integer |
| height | body | The webcam resolution height in pixels | Integer |
| rotation | body | The webcam rotation | String |
| awb | body | The webcam white balance mode | String |
| is_live | body | Is the webcam a live streaming webcam | Boolean |
| flash | body | The relays that works like a flash before taking a picture from the webcam | Array of |
| archive | body | Webcam archiving setting | Object |
| motion | body | Webcam motion settings when archiving is set to motion | Object |
| markers | body | A list of markers for the webcam with live sensor data | Array of |
POST Add a new webcam {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| hardware | body | Webcam hardware type from WebcamHardware list | String |
| name | body | Name of the webcam | String |
| address | body | The address of the webcam | String |
| width | body | The webcam resolution width in pixels | Integer |
| height | body | The webcam resolution height in pixels | Integer |
| rotation | body | The webcam rotation | String |
| awb | body | The webcam white balance mode | String |
| flash | body | The relays that works like a flash before taking a picture from the webcam | Array of |
| archive | body | Webcam archiving setting | Object |
| motion | body | Webcam motion settings when archiving is set to motion | Object |
| markers | body | A list of markers for the webcam with live sensor data | Array of |
Responses
200 A new created webcam
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Webcam hardware type from WebcamHardware list | String |
| name | body | Name of the webcam | String |
| address | body | The address of the webcam | String |
| width | body | The webcam resolution width in pixels | Integer |
| height | body | The webcam resolution height in pixels | Integer |
| rotation | body | The webcam rotation | String |
| awb | body | The webcam white balance mode | String |
| is_live | body | Is the webcam a live streaming webcam | Boolean |
| flash | body | The relays that works like a flash before taking a picture from the webcam | Array of |
| archive | body | Webcam archiving setting | Object |
| motion | body | Webcam motion settings when archiving is set to motion | Object |
| markers | body | A list of markers for the webcam with live sensor data | Array of |
500 Unexpected server error
/api/webcams/{id}/
GET Get a specific webcam
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of webcam to return | String |
Responses
200 The requested webcam
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Webcam hardware type from WebcamHardware list | String |
| name | body | Name of the webcam | String |
| address | body | The address of the webcam | String |
| width | body | The webcam resolution width in pixels | Integer |
| height | body | The webcam resolution height in pixels | Integer |
| rotation | body | The webcam rotation | String |
| awb | body | The webcam white balance mode | String |
| is_live | body | Is the webcam a live streaming webcam | Boolean |
| flash | body | The relays that works like a flash before taking a picture from the webcam | Array of |
| archive | body | Webcam archiving setting | Object |
| motion | body | Webcam motion settings when archiving is set to motion | Object |
| markers | body | A list of markers for the webcam with live sensor data | Array of |
404 Webcam does not exists
500 Unexpected server error
PUT Update an existing webcam with new data {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of webcam to update | String |
| hardware | body | Webcam hardware type from WebcamHardware list | String |
| name | body | Name of the webcam | String |
| address | body | The address of the webcam | String |
| width | body | The webcam resolution width in pixels | Integer |
| height | body | The webcam resolution height in pixels | Integer |
| rotation | body | The webcam rotation | String |
| awb | body | The webcam white balance mode | String |
| flash | body | The relays that works like a flash before taking a picture from the webcam | Array of |
| archive | body | Webcam archiving setting | Object |
| motion | body | Webcam motion settings when archiving is set to motion | Object |
| markers | body | A list of markers for the webcam with live sensor data | Array of |
Responses
200 The updated webcam
| Name | Located in | Description | Type |
|---|---|---|---|
| id | body | Auto generated ID | String |
| hardware | body | Webcam hardware type from WebcamHardware list | String |
| name | body | Name of the webcam | String |
| address | body | The address of the webcam | String |
| width | body | The webcam resolution width in pixels | Integer |
| height | body | The webcam resolution height in pixels | Integer |
| rotation | body | The webcam rotation | String |
| awb | body | The webcam white balance mode | String |
| is_live | body | Is the webcam a live streaming webcam | Boolean |
| flash | body | The relays that works like a flash before taking a picture from the webcam | Array of |
| archive | body | Webcam archiving setting | Object |
| motion | body | Webcam motion settings when archiving is set to motion | Object |
| markers | body | A list of markers for the webcam with live sensor data | Array of |
404 Webcam does not exists
500 Unexpected server error
DELETE Delete an existing webcam {"Basic"=>[]}
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of webcam to delete | String |
Responses
200 Delete successfull
404 Webcam does not exists
500 Unexpected server error
/api/webcams/{id}/archive/{period}/
GET Get a list of archived images for the selected period
Parameters
| Name | Located in | Description | Type |
|---|---|---|---|
| id | path | ID of webcam for which to get the archive | String |
| period | path | The date for which to get archive images. Format %Y/%m/%d | String |
Responses
200 Webcam history for 1 day
| Name | Located in | Description | Type |
|---|---|---|---|
| String |
404 Webcam does not exists
500 Unexpected server error
This post is licensed under CC BY 4.0 by the author.
