Integration for Rollease Acmeda Automate Pulse hub and blinds

Hi All,

I’ve been developing a native integration for Rollease Acmeda Automate blinds that connect via the Pulse hub. This is an integration that wraps around the API that I’ve also developed here:

I’ve forked home assistant and have created the new integration based on the philips hue integration. The new integration is in my github account here:


I’m not exactly sure of the best way to add the component to an existing installation (perhaps someone with more Home Assistant experience can advise the best way to do this).

You’ll need to download or checkout the aiopulse API and manually install it:

git clone https://github.com/atmurray/aiopulse.git
cd aiopulse
python3 setup.py install

As I’m new to developing for Home Assistant I’d appreciate feedback. For example, at the moment I can’t seem to get the json strings to load. Other than that for me the integration successfully discovers any hubs on your local network and then creates cover entities against the hub. Up/down/stop/goto controls all work along with blind position. I haven’t been able to get battery status to work as of yet.

2 Likes

Update, I’ve got a pull request active to get the integration added to the Home Assistant code base.
In the mean time you can add the integration as a custom integration (even with the hass.io appliance) by following the following steps:

  1. Get console access to home assistant (e.g. direct, ssh, the ssh and web terminal add-on)
  2. Create the folder <config_dir>/custom_components/ and change to it.
  3. Issue the following command:
    curl https://codeload.github.com/atmurray/home-assistant/tar.gz/acmeda | tar -xz --strip=3 home-assistant-acmeda/homeassistant/components/acmeda
  4. Restart Home Assistant
  5. The integration should now be able to be added for each hub that you have.
1 Like

I have tried the integration approach also. The integration finds both of my hubs but fails with the following error message:

Logger: aiohttp.server
Source: data_entry_flow.py:168
First occurred: 11:04:07 AM (2 occurrences)
Last logged: 11:07:00 AM

Error handling request
Traceback (most recent call last):
File “/usr/local/lib/python3.7/site-packages/aiohttp/web_protocol.py”, line 418, in start
resp = await task
File “/usr/local/lib/python3.7/site-packages/aiohttp/web_app.py”, line 458, in _handle
resp = await handler(request)
File “/usr/local/lib/python3.7/site-packages/aiohttp/web_middlewares.py”, line 119, in impl
return await handler(request)
File “/usr/src/homeassistant/homeassistant/components/http/real_ip.py”, line 39, in real_ip_middleware
return await handler(request)
File “/usr/src/homeassistant/homeassistant/components/http/ban.py”, line 72, in ban_middleware
return await handler(request)
File “/usr/src/homeassistant/homeassistant/components/http/auth.py”, line 127, in auth_middleware
return await handler(request)
File “/usr/src/homeassistant/homeassistant/components/http/view.py”, line 123, in handle
result = await result
File “/usr/src/homeassistant/homeassistant/components/config/config_entries.py”, line 163, in post
return await super().post(request, flow_id)
File “/usr/src/homeassistant/homeassistant/components/http/data_validator.py”, line 50, in wrapper
result = await method(view, request, *args, **kwargs)
File “/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py”, line 92, in post
result = await self._flow_mgr.async_configure(flow_id, data)
File “/usr/src/homeassistant/homeassistant/data_entry_flow.py”, line 130, in async_configure
result = await self._async_handle_step(flow, cur_step[“step_id”], user_input)
File “/usr/src/homeassistant/homeassistant/data_entry_flow.py”, line 168, in _async_handle_step
f"Handler {flow.class.name} doesn’t support step {step_id}"
homeassistant.data_entry_flow.UnknownStep: Handler AcmedaFlowHandler doesn’t support step init

@gregbm, it looks like you’ve got an older version of Home Assistant. I did have backwards compatibility added but the developers asked me to remove support for this function when submitting the pull request. If you can, upgrade to the latest version (I’m using the hass.io appliance and the built-in updater seems to work fine).

Note that I haven’t updated the integration with the fixes as we’ve discussed in the other thread. I’ll do this today once you confirm that the demo app is now all working as expected.

I also use hassio and I am running version 108.4. Do I need to be on 108.6?

Hmm that’s pretty recent, I’m running 0.108.5.
I’d suggest updating once we iron out all the issues with your setup.

Awesome work here @atmurray. I just installed manually from GitHub and added the integration manually. It found the hub and was able to control shade immediately.

Love it. I had this project on my backlog, but you did all the heavy lifting for me. Thanks again.

I’m having issues with reliability with this integration. The entity is unavailable and I need to reboot HA to get it working again. Has anyone else got this problem?

Hi and FYI I am getting 5-10 of these errors a day now.
thanks

Logger: root
Source: /usr/local/lib/python3.7/site-packages/aiopulse/hub.py:556
First occurred: 8:33:45 PM (2 occurrences)
Last logged: 8:37:42 PM

192.168.1.167: Exception raised when parsing response: b'0000000303000091000000030300009100000003030000910000000303000091'
192.168.1.167: Exception raised when parsing response: b'00000003030000910000000303000091'
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 546, in response_parse
    Hub.respmap[mtype].execute(self, message)
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 468, in execute
    self.function(target, message)
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 496, in rec_message
    raise errors.InvalidResponseException
aiopulse.errors.InvalidResponseException

Thanks for the exception information @fantangelo, I’ve made an update that deals with that exception. That error stems from the hub sending multiple responses in the one packet which I hadn’t accounted for. @stavroz I’ve been using the integration for a while now and found it to be reliable. It could be that the issue @fantangelo found is impacting you also.

OK, thanks. Will test.

Hi,
I updated the acmeda custom component files and restarted HA but the problem is still there.
I see in the error log that the problem is in aiopulse. How do I update that?

Also, I no longer have my cover entities only the battery entities for each shade.
I am seeing this in the logs which may be the problem.

2020-05-03 08:37:40 ERROR (MainThread) [homeassistant.setup] Unable to prepare setup for platform acmeda.cover: Platform not found (cannot import name 'CoverEntity' from 'homeassistant.components.cover' (/usr/src/homeassistant/homeassistant/components/cover/__init__.py)).

thx

@fantangelo, the version of aiopulse should automatically update. What is the error you’re still seeing?

With respect to the log message that you posted, I’ve had to keep the integration up-to-date with changes being made in the home assistant dev branch. The home assistant developers have made some changes that are incompatible with older home assistant versions.

You could try using the backport branch I created:

curl https://codeload.github.com/atmurray/home-assistant/tar.gz/acmeda-backport | tar -xz --strip=3 home-assistant-acmeda-backport/homeassistant/components/acmeda

Sorry, but I forgot to include the aiopulse error but fortunately it is now gone. The backport branch seems to have fixed the missing covers issues. thanks for your quick response.

This will be a game changer.

Thanks so much for developing this man!

@atmurray did anyone take you up on your offer to help develop for v2?

Any progress on this rolling into HassIO officially? Do you need any help updating the PR to land?

Trying to run this custom integration, but each time I select ‘acmeda’ it spins its wheel trying to install the integration, but then just times out and says “Aborted”. Nothing in the logs that I can see… any thoughts? I just updated to 0.111.4.

Did you get it working joshslater, I’m getting the exact same thing.
I’ve enabled debug logging and seeing the following:

2020-07-08 15:45:04 DEBUG (MainThread) [aiopulse.transport] Connection established
2020-07-08 15:45:19 INFO (MainThread) [aiopulse.hub] Discovery complete
2020-07-08 15:45:19 DEBUG (MainThread) [aiopulse.transport] UDP connection closed
2020-07-08 15:45:19 DEBUG (MainThread) [aiopulse.transport] Socket closed

Weird thing is it was working when I had the custom component install but has stopped now it’s been released in core?

The integration works well for me now but it usually doesn’t recover from a HA restart after which I need to remove and re-add rollease in the integrations GUI. Also the battery is wrong, it will only say 64% or 72%