Device Resource
Warning
Microvisor Public Beta
Microvisor is in a pre-release phase and the information contained in this document is subject to change. Some features referenced below may not be fully available until Microvisor's General Availability (GA) release.
A Device instance represents a single Microvisor-empowered IoT device. For clarity, device (no cap) refers to physical hardware. Device (initial cap) refers to a Device API resource.
Device resources are accessed at this endpoint:
_10https://microvisor.twilio.com/v1/Devices
Make a GET
request to the endpoint to receive a list (in JSON) of all Device resources.
Every Device instance can be referenced in the API either by its unique SID or a user-defined unique name:
_10https://microvisor.twilio.com/v1/Devices/{sid}
_10https://microvisor.twilio.com/v1/Devices/{uniqueName}
The Device instance representing a real device is used to deploy uploaded code to that device.
Resource properties
sid
type: SID<UV>
A 34-character string that uniquely identifies this Device.
unique_name
type: string
A developer-defined string that uniquely identifies the Device. This value must be unique for all Devices on this Account. The unique_name
value may be used as an alternative to the sid
in the URL path to address the resource.
account_sid
type: SID<AC>
The unique SID identifier of the Account.
app
type: object
Information about the target App and the App reported by this Device. Contains the properties target_sid
, date_targeted
, update_status
(one of up-to-date
, pending
and error
), update_error_code
, reported_sid
and date_reported
.
logging
type: object
Object specifying whether application logging is enabled for this Device. Contains the properties enabled
and date_expires
.
date_created
type: string<date-time>
date_updated
type: string<date-time>
url
type: string<uri>
The URL of this resource.
links
type: object<uri-map>
The absolute URLs of related resources.
The table below describes the available status
values of a Device instance:
Status | Description |
---|
up-to-date | The device has received with the most recent application code deployed to it |
scheduled | Application code has been marked for deployment but has yet to be installed on the device |
error | Application code marked for deployment could not be downloaded for some reason |
GET https://microvisor.twilio.com/v1/Devices/{Sid}
URI parameters
Sid
type: string
A 34-character string that uniquely identifies this Device.
_10// Download the helper library from https://www.twilio.com/docs/node/install
_10// Find your Account SID and Auth Token at twilio.com/console
_10// and set the environment variables. See http://twil.io/secure
_10const accountSid = process.env.TWILIO_ACCOUNT_SID;
_10const authToken = process.env.TWILIO_AUTH_TOKEN;
_10const client = require('twilio')(accountSid, authToken);
_10client.microvisor.v1.devices('UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
_10 .then(device => console.log(device.sid));
_25 "sid": "UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "unique_name": "This is my device; there are many like it.",
_25 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "target_sid": "KAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "date_targeted": "2021-01-01T12:34:56Z",
_25 "update_status": "up-to-date",
_25 "update_error_code": 0,
_25 "reported_sid": "KAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "date_reported": "2021-01-01T12:34:56Z"
_25 "date_expires": "2021-01-01T12:34:56Z"
_25 "date_created": "2021-01-01T12:34:56Z",
_25 "date_updated": "2021-01-01T12:34:56Z",
_25 "url": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "device_configs": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Configs",
_25 "device_secrets": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Secrets"
GET https://microvisor.twilio.com/v1/Devices
URI parameters
PageSize
type: integer
How many resources to return in each list page. The default is 50, and the maximum is 1000.
Page
type: integer
The page index. This value is simply for client state.
PageToken
type: string
The page token. This is provided by the API.
_10// Download the helper library from https://www.twilio.com/docs/node/install
_10// Find your Account SID and Auth Token at twilio.com/console
_10// and set the environment variables. See http://twil.io/secure
_10const accountSid = process.env.TWILIO_ACCOUNT_SID;
_10const authToken = process.env.TWILIO_AUTH_TOKEN;
_10const client = require('twilio')(accountSid, authToken);
_10client.microvisor.v1.devices
_10 .then(devices => devices.forEach(d => console.log(d.sid)));
_38 "sid": "UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_38 "unique_name": "This is my device; there are many like it.",
_38 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_38 "target_sid": "KAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_38 "date_targeted": "2021-01-01T12:34:56Z",
_38 "update_status": "up-to-date",
_38 "update_error_code": 0,
_38 "reported_sid": "KAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_38 "date_reported": "2021-01-01T12:34:56Z"
_38 "date_expires": "2021-01-01T12:34:56Z"
_38 "date_created": "2021-01-01T12:34:56Z",
_38 "date_updated": "2021-01-01T12:34:56Z",
_38 "url": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_38 "device_configs": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Configs",
_38 "device_secrets": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Secrets"
_38 "first_page_url": "https://microvisor.twilio.com/v1/Devices?PageSize=50&Page=0",
_38 "previous_page_url": "https://microvisor.twilio.com/v1/Devices?PageSize=50&Page=0",
_38 "url": "https://microvisor.twilio.com/v1/Devices?PageSize=50&Page=0",
_38 "next_page_url": "https://microvisor.twilio.com/v1/Devices?PageSize=50&Page=1",
POST https://microvisor.twilio.com/v1/Devices/{Sid}
URI parameters
Sid
type: string
A 34-character string that uniquely identifies this Device.
Request body parameters
UniqueName
type: string
A unique and addressable name to be assigned to this Device by the developer. It may be used in place of the Device SID.
TargetApp
type: string
The SID or unique name of the App to be targeted to the Device.
LoggingEnabled
type: boolean
A Boolean flag specifying whether to enable application logging. Logs will be enabled or extended for 24 hours.
RestartApp
type: boolean
Set to true to restart the App running on the Device.
_10// Download the helper library from https://www.twilio.com/docs/node/install
_10// Find your Account SID and Auth Token at twilio.com/console
_10// and set the environment variables. See http://twil.io/secure
_10const accountSid = process.env.TWILIO_ACCOUNT_SID;
_10const authToken = process.env.TWILIO_AUTH_TOKEN;
_10const client = require('twilio')(accountSid, authToken);
_10client.microvisor.v1.devices('UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_10 .update({uniqueName: 'My Device Name'})
_10 .then(device => console.log(device.uniqueName));
_25 "sid": "UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "unique_name": "My Device Name",
_25 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "target_sid": "KAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "date_targeted": "2021-01-01T12:34:56Z",
_25 "update_status": "pending",
_25 "update_error_code": 0,
_25 "reported_sid": null,
_25 "date_reported": "2021-01-01T12:34:56Z"
_25 "date_created": "2015-07-30T20:00:00Z",
_25 "date_updated": "2015-07-30T20:00:00Z",
_25 "url": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "device_configs": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Configs",
_25 "device_secrets": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Secrets"
Info
Remember, a Device can be identified either by is SID, or by its unique name, if you have applied one.
_10// Download the helper library from https://www.twilio.com/docs/node/install
_10// Find your Account SID and Auth Token at twilio.com/console
_10// and set the environment variables. See http://twil.io/secure
_10const accountSid = process.env.TWILIO_ACCOUNT_SID;
_10const authToken = process.env.TWILIO_AUTH_TOKEN;
_10const client = require('twilio')(accountSid, authToken);
_10client.microvisor.v1.devices('UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_10 .update({targetApp: 'KAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'})
_10 .then(device => console.log(device.uniqueName));
_25 "sid": "UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "unique_name": "UniqueName",
_25 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "target_sid": "KAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "date_targeted": "2021-01-01T12:34:56Z",
_25 "update_status": "pending",
_25 "update_error_code": 0,
_25 "reported_sid": null,
_25 "date_reported": "2021-01-01T12:34:56Z"
_25 "date_created": "2015-07-30T20:00:00Z",
_25 "date_updated": "2015-07-30T20:00:00Z",
_25 "url": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "device_configs": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Configs",
_25 "device_secrets": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Secrets"
_10// Download the helper library from https://www.twilio.com/docs/node/install
_10// Find your Account SID and Auth Token at twilio.com/console
_10// and set the environment variables. See http://twil.io/secure
_10const accountSid = process.env.TWILIO_ACCOUNT_SID;
_10const authToken = process.env.TWILIO_AUTH_TOKEN;
_10const client = require('twilio')(accountSid, authToken);
_10client.microvisor.v1.devices('UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
_10 .update({loggingEnabled: true})
_10 .then(device => console.log(device.uniqueName));
_25 "sid": "UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "unique_name": "UniqueName",
_25 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "target_sid": "KAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "date_targeted": "2021-01-01T12:34:56Z",
_25 "update_status": "pending",
_25 "update_error_code": 0,
_25 "reported_sid": null,
_25 "date_reported": "2021-01-01T12:34:56Z"
_25 "date_created": "2015-07-30T20:00:00Z",
_25 "date_updated": "2015-07-30T20:00:00Z",
_25 "url": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "device_configs": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Configs",
_25 "device_secrets": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Secrets"
Info
Application code logging is enabled by default.
_10// Download the helper library from https://www.twilio.com/docs/node/install
_10// Find your Account SID and Auth Token at twilio.com/console
_10// and set the environment variables. See http://twil.io/secure
_10const accountSid = process.env.TWILIO_ACCOUNT_SID;
_10const authToken = process.env.TWILIO_AUTH_TOKEN;
_10const client = require('twilio')(accountSid, authToken);
_10client.microvisor.v1.devices('UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
_10 .update({restartApp: true})
_10 .then(device => console.log(device.uniqueName));
_25 "sid": "UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "unique_name": "UniqueName",
_25 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "target_sid": "KAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "date_targeted": "2021-01-01T12:34:56Z",
_25 "update_status": "pending",
_25 "update_error_code": 0,
_25 "reported_sid": null,
_25 "date_reported": "2021-01-01T12:34:56Z"
_25 "date_created": "2015-07-30T20:00:00Z",
_25 "date_updated": "2015-07-30T20:00:00Z",
_25 "url": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_25 "device_configs": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Configs",
_25 "device_secrets": "https://microvisor.twilio.com/v1/Devices/UVXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Secrets"
Restarting an app using this call will instruct Microvisor to start the loaded application afresh. This can be a useful call to make during remote debugging, particularly if your application is experiencing unexpected behavior right after it starts.