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?
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
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.
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?
It turns out an OTA flash, with no soldering, can be done reasonably easily.
Youtube video of the process is here:
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.
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.
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.