This app control via MQTT Shelly® devices. Further information about Shelly® devices can be found on website. This app is made mostly for all of you who want use MQTT instead Shelly Cloud.

Currently supported devices:

  • Shelly 1
  • Shelly 1pm – not tested
  • Shelly 2.5 (roller mode not tested)
  • Shelly Plug S

More devices will be supported as soon I receive ordered devices.

  • Shelly Dimmer
  • Shelly Bulb
  • Shelly EM

If you need other device support – please send me e-mail. I will try to add support…
If you are beginner – please use Shelly Cloud app – it will be probably easier to use.

Quick guide how to use this app:

  1. You need to have some Shelly® Devices in your network. If you want to buy one – you can visit official Shelly Store .
  2. Go to the settings and add your MQTT server.
  3. If everything is OK – you should be able fo find your Shelly® Devices on list.

Detailed manual

  1. Confirm welcome message. Since Shelly MQTT support mDNS some of your devices can be visible on device list even when they don’t support MQTT. Please notice that in this mode you can see device IP number and long-tap on device icon – device web panel will be opened.
  2. Go to the app settings – top left icon with gear.
  3. Add new server – icon with plus sign.
  4. Add your network name (you can type here whatever you want, this name is only for you, but usually newtork name will be best), your server address (just IP number or host name, if you use non default port, also port number) your login, password. Description server is optional – more info about it you will find on this page.
  5. After confirmation you should see your network on list. You can edit your network by long tapping on entry. You can swipe it to delete it.
  6. Go back. If everything is OK – you should see all of your MQTT devices.

How to configure descriptions?

You need to configure (f.e. in your network) server which will respond to app GET requests and will send back JSON file with description. This JSON file should look like this:



This example is valid for Shelly 2.5. For Shelly 1 or other single input devices JSON should have only description for first input. Shelly4pro should have 4 description because it has got 4 inputs. Input_1_en can have value 0 or 1. 0 is disabled, 1 is enabled. If input is disabled there is no possibility to toggle input state via Shelly MQTT app (but there is possibility to do this via webpage or via MQTT command directly). For example – if you have connected some equipment which should be always turned on – you can disable corresponding input and there will be no possibility to turn off that input via Shelly MQTT app.

Variable passed to server via GET is device mac address (f.e. http://your_server_ip/your_script.php?mac=AA:BB:CC:DD:EE:FF).

Since version 1.0.9 I added also possibility to receive from server list off all devices. Generally you need to send GET request to http://your_server/yourScript?getAllIP=true . And the server should respond as f.e.:


All is in attached example. Generally this should be usable for example in scenario when you want to get access via VPN to local network not via MQTT but via REST.

Here you can download working example in php and corresponding database is MySQL. This PHP file is more like proof of concept. It need to be secured.

Does this app will work only with MQTT devices?

Devices with no MQTT are detected via mDNS. So those devices still will be visible in app, but there will be no option to control them via app. If you long-tap on device image – web browser will open with Shelly webpage.

What red firmware version mean?

It mean that there is new firmware available. You can try to update firmware version via long-tap on firmware.

When more Shelly Devices will be supported?

I have ordered most of Shelly Devices more than month ago. So I hope more devices will be supported soon 😉

Any other hidden features?

Usually long-taps on objects open “hidden features”.

  • Long tap on device name: open window with full device info. If device got password – you must type it every time. Passwords for devices are not stored in app.
  • Long tap on device image: open web browser with Shelly device webserver page.
  • If firmware is red: long tap on it to perform upgrade.

I have other question?

Feel free to send me e-mail.