Currently the following devices are supported:
- Shelly 1
- Shelly 1PM
- Shelly 2 1
- Shelly 2.5 1
- Shelly 4Pro
- Shelly Bulb 2
- Shelly Dimmer
- Shelly Door/Window
- Shelly Duo
- Shelly EM
- Shelly Flood
- Shelly HD
- Shelly H&T
- Shelly Plug
- Shelly Plug S
- Shelly RGBW2
- Shelly Sense
- Shelly Vintage
1 To use Shelly 2 or Shelly 2.5 in roller shutter mode the device must have been calibrated and be running firmware version 1.4.9 or later.
2 Requires firmware version 1.5.1 or later.
- Install homebridge by following the instructions.
- Install this plugin by running
npm install -g homebridge-shelly.
- Add the configuration to your homebridge config.json.
In most cases, simply adding this plugin to the homebridge config.json will be enough:
Your Shelly devices will then be automatically discovered, as long as they are on the same network and subnet as the device running homebridge.
To see a list of all discovered devices, visit the administration page by going
http://<IP-ADDRESS>:<PORT>/, where IP-ADDRESS is the IP address of the
device that you are running homebridge on, and PORT is the configured port
number (8181 by default, see below).
Sometimes setting the
"networkInterface" option to the local IP address of
your device will help when your devices aren't automatically discovered, or
you see error messages like
addMembership EADDRNOTAVAIL or
"password" options if you have restricted the web
interface with a username and password. Note that this configuration applies
to all Shelly devices.
"requestTimeout" option can be used to configure the timeout for HTTP
requests to the Shelly devices. Specify in milliseconds. Default is 10 seconds.
"staleTimeout" option to configure how long a device can be offline
before it is regarded as stale and unregistered from HomeKit. Specify in
milliseconds. Set to
false to disable. Disabled by default.
By default, this plugin will launch an HTTP server on port 8181 to serve an
administration interface. You can disable this by setting
false. You can also change the port number using
Device specific configurations
Configurations for specific Shelly devices can be set using the
array. Each object in the array must contain an
"id" property with the ID of
the Shelly device that you want to target. IDs are always made up of 6
hexadecimal characters and can be found in the Shelly Cloud app or the web
interface of a device, under Settings -> Device info -> Device ID.
"exclude"- set to
trueto exclude the device from Homebridge.
"password"- set these if you have restricted the web interface of the device with a username and password. This will override the global
"name"- sets a custom name for the device.
Shelly switch configurations
Applies to Shelly 1, 1PM, 2 and 2.5 in relay mode, 4Pro, EM, Plug and Plug S.
"type"- sets the type of accessory the device is identified as. Available types are
Shelly 2.5 configurations
"type"- in roller mode, the device can be identified as either
Shelly RGBW2 configurations
"colorMode"- set to
"rgbw"(default) to have HomeKit control all four channels of the device (R, G, B, and W), or to
"rgb"to omit the W channel.
If you have a Shelly device that is not yet supported by this plugin you can help adding support for it by following these steps:
$ homebridge-shelly describe <ip-address>with the IP address of the Shelly device.
- Create a new issue and post the output from the previous command.
I develop this plugin in my spare time. If you like it and you find it useful, please consider donating a small amount by clicking the button below. That will allow me to buy new Shelly devices so that I can add support for them.