Rollease Acmeda and Dooya Motorized Shades

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:

2 Likes

Fyi @Mattias, I have everything working perfectly on my end, and am controlling my blinds via Homebridge! I am using https://github.com/zwerch/homebridge-blinds, 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.

Equipment:

  • 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.begin(115200);
  Serial.println();
  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)
  delay(1000);
  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) {
    delay(500);
  }

  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(WIFI_SSID);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  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);

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

void loop() {
  server.handleClient();
}

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

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

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

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

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.

Does your remote look like this?

If so I have the same remote for another set of my blinds. Bond learned that one just fine, natively. I added shades and trained the commands manually and it learned them just fine. You can experiment with different distances. Also, I would suggest holding the button down continually while training. With some of these devices they need a certain number of repetitions to work. With their API, you can send the -X PATCH command to insert the number of repetitions too (which I’ve done for another set of devices), but try just holding it down to get it to memorize the code.

I wish I had found this thread earlier. I’ve tried to pair a set of “the shade store” that seems to use acmeda motors (see picture of remote). I have been unsuccessful. Very educational and impressive work. I hope the Bond add native support. I’ll keep monitoring this thread. .

@Phurat yes - this is the exact remote I have (and the set up works as described). I tried to decode the Rf signals earlier but was unsuccessful.

I ended up purchasing a 5v power supply module. After hooking it up to the relay board, everything worked perfectly. I would have thought the 3.3V would be enough, but I guess in my case it wasn’t. For reference, I purchased this board: https://www.amazon.com/gp/product/B00HJ6AE72/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1

I hear they are a bit hit or miss, so I got a pack of 6. The first one I pulled out seems to work perfectly. Thanks again for the advice.

Man still striking out with this to bridge my Dooya DD2700H remote.

About 50 hours in with failed attempts across various platforms at this point. Beyond determined to solve this technical challenge but running dry with ideas.

Platforms I’ve Tried

  • Bond Hub - Learns signal, but does not replay properly. Don’t trust any attempts to view the learned signal as a result of the replay not working.
  • Broadlink RM-Pro Hub - Same experience as Bond.
  • Rollease MTRF-DCIM-1C - Does not pair to my Dooya shade after following instructions. Had the ESPHome relay board all working, too. :frowning:
  • Sonoff RF 433 Bridge - Attempted running Tasmota/Portiche and ESPurna firmwares. Cannot get signal to detect. Abandoned any future effort with this setup due to rf433 processing offloaded from the esp8266 and not supporting all 433 signals. Bricked one with the HW mod to bypass the other chipset processing. Haven’t tried esphome on this HW, but don’t anticipate a different experience due to the processing offloading.
  • esp8266 w/ ESPhome and superheterodyne receiver - Does not detect signal. Can’t validate that other RD433.92 work, though.
  • RFLink on Arduino MEGA with superheterodyne receiver - Does not detect signal. Followed HW recommendations and documented pinout.
  • RTL-SDR and urh - Able to record signal with Universal Radio Hacker software and a RTL-SDR usb stick. My most promising lead so far, I guess, even if underwhelming progress.

HW I’ve Tried
NodeMCU Lolin ESP8266 and Arduino MEGA with:

Next Thoughts

  • RTL-SDR capture seems promising. Would love options to replay captured signals from it, but HW supported by urh for transmitting is all $300+ USD.
  • Probably need to baseline I can get 433.92Hz tx/rx working with some easier devices so I can put some trust in trying to use that infrastructure to capture and/or transmit signals captures from RTL-SDR or otherwise. If I can validate tx/rx for 433 for devices other than Dooya, I could have some confidence to try to capture in RTL-SDR or otherwise and try pushing transmit codes.

Jealous some people here had good results with the MTRF-DCIM-1C.

I used the MTRF-DCIM-1C to get my Rollease motors working. I haven’t got any Dooya ones, sorry.

@Stevehollx wow that sounds painful. I’m not sure why it’s not working, though because there is no ARC logo I doubt the MTRF-DCIM-1C would work for you.

Is it possible that either 1) your remote battery is very low, or 2) that you have a ton of Rf interference in your area? I’m wondering if that could be a factor? It’s just really strange to me that it’s not working because it absolutely should be unless you have some kind of strange motor that encrypts the codes.

I think my remote must be the DC1602. It doesn’t say Dooya but it looks just like that one. Maybe you’d have luck with that or the DC1600?

@Rmafive - great news, thanks for the update.