---
layout: documentation
title: openHAB Skill For Amazon Alexa
source: https://github.com/openhab/openhab-alexa/blob/main/docs/USAGE.md
description: "Alexa is an intelligent personal assistant developed by Amazon and designed to run on smart speakers and devices such as the Amazon Echo and Echo Dot."
---
# Amazon Alexa Smart Home Skill
Alexa is an intelligent personal assistant developed by Amazon and designed to run on smart speakers and devices such as the Amazon Echo and Dot.
This certified Amazon Smart Home Skill allows users to control their openHAB powered smart home with natural voice commands. Lights, locks, thermostats, AV devices, sensors and many other device types can be controlled through a user's Amazon Alexa powered device like the Echo or Echo Dot.
This page describes how to use the [openHAB Skill for Amazon Alexa](https://www.amazon.com/openHAB-Foundation/dp/B01MTY7Z5L).
The skill connects your openHAB setup through the [myopenHAB.org](http://myopenHAB.org) cloud service to Amazon Alexa.
## Table of Contents
* [Requirements](#requirements)
* [Recommendations](#recommendations)
* [Item Labels](#item-labels)
* [Regional Settings](#regional-settings)
* [Concept](#concept)
* [Single Endpoint](#single-endpoint)
* [Group Endpoint](#group-endpoint)
* [Item State](#item-state)
* [Item Unit of Measurement](#item-unit-of-measurement)
* [Networking Capabilities](#networking-capabilities)
* [Generic Capabilities](#generic-capabilities)
* [Semantic Extensions](#semantic-extensions)
* [Item Configuration](#item-configuration)
* [Textual Configuration](#textual-configuration)
* [UI Configuration](#ui-configuration)
* [Device Types](#device-types)
* [Device Attributes](#device-attributes)
* [Troubleshooting](#troubleshooting)
* [Response Errors](#response-errors)
* [Additional Information](#additional-information)
* [Regional Availability](#regional-availability)
* [Asset Catalog](#asset-catalog)
* [Semantic Catalog](#semantic-catalog)
* [Unit of Measurement Catalog](#unit-of-measurement-catalog)
* [Capability Names Not Allowed](#capability-names-not-allowed)
* [Other openHAB Integrations for Amazon Alexa](#other-openhab-integrations-for-amazon-alexa)
## Latest Changes
* Revamped [item configuration](#item-configuration) syntax using device metadata concept.
* Deprecated previous syntax, although backward compatible for the time being.
* Added new device capabilities:
* [Camera](#camera-attributes)
* [Door/Window Covering](#cover-attributes)
* [Fan](#fan-attributes)
* [Networking](#networking-attributes)
* [Vacuum](#vacuum-attributes)
* Updated existing capabilities:
* New security [arm state](#armstate) errors handling.
* Support for [input](#input) custom mappings.
* Support for [playback stop](#playbackstop) requests.
* Support for [thermostat hold](#thermostathold) setting and [thermostat fan](#thermostatfan) mode.
* Added new [custom asset ids](#custom-asset-catalog).
* Added new [custom semantic extensions](#custom-semantic-catalog).
* Deprecated general item sensor concept support for decoupling between item receiving command and item states.
* Decoupled state support maintained for [`LockState`](#lockstate) and added for [`OpenState`](#openstate).
* Removed version 2 tags support for openHAB 3.0 and above.
# Requirements
::: tip
This integration relies on the cloud connector addon.
More information can be found in the corresponding [docs page](https://www.openhab.org/link/openhabcloud).
:::
* openHAB Cloud Connector configured using myopenHAB.org
* Amazon account
* Amazon Echo, Amazon Echo Dot or compatible Amazon Alexa devices
# Recommendations
## Item Labels
Matching of voice commands to items happens based on the item label (e.g. "Kitchen Light"). As an alternative, the metadata parameter `name` can be used over the item label. If neither are specified, the item will be ignored. It is therefore advisable, to choose labels that can be used to form natural commands. It is important to note that each labels needs to be unique to prevent any [duplicate issues](#duplicate-device-names). As an example, compare *Alexa, turn on the Kitchen Light* vs *Alexa, turn on the Ground Floor LEDs Kitchen*.
## Regional Settings
In order for the skill to determine your default language and measurement system to use during the discovery process, it is important to set your server regional settings including the language, country/region and measurement system properties. These can either be accomplished by using the admin UI, or setting the `language`, `region` and `measurementSystem` properties for `org.openhab.i18n` service in `$OPENHAB_CONF/services/runtime.cfg`. If these settings aren't defined, the skill will either use the item level configuration, if available, to determine these properties, or fallback to `en` language and `SI` measurement system, as default values.
# Concept
The Alexa skill API uses the concept of "endpoints". Endpoints are addressable entities that expose one or more capabilities. An example endpoint may be a light switch, which has a single capability to control power and report its state (ON/OFF). A more complex endpoint may be a thermostat which has many capabilities to control and report temperature, setpoints, modes, etc...
There is a maximum of 300 endpoints limit per user with 100 capabilities per endpoint. This restriction is driven by the [Alexa Smart Home API](https://developer.amazon.com/docs/device-apis/alexa-discovery.html#limits).
## Single Endpoint
Single items in openHAB can be mapped to a single endpoint in Alexa through the use of the [item metadata](https://www.openhab.org/docs/concepts/items.html#item-metadata).
A simple example of this is a light switch. In openHAB a light switch is defined as a "Switch" item and responds to ON or OFF commands.
```xtend
Switch LightSwitch "Light Switch" {alexa="Light"}
```
Setting this on a single item will create an Alexa endpoint as a lighting device with the spoken addressable name "Light Switch" and power control capability. You can ask *Alexa, turn on Light Switch*.
In openHAB, a "Dimmer" item responds to both brightness and on/off commands. Using the same metadata device on that item will give power and brightness control to the Alexa endpoint. Alternatively, the device name can be defined in the metadata parameters, instead of the item label, along with a customized description that will show in the Alexa app. You can ask *Alexa, turn on Light Switch* as well as *Alexa, set Light Switch to 50%*.
```xtend
Dimmer LightSwitch {alexa="Light" [name="Light Switch", description="Super Smart Light"]}
```
The same for a "Color" item responding to color, brightness and on/off commands. If you need to limit the default capabilities, you can specify in the [item configuration](#item-configuration) each device attribute your device supports, prefixed with the `Light` device type. The example below shows a colored light switch with color and power on/off controls only. The brightness control would be omitted.
```xtend
Color LightSwitch "Light Switch" {alexa="Light.Color,Light.PowerState"}
```
For a general switch, the `Switch` metadata device will give the same capability but as a switchable device Alexa endpoint.
```xtend
Switch ApplianceSwitch "Appliance Switch" {alexa="Switch"}
```
By default, a `Switch` device type will have the category "SWITCH", which can be changed using a more specific device type from the [supported list](#device-types). For example, using the `CoffeeMaker` device type will retain the same power on/off capability but will show as a coffee maker in the Alexa app.
```xtend
Switch CoffeeMaker "Coffee Maker" {alexa="CoffeeMaker"}
```
Likewise, more complex single endpoints can be configured. Such as using a `Blind` device type, which responds to [position state](#positionstate) requests by default.
```xtend
Rollershutter Blind "Blind" {alexa="Blind"}
```
## Group Endpoint
While single mapping items works for many use cases, occasionally multiple openHAB items need to be mapped to a single endpoint in Alexa. When using a group item, keep in mind that only one specific attribute capability per group can be defined, except for [generic capabilities](#generic-capabilities).
Only [functional groups](https://www.openhab.org/docs/configuration/items.html#groups) (no group type) can be configured as group endpoint. [State derived groups](https://www.openhab.org/docs/configuration/items.html#derive-group-state-from-member-items) will be considered as single endpoints based on their defined group type.
The below example exposes 3 separate single endpoints, with "Light 1" and "Light 2" as independent lights with brightness and on/off controls, while and "Light Group" controlling these two as a group of lights with on/off control.
```xtend
Group:Switch:OR(ON,OFF) LightGroup "Light Group" {alexa="Light"}
Dimmer Light1 "Light 1" (LightGroup) {alexa="Light"}
Dimmer Light2 "Light 2" (LightGroup) {alexa="Light"}
```
Below are examples for various use cases currently natively supported by the skill.
In openHAB a thermostat is modeled as many different items, typically there are items for setpoints (target, heat, cool), modes, and the current temperature. To map these items to a single endpoint in Alexa, we will add them to a group which also uses "Alexa" metadata. When items are Alexa-enabled, but are also a member of a group Alexa-enabled, they will be added to the group endpoint and not exposed as their own endpoints.
```xtend
Group Thermostat "Bedroom" {alexa="Thermostat"}
Number Temperature "Temperature [%.1f °F]" (Thermostat) {alexa="CurrentTemperature"}
Number CoolSetpoint "Cool Setpoint [%.1f °F]" (Thermostat) {alexa="CoolingSetpoint"}
Number HeatSetpoint "Heat Setpoint [%.1f °F]" (Thermostat) {alexa="HeatingSetpoint"}
Number Mode "Mode [%s]" (Thermostat) {alexa="HeatingCoolingMode"}
```
The group metadata also describes the category for the endpoint, in this case a "Thermostat". In this example an endpoint is created called "Bedroom", its various capabilities are mapped to different openHAB items. You can ask *Alexa, set the Bedroom thermostat to 72* and the "HeatSetpoint" will receive the command, if currently in heating mode, likewise you can ask *Alexa, what's the temperature of the Bedroom?* and the current state of "Temperature" will be returned.
When mapping items, sometime we need to pass additional parameters to Alexa to set things like what scale to use (Fahrenheit) or what values our items expect for certain states (thermostat modes). These parameters can be passed in the metadata properties, if they are omitted, then reasonable defaults are used. In our above example we may wish to use Fahrenheit as our temperature scale, and map the mode strings to numbers. This would look like:
```xtend
Group Thermostat "Thermostat" {alexa="Thermostat"}
Number Temperature "Temperature [%.1f °F]" (Thermostat) {alexa="CurrentTemperature" [scale="Fahrenheit"]}
Number CoolSetpoint "Cool Setpoint [%.1f °F]" (Thermostat) {alexa="CoolingSetpoint" [scale="Fahrenheit"]}
Number HeatSetpoint "Heat Setpoint [%.1f °F]" (Thermostat) {alexa="HeatingSetpoint" [scale="Fahrenheit"]}
Number Mode "Mode [%s]" (Thermostat) {alexa="HeatingCoolingMode" [OFF=0,HEAT=1,COOL=2,AUTO=3]}
Switch Hold "Hold [%s]" (Thermostat) {alexa="ThermostatHold"}
String Fan "Fan [%s]" (Thermostat) {alexa="ThermostatFan"}
```
For thermostat integration such as Nest or Ecobee, a more complex configuration could involve having three setpoints and additional cooling and heating setpoints for eco mode when these are different than the standard ones. Compared to the previous example, the temperature scale here will be based on the item state presentation unit (`°F` => Fahrenheit) and the thermostat mode will be mapped according to the linked binding channel (e.g. `{channel="nest:..."}`).
```xtend
Group Thermostat "Thermostat" {alexa="Thermostat"}
Number Temperature "Temperature [%.1f °F]" (Thermostat) {alexa="CurrentTemperature"}
Number TargetSetpoint "Target Setpoint [%.1f °F]" (Thermostat) {alexa="TargetTemperature"}
Number CoolSetpoint "Cool Setpoint [%.1f °F]" (Thermostat) {alexa="CoolingSetpoint"}
Number HeatSetpoint "Heat Setpoint [%.1f °F]" (Thermostat) {alexa="HeatingSetpoint"}
Number EcoCoolSetpoint "Eco Cool Setpoint [%.1f °F]" (Thermostat) {alexa="EcoCoolingSetpoint"}
Number EcoHeatSetpoint "Eco Heat Setpoint [%.1f °F]" (Thermostat) {alexa="EcoHeatingSetpoint"}
String Mode "Mode [%s]" (Thermostat) {alexa="HeatingCoolingMode"}
```
A smart bulb with shade of colors controls.
```xtend
Group Bulb "Bulb" {alexa="Light"}
Color Color "Color" (Bulb) {alexa="PowerState,Brightness,Color"}
Dimmer Temperature "Temperature" (Bulb) {alexa="ColorTemperature"}
```
A smart bulb with shade of white controls.
```xtend
Group Bulb "Bulb" {alexa="Light"}
Dimmer White "White" (Bulb) {alexa="PowerState,Brightness"}
Dimmer Temperature "Temperature" (Bulb) {alexa="ColorTemperature"}
```
A window blind with position and tilt angle controls.
```xtend
Group Blind "Blind" {alexa="Blind"}
Rollershutter Position "Position" (Blind) {alexa="PositionState"}
Rollershutter Tilt "Tilt" (Blind) {alexa="TiltAngle"}
```
A fan with 6-speed, direction, oscillate and power on/off controls.
```xtend
Group Fan "Fan" {alexa="Fan"}
Number Speed "Speed" (Fan) {alexa="FanSpeed" [speedLevels=6]}
Switch Direction "Direction" (Fan) {alexa="FanDirection"}
Switch Oscillate "Oscillate" (Fan) {alexa="FanOscillate"}
Switch Power "Power" (Fan) {alexa="PowerState"}
```
A stereo with volume, mute, input, channel, playback, equalizer and power on/off controls.
```xtend
Group Stereo "Stereo" {alexa="Speaker"}
Number Volume "Volume" (Stereo) {alexa="VolumeLevel"}
Switch Mute "Mute" (Stereo) {alexa="MuteState"}
Switch Power "Power" (Stereo) {alexa="PowerState"}
String Input "Input" (Stereo) {alexa="Input" [supportedInputs="HDMI1,TV"]}
Number Channel "Channel" (Stereo) {alexa="Channel"}
String KeyCode "Key Code" (Stereo) {alexa="ChannelStep" [CHANNEL_UP="CHUP", CHANNEL_DOWN="CHDOWN"]}
Player Playback "Playback" (Stereo) {alexa="Playback"}
Switch Stop "Stop" (Stereo) {alexa="PlaybackStop"}
Number Bass "Bass" (Stereo) {alexa="EqualizerBass" [range="-10:10"]}
Number Midrange "Mid" (Stereo) {alexa="EqualizerMidrange" [range="-10:10"]}
Number Treble "Treble" (Stereo) {alexa="EqualizerTreble" [range="-10:10"]}
String Mode "Mode" (Stereo) {alexa="EqualizerMode" [MOVIE="movie",MUSIC="music",TV="tv"]}
```
A security panel with alarm mode and different alarm/alert states.
```xtend
Group SecurityPanel "Security Panel" {alexa="SecurityPanel"}
Number ArmMode "Arm Mode" (SecurityPanel) {alexa="ArmState" [DISARMED=0,ARMED_STAY=1,ARMED_AWAY=2]}
Switch BurglaryAlarm "Burglary" (SecurityPanel) {alexa="BurglaryAlarm"}
Switch FireAlarm "Fire" (SecurityPanel) {alexa="FireAlarm"}
Switch CarbonMonoxideAlarm "Carbon Monoxide" (SecurityPanel) {alexa="CarbonMonoxideAlarm"}
Switch WaterAlarm "Water" (SecurityPanel) {alexa="WaterAlarm"}
Switch AlarmAlert "Alarm Alert" (SecurityPanel) {alexa="AlarmAlert"}
Switch ReadyAlert "Ready Alert" (SecurityPanel) {alexa="ReadyAlert"}
Switch TroubleAlert "Trouble Alert" (SecurityPanel) {alexa="TroubleAlert"}
Switch ZonesAlert "Zones Alert" (SecurityPanel) {alexa="ZonesAlert"}
```
A vacuum cleaner with vacuum mode and fan speed controls, and battery level status.
```xtend
Group Vacuum "Vacuum" {alexa="VacuumCleaner"}
String Mode "Mode" (Vacuum) {alexa="VacuumMode"}
Dimmer FanSpeed "Fan Speed" (Vaccum) {alexa="FanSpeed"}
Number BatteryLevel "Battery Level" (Vacuum) {alexa="BatteryLevel"}
```
A water heater with temperature and power on/off controls.
```xtend
Group WaterHeater "Water Heater" {alexa="WaterHeater"}
Number Temperature "Temperature [%.1f °C]" (WaterHeater) {alexa="CurrentTemperature"}
Number TargetSetpoint "Target Setpoint [%.1f °C]" (WaterHeater) {alexa="TargetTemperature"}
Switch Power "Power" (WaterHeater) {alexa="PowerState"}
```
## Item State
Item states, reported back to Alexa, for numerical item types are formatted based on their [item state presentation](https://www.openhab.org/docs/configuration/items.html#state-presentation) definition if configured. This means you can control the precision of number values (e.g. `%.1f °C` will limit reported temperature value to one decimal point).
For items that don't have a state, these can be configured as not retrievable, automatically when the item [parameter `autoupdate`](https://www.openhab.org/docs/configuration/items.html#parameter-autoupdate) is set as `autoupdate="false"` or by using metadata parameter `retrievable="false"`. In that case, the skill will not report back the state of the given item to Alexa. It is important to note that this will affect the usability of some of the advanced features in the Alexa app that require state reporting.
```xtend
Switch Switch1 "Switch 1" {alexa="Switch", autoupdate="false"}
Switch Switch2 "Switch 2" {alexa="Switch" [retrievable="false"]}
```
For item decouple state, only certain [device attributes](#device-attributes), such as [`lockState`](#lockstate) and [`openState`](#openstate), supports that feature using a separate item to report the current state over the actionable one, to improve state reporting accuracy.
It is important to note since asynchronous response is not supported by the skill as of yet, the decouple state will need to be available right away for the skill to report the device latest status.
Below is an example of a lock device with decouple state.
```xtend
Group Lock "Lock" {alexa="Lock"}
Switch Control "Control" (Lock) {alexa="TargetLockState"}
Contact Status "Status" (Lock) {alexa="CurrentLockState"}
```
## Item Unit of Measurement
With the introduction of the [unit of measurement](https://www.openhab.org/docs/concepts/units-of-measurement.html) concept, the item unit can be automatically determined for thermostat and temperature using that feature, removing the need of having to set the metadata scale parameter for each of the relevant items or groups.
Below are three examples; the scale on the first will be set to Fahrenheit based on how it is defined in the item state presentation pattern, the second one will be set to Fahrenheit based on the `unit` metadata (introduced in openHAB 4.0), and the last one will be set based on your openHAB system [regional settings](#regional-settings) (US=Fahrenheit; SI=Celsius).
```xtend
Number:Temperature Temperature1 "Temperature [%.1f °F]" {alexa="CurrentTemperature"}
Number:Temperature Temperature2 "Temperature" {alexa="CurrentTemperature", unit="°F"}
Number:Temperature Temperature3 "Temperature" {alexa="CurrentTemperature"}
```
## Networking Capabilities
To interact with the networking capabilities of a router, such as controlling the network access for a specific device, the [networking attributes](#networking-attributes) are available to configure a representation of a home network and its connected devices.
In order to take advantage of these capabilities, your router must be configured as a [group endpoint](#group-endpoint) based on [`HomeNetwork`](#homenetwork) supported device types. If it doesn't have any other capabilities, it can be an empty group. Likewise, connected devices must be configured based on [`ConnectedDevice`](#connecteddevice) supported device types and metadata parameters.
```xtend
Group Router "Router" {alexa="Router"}
Group Laptop "Laptop" (Router) {alexa="Laptop" [macAddress="00:21:86:B5:6E:10"]}
Switch Access1 "Access" (Laptop) {alexa="NetworkAccess"}
Group Tablet "Tablet" (Router) {alexa="Tablet" [macAddress="00:21:86:B5:6E:11"]}
Switch Access2 "Access" (Tablet) {alexa="NetworkAccess"}
```
## Generic Capabilities
For general-purpose capabilities that can be used to model different components of a device, which aren't covered by the existing [device attributes](#device-attributes), the [generic attributes](#generic-attributes) are available to highly customize how you interact with that device via Alexa, using various metadata parameters to model the full feature set of a complex device.
A washer and its settings modeled with multiple mode-type generic attributes.
```xtend
Group Washer "Washer" {alexa="Washer"}
String Cycle "Cycle" (Washer) {alexa="Mode" [capabilityNames="Wash Cycle,Wash Setting", supportedModes="Normal=Normal:Cottons,Delicate=@Value.Delicate:Knits", ordered=false]}
Number Temperature "Temperature" (Washer) {alexa="Mode" [capabilityNames="Wash Temperature,@Setting.WaterTemperature", supportedModes="0=Cold:Cool,1=Warm,2=Hot", ordered=true]}
String Status "Status" (Washer) {alexa="Mode" [capabilityNames="Wash Status", supportedModes="Washing,Rinsing,Spinning", nonControllable=true]}
Switch Power "Power" (Washer) {alexa="PowerState"}
```
A camera and its settings modeled with multiple range-type generic attributes.
```xtend
Group Camera "Camera" {alexa="Camera"}
Number Pan "Pan" (Camera) {alexa="RangeValue" [capabilityNames="Pan,Rotate", supportedRange="-200:200:1", presets="-200=Far Left,0=Center,200=Far Right"]}
Number Tilt "Tilt" (Camera) {alexa="RangeValue" [capabilityNames="@Setting.Tilt", supportedRange="-50:50:1", presets="-50=@Value.Down,0=Center,50=@Value.Up"]}
Number Zoom "Zoom" (Camera) {alexa="RangeValue" [capabilityNames="Zoom", supportedRange="0:200:50", presets="0=@Value.Minimum,200=@Value.Maximum"]}
String Stream "Stream" (Camera) {alexa="CameraStream"}
Switch Power "Power" (Camera) {alexa="PowerState"}
```
A fireplace and its settings modeled with a mix of range/mode-type generic attributes.
```xtend
Group Fireplace "Fireplace" {alexa="Other"}
Number Burners "Burners" (Fireplace) {alexa="RangeValue" [capabilityNames="@Setting.Preset", supportedRange="1:3:1", presets="1=@Value.Low:@Value.Minimum,2=@Value.Medium:Normal,3=@Value.High:@Value.Maximum"]}
String Flame "Flame" (Fireplace) {alexa="Mode" [capabilityNames="Flame Type", supportedModes="Campfire=Campfire:Normal,Candle,IceFlame=Ice Flame"]}
Color Color "Color" (Fireplace) {alexa="Brightness,Color"}
Switch Power "Power" (Fireplace) {alexa="PowerState"}
```
A guitar amp and its settings modeled with a mix of range/mode/toggle-type generic attributes.
```xtend
Group GuitarAmp "Guitar Amp" {alexa="Other"}
Switch Overdrive "Overdrive" (GuitarAmp) {alexa="ToggleState" [capabilityNames="Overdrive"]}
Number Gain "Gain" (GuitarAmp) {alexa="RangeValue" [capabilityNames="Gain,Drive", supportedRange="1:10:1"]}
String Preset "Preset" (GuitarAmp) {alexa="Mode" [capabilityNames="@Setting.Preset,Effect", supportedModes="Normal=Normal:Standard,LowGain=Low Gain,LeadBoost=Lead Boost,Metal"]}
Number Volume "Volume" (GuitarAmp) {alexa="VolumeLevel"}
Switch Mute "Mute" (GuitarAmp) {alexa="MuteState"}
Number Bass "Bass" (GuitarAmp) {alexa="EqualizerBass"}
Number Midrange "Midrange" (GuitarAmp) {alexa="EqualizerMidrange"}
Number Treble "Treble" (GuitarAmp) {alexa="EqualizerTreble"}
Switch Power "Power" (GuitarAmp) {alexa="PowerState"}
```
A router and its settings modeled with a mix of mode/toggle-type generic attributes.
```xtend
Group Router "Router" {alexa="Router"}
Switch 2GGuestWiFi "2G Guest WiFi" (Router) {alexa="ToggleState" [capabilityNames="@Setting.2GGuestWiFi"]}
Switch 5GGuestWiFi "5G Guest WiFi" (Router) {alexa="ToggleState" [capabilityNames="@Setting.5GGuestWiFi"]}
String Mode "Mode" (Router) {alexa="Mode" [capabilityNames="@Setting.Mode", supportedModes="Normal,Gaming,Streaming"]}
```
A smart watch and its settings modeled with multiple read-only range-type generic attributes.
```xtend
Group SmartWatch "SmartWatch" {alexa="Wearable"}
Number Steps "Steps" (SmartWatch) {alexa="RangeValue" [capabilityNames="Steps", supportedRange="0:100000:1", nonControllable=true]}
Number Floors "Floors" (SmartWatch) {alexa="RangeValue" [capabilityNames="Floors", supportedRange="0:1000:1", nonControllable=true]}
Number Battery "Battery" (SmartWatch) {alexa="BatteryLevel"}
```
## Semantic Extensions
Semantic extensions are used to further customize how to interact with a device. This functionality is only supported by the [generic attributes](#generic-attributes). The Alexa API currently provides `Close`, `Open`, `Lower` and `Raise` interactions, removing the need for the Alexa routine workaround to control certain devices such as blinds or doors. Additionally, the skill includes `Pause`, `Resume`, `Stop`, `TurnOff` and `TurnOn` custom interactions. A semantic is composed of an action mapping and, in some cases, a state mapping. The actions are used for interacting with the device and the states for displaying its current semantic state in the Alexa app (Depending on [device types](#device-types)). The supported action and state names are listed in the [semantic catalog](#semantic-catalog).
It is important to note that only one given semantic is allowed per endpoint. Additionally, adjust action mappings (e.g `Raise=(+10)`) are only supported by Alexa API action semantics.
Here is how some the [device attributes](#device-attributes) using semantic extensions are translating to:
A window blind [position state](#positionstate). For example, when requesting *Alexa, open the blind*, the item will receive command `UP`. Likewise, when asking *Alexa, lower the blind*, it will receive command `DOWN`. And when requesting *Alexa, stop the blind*, it will receive command `STOP`. For position request, since Rollershutter range value are inverted by default, when requesting *Alexa, set the blind to 40%*, the item state will be set to `60`.
```xtend
Rollershutter Blind "Blind" {alexa="Blind.RangeValue" [capabilityNames="@Setting.Position", supportedCommands="UP=@Value.Up:@Value.Open,DOWN=@Value.Down:@Value.Close,STOP=@Value.Stop", supportedRange="0:100:1", unitOfMeasure="Percent", actionMappings="Close=DOWN,Open=UP,Lower=DOWN,Raise=UP,Stop=STOP", stateMappings="Closed=100,Open=0:99"]}
```
A window curtain [position state](#positionstate). For example, when requesting *Alexa, open the curtain*, the item state will be set to `100`. Likewise, when asking *Alexa, close the blind*, it be set to `0`.
```xtend
Dimmer Curtain "Curtain" {alexa="Curtain.RangeValue" [capabilityNames="@Setting.Position", supportedRange="0:100:1", unitOfMeasure="Percent", actionMappings="Close=0,Open=100", stateMappings="Closed=0,Open=1:100"]}
```
A door [open state](#openstate). For example, when requesting *Alexa, open the door*, the item state will be set to `ON`.
```xtend
Switch Door "Door" {alexa="Door.Mode" [capabilityNames="@Setting.Opening", supportedModes="ON=@Value.Open,OFF=@Value.Close", actionMappings="Close=OFF,Open=ON,Lower=OFF,Raise=ON", stateMappings="Closed=OFF,Open=ON"]}
```
A vacuum cleaner [mode](#vacuummode). For example, when requesting *Alexa, turn on the vacuum cleaner*, the item state will be set to `CLEAN`. Likewise, when asking *Alexa, pause the vacuum cleaner*, it be set to `PAUSE`. And when requesting *Alexa, resume the vacuum cleaner*, it will be set to `CLEAN` again.
```xtend
String VacuumCleaner "Vacuum Cleaner" {alexa="VacuumCleaner.Mode" [capabilityNames="@Setting.Mode", supportedModes="CLEAN=@Setting.Clean,DOCK=@Setting.Dock,SPOT=@Setting.Spot,PAUSE=@Setting.Pause,STOP=@Setting.Stop", actionMappings="Resume=CLEAN,Pause=PAUSE,Stop=STOP,TurnOn=CLEAN,TurnOff=DOCK"]}
```
# Item Configuration
In order to configure an Alexa endpoint, one or more device configuration, composed of a [type](#device-types) and an [attribute](#device-attributes) `{alexa="."}`, must be defined in the `Alexa` item metadata settings. Depending on the type of endpoint being configured, the device type or attribute can be omitted.
The metadata settings can be configured using [textual files](#textual-configuration) or the [graphical UI](#ui-configuration). Using both methods on the same item may result in some UI integration incompatibility. It is highly recommended to use either-or.
## Textual Configuration
For [single endpoints](#single-endpoint), when a device is only composed of a type, the default attribute(s) of that type are used. Using the single dimmer light shorthand example from above, the `Light` device type default attributes for a "Dimmer" item are [`PowerState`](#powerstate) and [`Brightness`](#brightness). The fully qualified definition would be:
```xtend
Dimmer LightSwitch "Light Switch" {alexa="Light.PowerState,Light.Brightness"} // Equivalent to {alexa="Light"}
```
Likewise, when a device is only composed of an attribute, its type would be derived from the default category of each configured attribute. Using the same example again, using [`PowerState`](#powerstate) and [`Brightness`](#brightness) attributes, the categories would be respectively "SWITCH" and "LIGHT" with the former being the main endpoint display category. While not providing a device type is supported, it highly recommended to always specify one, when configuring a single endpoint, to prevent potential functionality limitations on the Alexa end.
```xtend
Dimmer LightSwitch "Light Switch" {alexa="PowerState,Brightness"}
```
For [group endpoints](#group-endpoint), the metadata at the group item level can only be a device type. This defines the endpoint category for all the item capabilities part of it and the supported attributes. The associated items metadata configuration doesn't need to specify that same device type unless aiming to use the default attributes of that device type. Each attribute needs to be supported by the group device type, otherwise they would be ignored. Using the group smart color bulb example above, the fully qualified definition would be:
```xtend
Group Bulb "Bulb" {alexa="Light"}
Color Color "Color" (Bulb) {alexa="Light.PowerState,Light.Brightness,Light.Color"}
Dimmer Temperature "Temperature" (Bulb) {alexa="Light.ColorTemperature"}
```
A better way to configure this endpoint, since the `Light` device type default attributes for a "Color" item are [`PowerState`](#powerstate), [`Brightness`](#brightness) and [`Color`](#color), the device type with no attribute can be used as well at the item capability level:
```xtend
Group Bulb "Bulb" {alexa="Light"}
Color Color "Color" (Bulb) {alexa="Light"} // Equivalent to {alexa="PowerState,Brightness,Color"}
Dimmer Temperature "Temperature" (Bulb) {alexa="ColorTemperature"}
```
## UI Configuration
To add the metadata settings to an item in MainUI, click on `Settings` and then `Items` from the sidebar logged in as an administrator, and select the item to configure from the list. Click on `Add Metadata` and select the `Amazon Alexa` namespace.

Click on `Alexa Device Type/Attribute`.

Select the attribute to configure the item as.

To select multiple attributes, click the `Multiple` checkbox in the top right corner of the metadata configuration page.

Once the attribute(s) are selected, configure the associated metadata parameters if necessary. Some parameters may only be visible when the `Show Advanced` checkbox is enabled. When finished, click `Save` located in the top right corner to save the metadata settings.

For group items, click on `Alexa Device Type` instead and select the [device type](#device-types). Each group member with Alexa metadata settings will show under the `Group Endpoint Capabilities` section. Any invalid capability part of the group will show as ignored.

Click on any of the active group capabilities to access the associated item metadata settings directly. Each of them will display the [group endpoint(s)](#group-endpoint) they are part of, and their attribute selection menu will be filtered based on the group supported and already configured capabilities.

## Device Types
A device type represents an [Alexa display category](https://developer.amazon.com/docs/device-apis/alexa-discovery.html#display-categories) that affects how the endpoint appears in the [Alexa app](https://developer.amazon.com/docs/smarthome/best-practices-for-the-alexa-app.html#how-smart-home-devices-display-in-the-alexa-app) and in some cases, the associated features.
It is important to note that all the below device types supports the [generic attributes](#generic-attributes).
Default attributes for each type are displayed in *italic* and are depending on supported item types.
Device Types | Supported Attributes | Description
-------------|----------------------|------------
`AirConditioner` | *[`PowerState`](#powerstate)*, [`TargetTemperature`](#targettemperature), [`CurrentTemperature`](#currenttemperature), [`FanSpeed`](#fanspeed), [`FanDirection`](#fandirection), [`FanOscillate`](#fanoscillate) | A device that cools the air in interior spaces.
`AirFreshener` | Same as `Fan` | A device that emits pleasant odors and masks unpleasant odors in interior spaces.
`AirPurifier` | Same as `Fan` | A device that improves the quality of air in interior spaces.
`Automobile` | [`BatteryLevel`](#batterylevel), [`FanSpeed`](#fanspeed), [`LockState`](#lockstate), [`PowerState`](#powerstate), [`TargetTemperature`](#targettemperature), [`CurrentTemperature`](#currenttemperature) | A motor vehicle (automobile, car).
`AutomobileAccessory` | [`BatteryLevel`](#batterylevel), [`CameraStream`](#camerastream), [`FanSpeed`](#fanspeed), [`PowerState`](#powerstate) | A smart device in an automobile, such as a dash camera.
`Blind`, `Curtain`, `Shade` | *[`OpenState`](#openstate)*, *[`PositionState`](#positionstate)*, [`TiltAngle`](#tiltangle), [`TargetOpenState`](#targetopenstate), [`CurrentOpenState`](#currentopenstate) | A window covering on the inside of a structure.
`BluetoothSpeaker` | *[`PowerState`](#powerstate)*, *[`VolumeLevel`](#volumelevel)*, [`VolumeStep`](#volumestep), [`MuteState`](#mutestate), [`MuteStep`](#mutestep), [`EqualizerBass`](#equalizerbass), [`EqualizerMidrange`](#equalizermidrange), [`EqualizerTreble`](#equalizertreble), [`EqualizerMode`](#equalizermode), [`Channel`](#channel), [`ChannelStep`](#channelstep), [`Input`](#input), [`Playback`](#playback), [`PlaybackStop`](#playbackstop), [`PlaybackStep`](#playbackstep), [`BatteryLevel`](#batterylevel) | A speaker that connects to an audio source over Bluetooth.
`Camera` | *[`PowerState`](#powerstate)*, *[`CameraStream`](#camerastream)*, [`BatteryLevel`](#batterylevel) | A security device with video or photo functionality.
`ChristmasTree` | Same as `Light` | A religious holiday decoration that often contains lights.
`CoffeeMaker` | *[`PowerState`](#powerstate)* | A device that makes coffee.
`Computer` | *[`PowerState`](#powerstate)*, [`NetworkAccess`](#networkaccess) | A non-mobile computer, such as a desktop computer.
`ContactSensor` | *[`ContactDetectionState`](#contactdetectionstate)*, [`BatteryLevel`](#batterylevel) | An endpoint that detects and reports changes in contact between two surfaces.
`Dishwasher` | *[`PowerState`](#powerstate)* | A device that cleans dishes.
`Door` | *[`OpenState`](#openstate)*, [`TargetOpenState`](#targetopenstate), [`CurrentOpenState`](#currentopenstate) | A door.
`Doorbell` | Same as `Camera` | A doorbell.
`Dryer` | *[`PowerState`](#powerstate)* | A device that dries wet clothing.
`Fan` | *[`PowerState`](#powerstate)*, *[`FanSpeed`](#fanspeed)*, [`FanDirection`](#fandirection), [`FanOscillate`](#fanoscillate) | A fan.
`GameConsole` | *[`PowerState`](#powerstate)*, [`NetworkAccess`](#networkaccess) | A game console, such as Microsoft Xbox or Nintendo Switch.
`GarageDoor` | *[`OpenState`](#openstate)*, [`TargetOpenState`](#targetopenstate), [`CurrentOpenState`](#currentopenstate), [`ObstacleAlert`](#obstaclealert) | A garage door. Supports unlock by voice code. Only supported in `de-DE`, `en-GB`, `en-US`, `es-ES`, `fr-FR`, and `it-IT`. For other languages, use `Door` instead.
`Headphones` | Same as `BluetoothSpeaker` | A wearable device that transmits audio directly into the ear.
`Hub` | *[`PowerState`](#powerstate)* | A smart-home hub.
`Laptop` | *[`PowerState`](#powerstate)*, [`BatteryLevel`](#batterylevel), [`NetworkAccess`](#networkaccess) | A laptop or other mobile computer.
`Light` | *[`PowerState`](#powerstate)*, *[`Brightness`](#brightness)*, *[`Color`](#color)*, [`ColorTemperature`](#colortemperature) | A light source or fixture.
`Lock` | *[`LockState`](#lockstate)*, [`TargetLockState`](#targetlockstate), [`CurrentLockState`](#currentlockstate), [`BatteryLevel`](#batterylevel) | An endpoint that locks.
`Microwave` | *[`PowerState`](#powerstate)* | A microwave oven.
`MobilePhone` | *[`PowerState`](#powerstate)*, [`BatteryLevel`](#batterylevel), [`NetworkAccess`](#networkaccess) | A mobile phone.
`MotionSensor` | *[`MotionDetectionState`](#motiondetectionstate)*, [`BatteryLevel`](#batterylevel) | An endpoint that detects and reports movement in an area.
`MusicSystem` | Same as `StreamingDevice` | A network-connected music system.
`NetworkHardware` | *[`PowerState`](#powerstate)* | A network router.
`Outlet` | Same as `Switch` | A module that is plugged into an existing electrical outlet, and then has a device plugged into it.
`Oven` | *[`PowerState`](#powerstate)* | An oven cooking appliance.
`Phone` | *[`PowerState`](#powerstate)* | A non-mobile phone, such as landline or an IP phone.
`Printer` | *[`PowerState`](#powerstate)* | A device that prints.
`Router` | Same as `NetworkHardware` | A network router.
`Screen` | Same as `Television` | A projector screen.
`SecurityPanel` | *[`ArmState`](#armstate)*, [`BurglaryAlarm`](#burglaryalarm), [`CarbonMonoxideAlarm`](#carbonmonoxidealarm), [`FireAlarm`](#firealarm), [`WaterAlarm`](#wateralarm), [`AlarmAlert`](#alarmalert), [`ReadyAlert`](#readyalert), [`TroubleAlert`](#troublealert), [`ZonesAlert`](#zonesalert) | A security panel.
`SecuritySystem` | Same as `SecurityPanel` | A security system.
`Shutter`, `Awning` | Same as `Blind` | A window covering on the outside of a structure.
`SlowCooker` | *[`PowerState`](#powerstate)* | An electric cooking device that sits on a countertop, cooks at low temperatures, and is often shaped like a cooking pot.
`Speaker` | *[`PowerState`](#powerstate)*, *[`VolumeLevel`](#volumelevel)*, [`VolumeStep`](#volumestep), [`MuteState`](#mutestate), [`MuteStep`](#mutestep), [`EqualizerBass`](#equalizerbass), [`EqualizerMidrange`](#equalizermidrange), [`EqualizerTreble`](#equalizertreble), [`EqualizerMode`](#equalizermode), [`Channel`](#channel), [`ChannelStep`](#channelstep), [`Input`](#input), [`Playback`](#playback), [`PlaybackStop`](#playbackstop), [`PlaybackStep`](#playbackstep) | A speaker or speaker system.
`StreamingDevice` | *[`PowerState`](#powerstate)*, *[`Playback`](#playback)*, [`PlaybackStop`](#playbackstop), [`PlaybackStep`](#playbackstep), [`Channel`](#channel), [`ChannelStep`](#channelstep), [`Input`](#input), [`VolumeLevel`](#volumelevel), [`VolumeStep`](#volumestep), [`MuteState`](#mutestate), [`MuteStep`](#mutestep), [`EqualizerBass`](#equalizerbass), [`EqualizerMidrange`](#equalizermidrange), [`EqualizerTreble`](#equalizertreble), [`EqualizerMode`](#equalizermode) | A streaming device such as Apple TV, Chromecast, or Roku.
`Switch` | *[`PowerState`](#powerstate)*, *[`PowerLevel`](#powerlevel)*, *[`Percentage`](#percentage)* | A switch wired directly to the electrical system. A switch can control a variety of devices. For lighting devices, use `Light` instead.
`Tablet` | *[`PowerState`](#powerstate)*, [`BatteryLevel`](#batterylevel), [`NetworkAccess`](#networkaccess) | A tablet computer.
`Television` | *[`PowerState`](#powerstate)*, *[`Channel`](#channel)*, [`ChannelStep`](#channelstep), [`Input`](#input), [`VolumeLevel`](#volumelevel), [`VolumeStep`](#volumestep), [`MuteState`](#mutestate), [`MuteStep`](#mutestep), [`EqualizerBass`](#equalizerbass), [`EqualizerMidrange`](#equalizermidrange), [`EqualizerTreble`](#equalizertreble), [`EqualizerMode`](#equalizermode), [`Playback`](#playback), [`PlaybackStop`](#playbackstop), [`PlaybackStep`](#playbackstep) | A television.
`TemperatureSensor` | *[`CurrentTemperature`](#currenttemperature)*, [`BatteryLevel`](#batterylevel) | An endpoint that reports temperature, but does not control it. The temperature data of the endpoint doesn't appear in the Alexa app. If your endpoint also controls temperature, use `Thermostat` instead.
`Thermostat` | *[`HeatingCoolingMode`](#heatingcoolingmode)*, [`TargetTemperature`](#targettemperature), [`CoolingSetpoint`](#coolingsetpoint), [`HeatingSetpoint`](#heatingsetpoint), [`EcoCoolingSetpoint`](#ecocoolingsetpoint), [`EcoHeatingSetpoint`](#ecoheatingsetpoint), [`ThermostatHold`](#thermostathold), [`ThermostatFan`](#thermostatfan), [`CurrentTemperature`](#currenttemperature), [`CurrentHumidity`](#currenthumidity), [`BatteryLevel`](#batterylevel) | An endpoint that controls temperature, stand-alone air conditioners, or heaters with direct temperature control. If your endpoint senses temperature but does not control it, use `TemperatureSensor` instead.
`VacuumCleaner` | *[`PowerState`](#powerstate)*, *[`VacuumMode`](#vacuummode)*, [`FanSpeed`](#fanspeed), [`BatteryLevel`](#batterylevel) | A vacuum cleaner.
`Washer` | *[`PowerState`](#powerstate)* | A device that cleans clothing.
`WaterHeater` | *[`PowerState`](#powerstate)*, [`TargetTemperature`](#targettemperature), [`CurrentTemperature`](#currenttemperature) | A device that heats water, often consisting of a large tank.
`Wearable`| *[`PowerState`](#powerstate)*, [`BatteryLevel`](#batterylevel), [`NetworkAccess`](#networkaccess) | A network-connected wearable device, such as an Apple Watch, Fitbit, or Samsung Gear.
`Other`| [All attributes](#device-attributes), except [networking](#networking-attributes) and [scenes](#scene-attributes) | An endpoint that doesn't belong to one of the other categories.
## Device Attributes
A device attribute represents one or more [Alexa Smart Home interface capabilities](https://developer.amazon.com/docs/device-apis/list-of-interfaces.html) that defines the supported functionalities of a given device.
While the majority of the device attributes are based on the Alexa native/specific capabilities, some, such as [`PositionState`](#positionstate), were introduced in the skill to fill the lack of native support using a combination of [generic capabilities](#generic-capabilities) in order to ease the configuration of commonly used functionalities.
For device attributes used in a [group endpoint](#group-endpoint), if multiple items with the same attribute are part of a group, only the first one will be considered while the others will be ignored. This doesn't apply to [generic attributes](#generic-attributes).
Any group level metadata parameters are passed to each members part of that group. This is useful when the same parameter is used across multiple item capabilities of a group endpoint. For example, the `scale` temperature/setpoint parameter in a `Thermostat` group.
It is important to note that not all the attributes listed below are [available](#regional-availability) globally.
### Camera Attributes
#### `CameraStream`
Items that represent the feed from a security camera.
It requires installing the [IP Camera binding](https://www.openhab.org/addons/bindings/ipcamera/) to create a [HLS live stream](https://www.openhab.org/addons/bindings/ipcamera/#hls-http-live-streaming), and running your [openHAB server behind a reverse proxy](https://www.openhab.org/docs/installation/security.html#running-openhab-behind-a-reverse-proxy) that can be accessed over HTTPS on your local network and port 443 using a valid SSL certificate.
Once setup, configure the item linked to the binding `hlsUrl` channel and set the metadata parameter `proxyBaseUrl="https://openhab.myserver.tld"` pointing to your openHAB subdomain proxy base URL. This will cause the skill to provide a stream URL to your Echo device, when requested, that should be accessible at `https://openhab.myserver.tld/ipcamera/camera1/ipcamera.m3u8` along with a static image URL, replacing the extension with `.jpg`. If your server requires basic authentication, set the `username` and `password` parameters.
* Supported item types:
* String
* Supported metadata parameters:
* proxyBaseUrl=``
* required proxy base URL
* resolution=``
* supported resolutions are `480p`, `720p`, `1080p`
* defaults to `1080p`
* username=``
* defaults to no basic authentication.
* password=``
* defaults to no basic authentication.
* Utterance examples:
* *Alexa, show the ``.*
### Cover Attributes
#### `OpenState`
Items that represent the open state of a door or window blind (ON open, OFF close). For decouple state support, use [`TargetOpenState`](#targetopenstate) and [`CurrentOpenState`](#currentopenstate) instead. For door contact sensors, use [`ContactDetectionState`](#contactdetectionstate) instead.
* Supported item types:
* Switch
* Supported metadata parameters:
* inverted=``
* set to true to invert state
* defaults to false
* Utterance examples:
* *Alexa, open the ``.*
* *Alexa, close the ``.*
* *Alexa, raise the ``.*
* *Alexa, lower the ``.*
* *Alexa, is the `` opened?* ([`GarageDoor`](#device-types) type only)
* *Alexa, what's the `` opening?*
#### `TargetOpenState`
Items that represent the target open state of a door or window blind with decouple state. This should be paired with [`CurrentOpenState`](#currentopenstate).
Same configuration as [`OpenState`](#openstate).
#### `CurrentOpenState`
Items that represent the current open state of a door or window blind with decouple state. This needs to be paired with [`TargetOpenState`](#targetopenstate). The state of this item will be returned instead of the original actionable item.
* Supported item types:
* Contact [CLOSED="CLOSED", OPEN="OPEN"]
* Number [CLOSED=0, OPEN=1]
* String [CLOSED="CLOSED", OPEN="OPEN"]
* Switch [CLOSED="OFF", OPEN="ON"]
* Supported metadata parameters:
* CLOSED=`` (Number/String only)
* OPEN=`` (Number/String only)
* inverted=`` (Contact/Switch only)
* set to true to invert state
* defaults to false
#### `ObstacleAlert`
Items that represent the alert state when an obstacle is detected preventing closing a garage door. This needs to be paired with [`OpenState`](#openstate). This attribute only works with [`GarageDoor`](#device-types) type. When in alert state, close requests will trigger an error response.
* Supported item types:
* Contact [OK="CLOSED", ALERT="OPEN"]
* Switch [OK="OFF", ALERT="ON"]
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to false
#### `PositionState`
Items that represent the position state of window blind.
If paired with [`TiltAngle`](#tiltangle), the primary controls (open/close/stop) can be defined as position-based or tilt-based setting metadata parameter `primaryControl="position"` at the group level. It is important to note that raise/lower controls aren't affected by these settings and will remain position-based.
* Supported item types:
* Dimmer
* Rollershutter
* Supported metadata parameters:
* inverted=``
* set to true to invert state
* defaults to true for Rollershutter, otherwise false for Dimmer
* primaryControl=``
* supported types are `position` or `tilt`
* only relevant when part of a [group endpoint](#group-endpoint)
* defaults to `position`
* presets=``
* each preset formatted as `=<@assetIdOrName1>:...` (e.g. `presets="20=Morning,60=Afternoon,80=Evening:@Setting.Night"`)
* limited to a maximum of 150 presets
* predefined [asset ids](#asset-catalog)
* defaults to item state description options `presets="value1=label1,..."` if defined, otherwise no presets
* language=``
* text-based preset name language support
* two-letter language code: `ar`, `de`, `en`, `es`, `fr`, `hi`, `it`, `ja`, `pt`
* defaults to your server [regional settings](#regional-settings) if defined, otherwise `en`
* actionMappings=``
* each [semantic](#semantic-extensions) mapping formatted as `=`
* `Open`, `Close` and `Stop` semantics only available when primary control is `position`
* defaults to:
* Dimmer => `Close=0,Open=100,Lower=0,Raise=100` or `Close=100,Open=0,Lower=100,Raise=0` (inverted)
* Rollershutter => `Close=DOWN,Open=UP,Lower=DOWN,Raise=UP,Stop=STOP`
* Utterance examples:
* *Alexa, open the ``.*
* *Alexa, close the ``.*
* *Alexa, raise the ``.*
* *Alexa, lower the ``.*
* *Alexa, stop the ``.* (Rollershutter only)
* *Alexa, set the `` position to 50 percent.*
* *Alexa, set the `` position to ``.*
* *Alexa, set the `` position to up.* (Rollershutter only)
* *Alexa, set the `` position to down.* (Rollershutter only)
* *Alexa, set the `` position to stop.* (Rollershutter only)
* *Alexa, increase the `` position by 10 percent.*
* *Alexa, decrease the `` position by 25 percent.*
* *Alexa, what's the `` position?*
#### `TiltAngle`
Items that represent the tilt angle of a window blind.
If paired with [`PositionState`](#positionstate), the primary controls (open/close/stop) can be defined as position-based or tilt-based setting metadata parameter `primaryControl="tilt"` at the group level.
* Supported item types:
* Dimmer (Percentage)
* Number(:Angle) (Angle degree from -90 to 90)
* Rollershutter (Percentage)
* Supported metadata parameters:
* inverted=``
* set to true to invert state
* defaults to true for Rollershutter, otherwise false for Dimmer/Number
* primaryControl=``
* supported types are `position` or `tilt`
* only relevant when part of a [group endpoint](#group-endpoint)
* defaults to `position`
* presets=``
* each preset formatted as `=<@assetIdOrName1>:...` (e.g. `presets="20=Morning,60=Afternoon,80=Evening:@Setting.Night"`)
* limited to a maximum of 150 presets
* predefined [asset ids](#asset-catalog)
* defaults to item state description options `presets="value1=label1,..."` if defined, otherwise no presets
* language=``
* text-based preset name language support
* two-letter language code: `ar`, `de`, `en`, `es`, `fr`, `hi`, `it`, `ja`, `pt`
* defaults to your server [regional settings](#regional-settings) if defined, otherwise `en`
* actionMappings=``
* each [semantic](#semantic-extensions) mapping formatted as `=`
* only available when primary control is `tilt`
* defaults to:
* Dimmer => `Close=0,Open=100` or `Close=100,Open=0` (inverted)
* Number => `Close=-90,Open=0` or `Close=90,Open=0`(inverted)
* Rollershutter => `Close=DOWN,Open=UP,Stop=STOP`
* Utterance examples:
* *Alexa, open the ``.*
* *Alexa, close the ``.*
* *Alexa, stop the ``.* (Rollershutter only)
* *Alexa, set the `` tilt to 30 degrees.* (Number only)
* *Alexa, set the `` tilt to 50 percent.* (Dimmer/Rollershutter only)
* *Alexa, set the `` tilt to ``.*
* *Alexa, set the `` tilt to up.* (Rollershutter only)
* *Alexa, set the `` tilt to down.* (Rollershutter only)
* *Alexa, set the `` tilt to stop.* (Rollershutter only)
* *Alexa, increase the `` tilt by 5 degrees.* (Number only)
* *Alexa, decrease the `` tilt by 10 percent.* (Dimmer/Rollershutter only)
* *Alexa, what's the `` tilt?*
### Entertainment Attributes
#### `Channel`
Items that represent a channel. For String, by default, only requests by name are supported. To enable support for requests by number, set parameter `supportsChannelNumber=true`. For adjustment requests, by default, the increment is linear within the `range` parameter for Number, or the `channelMappings` parameter for String, based on the current state. For adjustment in incremental discrete steps, add [`ChannelStep`](#channelstep) to your entertainment group endpoint.
It is important to note that only well-known channel names can be used as these are matched against a database on the Alexa side when requested. While Amazon doesn't provide a list of supported channel names, it is recommended using the names listed on [TV Channel Lists](https://www.tvchannellists.com) for your regional channel lineup.
* Supported item types:
* Number
* String
* Supported metadata parameters:
* channelMappings=``
* each mapping formatted as `=` (e.g. `channelMappings="2=CBS,4=NBC,7=ABC,13=PBS"`)
* required for channel requests by name support
* defaults to no mappings
* range=`` (Number only)
* range formatted as `:` (e.g. `range="100:499"`)
* defaults to `"1:9999"`
* supportsChannelNumber=`` (String only)
* set to true if supports channel requests by number
* defaults to false
* Utterance examples:
* *Alexa, change the channel to `` on the ``.* (Number or if `supportsChannelNumber=true`)
* *Alexa, change the channel to `` on the ``.*
* *Alexa, next channel on the ``.* (if [`ChannelStep`](#channelstep) not defined)
* *Alexa, previous channel on the ``.* (if [`ChannelStep`](#channelstep) not defined)
* *Alexa, channel up on the ``.* (if [`ChannelStep`](#channelstep) not defined)
* *Alexa, channel down on the ``.* (if [`ChannelStep`](#channelstep) not defined)
#### `ChannelStep`
Items that represent a channel adjusted in incremental discrete steps. For change requests by number or by name support, add [`Channel`](#channel) to your entertainment group endpoint.
* Supported item types:
* String
* Supported metadata parameters:
* CHANNEL_UP=``
* CHANNEL_DOWN=``
* Utterance examples:
* *Alexa, next channel on the ``.*
* *Alexa, previous channel on the ``.*
* *Alexa, channel up on the ``.*
* *Alexa, channel down on the ``.*
#### `Input`
Items that represent an input source (e.g. "HDMI 1" or "TUNER" on a stereo).
* Supported item types:
* Number
* String
* Supported metadata parameters:
* supportedInputs=``
* each input formatted as `=:...` (e.g. `supportedInputs="HDMI1=Cable:Comcast,HDMI2=Kodi"`)
* requires at least two inputs to be specified with a maximum of 150
* input value used as name if not provided (e.g. `supportedInputs="HDMI1,DVD"` <=> `supportedInputs="HDMI1=HDMI1,DVD=DVD`)
* defaults to item state description options `supportedInputs="value1=label1,..."`, if defined, otherwise no supported inputs
* language=``
* input name language support
* two-letter language code: `ar`, `de`, `en`, `es`, `fr`, `hi`, `it`, `ja`, `pt`
* defaults to your server [regional settings](#regional-settings) if defined, otherwise `en`
* Utterance examples:
* *Alexa, change the input to `` on the ``.*
* *Alexa, set the `` input to ``.*
* *Alexa, what's the `` input?*
#### `VolumeLevel`
Items that represent a volume level as percentage. For adjustment in incremental discrete steps, use [`VolumeStep`](#volumestep) instead.
* Supported item types:
* Dimmer
* Number
* Supported metadata parameters:
* increment=``
* defaults to 10 (standard value provided by Alexa)
* Utterance examples:
* *Alexa, set the volume of `` to 50.*
* *Alexa, turn the volume up on ``.*
* *Alexa, turn the volume down on `` by 20.*
* *Alexa, increase the volume on the ``.*
* *Alexa, lower the volume on the `` by 20.*
#### `VolumeStep`
Items that represent a volume level adjusted in incremental discrete steps. The skill limits adjustment to a maximum of 10 steps per request.
* Supported item types:
* String
* Supported metadata parameters:
* VOLUME_UP=``
* VOLUME_DOWN=``
* Utterance examples:
* *Alexa, increase the volume on the ``.*
* *Alexa, lower the volume on the `` by 5.*
* *Alexa, volume up on the ``.*
* *Alexa, volume down 5 on the ``.*
#### `MuteState`
Items that represent a muted state (ON muted, OFF unmuted). For adjustment in discrete steps, use [`MuteStep`](#mutestep) instead.
* Supported item types:
* Switch
* Supported metadata parameters:
* inverted=``
* set to true to invert state
* defaults to false
* Utterance examples:
* *Alexa, mute ``.*
* *Alexa, unmute ``.*
#### `MuteStep`
Items that represent a muted state adjusted in discrete steps.
* Supported item types:
* String
* Supported metadata parameters:
* MUTE=``
* Utterance examples:
* *Alexa, mute ``.*
* *Alexa, unmute ``.*
#### `EqualizerBass`
Items that represent the bass equalizer band range supported by an audio system.
* Supported item types:
* Dimmer
* Number
* Supported metadata parameters:
* range=``
* range formatted as `:`
* should be synced across different bands if configured since same values used for all bands due to Alexa restriction.
* defaults to `"0:100"` for Dimmer, otherwise `"-10:10"` for Number
* defaultLevel=``
* defaults to range midpoint
* increment=``
* defaults to INCREASE/DECREASE for Dimmer, otherwise 1 for Number
* Utterance examples:
* *Alexa, set bass to -2 on the ``.*
* *Alexa, increase bass on the ``.*
* *Alexa, decrease bass by 3 on the ``.*
* *Alexa, reset bass on the ``.*
* *Alexa, reset equalizer on the ``.*
#### `EqualizerMidrange`
Items that represent the midrange equalizer band range supported by an audio system.
Same configuration as [`EqualizerBass`](#equalizerbass).
#### `EqualizerTreble`
Items that represent the treble equalizer band range supported by an audio system.
Same configuration as [`EqualizerBass`](#equalizerbass).
#### `EqualizerMode`
Items that represent a list of equalizer modes supported by an audio system.
* Supported item types:
* Number [MOVIE=1, MUSIC=2, NIGHT=3, SPORT=4, TV=5]
* String [MOVIE="movie", MUSIC="music", NIGHT="night", SPORT="sport", TV="tv"]
* Supported metadata parameters:
* MOVIE=``
* MUSIC=``
* NIGHT=``
* SPORT=``
* TV=``
* supportedModes=``
* comma delimited list (e.g. `supportedModes="MOVIE,MUSIC,TV"`)
* supported modes are `MOVIE`, `MUSIC`, `NIGHT`, `SPORT`, `TV`
* defaults to, depending on the parameters provided, either user-based or item type-based default mappings.
* Utterance examples:
* *Alexa, set mode to movie on the ``.*
#### `Playback`
Items that represent the playback controls of a AV device. For stop command support, use [`PlaybackStop`](#playbackstop). For adjustment in incremental discrete steps, use [`PlaybackStep`](#playbackstep) instead.
* Supported item types:
* Player
* Supported metadata parameters:
* supportedOperations=``
* comma delimited list (e.g. `supportedOperations="Play,Pause,Next,Previous"`)
* defaults to `Play,Pause,Next,Previous,FastForward,Rewind`.
* Utterance examples:
* *Alexa, play ``.*
* *Alexa, resume ``.*
* *Alexa, pause ``.*
* *Alexa, next on ``.*
* *Alexa, previous on ``.*
* *Alexa, fast forward on ``.*
* *Alexa, rewind on ``.*
#### `PlaybackStop`
Items that represent the playback stop command of a AV device. This needs to be paired with [`Playback`](#playback).
* Supported item types:
* Switch
* Supported metadata parameters:
* inverted=``
* set to true to send `OFF` command instead of `ON`
* defaults to false
* Utterance examples:
* *Alexa, stop ``.*
#### `PlaybackStep`
Items that represent the playback controls of a AV device adjusted in discrete steps.
* Supported item types:
* String
* Supported metadata parameters:
* PLAY=``
* PAUSE=``
* STOP=``
* START_OVER=``
* PREVIOUS=``
* NEXT=``
* REWIND=``
* FAST_FORWARD=``
* Utterance examples:
* *Alexa, play ``.*
* *Alexa, resume ``.*
* *Alexa, pause ``.*
* *Alexa, stop ``.*
* *Alexa, start over on ``.*
* *Alexa, next on ``.*
* *Alexa, previous on ``.*
* *Alexa, fast forward on ``.*
* *Alexa, rewind on ``.*
### Fan Attributes
#### `FanSpeed`
Items that represent the speed of a fan.
* Supported item types:
* Dimmer
* Number
* String [OFF="OFF", LOW="LOW", MEDIUM="MEDIUM", HIGH="HIGH"]
* Supported metadata parameters:
* OFF=`` (String only)
* LOW=`` (String only)
* MEDIUM=`` (String only)
* HIGH=`` (String only)
* inverted=`` (Dimmer only)
* set to true to invert item state
* defaults to false
* speedLevels=`` (Number only)
* requires at least 2-speed
* defaults to 3
* Utterance examples:
* *Alexa, set the `` speed to off.*
* *Alexa, set the `` speed to low.*
* *Alexa, set the `` speed to medium.*
* *Alexa, set the `` speed to high.*
* *Alexa, set the `` speed to minimum.*
* *Alexa, set the `` speed to maximum.*
* *Alexa, set the `` speed to 30 percent.* (Dimmer only)
* *Alexa, set the `` speed to 2.* (Number only)
* *Alexa, increase the `` speed.*
* *Alexa, decrease the `` speed.*
* *Alexa, increase the `` speed by 10 percent.* (Dimmer only)
* *Alexa, decrease the `` speed by 2.* (Number only)
* *Alexa, what's the speed of ``?*
#### `FanDirection`
Items that represent a direction setting of a fan.
* Supported item types:
* String [FORWARD="FORWARD", REVERSE="REVERSE"]
* Switch [FORWARD="ON", REVERSE="OFF"]
* Supported metadata parameters:
* FORWARD=`` (String only)
* REVERSE=`` (String only)
* inverted=`` (Switch only)
* set to true to invert item state
* defaults to false
* Utterance examples:
* *Alexa, set the `` direction to forward.*
* *Alexa, set the `` direction to reverse.*
* *Alexa, what's the direction of ``?*
#### `FanOscillate`
Items that represent an oscillate setting of a fan.
* Supported item types:
* Switch
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to false
* Utterance examples:
* *Alexa, turn on the `` oscillation.*
* *Alexa, turn off the `` oscillation.*
* *Alexa, is the `` oscillation on?*
### Lighting Attributes
#### `Brightness`
Items that represent a lighting device responding to brightness commands.
* Supported item types:
* Color
* Dimmer
* Utterance examples:
* *Alexa, set the `` to 50 percent.*
* *Alexa, brighten the `` by 25 percent.*
* *Alexa, dim the ``.*
#### `Color`
Items that represent a lighting device responding to color commands.
* Supported item types:
* Color
* Utterance examples:
* *Alexa, set the `` to red.*
#### `ColorTemperature`
Items that represents a color temperature. It is important to note that temperature adjustment requests for endpoints including a color item, will be rejected if the endpoint is in color mode (Dimmer => *undefined* temperature or color saturation > 0; Number => *undefined* temperature or temperature = 0). In that event, set the initial white level before requesting subsequent adjustments.
* Supported item types:
* Dimmer (Colder `0%` to warmer `100%` based on defined temperature range for bindings integration)
* Number (Color temperature value in Kelvin for custom integration)
* Supported binding presets:
* [hue](https://www.openhab.org/addons/bindings/hue/) [color=`2000:6500`, white=`2200:6500`]
* [lifx](https://www.openhab.org/addons/bindings/lifx/) [color=`2500:9000`, white=`2700:6500`]
* [milight](https://www.openhab.org/addons/bindings/milight/) [color=`2700:6500`, white=`2700:6500`]
* [tradfri](https://www.openhab.org/addons/bindings/tradfri/) [color=`1780:6000`, white=`2200:4000`]
* [tplinksmarthome](https://www.openhab.org/addons/bindings/tplinksmarthome/) [color=`2500:9000`, white=`2700:6500`]
* [yeelight](https://www.openhab.org/addons/bindings/yeelight/) [color=`1700:6500`, white=`2700:6500`]
* Supported metadata parameters:
* binding=``
* id formatted as:
* color type => `(:color)` (e.g. `binding="hue"` or `binding="hue:color"`)
* white type => `:white` (e.g. `binding="hue:white"`)
* only for [GUI-based configuration](https://www.openhab.org/docs/configuration/)
* defaults to channel metadata value for items configured via text files
* range=``
* range formatted as `:` in Kelvin (e.g. `range="2700:6500"`)
* defaults to, depending on the parameters provided in order of precedence:
* preset-based using the binding linked name and thing type to differentiate color/white ranges, defaulting to color range
* defaults to `1000:10000`
* increment=``
* expressed in % (Dimmer); in Kelvin (Number)
* defaults to INCREASE/DECREASE for Dimmer, otherwise 500 for Number
* requiresSetColorReset=`` (Number only)
* set to true to require color temperature state to be reset on set color requests
* defaults to false
* Utterance examples:
* *Alexa, make the `` warm white.*
* *Alexa, set the `` to daylight.*
* *Alexa, make the `` warmer.*
* *Alexa, set the `` softer.*
* *Alexa, make the `` whiter.*
* *Alexa, set the `` cooler.*
### Networking Attributes
#### `HomeNetwork`
Items that represent a network router. This attribute cannot be specified by name. It is automatically added when configuring a [group endpoint](#group-endpoint) as one of the supported [device types](#device-types).
* Supported device types:
* `NetworkHardware`
* `Router`
#### `ConnectedDevice`
Items that represent a network device, such as a computer or mobile phone, connected to a router. This attribute cannot be specified by name. It is automatically added when configuring a [group endpoint](#group-endpoint) as one of the supported [device types](#device-types), that is a member of the group representing the router, as [`HomeNetwork`](#homenetwork), where the device is connected to, and having at least the metadata parameter `macAddress` defined.
* Supported device types:
* `Computer`
* `GameConsole`
* `Laptop`
* `MobilePhone`
* `Tablet`
* `Wearable`
* Supported metadata parameters:
* hostname=``
* defaults to `N/A`
* macAddress=``
* formatted as EUI-48 or EUI-64 address with colon or dash separators (e.g. `macAddress="00:21:86:B5:6E:10"`)
#### `NetworkAccess`
Items that represent the internet/network access control of a Wi-Fi/Ethernet connection to a router. This needs to be paired with [`ConnectedDevice`](#connecteddevice). To enable the access control by voice, you will need to select the configured device in your Alexa app, by going to Devices > Wi-Fi Access > Add a device. To limit the control based on voice profiles, turn on the option in the Wi-Fi Access settings.
* Supported item types:
* Switch [ALLOWED="ON", BLOCKED="OFF"]
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to false
* Utterance examples:
* *Alexa, pause the Internet for ``.*
* *Alexa, resume the Wi-Fi for ``.*
* *Alexa, enable the Internet for ``.*
* *Alexa, disable the Wi-Fi for ``.*
* *Alexa, turn on the Internet for ``.*
* *Alexa, turn off the Wi-Fi for ``.*
### Scene Attributes
#### `Scene`
Items that represent a combination of devices set to a specific state. Use scene triggers for scenes when the order of the state change is not important. For example, for a scene named "bedtime" you might turn off the lights and lower the thermostat, in any order.
* Supported item types:
* Switch
* Supported metadata parameters:
* supportsDeactivation=``
* defaults to true
* Utterance examples:
* *Alexa, turn on ``.*
* *Alexa, turn off ``.*
#### `Activity`
Items that represent a combination of devices set to a specific state. Use activity triggers for scenes when the state changes must occur in a specific order. For example, for a scene named "watch Netflix" you might power on the TV first, and then set the input to HDMI1.
* Supported item types:
* Switch
* Supported metadata parameters:
* supportsDeactivation=``
* defaults to true
* Utterance examples:
* *Alexa, turn on ``.*
* *Alexa, turn off ``.*
### Security Attributes
#### `LockState`
Items that represent the state of a lock (ON lock, OFF unlock). For decouple state support, use [`TargetLockState`](#targetlockstate) and [`CurrentLockState`](#currentlockstate) instead.
* Supported item types:
* Switch
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to false
* Utterance examples:
* *Alexa, lock the ``.*
* *Alexa, unlock the ``.* (Requires the unlock feature to be enabled in the Alexa app)
* *Alexa, is the `` locked?*
#### `TargetLockState`
Items that represent the target state of a lock with decouple state. This should be paired with [`CurrentLockState`](#currentlockstate).
Same configuration as [`LockState`](#lockstate).
#### `CurrentLockState`
Items that represent the current state of a lock with decouple state. This needs to be paired with [`TargetLockState`](#targetlockstate). The state of this item will be returned instead of the original actionable item. For Number and String, the state mappings can be provided in the metadata parameters and, if necessary, multiple properties to one state can be mapped with column delimiter (e.g. for a Z-Wave lock: `LOCKED="1:3",UNLOCKED="2:4",JAMMED="11"`).
* Supported item types:
* Contact [LOCKED="CLOSED", UNLOCKED="OPEN"]
* Number [LOCKED=1, UNLOCKED=2, JAMMED=3]
* String [LOCKED="locked", "UNLOCKED"="unlocked", JAMMED="jammed"]
* Switch [LOCKED="ON", UNLOCKED="OFF"]
* Supported metadata parameters:
* LOCKED=`` (Number/String only)
* UNLOCKED=`` (Number/String only)
* JAMMED=`` (Number/String only)
* inverted=`` (Contact/Switch only)
* set to true to invert item state
* defaults to false
#### `ArmState`
Items that represent the arm state of a security panel. Multiple properties to one state can be mapped with column delimiter (e.g. for DSC alarm system, combining standard mode with no delay equivalent: `DISARMED="0",ARMED_AWAY="1:3",ARMED_STAY="2:4"`). To disarm by voice, you will need to set up a voice code in your Alexa app for that device. For security panel errors handling, add [`AlarmAlert`](#alarmalert), [`ReadyAlert`](#readyalert), [`TroubleAlert`](#troublealert) and [`ZonesAlert`](#zonesalert) attributes to your security panel group endpoint.
* Supported item types:
* Number [DISARMED=0, ARMED_STAY=1, ARMED_AWAY=2, ARMED_NIGHT=3]
* String [DISARMED="disarmed", ARMED_STAY="stay", ARMED_AWAY="away", ARMED_NIGHT="night"]
* Switch [DISARMED="OFF", ARMED_STAY="ON"]
* Supported metadata parameters:
* DISARMED=``
* ARMED_STAY=``
* ARMED_AWAY=``
* ARMED_NIGHT=``
* supportedArmStates=``
* comma delimited list (e.g. `supportedArmStates="DISARMED,ARMED_STAY,ARMED_AWAY"`)
* requires DISARMED and at least one ARMED state to be specified
* defaults to, depending on the parameters provided, either user-based or item type-based default mappings.
* pinCodes=``
* each code formatted as 4-digit pin (e.g. `pinCodes="1234,9876"`)
* pin codes if configured, are validated by the skill on disarm requests
* defaults to only using the Alexa voice code for disarming verification
* exitDelay=``
* maximum delay restricted to 255 seconds
* defaults to no delay
* Utterance examples:
* *Alexa, arm my home in away mode.*
* *Alexa, arm my home.*
* *Alexa, disarm my home.*
* *Alexa, is my home armed?*
#### `BurglaryAlarm`
Items that represent the burglary alarm state of a security panel.
* Supported item types:
* Contact [OK="CLOSED", ALARM="OPEN"]
* Switch [OK="OFF", ALARM="ON"]
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to false
#### `CarbonMonoxideAlarm`
Items that represent the carbon monoxide alarm state of a security panel.
* Supported item types:
* Contact [OK="CLOSED", ALARM="OPEN"]
* Switch [OK="OFF", ALARM="ON"]
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to false
#### `FireAlarm`
Items that represent the fire alarm state of a security panel.
* Supported item types:
* Contact [OK="CLOSED", ALARM="OPEN"]
* Switch [OK="OFF", ALARM="ON"]
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to false
#### `WaterAlarm`
Items that represent the water alarm state of a security panel.
* Supported item types:
* Contact [OK="CLOSED", ALARM="OPEN"]
* Switch [OK="OFF", ALARM="ON"]
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to false
#### `AlarmAlert`
Items that represent the alert state of a security panel when it has uncleared alarm preventing arming. This needs to be paired with [`ArmState`](#armstate).
* Supported item types:
* Contact [OK="CLOSED", ALERT="OPEN"]
* Switch [OK="OFF", ALERT="ON"]
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to false
#### `ReadyAlert`
Items that represent the alert state of a security panel when it is not ready for arming or disarming. This needs to be paired with [`ArmState`](#armstate).
* Supported item types:
* Contact [OK="CLOSED", ALERT="OPEN"]
* Switch [OK="OFF", ALERT="ON"]
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to false
#### `TroubleAlert`
Items that represent the alert state of a security panel when it has uncleared trouble condition preventing arming. This needs to be paired with [`ArmState`](#armstate).
* Supported item types:
* Contact [OK="CLOSED", ALERT="OPEN"]
* Switch [OK="OFF", ALERT="ON"]
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to false
#### `ZonesAlert`
Items that represent the alert state of a security panel when it has open zones, that must be bypassed, preventing arming. This needs to be paired with [`ArmState`](#armstate).
* Supported item types:
* Contact [OK="CLOSED", ALERT="OPEN"]
* Switch [OK="OFF", ALERT="ON"]
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to false
### Sensor Attributes
#### `BatteryLevel`
Items that represent a battery level percentage of a device.
* Supported item types:
* Dimmer
* Number(:Dimensionless)
* Utterance examples:
* *Alexa, what's the `` battery level?*
#### `CurrentHumidity`
Items that represent a humidity sensor that provides the ambient humidity.
* Supported item types:
* Dimmer
* Number(:Dimensionless)
* Utterance examples:
* *Alexa, what’s the `` humidity?*
#### `CurrentTemperature`
Items that represent a temperature sensor that provides the ambient temperature.
* Supported item types:
* Number(:Temperature)
* Supported metadata parameters:
* scale=``
* Celsius or Fahrenheit
* defaults to [item unit of measurement](#item-unit-of-measurement), otherwise Celsius
* Utterance examples:
* *Alexa, what’s the `` temperature?*
* *Alexa, what’s the temperature of ``?*
#### `ContactDetectionState`
Items that represent a contact sensor state. Currently not usable in routines as proactive reporting not supported yet.
* Supported item types:
* Contact [DETECTED="OPEN", NOT_DETECTED="CLOSED"]
* Switch [DETECTED="ON", NOT_DETECTED="OFF"]
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to false
* Utterance examples:
* *Alexa, is the `` open?*
#### `MotionDetectionState`
Items that represent a motion sensor state. Currently not usable in routines as proactive reporting not supported yet.
* Supported item types:
* Contact [DETECTED="OPEN", NOT_DETECTED="CLOSED"]
* Switch [DETECTED="ON", NOT_DETECTED="OFF"]
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to false
### Switchable Attributes
#### `PowerState`
Items that represent a general device responding to on/off commands. For Number and String, the state mappings must be provided in the metadata parameters.
* Supported item types:
* Color
* Dimmer
* Number
* String
* Switch
* Supported metadata parameters:
* OFF=`` (Number/String only)
* ON=`` (Number/String only)
* Utterance examples:
* *Alexa, turn on the ``.*
* *Alexa, turn off the ``.*
#### `PowerLevel`
Items that represent a general device responding to power level commands.
* Supported item types:
* Dimmer
* Utterance examples:
* *Alexa, set the power to 40 percent on the ``.*
* *Alexa, increase the power level by 12 on the ``.*
* *Alexa, decrease the power level by 6 on the ``.*
#### `Percentage`
Items that represent a general device responding to percentage commands.
* Supported item types:
* Dimmer
* Rollershutter
* Supported metadata parameters:
* inverted=``
* set to true to invert item state
* defaults to true for Rollershutter, otherwise false for Dimmer
* Utterance examples:
* *Alexa, set the `` to 30 percent.*
* *Alexa, increase the `` by 10 percent.*
* *Alexa, decrease the `