There are many different connected devices in the world today & each works just a little different from the next. Every company has their own APIs, device schemas, etc. What capabilities provide is a way to break down all of these unique devices into some common core functions. Consider, the Switch capability. It's our most popular capability as its sole purpose is to turn something on or off. To control something with the Switch capability, you simply set the Switch attribute to either On or Off. Doesn't matter who manufactured the product or what kind of API it is using. This allows you to design universal page templates that can work with any device you throw at it.

## Capabilities

### Acceleration Sensor
The `AccelerationSensor` capability allows for acceleration detection.

| Attributes        | Type  | Possible Values          |
|------------------|-------|--------------------------|
| `Acceleration`   | Enum  | Active, Inactive         |
| `LastAcceleration`| Date  |                          |

### Air Quality Sensor
The `AirQualitySensor` capability gets the air quality number.

| Attributes      | Type    | Unit | Possible Values |
|----------------|---------|------|-----------------|
| `AirQuality`   | Integer | CAQI | 0-100           |

### Alarm
The `Alarm` capability allows for interacting with devices that serve as alarms.

| Attributes      | Type  | Possible Values          |
|----------------|-------|--------------------------|
| `Alarm`        | Enum  | Both, Off, Siren, Strobe |

### Audio Bass
The `AudioBass` capability allows for the control of audio bass.

| Attributes  | Type  | Unit | Possible Values  |
|-------------|-------|------|------------------|
| `Bass`      | Float | dB   | -10.0 - 10.0     |

### Audio Mute
The `AudioMute` capability allows for the control of audio mute.

| Attributes | Type  | Possible Values          |
|------------|-------|--------------------------|
| `Mute`     | Enum  | Muted, Unmuted          |

### Audio Sound Mode
The `AudioSoundMode` capability allows for the control of audio sound mode.

| Attributes         | Type   | Possible Values       |
|-------------------|--------|-----------------------|
| `SoundMode`       | String |                       |
| `SupportedSoundModes`| Array | []                    |

### Audio Track Data
The `AudioTrackData` capability gets the value of the audio track data.

| Attributes                       | Type   | Possible Values  |
|---------------------------------|--------|------------------|
| `AudioTrackData.Source`         | String |                  |
| `AudioTrackData.Title`          | String |                  |
| `AudioTrackData.Artist`         | String |                  |
| `AudioTrackData.Album`          | String |                  |
| `AudioTrackData.AlbumArtUri`    | String |                  |
| `AudioTrackData.Duration`       | Time   | 0:00 - 24:00:00  |

### Audio Treble
The `AudioTreble` capability allows for the control of audio treble.

| Attributes  | Type  | Unit | Possible Values  |
|-------------|-------|------|------------------|
| `Treble`    | Float | dB   | -10.0 - 10.0     |

### Audio Volume
The `AudioVolume` capability allows for the control of audio volume using a percentage scale.

| Attributes | Type    | Unit | Possible Values  |
|------------|---------|------|------------------|
| `Volume`   | Integer | %    | 0-100            |

### Audio Volume Decibel
The `AudioVolumeDecibel` capability allows for the control of audio volume using a decibel scale.

| Attributes       | Type    | Unit | Possible Values  |
|-----------------|---------|------|------------------|
| `VolumeDecibel` | Float   | dB   | -80.0 - 18.0    |

### Battery
The `Battery` capability defines that the device has a battery.

| Attributes | Type    | Unit | Possible Values  |
|------------|---------|------|------------------|
| `Battery`  | Integer | %    | 0-100            |

### Binary Sensor
The `BinarySensor` capability allows reading the value of a binary sensor device.

| Attributes    | Type  | Possible Values          |
|---------------|-------|--------------------------|
| `Binary`     | Enum  | On, Off                  |
| `LastBinary` | Date  |                          |

### Button
The `Button` capability allows reading the state of a physical button.

| Attributes | Type  | Possible Values          |
|------------|-------|--------------------------|
| `Button`   | Enum  | Pushed, Standby          |

### Carbon Dioxide Measurement
The `CarbonDioxideMeasurement` capability measures carbon dioxide levels.

| Attributes      | Type    | Unit | Possible Values  |
|----------------|---------|------|------------------|
| `CarbonDioxide`| Integer | ppm  | 0-1000000        |
