Each Afero device will have a number of attributes associated with it. Attributes are identified by a 2-byte ID and can contain a variable amount of information based on the type of attribute. Attributes can come in many types and have specific ID ranges.
ID | Description | Data Type | Usage Notes | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1‑1023 | Afero Cloud, Device MCU | An attribute residing on an external MCU defined by the third-party developer. The size and meaning of these attributes are defined by the developer using the Afero Profile Editor. To get the default value of one of these attributes, the MCU must call af_lib_get_attribute . |
|||||||||||||||||||||||||
1024 | I/O 0 Value Attribute | LED on Afero dev board. | |||||||||||||||||||||||||
1026 | I/O 1 Value Attribute | Configurable | |||||||||||||||||||||||||
1028 | I/O 2 Value Attribute | Configurable | |||||||||||||||||||||||||
1030 | I/O 3 Value Attribute | Button on Afero dev board | |||||||||||||||||||||||||
1201 | UTC Time | SINT32 | Local UTC time on ASR should the MCU need/want it. If present in the Profile, ASR will deliver it to the MCU periodically. | ||||||||||||||||||||||||
1202 | Device ID | BYTES | If the MCU requires the ASR Device ID, the MCU can do a GET on this attribute to retrieve the ID. | ||||||||||||||||||||||||
1203 | Association ID | BYTES | Should the MCU require the Association ID of the ASR it can do a GET on this attribute to retrieve it. | ||||||||||||||||||||||||
1204 | Company Code | SINT8 | Should the MCU require the Company Code of the ASR it can do a GET on this attribute to retrieve it. | ||||||||||||||||||||||||
1205 | Online Status | BYTES | This three-byte array describes the online status of the device according to the following formula:
|
||||||||||||||||||||||||
1206 | Device Capabilities | BYTES | A bit field in which the device states to the MCU what capabilities it supports. Bits are indexed from left to right, allowing additional bytes to be appended to support additional capabilities. The bits are:
|
||||||||||||||||||||||||
1207 | afLib Capabilities | BYTES | A bit field in which afLib states to ASR what capabilities it supports. Bits are indexed from left to right, allowing additional bytes to be appended to support additional capabilities. | ||||||||||||||||||||||||
1301 | OTA MCU Info | BYTES | N-byte array used to hold state and other information related to the OTA. | ||||||||||||||||||||||||
1302 | OTA MCU Transfer | BYTES | N-byte array used for transmitting the image data to the MCU. By default this will be 510 bytes for Modulo-1 and 2046 bytes for Modulo-2, but the MCU can limit the amount of data it receives each time by lowering the size of this attribute. | ||||||||||||||||||||||||
2001 | Bootloader Version | SINT64 | The bootloader is always the first thing to be upgraded as it is responsible for installing firmware images. This firmware type is used for the Afero Secure Hub and Afero Secure Radios. | ||||||||||||||||||||||||
2002 | BLE Stack Version | SINT64 | This is the Bluetooth stack for the radio module. This will likely never be updated, but is included here for completeness. If the stack is updated, the application must always be updated at the same time, before the device is rebooted. | ||||||||||||||||||||||||
2003 | FW Application Version | SINT64 | This is the radio module application responsible for reading the device description and handling attributes. This firmware type is used for the Afero Secure Hub and Afero Secure Radios. | ||||||||||||||||||||||||
2004 | Device Description | SINT64 | The description of the attributes for a particular Afero application. | ||||||||||||||||||||||||
2005 | Hub | SINT64 | This is the entire firmware package for the hub including the software that runs on the Freescale processor. The Freescale package is signed separately using the same firmware type id, and then is included in the OpenWrt package. At boot time, only one version number is reported for the entire firmware package. | ||||||||||||||||||||||||
2006 | Wi-Fi | SINT64 | This is the version for the Wi-Fi chip (e.g., WINC3400). | ||||||||||||||||||||||||
2007 | Wi-Fi Certificates | SINT64 | This is the package of Wi-Fi certificates used by the Wi-Fi chip to talk to the Cloud. This includes specific server certificates for Conclave and OTA servers as well as their root certificates. There is only one slot for this image type and the binary image is signed on the way to the device. | ||||||||||||||||||||||||
2008 | WAN APN List | SINT64 | This package contains a single file that comprises all the different WAN APNs the device supports. | ||||||||||||||||||||||||
65001 | UTC offset data | BYTES | Contains the current UTC offset in minutes, the next timestamp to change the UTC offset, and the new UTC offset to apply at the previous timestamp, in that order (2-bytes signed short, 4-bytes int, 2-bytes signed short). | ||||||||||||||||||||||||
65004 | Configured SSID | UTF8S | The SSID the Afero Secure Hub is currently configured to use. | ||||||||||||||||||||||||
65005 | Wi-Fi Bars | SINT8 | Integer, read-only attribute for Wi-Fi signal strength, for UI purposes. | ||||||||||||||||||||||||
65006 | Wi-Fi Steady State | SINT8 | Wi-Fi steady state:
This value is used to communicate the Wi-Fi state to the apps outside the Wi-Fi setup. |
||||||||||||||||||||||||
65012 | Command | BYTES | This value will have a one-byte command followed by parameters, if any. The format of the last three bytes are dictated by the first byte. The device will return a two-byte array indicating the result of the command to the server. The first byte will be the command and the second byte will be the result:
Current commands are listed below. Note that not all commands are available on all devices.
|
||||||||||||||||||||||||
65013 | ASR State (AF_SYSTEM_ASR_STATE ) |
SINT8 | This byte will hold ASR state information, including:
|
65014 | Low Battery Warning | SINT8 | Applies to ASR-1 Only This value will be updated by ASR-1 when the battery gets low. It will track the battery level as:
At 2.1 volts, the ASR-1 will power down to avoid problems such as flash corruption. |
||||||||||||||||||||
65015 | Linked Timestamp | SINT32 | The timestamp when the peripheral linked with the Cloud (as set by the Cloud upon successful linking). This is a Unix Epoch timestamp, which is the number of seconds since 1/1/1970. | ||||||||||||||||||||||||
65018 | Attribute ACK | SINT16 | Reserved. | ||||||||||||||||||||||||
65019 | Reboot Reason | UTF8S | A comma-delimited string that always has the same number of fields: 23 in the current version (V1). The reboot reason code appears in the second field; possible code values are explained below:
|
||||||||||||||||||||||||
65020 | BLE Comms | BYTES | Reserved. | ||||||||||||||||||||||||
65021 | MCU Interface | SINT8 | This attribute is required in the profile. The default value for this attribute is set by APE and any changes to the value at runtime are ignored. The following values are valid:
|
||||||||||||||||||||||||
65066 | Device Capability | BYTES | A bit field in which the device states what capabilities it supports. The bits are:
|
||||||||||||||||||||||||
65067 | Rate Limit Config | BYTES | Optional list of rate limit configs used by the attribute store to rate limit how often a given attribute is updated when being either viewed or not viewed. An individual config is six (6) bytes long and has the following format: [attribute][viewing update interval][non viewing update interval], where:
The behavior is as follows: For a given viewing state, the attribute store will enforce that the given attribute will not be updated more frequently than the value specified in the config. The first update after a reboot and any responses to server SET messages will be exempt from this policy. |
||||||||||||||||||||||||
65068 | Queued Attributes Config | BYTES | This is an optional list of queued attribute configs used by the attribute store to queue a given attribute instead of overwriting when offline. An individual config is five (5) bytes long and has the following format: [attribute][queue policy][queue size] , where:
| ||||||||||||||||||||||||
65069 | MCU SPI Config | BYTES | Binary byte array with the following formatted values (in little endian hex):
|