Integrate Shelly devices into Home Assistant.
Shelly devices use the
CoIoT protocol to communicate with integration. For Shelly firmware 1.10.0 or newer,
CoIoT must be enabled in the device settings. Navigate to the local IP address of your Shelly device, Internet & Security >> ADVANCED - DEVELOPER SETTINGS and check the box Enable CoIoT.
We recommend using
unicast for communication. To enable this, enter the local IP address of the Home Assistant server and port
5683 into the CoIoT peer field and push SAVE button. This is mandatory for Shelly Motion with firmware 1.1.0 or newer. After changing the CoIoT peer, the Shelly device needs to be manually restarted.
Adding Shelly to your Home Assistant instance can be done via the user interface, by taking the following steps:
- Browse to your Home Assistant instance.
- In the sidebar click on Configuration.
- From the configuration menu select: Integrations.
Shelly can be auto-discovered by Home Assistant. If an instance was found, it will be shown in the top of the list of integrations as “Discovered”. If that is the case click on the Configure button to start setting up the discovered instance.
If there wasn’t any discovered automatically, don’t worry! You can set up a manual integration entry:
- In the bottom right, click on the Add Integration button.
- From the list, search and select “Shelly”.
- Follow the instruction on screen to complete the set up.
After completing, the Shelly integration will be immediately available for use.
The integration uses the following strategy to name its entities:
Channel Nameis set in the device, the integration will use them to generate the entities’ name.
- If channel names are set, they will be used in the entity names. The device name will not be used.
- If only the device name is set, and the device has multiple channels, the channel number will be appended to the entity name (e.g., Channel 2).
- In case device name and channel names are not set, the entity name will be generated by the
|Device Name||Channel Name||Entity Name|
||shellyswitch25-ABC123 Channel 1|
||Kids Room Bulb||Kids Room Bulb|
||Kitchen Channel 1|
|Bedroom||Round Bulb||Round Bulb|
Names are set from the device web page:
- Device name can be set in Settings >> DEVICE NAME
- Channel name for single-channel devices can be set in Settings >> CHANNEL NAME
- Channel name for multi-channel devices can be set in Settings >> CHANNEL NAME after selecting the channel, by clicking on the channel name.
Shelly device relays are added to the Home Assistant by default as
switch entities. A relay can be added as a
light entity if the device uses firmware version 1.9.0 or newer and the Settings >> APPLIANCE TYPE value is set to
If the BUTTON TYPE of the switch connected to the device is set to
detached switch, integration fires events when the switch is used. You can use these events in your automations.
- alias: "Toggle living room light" trigger: platform: event event_type: shelly.click event_data: device: shellyswitch25-AABBCC channel: 1 click_type: single action: service: light.toggle target: entity_id: light.living_room - alias: "Toggle living room lamp" trigger: platform: event event_type: shelly.click event_data: device: shellyswitch25-AABBCC channel: 2 click_type: long action: service: light.toggle target: entity_id: light.lamp_living_room
|Shelly input event||Click Type|
Not all devices support all input events. You can check on Shelly API Reference website what types of Shelly input events your device supports.
- Only supports firmware 1.8 and later
- Shelly 4Pro and Shelly Sense are not supported (devices based on old CoAP v1 protocol)
- Before set up, battery-powered devices must be woken up by pressing the button on the device.
Suggest an edit to this page, or provide/view feedback for this page.