Using DDD Communication to simplify your Shelly Smart Home

Cyan Automation
3 min readSep 27, 2020
Photo by John Barkiple on Unsplash

From firmware 1.5, Shelly has added functionality that allows devices to communicate with another one without a server, hub or cloud between them. They call this Direct-Device-to-Device communication (DDD). Clearly, this is another powerful tool for your smart home, and allows many additional options.

Getting Started

Initially, I was hesitant to use DDD — but once I did, I’ve been looking for more ways to use it. The performance and consistency has really surprised me; in a good way. There are some notable advantages of using DDD, including:

  1. Devices can cooperate without Internet or connectivity outside of your local Wifi network
  2. Performance is super fast
  3. Simplifies automation scripting, as you can program this directly on the device

To get started, all you need is at least 2x Shelly devices — in my case I’m using a Shelly 1 and a Shelly RGBW2. I have the Shelly 1 driving 4x LED downlights, and I want a LED lightstrip to turn on when the downlights turn on — a perfect use case for DDD.

The most direct and easiest way to make DDD work is reserving IP addresses (or setting Static IPs) for Shelly devices on your network. I’ve given my Shelly 1 the IP address of 192.168.86.183. and the Shelly RGBW2 has 192.168.86.184. Remember these, as you’ll need them for the next step.

Making It Work

As mentioned above, all the configuration is done directly on the Shelly device, so head over to the local webserver to get started. I’m navigating to 192.168.86.183, which is the IP of my Shelly 1.

Under the Actions menu, you’ll have multiple DDD options — six in the case of a Shelly 1:

In my case, I’m going to use the OUTPUT SWITCHED options, as I want the LED Downlights actual state to trigger my other Shelly.

Next, we’re going to unroll OUTPUT SWITCHED ON URL, which provides this:

Select Enabled, and then create the action URL in the textbox. I want to Turn On on my white striplight on Channel 3, and set the brightness to 40. To do this, I’ll create the URL string: http://192.168.86.184/white/3?turn=on&brightness=40.

Click SAVE and now your DDD Action is saved. I’ve gone and also created a Turn Off action by inputting the following into the next section: http://192.168.86.184/white/3?turn=off.

Note: the DDD action strings will be different for each Shelly, so make sure to check the API Docs Reference for each DDD syntax.

--

--

Cyan Automation

Marc’s tips on building your Smart Home with Home Assistant, Shelly and ESPHome.