Rollease Acmeda and Dooya Motorized Shades


The Pulse 2 hasn’t been released yet.

Don’t think that’s true. I found this one on eBay, and also, I found other threads where people have indicated they purchased one.

Hmm, that’s interesting. My local curtain shop says the Rollease reps are advising it is not available yet and when I check Rollease’s website all their Pulse 2 pages are preambled by a “Coming soon”.

I’ll see what customer services get back with this time then :slight_smile:

I abandoned the Sonoff RF 433 bridge, and am currently going downtown the route of an rf433 tx/rx via rcswitch on an esp8266 board to try to sniff the signal now. Tried Tasmota and espurna firmware with the rf433 tx/rx devices on the esp8266 but couldn’t get them to work. Just loaded openmqttgateway on it now, as that is supposed to have support in the binary for rf433 with the rcswitch library but haven’t spent time to try and get that to detect the rf signals yet.

I tried a Sonoff RF 433 bridge running tasmota or espurna, but struck out as that didn’t recognize the signals (sonoff receiver is done on another programmed chip so it has known to not detect all non-Sonoff 433 signals).

Once the signal gets sniffed, may be able to get the Sonoff 433 bridge to still transmit it as that is a nice small form factor.

Part of me is thinking gutting the blind I have and replacing the receiver may be an easier route at this point!

Brutal @Stevehollx, good research. If you look at the Rf signals I shared above (I have many of the signals captured), I think the issue is that there is something a bit unusual about how it transmits and thus I think it’s hard to sniff via a standard repeater. It’s not just a basic kind of signal that my other remotes show.

I’m also somewhat wondering about the “ARC bi-directional communication” but not sure if any of it matters. It does seem like the signal is consistent, I just can’t figure out how to transmit it. Keep me updated on your progress!

Good find on bidirectional communication. It does look like this remote has to pair.

Found this instruction to clone the message of a remote to a second:

Adding Motor Connection to Additional Remote(s):
• Keep original remote separate from additional remotes you are cloning. (It’s
recommended that you mark original remote with a temporary marking, such as a piece of tape.)

  1. Prepare remote(s) by removing back battery cover of all remotes.
  2. Select same channel to be cloned on all remotes using “UP” and “DOWN” buttons.
  3. Using one second intervals, press top right “P2” button twice on remote already
    programmed with desired settings, then within one second press top right “P2” button on
    new remote(s).
  4. Successful cloning will be confirmed by five audible beeps.
  5. Each channel must be individually cloned, ensure correct channel is selected on all remotes to be added.

I think that workflow needs to be replicated with the bridge synthesizing the commands of the second remote. I am thinking:

  1. Buy second remote.
  2. Sniff the P2 signal on the new remote.
  3. Pair second remote to bridge.
  4. Sniff up and down from second remote once paired.
  5. Remove second remote from shade.
  6. Pair bridge to shade by transmitting the P2 signal from the second remote (step 2).
  7. See if 5 beeps for confirmation occurs.
  8. Program bridge to send second remote’s captured up/down signals.
  9. Test!?

I am guessing on the logic, basing that P2 may be sending a public key to the shade specific to that remote, and this sniffs the key exchange of the P2 and the outcome after the handshake.

If there is a bidirectional handshake based on some key rotation in the hub for pairing, the above won’t work, but I am hoping it isn’t that complicated.

May be easier with Tasmota/Sonoff than Bond. Not sure Sonoff can sniff the P2 (didn’t try earlier) and don’t want to break the functionality of the working remote for fear of wife disappointment. May purchase a second remote to try this out on.

Another thought is to research the difference of my DD2700H remote vs the DD2700. Seems the latter is a single channel design, maybe won’t require pairing as in the other thread on the HASS forum someone seemed to sniff the DD2700 with Sonoff+Tasmota.

I am guessing on the logic, basing that P2 may be sending a public key to the shade specific to that remote, and this sniffs the key exchange of the P2 and the outcome after the handshake.

Was wondering about that myself, but it’s unclear that the signals are different from my analysis. I can’t see any visual difference in the RF signals, so I’m not sure it’s needed. I don’t know if there’s any kind of rolling code really.

Another thought is to research the difference of my DD2700H remote vs the DD2700.

Interesting idea. I found that post you’re referring to, I think?

Lastly, I just found this!

Rollease Automate ARC Dry Contact Control Interface - MTRF-DCIM-1C

They’re like $20-30. Depending on your set up, it could be perfect. It will require a relay/arduino to be integrated properly, but I’m seriously thinking about it. Essentially, you can just create a webserver on the arduino and feed the requests to activate the various pins.

It pairs with the shades (like a remote) but you can open it with the relay.

I’d still rather do without their technology, but it does solve the need.

Now that was a gem! I’ve ordered 4 of these to control 4 channels. Won’t arrive for another 10-20 days though so won’t be playing with them just yet. If you want to go down this route, bear in mind that you will need 2-3 relay outputs per controller depending on if you want to use the stop command as well or not.

Now I won’t bother with getting the Pulse 2 hub, I’ll wait until there is Rollease support using the Bond Bridge instead :slight_smile:

Now that was a gem!

Yes… didn’t see it before myself!

I’ve ordered 4 of these to control 4 channels.

If you’re OK grouping all the remotes together, you can get by with 1 (but then you’d lose independent control). You can pair these with multiple shades. But, wouldn’t this make it more cost-effective to buy the automate pulse hub and just operate with a serial cable?

If you want to go down this route, bear in mind that you will need 2-3 relay outputs per controller depending on if you want to use the stop command as well or not.

Yes, ordered a 4 chan relay (not sure they make 3 chan?). Adding the stop command isn’t entirely needed for my set up, but with the price difference between 2 and 4 chan relay being so low, I figured why not.

There are also some interesting programming guides in the rollease documentation. Essentially, just 0.25-0.5 sec of “on” for up/down/stop operates them in the simplest sense, but you can get a lot more fancy with it.

I’ve got 7 blinds but 4 groups that would control them all so I’ve bought one controller per group.

In the end, it will probably be around the same cost as the Pulse 2 hub, but this solution will end up being better for me with no fuss local control and being able to be integrated into Hubitat without any complex configuration there either. And the Pulse 2 hub is still not available to me. No one here can get hold of them and the few places I’ve found on the Internet that sell them new have no stock.

My plan is to still get a Bond Bridge to play with and hopefully there will be native Rollease support in the end. I can then reuse the relays for other things :slight_smile:


Fyi @Mattias, I have everything working perfectly on my end, and am controlling my blinds via Homebridge! I am using, a plugin I heavily contributed to.

In case you or others find it useful, I’ll share my set up, which was all purchased on Amazon. This isn’t exactly a super straightforward project, but I’m going to share some details and sample Arduino code based on how my set up is working.


  • Rollease MTRF-DCIM-1C ~$25
  • ELEGOO 4 Channel DC 5V relay (using normally open) ~$9
  • Signcomplex 12V 1A Power Supply Transformer, 12VDC ~$9
  • NodeMCU ESP-12E ~$9

MTRF-DCIM-1C wiring:

  • Connect the 12V power supply to the +/- pins of the MTRF-DCIM-1C
  • Using the existing remote, set to the desired channel, take off the battery cover, press P2 (wait for a jog/beep), press P2 (wait for jog/beep), and press the SET button. Note, the set button is on the side of the MTRF-DCIM-1C. If successful, you’ll hear some more beeps/jogs and the remote will be paired.

Arduino / Relay wiring:

  • Connect NodeMCU IN1, IN2, etc. pins (pins 6-8 in my case), along with VCC(to 3.3V) and GND to GND.

  • On the relay output, wire the N/O side of the relay to up, down, stop (etc.) on the MTRF-DCIM-1C. Note the numbering (X1, X2, etc.), which maps to IN1, 2, etc. I found that the N/O side is on the right side when you have the output terminals facing you.

  • Wire the middle relay output (the middle terminal) to Common on the MTRF-DCIM-1C. Since I’m using 3 relays, I just connected 3 separate wires between Common on the MTRF-DCIM-1C and the individual terminals.

Theoretically, you’re supposed to use a 5V power supply for this relay and my NodeMCU board is just 3.3V, but it seems very functional as is, I presume because it’s triggered by LOW and not HIGH.

I’m using 600ms for the transmission time, which seems more than sufficient and not sure it’s worth reducing. The documentation says >250 ms is required.

The latency is insanely low. I think 50-100 ms at most between the time I press the button on HomeKit and the time my blinds start moving.

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
// #include <ESP8266HTTPClient.h>

ESP8266WebServer server(80);

// WiFi
const char* WIFI_SSID = "YourWifiSSID";
const char* WIFI_PWD = "YourPW";

const int blindsUpPin = 12; //  = pin 6 on NodeMCU
const int blindsDownPin = 13; // = pin 7 on NodeMCU
const int blindsStopPin = 15; // = pin 8 on NodeMCU

void blindsUp();
void blindsDown();
void blindsStop();
void handleNotFound();

void setup() {
  Serial.println(F("Setting up GPIO pins for blinds"));

  pinMode(blindsUpPin, OUTPUT); // up
  digitalWrite(blindsUpPin, HIGH);

  pinMode(blindsDownPin, OUTPUT); // down
  digitalWrite(blindsDownPin, HIGH);

  pinMode(blindsStopPin, OUTPUT); // stop
  digitalWrite(blindsStopPin, HIGH);

  WiFi.mode(WIFI_OFF);        // Prevents reconnection issue (taking too long to connect)
  WiFi.mode(WIFI_STA);        // This line hides the viewing of ESP as wifi hotspot
  WiFi.begin(WIFI_SSID, WIFI_PWD);
  while (WiFi.status() != WL_CONNECTED) {

  Serial.print("Connected to ");
  Serial.print("IP address: ");

  server.on("/blinds/1/up", HTTP_POST, blindsUp); // note: you can change this to HTTP_GET (or another method) if you want
  server.on("/blinds/1/down", HTTP_POST, blindsDown);
  server.on("/blinds/1/stop", HTTP_POST, blindsStop);

  Serial.println(F("HTTP server started"));

void loop() {

void blindsUp() {
  server.send(200, "text/plain", "OK");
  Serial.println(F("Sending command blinds up"));
  digitalWrite(blindsUpPin, LOW);
  digitalWrite(blindsUpPin, HIGH);

void blindsDown() {
  server.send(200, "text/plain", "OK");
  Serial.println(F("Sending command blinds down"));
  digitalWrite(blindsDownPin, LOW);
  digitalWrite(blindsDownPin, HIGH);

void blindsStop() {
  server.send(200, "text/plain", "OK");
  Serial.println(F("Sending command blinds stop"));
  digitalWrite(blindsStopPin, LOW);
  digitalWrite(blindsStopPin, HIGH);

void handleNotFound() {
  server.send(404, "text/plain", "404: Not found");

Still sticking out on my Dooya shade. Got the Rollease dry contact controller but can’t get it to pair to the blind motor. Tried both: a) the motor p2 hold, wait for jog and beep, press and release set and b) hold p2 on remote and wait for jog and beep, repeat, engage stop on remote for 4s.

Neither action has the motor acknowledge the signal from the dry contact transmitter to pair it.

Ironically I have all the rest setup with esphome controlled relays and HASS for this.

Next step may be to gut a second remote and control the remote buttons with relays.

@Stevehollx I’m not sure if you’ve transcribed the steps you’re doing correctly, but that is not the pairing procedure described in the manual.

From existing remote (*pay attention to what channel you’re on, since that will be the one paired):

  1. P2 on back of remote. Wait for motor jog and beep. (If you have problems at this step, I had luck pulling the battery, re-inserting it and trying it again).
  2. P2 on back of remote (again). Wait for jog/beep.
  3. Set button on controller (it’s on the side). You don’t have to hold it, just a single press will do it.

Before starting this, make sure that the voltage of your AC/DC adapter is plugged into the correct voltage (12V or 24V), wired correctly - with +/- - and only one of them is used. I accidentally plugged the 12V adapter into the 24V sockets and nothing worked until I realized that.

From motor:

  • Add a wire to the common terminal, and another wire to the stop terminal. Don’t connect them yet.
  1. P1 on motor head. Wait for jog/beep.
  2. Connect the common/stop terminal wires for about 0.5-1s.

Additional tips:

  • The above steps need to be performed “fairly” quickly in sequence to work.
  • I believe (?) this will only work with ARC products. There should be an ARC logo on the back of your remote and/or on your motor. The same is true for their hub.

Thanks for this info! I was looking into how to setup the MTRF-DCIM-1C and this really helped. I have hit a bit of a snag. I’ve got the ESP8266 running and responding to the http calls, however the MTRF-DCIM-1C isn’t responding to them. When I make the calls, I see in1/2/3 light up on the relay module, but nothing happens on the MTRF-DCIM-1C end. I have confirmed that the channel is correct. Should I see a flash on the MTRF-DCIM-1C if the up/down/stop command is being processed properly? If so, I’m assuming I have a wiring issue.

One strange thing I have noticed with the module is that in2 has a noticeable click when I run the command, but the other two just light up the relay led with no click. Not sure if that’s normal.

Any recommendations you have would be super appreciated! I’ve copied a pic of my wiring below in case there’s something glaringly wrong!

@Rmafive I think I messed this up in my instructions. It’s the left side! Try swapping those and see if that fixes it.

That did the trick, thanks! I’ve now got 1/3 of the relays working. The other two only light up the led. I’m assuming this is probably a current issue or some wiring problem.

Yeah no dice still with this process. Don’t get beeps to acknowledge the pairing from the transmitter. I don’t have any ARC logos. Wondering if the Dooya DD2700H (single channel remote) isn’t compatible with the Rollease transmitter.

A Linknode R4 is nice for this project, by the way. Will run ESPHome and has 4 built in relays with the ESP8266.

I just received my gear yesterday so I still have my proof of concept set up on the kitchen table :stuck_out_tongue:
This is what my setup looks like:

I have the same relay manufacturer as you so I can confirm that normally open (NO) is on the left hand side as you’re looking at the screw terminals. Even though you have them wired to normally close, you should definitely still hear a loud clicking sound for all of the relays when they are operated. I cannot see from your picture that you have made any wiring mistakes though.

Yes, it may well be a power problem since you are using 3.3v to drive a 5v relay. See if you can find a 5v power supply to power the relay and then give it a go

1 Like

Exactly. You should hear a clicking sound for every relay (you can disconnect the outputs just for testing purposes if you want too). A few things to check:

  1. What power source are you using for your USB? I’m using 2.4A.
  2. Are you sure your pin mapping are correct? You can try replacing the pin numbers (in my code) with the constants D6, D7, D8, etc. I think those values should generally also work. (E.g., const int blindsUpPin = D6;)

To test this in a simple way, swap the wire from the working relay (on the ESP module) with a non-working module. If that works, it’s your Arduino code (e.g., pin mappings).

I know the 3.3V isn’t supposed to be enough to power a 5V relay, but with my set up it’s working fine.

One other difference is that I ran individual wires from common to each of the middle relay terminals. I’m not sure that matters, but thought I’d mention it.