# Shelly Duo bulbs crashing via MQTT

**URL:** <https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244>\
**Category:** Hardware\
**Created:** [12 September 2023 15:24 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244 "2023-09-12T15:24:18Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![jsprenkle](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jsprenkle/32/81249_2.png) [@jsprenkle](https://discourse.nodered.org/u/jsprenkle)\
**Post date:** [12 September 2023 15:24 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244/1 "2023-09-12T15:24:18Z")

</div>

Good morning,  
I've just purchased a pack of Shelly Duo bulbs. I don't want to use the cloud service, so their advertising that it uses MQTT and has variable brightness it was a deciding factor for me.

When using MQTT you can turn the bulb on and off, but **if I send a command to set any configuration parameters it crashes the bulb**. It no longer works via the built web page or via MQTT. My guess is my payload is wrong (the docs are confusing). When the program decodes the json payload (without validation) a part of the object they access is missing it throws an unhandled exception or just crashes.

Any help would be appreciated. (I have a support request with Shelly but so far I've only gotten the standard copy and paste from the FAQ answer. I asked to escalate it, and if not possible requested an RMA to return them.

Has anyone worked out what the configuration JSON should be?  
Can I flash Shelly devices with Tasmota?

Thanks in advance for any suggestions!

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [12 September 2023 16:38 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244/2 "2023-09-12T16:38:12Z")

</div>

> [@jsprenkle](#):
>
> Shelly Duo bulbs

I believe the Duo is a Gen 1 device?

If so, you should be able to see its status using MQTT Explorer on topic `shellies/ShellyBulbDuo-<deviceid>`. BTW, if you've changed the name of the device, that topic might be `shellies/<devicename>`

Assuming that is working, you should be able to send a string to `shellies/ShellyBulbDuo-<deviceid>/light/0/command` that is either `on` or `off`. Does that work? (Or ``shellies//light/0/command` if you've changed the device name

Oh, and do check that you have the latest firmware. Some early firmware wasn't very good with MQTT.

As an example, on my Shelly RGB2 device I can do the above by sending to this topic: `shellies/shelly_rgbw2_01/color/0/command`

[Shelly Duo: MQTT – API Reference](https://shelly-api-docs.shelly.cloud/gen1/#shelly-duo-mqtt)

> [@jsprenkle](#):
>
> Can I flash Shelly devices with Tasmota?

Some can, not sure about the Duo. You'd have to take the shell apart though I suspect (I don't have a Duo) in order to get to the pins. On the RGB2 and similar devices, there is usually a small cover over the pins which are accessible. You shouldn't really need that though. The Shelly devices are usually very reliable.

---

<div class="post-metadata">

**Author:** ![jsprenkle](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jsprenkle/32/81249_2.png) [@jsprenkle](https://discourse.nodered.org/u/jsprenkle)\
**Post date:** [12 September 2023 17:23 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244/3 "2023-09-12T17:23:19Z")

</div>

It says it's the latest firmware:  
`The current Firmware version of your Shelly device is 20191216-140245/??? No newer firmware available.`

It's rather disappointing it appears to be approaching four years old.

I was able to control it via MQTT using topic  
`shellies/ShellyBulbDuo-D0D35C/light/0/command`  
sending a payload of "on" and "off"

Their docs said you could send control setting to  
`shellies/ShellyBulbDuo-D0D35C/light/0/set`  
But the documentation was confusing enough I tried experimentation to try to infer what was correct. Sending this payload crashes it:  
`{"brightness":100,"white":0,"temp":2700,"turn":"on","transition":500}`

The DUO doesn't have an obvious access for connections to the electronics. It wasn't beneath the diffuser was it?

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [12 September 2023 18:48 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244/4 "2023-09-12T18:48:42Z")

</div>

OK, try sending `{"turn": "on"}` (or `"off"`) to `shellies/ShellyBulbDuo-D0D35C/light/0/set`.

I've just tried the equivalent on my RBG2 and it worked.

If that works, try the other settings individually and if that works, try combinations.

> [@jsprenkle](#):
>
> The DUO doesn't have an obvious access for connections to the electronics. It wasn't beneath the diffuser was it?

Sorry, as I said, I don't have one. I have some Ikea bulbs but those are controlled over Zigbee. You might find some info on the Tasmotta site.

---

<div class="post-metadata">

**Author:** ![jsprenkle](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jsprenkle/32/81249_2.png) [@jsprenkle](https://discourse.nodered.org/u/jsprenkle)\
**Post date:** [12 September 2023 22:14 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244/5 "2023-09-12T22:14:23Z")

</div>

According to Reddit I'm probably never going to get a resolution. I did see someone say they had tasmota on them, but I haven't run down details.

Thanks for trying

---

<div class="post-metadata">

**Author:** ![jsprenkle](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jsprenkle/32/81249_2.png) [@jsprenkle](https://discourse.nodered.org/u/jsprenkle)\
**Post date:** [13 September 2023 00:55 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244/6 "2023-09-13T00:55:57Z")

</div>

It turns out an OTA flash, with no soldering, can be done reasonably easily.  
Youtube video of the process is here:

[![](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/0/90ffa4a7e18ae31e2217f0a2f04ca09ea57639e0.jpeg "Upgrade Shelly Switches | Easy NO Soldering Smart Garage Door Opener") ](https://www.youtube.com/watch?v=_oRr8FZyyQ0)

The links in the GitHub page are no longer valid, but a pinned post in the youtube video gives new ones. When I upgraded the Firmware as per the instruction in the video it gives a "minimal firmware" warning, but it still works. I'm not sure the firmware upgrade once in Tasmota is necessary.

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [13 September 2023 14:54 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244/7 "2023-09-13T14:54:43Z")

</div>

> [@jsprenkle](#):
>
> minimal firmware

This is a small firmware file to allow OTA flashing of a larger full version. You should flash a "full" version via the GUI in Tasmota for proper operation.

---

<div class="post-metadata">

**Author:** ![jsprenkle](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jsprenkle/32/81249_2.png) [@jsprenkle](https://discourse.nodered.org/u/jsprenkle)\
**Post date:** [13 September 2023 17:23 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244/8 "2023-09-13T17:23:51Z")

</div>

I did and it appears to fail.  
I get no message, the page resets, then it gives the same minimal firmware message.  
Regardless it seems to work.

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [13 September 2023 18:20 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244/9 "2023-09-13T18:20:25Z")

</div>

It is a two step process, first it flashes minimum, then restarts and flashes normal version. Do not interrupt this process!

If you power cycle the device, then log back in and click on information button, what firmware does it show ?

---

<div class="post-metadata">

**Author:** ![jsprenkle](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jsprenkle/32/81249_2.png) [@jsprenkle](https://discourse.nodered.org/u/jsprenkle)\
**Post date:** [13 September 2023 18:39 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244/10 "2023-09-13T18:39:53Z")

</div>

## ShellyBulbDuo-D0D35C

| Program Version | 13.1.0(tasmota) |
| --- | --- |
| Build Date & Time | 2023-08-15T07:58:36 |
| Core/SDK Version | 2\_7\_4\_9/2.2.2-dev(38a443e) |
| Uptime | 0T17:49:50 |
| Flash Write Count | 25 at 0xF4000 |
| Boot Count | 6 |
| Restart Reason | Power On |
| Friendly Name 1 | ShellyBulbDuo-D0D35C |

---

<div class="post-metadata">

**Author:** ![jsprenkle](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jsprenkle/32/81249_2.png) [@jsprenkle](https://discourse.nodered.org/u/jsprenkle)\
**Post date:** [13 September 2023 18:42 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244/11 "2023-09-13T18:42:51Z")

</div>

The firmware upgrade I'm talking about is the one triggered after Tasmota is installed. The web console for the device offers an "update firmware" button. The video mentions the Shelly device firmware's OTA update has two step update.

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [14 September 2023 00:06 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244/12 "2023-09-14T00:06:50Z")

</div>

That looks fine you have the FULL firmware installed.

---

<div class="post-metadata">

**Author:** ![jsprenkle](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jsprenkle/32/81249_2.png) [@jsprenkle](https://discourse.nodered.org/u/jsprenkle)\
**Post date:** [14 September 2023 01:29 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244/13 "2023-09-14T01:29:21Z")

</div>

Thanks, the error message had me questioning it. It works so I wasn't terribly concerned

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [13 November 2023 01:30 UTC](https://discourse.nodered.org/t/shelly-duo-bulbs-crashing-via-mqtt/81244/14 "2023-11-13T01:30:00Z")

</div>

Closed on 13 November 2023 01:30 UTC

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
