Device models in the IoT system are composed of Traits and Attributes:
• Traits: Define the capabilities and behaviors a device supports (e.g., OnOff, Brightness, LockUnlock)
• Attributes: Configure and customize how traits behave (e.g., brightness range, supported modes, command-only operation)
Trait
type: string
Attribute
Type: Object with name and value properties, where value is an attribute specified structure or type.
name and value properties, where value is an attribute specified structure or type.Examples of attributes
{
"name": "sensorProfile",
"value": {
"bmi" : {"Min": 0, "Max": 100, "Unit": "kg/m2" },
"vfr" : {"Min": 0, "Max": 50, "Unit": "" },
"bmr" : {"Min": 0, "Max": 3000, "Unit": "kcal/day"},
"bf" : {"Min": 0, "Max": 100, "Unit": "%" },
"ma" : {"Min": 0, "Max": 100, "Unit": "" },
"bw" : {"Min": 0, "Max": 100, "Unit": "%" },
"amr" : {"Min": 0, "Max": 6000, "Unit": "kcal/day"},
"height": {"Min": 0, "Max": 300, "Unit": "cm" },
"weight": {"Min": 0, "Max": 300, "Unit": "kg" },
"bm" : {"Min": 0, "Max": 100, "Unit": "%" },
"bn" : {"Min": 0, "Max": 100, "Unit": "%" }
}
}
{
"name": "intermittent",
"value": true
}{ "name": "timeStepRange", "value": {"max": 86400, "min": 0.1, "step": 0.1} }Traits and Attributes Reference Table
| Trait | Description | Related Attributes |
|---|---|---|
| OnOff | Power control (on/off) | commandOnlyOnOff, queryOnlyOnOff, intermittent, timeStepRange, supportOnOffDelegated, detectFunctions |
| Brightness | Brightness control | commandOnlyBrightness, availableDimmingTypes, fade, colorProfile, brightnessRangeConfigurable |
| ColorSetting | Color control (RGB/HSV) | colorModel, colorTemperatureRange, commandOnlyColorSetting |
| LockUnlock | Lock/unlock control | (No specific attributes) |
| OpenClose | Open/close control (doors, blinds) | openDirection, queryOnlyOpenClose, discreteOnlyOpenClose, commandOnlyOpenClose, motorReversible |
| FanSpeed | Fan speed control | availableFanSpeeds, reversible, commandOnlyFanSpeed, supportsFanSpeedPercent |
| HumiditySetting | Humidity control | humiditySetpointRange, commandOnlyHumiditySetting, queryOnlyHumiditySetting, humiditySetpointStep |
| Modes | Mode selection | availableModes, commandOnlyModes |
| Toggles | Toggle switches | availableToggles, commandOnlyToggles |
| StartStop | Start/stop operations | pausable, availableZones |
| TemperatureControl | Temperature control | temperatureRange, temperatureStepCelsius, temperatureUnitForUX, queryOnlyTemperatureControl, commandOnlyTemperatureControl |
| TemperatureSetting | Thermostat control | availableThermostatModes, thermostatTemperatureUnit, bufferRangeCelsius, commandOnlyTemperatureSetting, queryOnlyTemperatureSetting, thermostatTemperatureRange |
| SmartConnect | Smart connection | commandOnlyOnOff, formFactor |
| UltronCommand | Ultron device commands | ultronCmdList, rebootTime, fwUpgradeTime, postStringAsLog, mqttOnDemand, supportMcuLog |
| UltronConfig | Ultron configuration | schedulable, periodicity, aperiodicity, sensorSupportNotify, sensorConfigurable, schedulableVersion, supportDefaultActions, availableDimmingTypes, iotConfigurableIntervals, meshConfigurableIntervals, supportGatewayOff, motorReversible |
| ReportState | State reporting | forceUpdateCapability, supportMcuLog |
| Sensor | Sensor Data functionality | sensorProfile |
| Detector | Detection functionality | detectorEvents, detectorSensitivity, detectorCooldownTime |
| CustomModes | Custom mode selection | availableCustomModes |
| CustomSliders | Custom sliders | availableCustomSliders |
| CustomToggles | Custom toggles | availableCustomToggles |
| Setpoints | Setpoint control | availableRanges |
| ThermostaticValve | Thermostatic valve | thermostaticValveProfile |
Example response of /usr/v5/GetGroupDevices
/usr/v5/GetGroupDevices{
"result": 0,
"devices": {
"BLU303-C026DADDDDDD": {
"sn": "BLU303-C026DADDDDDD",
"mac": "C026DADDDDDD",
"activated": true,
"ver": {"hwVer": "LUA-API-2", "fwVer": "LUA-EXE-1"},
"models": {
"fora_w600_data": { // key is endpoint Name(iotDev, or iotName)
"type": "ULTRON_SENSOR",
"traits": ["Sensor"],
"disabled": false,
"attrs": [
{
"name": "sensorProfile",
"value": {
"bmi" : {"Min": 0, "Max": 100, "Unit": "kg/m2" },
"vfr" : {"Min": 0, "Max": 50, "Unit": "" },
"bmr" : {"Min": 0, "Max": 3000, "Unit": "kcal/day"},
"bf" : {"Min": 0, "Max": 100, "Unit": "%" },
"ma" : {"Min": 0, "Max": 100, "Unit": "" },
"bw" : {"Min": 0, "Max": 100, "Unit": "%" },
"amr" : {"Min": 0, "Max": 6000, "Unit": "kcal/day"},
"height": {"Min": 0, "Max": 300, "Unit": "cm" },
"weight": {"Min": 0, "Max": 300, "Unit": "kg" },
"bm" : {"Min": 0, "Max": 100, "Unit": "%" },
"bn" : {"Min": 0, "Max": 100, "Unit": "%" }
}
}
]
},
"Ultron Device": { //
"type": "ULTRON",
"traits": ["UltronCommand", "ReportState", "UltronConfig"],
"disabled": false,
"attrs": [
{"name": "fwUpgradeTime", "value": 60},
{
"name": "sensorConfigurable",
"value": {
"fora_w600_data": [
"height", "weight", "bmi", "bmr", "bf", "bm",
"bn", "bw", "vfr", "amr", "ma"
]
}
}
]
}
},
"configs": [
{
"config": "SensorConfig",
"items": {
"sensorConfigs" : null,
"reportInterval" : 1,
"samplingInterval" : 1,
"notificationInterval": 0,
"firstShot" : 0,
"validBefore" : 0
}
}
],
"displayName": "體脂計",
"iconUrl": "https://storage.googleapis.com/cms-customer-file-beta/BL/BLU303/20220719T055454/icon.png",
"connType": "BLE", // --> When connectType is BLE => should use `/usr/v5/GetBleTopology`
"subConnType": "BleConnectAlways", // to get online status of BLE devices.
"nonnative": true,
"createdTime": "2023-03-31T05:40:23.074637Z"
},
"UT3702-ESEEEEE": {
"sn": "UT3702-ESEEEEE",
"mac": "4C11AEEEEEEE",
"activated": true,
"ver": {
"hwVer" : "A",
"fwVer" : "1.10.02",
"countryCode": "TW",
"otaFwVer" : "1.01.02"
},
"models": {
"OUTLET1": {
"type": "OUTLET",
"traits": ["Sensor", "OnOff"],
"disabled": false,
"attrs": [
{
"name": "sensorProfile",
"value": {
"watt_hour": {"Min": 0, "Max": 50000, "Unit": "kWh" },
"watt" : {"Min": 0, "Max": 1800, "Unit": "Watt"},
"current" : {"Min": 0, "Max": 15000, "Unit": "mA" },
"voltage" : {"Min": 0, "Max": 240, "Unit": "V" }
}
},
{"value": true, "name": "intermittent"},
{
"name": "timeStepRange",
"value": {"max": 86400, "min": 0.1, "step": 0.1}
}
]
},
"Ultron Device": {
"type": "ULTRON",
"traits": ["UltronCommand", "ReportState", "UltronConfig"],
"disabled": false,
"attrs": [
{"value": 20, "name": "rebootTime"},
{"name": "fwUpgradeTime", "value": 60},
{"name": "iotConfigurableIntervals", "value": true},
{
"name": "schedulable",
"value": { "OUTLET1": ["OnOff"] }
},
{"name": "schedulableVersion", "value": 1},
{"name": "periodicity", "value": true},
{"value": true, "name": "aperiodicity"},
{
"name": "supportDefaultActions",
"value": {
"OUTLET1": {
"cmdNames" : ["OnOff" ],
"situations": ["power", "network"]
}
}
}
]
}
},
"configs": [
{
"config": "DefaultActions",
"items": {
"dev": ["OUTLET1"],
"act": [
{
"cmds": [
{ "command": "OnOff", "params": {"on": true} }
]
},
{
"cmds": [
{ "command": "OnOff", "params": {"on": false} }
]
}
],
"behaviors": [
{"defaultAction": "power:0:0" },
{"defaultAction": "network:0:-1"}
]
}
},
{
"iotName": "OUTLET1",
"config": "TimeStep",
"items": {"value": 600, "enabled": true}
}
],
"displayName": "陽台風扇",
"fwChannel": "Stable",
"iconUrl": "https://storage.googleapis.com/cms-customer-file-beta/UT/UT3702/20220719T055519/icon.png",
"createdTime": "2023-03-31T05:40:23.074637Z"
},
"UTU301-ESAAAAA": {
"sn": "UTU301-ESAAAAA",
"mac": "38FDFEAAAAAA",
"activated": true,
"ver": {"hwVer": "A", "fwVer": "1.11.12", "countryCode": "TW"},
"models": {
"Ultron Button": {
"type": "AIRFORES",
"traits": ["SmartConnect"],
"disabled": false,
"attrs": [
{"name": "commandOnlyOnOff", "value": false },
{"name": "formFactor", "value": "button"}
]
},
"Ultron Device": {
"type": "ULTRON",
"traits": [
"UltronCommand", "BluetoothGateway", "ReportState",
"ApiResponse", "UltronConfig"
],
"disabled": false,
"attrs": [
{"name": "rebootTime", "value": 20},
{"name": "fwUpgradeTime", "value": 60},
{"name": "iotConfigurableIntervals", "value": true},
{"name": "supportGatewayOff", "value": true},
{
"value": { "Ultron Sensor": ["temp", "rh"] },
"name": "sensorConfigurable"
}
]
},
"Ultron Sensor": {
"type": "ULTRON_SENSOR",
"traits": ["Sensor"],
"disabled": false,
"attrs": [
{
"name": "sensorProfile",
"value": {
"temp": {"Min": -40, "Max": 85, "Unit": "ºC"},
"rh" : {"Min": 0, "Max": 100, "Unit": "%" }
}
}
]
},
"SENSOR": {
"type": "SENSOR",
"traits": ["TemperatureControl", "HumiditySetting"],
"disabled": false,
"attrs": [
{
"name": "temperatureRange",
"value": {"minThresholdCelsius": -40, "maxThresholdCelsius": 85}
},
{"value": "C", "name": "temperatureUnitForUX"},
{"name": "queryOnlyTemperatureControl", "value": true},
{"name": "queryOnlyHumiditySetting", "value": true}
]
}
},
"configs": [
{
"config": "SensorConfig",
"items": {
"sensorConfigs" : null,
"reportInterval" : 300,
"samplingInterval" : 300,
"notificationInterval": 900,
"firstShot" : 0,
"validBefore" : 0
}
},
{ "config": "DisableGateway", "items": {"disabled": false} }
],
"displayName": "客廳溫濕度",
"fwChannel": "Beta",
"iconUrl": "https://storage.googleapis.com/cms-customer-file-beta/UT/UTU301/20220719T055530/icon.png",
"createdTime": "2023-04-26T14:09:01.559076Z"
},
"UTU307-F565A5BBBBBB": {
"sn": "UTU307-F565A5BBBBBB",
"mac": "F565A5BBBBBB",
"activated": true,
"ver": {"hwVer": "LUA-API-2", "fwVer": "LUA-EXE-3"},
"models": {
"Ultron Device": {
"type": "ULTRON",
"traits": ["UltronCommand", "ReportState", "UltronConfig"],
"disabled": false,
"attrs": [
{"name": "fwUpgradeTime", "value": 60},
{
"name": "sensorConfigurable",
"value": { "ULTRON_SENSOR": ["temp", "power", "rh"] }
}
]
},
"SENSOR": {
"type": "SENSOR",
"traits": ["TemperatureControl", "HumiditySetting"],
"disabled": false,
"attrs": [
{
"value": {
"minThresholdCelsius": -50,
"maxThresholdCelsius": 100
},
"name": "temperatureRange"
},
{"name": "temperatureUnitForUX", "value": "C"},
{"name": "queryOnlyTemperatureControl", "value": true},
{"name": "queryOnlyHumiditySetting", "value": true}
]
},
"ULTRON_SENSOR": {
"type": "ULTRON_SENSOR",
"traits": ["Sensor"],
"disabled": false,
"attrs": [
{
"name": "sensorProfile",
"value": {
"temp" : {"Min": -50, "Max": 100, "Unit": "ºC"},
"power": {"Min": 0, "Max": 100, "Unit": "%" },
"rh" : {"Min": 0, "Max": 100, "Unit": "%" }
}
}
]
}
},
"configs": [
{
"config": "SensorConfig",
"items": {
"sensorConfigs": {
"ULTRON_SENSOR": {
"power": {
"reportInterval": 30,
"samplingInterval": 30,
"notificationInterval": 30,
"details": {
"Normal": {
"enableAction": false,
"triggerInterval": [20, 100],
"enableNotification": false
},
"FallingWarning": {
"enableAction": false,
"triggerInterval": [10, 20],
"enableNotification": true
},
"FallingCritical": {
"enableAction": false,
"triggerInterval": [0, 10],
"enableNotification": true
}
}
}
}
},
"reportInterval": 30,
"samplingInterval": 30,
"notificationInterval": 0,
"firstShot": 0,
"validBefore": 0
}
}
],
"displayName": "房間溫濕度",
"fwChannel": "Stable",
"iconUrl": "https://storage.googleapis.com/cms-customer-file-beta/UT/UTU307/20220719T055533/icon.png",
"connType": "BLE",
"subConnType": "BleAdvOnly",
"createdTime": "2023-03-31T05:40:23.074637Z",
"followers": [
"3QzRBk5vxYYy1ATOzWzfnTcUMeB3",
"ikzD1yjLAgSEoNeyDBQpeWaxdcq2",
"o0wcFFgbulZQwEz044O7tuZfrBq1"
]
},
"UTU400-ESCCCCC": {
"sn": "UTU400-ESCCCCC",
"mappedSN": "BE2200-ESCCCCC",
"mac": "38FDFECCCCCC",
"activated": true,
"certifiedBrand": true,
"certifiedModel": true,
"ver": {
"hwVer" : "A",
"fwVer" : "1.11.13",
"countryCode": "TW",
"mcuFwVer" : "Panasonic | LJ-16690B13"
},
"models": {
"Ultron Sensor": {
"type": "ULTRON_SENSOR",
"traits": ["Sensor"],
"disabled": false,
"attrs": [
{
"name": "sensorProfile",
"value": {
"watt_hour" : {"Min": 0, "Max": 25.5, "Unit": "kWh" },
"temp" : {"Min": -9, "Max": 60, "Unit": "ºC" },
"filter" : {"Min": 0, "Max": 1, "Unit": "bool"},
"current" : {"Min": 0, "Max": 25.5, "Unit": "A" },
"real_power": {"Min": 0, "Max": 255, "Unit": "Watt"}
}
}
]
},
"Ultron Sensor 2": {
"type": "ULTRON_SENSOR",
"traits": ["Sensor"],
"disabled": false,
"attrs": [
{
"name": "sensorProfile",
"value": { "temp": {"Min": -9, "Max": 60, "Unit": "ºC"} }
}
]
},
"Ultron Device": {
"type": "ULTRON",
"traits": [
"UltronCommand", "BluetoothGateway", "ReportState",
"UltronConfig"
],
"disabled": false,
"attrs": [
{"name": "rebootTime", "value": 20},
{"name": "fwUpgradeTime", "value": 60},
{"name": "iotConfigurableIntervals", "value": true},
{"value": true, "name": "postStringAsLog"},
{
"value": {
"Ultron Sensor": [
"temp", "filter", "current", "real_power",
"watt_hour"
],
"Ultron Sensor 2": ["temp"]
},
"name": "sensorConfigurable"
},
{
"name": "schedulable",
"value": { "AC_UNIT": ["OnOff"] }
},
{"name": "periodicity", "value": true}
]
},
"AC_UNIT": {
"type": "AC_UNIT",
"traits": [
"OnOff", "TemperatureSetting", "CustomModes",
"CustomToggles"
],
"disabled": false,
"attrs": [
{
"name" : "availableThermostatModes",
"value": "cool,dry,fan-only,auto,heat"
},
{
"name": "thermostatTemperatureRange",
"value": {"minThresholdCelsius": 16, "maxThresholdCelsius": 30}
},
{"name": "thermostatTemperatureUnit", "value": "C"},
{
"name": "availableCustomModes",
"value": [
{
"name": "FanSpeed",
"settings": ["0", "1", "2", "3", "4", "5"],
"ordered": true
},
{
"name": "StartTimer",
"settings": [
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
"20", "21", "22", "23", "24"
],
"ordered": true
},
{
"name": "Timer",
"settings": [
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
"20", "21", "22", "23", "24"
],
"ordered": true
},
{ "name": "Filter", "settings": ["0"], "ordered": true }
]
},
{
"name": "availableCustomToggles",
"value": [
"SleepMode", "AirClean", "SelfCleaning",
"FastOperation"
]
}
]
}
},
"displayName": "客廳冷氣",
"fwChannel": "Beta",
"hwType": "PAC",
"iconUrl": "https://storage.googleapis.com/cms-customer-file-beta/UT/UTU400/20220719T055608/PAC.png",
"createdTime": "2023-04-26T14:14:06.415193Z"
}
}
}