Skip to main content

Device Profiles

A Device Profile instance resource represents a single device profile entity.

Resource Attributes#

AttributeDescription
idA 23 to 26 characters long string that uniquely identifies this device profile.
accountIdThe unique id of the account that created this device profile.
nameAccount wide unique, URL friendly name of the device profile.
friendlyNameHuman friendly name of the device profile.
baseProfileIdThe id of the base device profile, if any.
descriptionOptional. Device profile description.
tagsOptional. Tags associated with this device profile.
deviceClassOptional. The class of the devices that are generated from this profile.
productNameOptional. The product name, if any.
vendorNameOptional. The vendor of the device.
imageUrlOptional. URL for the device image.
lockedLocked device profile cannot be deleted, modified, new sub resources (e.g. properties) cannot be added, or existing sub resources cannot be removed; but unless they are locked individually, sub resources can be modified.
dateCreatedThe date that this device profile was created in ISO 8601 format.
dateModifiedThe date that this device profile entity was modified in ISO 8601 format.
{
"id": "_dpf_587631821175935749",
"accountId": "_acc_587617399162687551",
"name": "TestDevice",
"friendlyName": "Test Device",
"description": "A new sensor device for testing",
"deviceClass": "sensor",
"vendorName": "Acme Co.",
"productName": "Prod-101",
"imageUrl": "http://s3.content.na.csip.io/images/minime.jpg",
"tags": [
"acustic",
"test"
],
"locked": false,
"dateCreated": "2017-03-21T18:39:31.924Z",
"dateModified": "2017-03-23T20:05:36.095Z"
}

Create device profile#

POST https://api.csip.io/v3/deviceprofiles#

cURL#

curl --request POST \
--url https://api.csip.io/v3/deviceprofiles \
--header 'Content-Type: application/json'

Node#

const fetch = require('node-fetch');
const url = 'https://api.csip.io/v3/deviceprofiles';
const options = {method: 'POST', headers: {'Content-Type': 'application/json'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('error:' + err));

Ruby#

require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.csip.io/v3/deviceprofiles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
response = http.request(request)
puts response.read_body

JavaScript#

const options = {method: 'POST', headers: {'Content-Type': 'application/json'}};
fetch('https://api.csip.io/v3/deviceprofiles', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));

Python#

import requests
url = "https://api.csip.io/v3/deviceprofiles"
headers = {"Content-Type": "application/json"}
response = requests.request("POST", url, headers=headers)
print(response.text)

List device profiles#

GET https://api.csip.io/v3/deviceprofiles#

cURL#

curl --request GET \
--url https://api.csip.io/v3/deviceprofiles

Node#

const fetch = require('node-fetch');
const url = 'https://api.csip.io/v3/deviceprofiles';
const options = {method: 'GET'};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('error:' + err));

Ruby#

require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.csip.io/v3/deviceprofiles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body

JavaScript#

const options = {method: 'GET'};
fetch('https://api.csip.io/v3/deviceprofiles', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));

Python#

import requests
url = "https://api.csip.io/v3/deviceprofiles"
response = requests.request("GET", url)
print(response.text)

View device profile details#

GET https://api.csip.io/v3/deviceprofiles/ref#

cURL#

curl --request GET \
--url https://api.csip.io/v3/deviceprofiles/ref

Node#

const fetch = require('node-fetch');
const url = 'https://api.csip.io/v3/deviceprofiles/ref';
const options = {method: 'GET'};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('error:' + err));

Ruby#

require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.csip.io/v3/deviceprofiles/ref")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body

JavaScript#

const options = {method: 'GET'};
fetch('https://api.csip.io/v3/deviceprofiles/ref', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));

Python#

import requests
url = "https://api.csip.io/v3/deviceprofiles/ref"
response = requests.request("GET", url)
print(response.text)

Modify device profile#

PUT https://api.csip.io/v3/deviceprofiles/ref#

cURL#

curl --request PUT \
--url https://api.csip.io/v3/deviceprofiles/ref \
--header 'Content-Type: application/json'

Node#

const fetch = require('node-fetch');
const url = 'https://api.csip.io/v3/deviceprofiles/ref';
const options = {method: 'PUT', headers: {'Content-Type': 'application/json'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('error:' + err));

Ruby#

require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.csip.io/v3/deviceprofiles/ref")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
response = http.request(request)
puts response.read_body

JavaScript#

const options = {method: 'PUT', headers: {'Content-Type': 'application/json'}};
fetch('https://api.csip.io/v3/deviceprofiles/ref', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));

Python#

import requests
url = "https://api.csip.io/v3/deviceprofiles/ref"
headers = {"Content-Type": "application/json"}
response = requests.request("PUT", url, headers=headers)
print(response.text)

Delete device profile#

DELETE https://api.csip.io/v3/deviceprofiles/ref#

cURL#

curl --request DELETE \
--url https://api.csip.io/v3/deviceprofiles/ref

Node#

const fetch = require('node-fetch');
const url = 'https://api.csip.io/v3/deviceprofiles/ref';
const options = {method: 'DELETE'};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('error:' + err));

Ruby#

require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.csip.io/v3/deviceprofiles/ref")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
response = http.request(request)
puts response.read_body
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.csip.io/v3/deviceprofiles/ref")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
response = http.request(request)
puts response.read_body

JavaScript#

const options = {method: 'DELETE'};
fetch('https://api.csip.io/v3/deviceprofiles/ref', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));

Python#

import requests
url = "https://api.csip.io/v3/deviceprofiles/ref"
response = requests.request("DELETE", url)
print(response.text)

๐Ÿšง Rule#

You cannot delete a base device profile with child. You must delete the child first. You cannot delete a device profile with existing devices generated from it. You must delete the device first.