Rollease Acmeda Automate Pulse hub integration

I live in the US and just had some Rollease Acmeda motorized blinds (with RF remote) installed.

I’d love to get the Automate Pulse hub and do what people are doing in this thread, but it seems that is a product available only in Australia. Has anyone found a place to buy it in the US?

If not using the Hub, has anyone successfully controlled their blinds using anything else, like the RM Pro+?

I live in the US and have the Automate pulse hub. I purchased it from the Shade Store (it is a rebranded version). It works great with both Alex and IFTTT (except when the rollease service goes down).

Just received my hub. It installed nicely and works great from the app. Was able to connect to the IFTTT service but can’t work the triggers because my scenes won’t populate into IFTTT.

@ddkilburn Unfortunately, a known “cloud” issue they’re working on. You’ll need to contact Rollease support to have them reset your account manually so the scenes load.

Also, anytime you change scene names you’ll need to have them reset it again. See backposts on this forum for some history on it.

1 Like

A bit of a delay here, as the company who were installing our blinds went bust and left us with half an installation. But I have enough to experiment with what we’ve got; will try to get around to something soon!

has anyone successfully controlled their blinds using anything else, like the RM Pro+?

After many attempts I did not manage to connect my Rollease Acmeda blinds with the Broadlink RM Pro+.

I dont know if its me, the Broadlink RM Pro+, or maybe the type of RF the remotes use… :frowning:

See this forum:

But I have enough to experiment with what we’ve got; will try to get around to something soon!

Hey, I am very interested in this project.

I’m a beginner python programer, and would like to help any way I can.

Let me know how its going, Thanks.

I wrote a HASS component for this using serial about a year ago, but its a bit unstable, I haven’t worked out how to handle collisions or verify a command was received. I also have to poll the status of each device to get their position, because the serial protocol only communicates status changes done through serial.
My biggest frustration has been the API doesn’t allow for a way to query connected devices, you need to hard code the devices.
Shall I setup a GitHub project? if others would like to improve it.

actually if anyone wants to play with it, I uploaded it to git

@Gavc - im interested in trying this component but can i ask, why over serial instead of wifi? and how are you connecting to your server? usb to rs484 or if raspi - gpio to rs484?

Hi Michael,
Unfortunately they don’t provide a network API or from what I can tell accept any incoming communications on the local network.

I tried reverse engineering their api through their servers and discovered how insecure it was and it also goes through dooya servers in China.

I have asked for a network api, and let them knowing some of their security issues, but have not got a reply.

So I prefer to go over serial and block external access to the Pulse device.

I connected it to a pi using a USB to serial adaptor and wired the + and - to an rj11? Adaptor

Thanks for the prompt response… If at all possible, would you be able to add a pic of your cable… just want a better understanding of what i would need to do with the RJ11… I assume this is the type of USB to serial you have used, with the adapter allowing for + and - connection to an RJ11, but are they the only two wires i would need to connect?

Thanks

Michael

Hello all -

OK, I’m making slow but encouraging process here.

The code is not ready for serious use yet, by any means, but I have now managed to raise and lower my Rollease blinds from Home Assistant.

Basically, it’s a script which connects to the Hub over RS485 and to an MQTT broker. Position updates from the blinds are fed to MQTT, and commands from MQTT can be used to make the blinds open, close, stop or move to a particular position.

It may still be a while before it’s properly tidied up and usable as a Hass.io plugin - I’m not too proud of the code yet - but it’s becoming fun to play with. Any developers who have Python 3.7 and aren’t frightened of asyncio are welcome to have a look and suggest improvements!

Details here on github.

Quentin

Thanks for doing this. Looking forward to a possible Hass.io plugin.

OK, I have it running here as a Hassio addon, and it’s working nicely. I woke up this morning and opened all the blinds in the house using the HomeAssistant iphone app. This means I can start thinking about things like sunset-based automations, and opening the blinds when there’s motion in the room after sunrise.

If anyone wants to try it and has the necessary hardware, you can install it as a local add-on as per the add-on tutorial. Just copy the contents of the git repository into a local add-on directory.

The main things still to do are to make it more robust if there are errors, blinds going offline, etc and to make it available as a proper add-on. I’ll probably eventually split it into two git repositories: a separate rollease2mqtt package that others can use, and a homeassistant-rollease one with the add-on configuration.

More soon.
Q

FYI Rollease is about to release version 2 of their hub. See https://www.rolleaseacmeda.com/au/products/product-detail/automate-pulse-2 and https://www.rolleaseacmeda.com/docs/default-source/au/automate-controls/automate-pulse-2/pulse-2-qrg.pdf?sfvrsn=a258e93c_4

Yes, I did see that appear - it’ll be interesting to see what it offers. I note that it doesn’t have the RS485 interface any more, so I hope it offers some network-based alternative. I think it must, since they still talk about integration with things like Control4.

That may well be the easiest way to go once it’s actually available!

The documents for the Control4 interface state “The Automate Pulse Hub 2 supports Ethernet Cable (CAT 5) and Wireless Communication 2.4GHz) for home automate integration using the RJ45 port conveniently located on the back of the hub. Each hub can support integration of up to 30 shades.”

Hi,
Thanks for your work on this plugin.
I got the adapter, wired everything up, installed the plugin and it is almost working.
I have 7 blinds and only the first one is working and I am pretty sure that the startup error message is the problem as per below. Is it a timing issue?
thanks

INFO:__main__:Connecting to hub using device /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
INFO:rollease:Ask hubs to report in
INFO:rollease:Watching for serial updates
INFO:__main__:Pausing for 10 secs to allow blinds to respond
INFO:rollease:Registering hub 001
INFO:rollease:Requesting motor info for hub 001
INFO:rollease:Got address message from hub 001
INFO:rollease:Registering motor 001 on Hub 001
INFO:rollease:Requesting position info for motor 001 on hub 001
INFO:rollease:Recorded version of Hub 001 motor 001 as 'D00'
ERROR:asyncio:Task exception was never retrieved
future: <Task finished coro=<AcmedaConnection.monitor_updates() done, defined at /rollease.py:300> exception=UnicodeDecodeError('utf-8', b'!001D002\xf6!001D002vD00;', 8, 9, 'invalid start byte')>
Traceback (most recent call last):
  File "/rollease.py", line 308, in monitor_updates
    async for hub, delim, resp in self.response_iter():
  File "/rollease.py", line 294, in response_iter
    res = await self._get_response()
  File "/rollease.py", line 265, in _get_response
    return resp.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 8: invalid start byte

Hi there - sorry! I missed your message!

Mmm. I’m not sure about that one… It’s late tonight, but I’ll try to look more carefully into it soon.

There are some possible issues with overlapping reads and writes, I think; I’ve perhaps made things a bit too asynchronous! I need to insert a proper queue between requests coming in from HA and messages going out on the wire. In the meantime, I’ve found that it’s working very well for me as long as I don’t send commands to multiple blinds at the same time. In my automations, I insert a 3-second delay between asking one blind to move, and asking the next one, and that solved my problems for now. I have chunks of YAML that look like:

   - service: cover.open_cover
      entity_id: cover.kitchen_window

    - delay:
        seconds: 3

    - service: cover.open_cover
      entity_id: cover.bathroom_window

    - delay:
        seconds: 3

Anyway, that may not be your issue, but it might be worth trying to insert a short pause or two…

Quentin