Shelly 1 – brilliant software, flawed hardware

This should never be this hard

Apparently, I have friends in the right spaces (sic!), even though my review request for Shelly devices hasn’t been answered, the hackspace friend, Andy let me play with his Shelly 1 device. I hope the Shelly 1 survives my poking about and Andy won’t regret his choices! I actually made a similar device a while back – it stills hangs off my ceiling!

What’s Shelly 1

If you know Sonoff, it won’t take much to explain the Shelly 1 device. Apart from being a smart switch, it also does one important thing: it lets you toggle the state of the Shelly 1 with a wall switch.

Unlike other devices properly fitted Shelly 1 allows controlling the outlet via the internet AND the existing switch. If you are using Shell 1 to control a ceiling light, you can still toggle the light on|off with the wall switch without disabling the internet connectivity (which is the case if you use smart bulbs like Yeelight).

It’s a direct competition to Sonoff Mini (review) so when it comes to these switches you have options. I have a post running these side by side for you (soon).

Shelly 1 specs

Let’s take a look at the spec sheet first to see what are we dealing with:

  • 16A 110-265V, 50/60Hz AC or 16A 12V DC, 24 – 60V DC
  • Dimensions (LxWxH): 41 x 36 x 17 mm
  • Operational temperature: 0 to + 40 °C
  • Wireless/WiFi Protocol: 802.11 b/g/n
  • Alexa & Google Assistant compatible
  • REST API, MQTT

Shelly 1 is tiny and should fit without any problems behind the wall switch or light fitting.

Shelly 1
Support NotEnoughTech
Buy Shelly 1
Use Shelly 1 to control your lights and sockets

Hardware and installation

Take extra care, you are dealing with a high voltage which is deadly. Turn off the power supply before you fit the Shelly 1.

Hardware design awkward at best. I absolutely appreciate the form factor, but whoever was in charge of the design is not an electrician for sure. Shelly 1 comes with 5 connectors. It’s a number that hardly makes sense and here is why:

  • the installer (you) have to split 220V/110V live into 3 cables
  • the installer (you) have to split 220V/110V neutral into 2 cables

This has very little logical sense as you usually get:

  • L|N main cable (and earth)
  • L|N loop for the switch
  • L|N loop for the bulb

Don’t get me wrong, splicing cables isn’t impossible, I’m handy with tools and I still don’t feel comfortable splitting a 220V cable three-way and the only safe method I can think of are WAGO type connectors which just add to the final cost of installation and increase the chance that you will run out of space. It’s a disappointment that Shelly 1 didn’t go Sosnoff Mini way and got us 6 terminals to make it all work.

Another strange design decision was to glue the enclosure together. There is a jumper switch (12 -220V control) inside, which can be only accessed if you open up the enclosure. Since the case is glued up together, you have to be extra careful not to break the plastic when opening it.

Installing near the switch

To install Shelly 1 you have to check how are your lights wired. Turn off the lights using breakers, then open up the wall switch. If you see live and neutral going in as well as going out. Shelly 1 should be mounted inside the wall behind the switch.

Installing near the light fitting

If you only see only two wires (sometimes earth cable as well) connected, your lights are fed through the ceiling and your Shelly 1 has to go inside the light fitting hole.

Extra cables?

Lights are usually done on a separate loop. They tend to be connected with each other, so you are likely to find another mains cable to continue the loop. If you break the loop (I have done so the first time around) you will still enjoy the Shelly 1, just not the lights elsewhere.

Installation

I used push-in clips and extra wires to safely add the Shelly 1 device to my ceiling light. Unfortunately, this takes up a lot of space. If you don’t have enough space underneath your light fixture or a wall switch, you might be better off calling in a professional to split your high voltage cables.

Wago Connectors
Support NotEnoughTech
Buy WAGO quick connectors
Split and connect wires quickly and safely

Consider using soft wires so you could bend it well and tin the ends with solder to prevent the wires from slipping out from the push-in clips.

Software

What Shelly 1 lacks in hardware dept, completely makes it up with software implementation. Shelly 1 comes with:

*using it will disable Shelly Cloud and therefore Alexa and Google Assistant features.

The software (webserver and the app) is feature-rich and it comes with REST API that can be used alongside the smart speakers (looking at you Sonoff DIY Mode). It’s great, as unlike Sonoff devices, you can use the Alexa, Google Assistant and the designated app alongside controls form Home Assistant, NodeRED and pretty much anything else that supports HTTP requests.

Sadly MQTT is gated, and enabling this option will disable the smart speaker integrations.

Switch

Hats off to the person coding the switch behaviour. Simple ON|OFF would be nice but Shelly 1 comes with a list of possible behaviours.

  • toggle\push button behaviour
  • reading the state of the physical state
  • edge detection

I settled for the edge detection, so flipping the wall switch in any direction will toggle the opposite status. Options are simply brilliant and I have no doubt you will find the best setting for yourself.

NodeRED and REST API

The REST API is well explained. The documentation insists on the use of JSON in the examples which lead me into the false assumption I could use the JSON to send the data to Shelly 1.

No such thing. When passing control commands, send it as string and use: "turn=on" format rather than correctly formatted JSON: {"turn":"on"}. I wasted an hour trying to figure out why I cannot control my Shelly 1. If you are in charge of making documentation for any API – please ALWAYS provide an example!

NodeRED sample for Shelly 1
[{"id":"6dd6c358.8384cc","type":"inject","z":"5918ab24.3ed1a4","name":"ON","topic":"","payload":"on","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":230,"y":160,"wires":[["9e4eaed9.bf162"]]},{"id":"9e4eaed9.bf162","type":"function","z":"5918ab24.3ed1a4","name":"turn on/off","func":"var x = msg.payload;\nvar IP = \"192.168.1.78\";\nmsg.url= \"http://\"+ IP + \"/relay/0\";\n\nmsg.payload = \"turn=\" + x;\nreturn msg;","outputs":1,"noerr":0,"x":420,"y":200,"wires":[["91dfc63e.4fc608"]]},{"id":"91dfc63e.4fc608","type":"http request","z":"5918ab24.3ed1a4","name":"","method":"POST","ret":"obj","paytoqs":false,"url":"","tls":"","persist":false,"proxy":"","authType":"","x":590,"y":200,"wires":[["bc4f05f0.b71cd8"]]},{"id":"bc4f05f0.b71cd8","type":"debug","z":"5918ab24.3ed1a4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":750,"y":200,"wires":[]},{"id":"ce7dbc38.8e8ee","type":"inject","z":"5918ab24.3ed1a4","name":"OFF","topic":"","payload":"off","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":237,"y":248,"wires":[["9e4eaed9.bf162"]]},{"id":"1636e43c.ad812c","type":"function","z":"5918ab24.3ed1a4","name":"status","func":"\nvar IP = \"192.168.1.78\";\nmsg.url= \"http://\"+ IP + \"/status\";\n\n\nreturn msg;","outputs":1,"noerr":0,"x":410,"y":80,"wires":[["9231bcbc.391f2"]]},{"id":"9231bcbc.391f2","type":"http request","z":"5918ab24.3ed1a4","name":"","method":"POST","ret":"obj","paytoqs":false,"url":"","tls":"","persist":false,"proxy":"","authType":"","x":590,"y":80,"wires":[["c188708b.5d4be"]]},{"id":"c188708b.5d4be","type":"debug","z":"5918ab24.3ed1a4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":750,"y":80,"wires":[]},{"id":"b26ecfeb.8c3b2","type":"inject","z":"5918ab24.3ed1a4","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":220,"y":80,"wires":[["1636e43c.ad812c"]]}]

Custom Software

Due to Shelly 1 design GPIO pins share HIGH VOLTAGE when the device is powered via mains! Do not use GPIO when the device is connected to mains.

Shelly 1 is ESP based, so you can flash it with custom code to make it work for you. Frankly speaking, since the MQTT is there in “offline” mode for privacy freaks, HTTP comes as standard, and there are no extra GPIO pins to extend its functionality I find it rather pointless.

Especially that, you can set custom HTTP requests directly from the app when a switch is pressed or state of the device changes.

Conclusion

As much as I love what they did with software, I struggle to give my recommendation. The installation process is a hurdle. I’m confident enough to make it work for me, but it should never be so difficult. The true cost of the Shelly 1 device isn’t the €10 per unit, is the added cost of an electrician installing it for you, and that can turn into a very journey quickly!

Note to Shelly guys: take a look at Sonoff Mini and make the Shelly 1 v2.0. If you have any comments or questions – leave it in this Reddit thread.

Shelly 1
Support NotEnoughTech
Buy Shelly 1
Use Shelly 1 to control your lights and sockets
REVIEW OVERVIEW
Software
Hardware
Features
SHARE