Intro
This is a simple guide on how to automate UK lights with a Shelly 1 by installing the shelly 1 relay into the ceiling pendant which has both permanent live, neutral and a switched live back from the wall switch.
These steps are from my own experience making my lighting "smart" but also user friendly (it works via a wall switch!). This simple guide will go through replacing an a normal ceiling pendant with one with room for a Shelly 1. If you have a ceiling light with a bigger base it's even easier.
Warning Electrical regulations must be followed by law. If you are not a competent person under the regulations do not attempt electrical work. https://www.diydoctor.org.uk/projects/electrical_safety.htm
Wiring Diagram
This diagram has been taken from here and modified to include the Shelly 1.
Parts Required
- Shelly 1 - https://shelly.cloud/product/shelly-1-open-source/
- Connector Set - https://www.screwfix.com/p/ideal-lever-wire-connectors-combo-pack-30-piece-set/6472g
- 3 Core Flex - https://www.toolstation.com/shop/Electrical/d190/Doncaster+Cables+%26+Flexes/sd3428/Doncaster+Cables+3+Core+Round+Flex+Cable+%283183Y%29/p42361
- Ceiling Rose [optional] - https://www.ebay.co.uk/itm/E27-Holder-Ceiling-Rose-Pendant-Light-PVC-Fabric-Flex-Lamp-Fitting-Lighting-Uk/232976733437
- Wire Stripper [optional] - https://www.amazon.co.uk/AWinEur-Stripper-Multifunctional-Automatic-Stripping/dp/B07C3FH1QR/
Steps
- First pre-wire as much as the Shelly as you can.
2. You want a two lengths of brown wire around 6cm which will be the LIVE in and the SW in (Switched live back from the light switch), a length of blue wire around 6cm for the NEUTRAL in.
3. Cut a small piece of wire to connect LIVE to I (Input). This is the power feed shelly will supply to your light.
4. It should now look something like the following, only O (output which goes to the lamp live) will be un-populated.
- Install the shelly into the base of the new lamp and connect up the lamp wires. 3. Rember to reduce the length of the lamp wire so the pendant is at the correct height. 4. The red/brown live of the lamp should connect to the O(utput) of the Shelly 1. The shelly will only supply power when you want the light on! 5. The neutral of the lamp can be fitted into the N terminal of the shelly if there is room, otherwise you can put it into the neutral connector block you will be installing.
- It should look something like this:
- Time to replace the ceiling pendant. If the wiring seems strange and you don't understand it, do not go ahead and please consulate a qualified electrician.
- Turn off the lighting circuit you are modifying and ensure that nothing is live (ensure the light does not work and use a voltage detector around the base of the light)
- Once you have removed the lamp shade, bulb and unscrewed the pendant it should look like this:
- Please make sure you know what wires are which, this is very important!
- In this instance it's a very basic ceiling rose as the room only has one light. There are two neutral wires, three permanent live wires and a switched live wire (a red sleeved neutral wire which returns from the wall switch).
- The ceiling rose has a built in connector block, in order to fit the shelly we are replacing this with a simply bracket which the ceiling rose cover fits to and using our own connector blocks instead of one built into a base.
- You need to disconnect the lamp, which connects to the switched live block and the neutral block. It should now look something like this:
- Remove the base keeping the wires together, you will need 4 connector blocks (Earth, Live, Neutral, Switched Live). For each block you need support for N + 1 wires. For example, Live in the above example will need a 4 way, the switched live will need a 2 way.
- Install the bracket for the new ceiling rose it should look something like this (I had not put on the earth connector at this point)
- Time to connect the lamp up. 14. Connect up the N(eutral) from the Shelly (which includes the lamp) to the Neutral connector block. 15. Connect the L(ive) from the permanent live block to the Shelly. 16. Connect the SW(switched live) input from shelly to the switched live (sleeved neutral) connector block. 17. Connect the earths of all wires AND the metal ceiling rose together.
- It should now look something like this, this can be very tricky as there's not much space! It's much easier with lights with large bases. Make sure all connections are secure!
- Secure the cover to the bracket on the ceiling, being careful with the cables and ensuring they have room and that the cables are secure. It should now look something like this:
- Done! Install a bulb and time to turn the power back on.
- Use the Shelly 1 App to add the Light to your network, also configure the button action! I have mine set to "Edge Switch" so the wall switch will change the status of the light no matter the position.
Home Assistant Integration
I use the shelly MQTT support to monitor and control the lights in real-time (no waiting on a HTTP poll). WARNING using MQTT will disable cloud functionality through the shelly app.
- Get the IP address of the Shelly through the Shelly App (Settings -> Device Information). Also make a note of your Device ID.
- In a web browser go to the IP address of the Shelly, under the "Internet Security" tab there is an "ADVANCED - DEVELOPER SETTINGS" toggle. Tick the "Enable action execution via MQTT" 3. Enter your MQTT server IP and port 4. Tick "Retain" this ensures that home assistant always knows the correct state.
- Hit Save!
- In your home-assistant configuration.yml put the following
light:
- platform: mqtt
name: Some Light
command_topic: "shellies/shelly1-<DEVICEID>/relay/0/command"
state_topic: "shellies/shelly1-<DEVICEID>/relay/0"
payload_on: "on"
payload_off: "off"
- This is making the assumption that you already have your MQTT server configured. I personally use a separate MQTT instance instead of the built-in one as I have a lot of devices using MQTT.
- Done! restart home assistant and you should be away.
This comment has been minimized.
Conventional UK Pendant Fitting
Thanks for posting this practical example, I was encouraged enough to get some Shellys to try (pack of two from ebay listing). They do seem suited to working with UK wiring, having the 230V switch and the size to fit where the wiring is already in place. These devices seem ideal as a start in home automation. No extra equipment needed to solder or adaptors to flash the chip; just add to fairly conventional house wiring.
I thought I'd see what they look like in a conventional ceiling rose. Not practical up a ladder, but as a bench exercise they do (just) fit. This is one in a cheap pendant set from toolstation; only a minor cheat to cut down a couple of ridges on the base so the Shelly lies flat and the lid screws down:

Practically, I have replaced a landing light and including a Shelly. Mostly so it gives us a timed light we can also set when we're away. I was a bit wary about putting the Shelly in a earthed steel electrical rose, but the WiFi signal strength will depend on your own set up. For my project I used a decorative ceiling centre, so room for a large opening and tuck the wiring above the electrical rose while still leaving it accessible.
Shelly Firmware
A note about current firmware levels. From the web browser interface, under Settings => Firmware Update the factory firmware:
20180903-123604/v1.1.3@67ef4071
is still being supplied in the ones I bought from Bulgaria (early 2019). MQTT is only available with later versions. There should be an Update Firmware button and the latest firmware version listed as available – at time of writing
20190214-074430/1.4.7-revertwifi@0f3372b3
A couple of minutes to update and reboot, then among the extras available MQTT is under Internet & Security => Advanced – Developer Settings
One of the (minor) problems setting up the Shelly is that it seems to have restrictions on initial set up; it didn't like attaching to the no-password SSID I usually enable to initialise devices for example. If the Shelly becomes unresponsive, it can be reset by powering on, then 5 quick on-and-off switches to the SW terminal. You should be able to hear the relay flicker on and off a few times after the 5th switch on. Check the SSID Shelly-999999 or similar is available on 2.4Ghz. The most reliable initialisation seems to be through the Shelly cloud, as described in the box leaflet. You will need to input your usual household WiFi SSID and password. Once that is done, check which IP is allocated on the router and use a browser to that address for the Shelly set up, setting a fixed IP for example.
Automation with MQTT and Domoticz
There is a timer available from the web interface for each Shelly individually, and the "Shelly Cloud" is another option if you don't mind relying on your broadband connection. However, the better option is to use one of the home automation projects to centralise your controls and logs. There appear to be a few notes out there on using Shelly with Home Assistant, as @lordneon describes. I have used my Domoticz instance as the home automation hub for these lights. I already had it running on a Pi because it offered the best support for my heating controls (Honeywell evoHome). For Sonoff controls, I had added MQTT to the Pi in the form of Mosquitto. There is a good walk through of setting up Mosquitto on a Pi at https://blog.hobbytronics.pk/installing-mosquitto-broker-on-raspberry-pi/ which includes automating the startup with systemd.
The simplest method I found of setting up the Shelly on Domoticz (Version: 4.9700) is to use the Python plug-in kindly made available by @enesbcs at https://github.com/enesbcs/Shelly_MQTT. This is designed to use default Shelly firmware MQTT topics such as "shellies/shelly1-999999/relay/".
The Shelly_MQTT readme has references to getting started with Python plug-ins on Domoticz. The extra step for current latest versions at time of writing (early 2019) is that the Python lib needs to be updated to the dev version for the Domoticz PluginSystem to start correctly. My plug-in install and update sequence on a Pi looked like:
Check in the Domoticz Setup => Log that the PluginSystem has started correctly, something like below, If it doesn't there will be a complaint that the Python version needs updating.
2019-02-99 00:00:00.000 Status: PluginSystem: Started, Python version '3.5.3'.
On the Domoticz Setup => Hardware menu, the “Shelly MQTT” should appear as a new “Type” to choose when adding your new hardware. Enter the MQTT server details (the Mosquitto instance running on the Pi), this will control all your Shelly switches. All you have to do now to add your Shelly switch to your Domoticz hub is turn it on and off a few times (web interface or on the switch) the new MQTT entries will prompt Domoticz to add a new switch with a name something like "ShellyMQTT - shelly1-999999-0". That can easily be edited to something more meaningful such as "Landing Light".