Rollease Acmeda Automate Pulse 2 hub integration

Tags: #<Tag:0x00007fc409233230>

Hi, i am requesting some help with integrating my blinds thought the pulse hub 2 i recently bought.

The problem:

I added the device through the homekit integration (discovered automatically by home assistant) but no entities appear for the integration!

The Steps I followed:

  1. I added the blinds to the Automate Pulse 2 app on android.
  2. Go to Integrations added the Homekit Accessory it found the device ID of the hub automatically (“RA-Pulse-1007813”)
  3. I configure the interrogation by adding the provided homekit key in this format “XXX-XX-XXX” and it adds the integration successfully
  4. I click the intergration, but no entities are available! :frowning:

Any help with where i might have gone wrong, or help with trouble shooting is appriciated!

Hardware Info:
currently running version 0.106.4
Host System: Ubuntu 18.04.3 LTS

LOG ERRORS (relating to homekit):
Error setting up entry RA-Pulse-1007813 for homekit_controller

Error setting up entry RA-Pulse-1007813 for homekit_controller
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 215, in async_setup
    hass, self
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/__init__.py", line 199, in async_setup_entry
    if not await conn.async_setup():
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/connection.py", line 130, in async_setup
    if await self.async_refresh_entity_map(self.config_num):
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/connection.py", line 191, in async_refresh_entity_map
    self.pairing.list_accessories_and_characteristics
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.7/site-packages/homekit/controller/ip_implementation.py", line 81, in list_accessories_and_characteristics
    accessories = json.loads(tmp)['accessories']
  File "/usr/local/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/usr/local/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/lib/python3.7/json/decoder.py", line 353, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Unterminated string starting at: line 1 column 3994 (char 3993)

Error doing job: Task exception was never retrieved

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/connection.py", line 191, in async_refresh_entity_map
    self.pairing.list_accessories_and_characteristics
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.7/site-packages/homekit/controller/ip_implementation.py", line 75, in list_accessories_and_characteristics
    response = self.session.get('/accessories')
  File "/usr/local/lib/python3.7/site-packages/homekit/controller/ip_implementation.py", line 475, in get
    return self.sec_http.get(url)
  File "/usr/local/lib/python3.7/site-packages/homekit/http_impl/secure_http.py", line 54, in get
    return self._handle_request(data.encode())
  File "/usr/local/lib/python3.7/site-packages/homekit/http_impl/secure_http.py", line 91, in _handle_request
    return self._read_response(self.timeout)
  File "/usr/local/lib/python3.7/site-packages/homekit/http_impl/secure_http.py", line 149, in _read_response
    response.parse(decrypted)
  File "/usr/local/lib/python3.7/site-packages/homekit/http_impl/response.py", line 49, in parse
    raise HttpException('Malformed status line.')
homekit.exceptions.HttpException: Malformed status line.
Connection lost. Reconnecting…

e: in the logs the following also appears:

2020-04-02 18:25:07 WARNING (MainThread) [homeassistant.config_entries] Config entry for homekit_controller not ready yet. Retrying in 20 seconds.

Answering my own question for posterity.

Was able to add with homekit and have the entities show up.

I factory reset the hub and readded the blinds, then i added the homekit accessory and it worked.

Things i did differently (they may or may not have made a difference):

  1. On original (bad) install i had the device wired to the Ethernet. This time it was not hooked up to ethernet and connected only over Wi-Fi.
  2. I did not add any devices to rooms before pairing with home assistant
  3. I did not create any scenes before pairing with home assistant
  4. I only added blinds by connecting them directly to the hub, (on the original install some blinds were added using the remote control and some directly linked to the hub).

Hope this helps someone.

Hi Phillip,
Is HA able to access the current blind position from the Automate Pulse 2 hub?
Thanks, Ron

Hey Ron, It absolutly can!

Hi Philip, Thanks for your reply,
I have found another answer (Rollease Acmeda Blinds IFTTT Template Cover) which suggests it is “stateless”, i.e. the hub does not return the current blind position.
Please try the experiment he suggests. Move the blind either manually or with the remote, then look at the HA display position and see if it has changed. I am curious as to your result.

But i told you it is not stateless and even posted an image with proof. Not only does it have accurate states for positions, it also offeres intermediate states for when its decending or accending.

Thanks, this helped me out. I just site mine up on an apple device, here is what I did:

  1. “Paired” with the Pulse 2 app and added all devices.
  2. Did a reset and added it to the Home app to get it connected to Wifi.
  3. Removed it from the Home app.
  4. Added it to Home Assistant using the HomeKit Controller integration and the pairing code.

There may be a better way but this was the first solution I found that worked for me and was fairly easy.

Just to clarify - not saying this is a better solution than what you did, just providing another path to getting it working in case someone is having issues.

1 Like

Got a second blind and the Pulse Hub v2 yesterday. Followed these instructions and got both blinds showing up in HA. Was a bit tricky and had to reset hub once but got there.

I was wondering if anyone knows how to add new blinds without resetting the hub and having to add all blinds in again? The second blind did not come across, so ended up doing the reset thing.

If i remember correctly, i just added them in the app and restarted HA. They appreared with their given name as cover.given_name

1 Like

I added the pulse2 to HomeKit with no problem but then needed to rebuild my homeassistant installation. When I got HA back up it was not finding the pulse2. I factory reset pulse2 a couple of times reconnecting it to my WIFI successfully each time. A couple of times HA did find the pulse3/homekit but when I entered the code it told me that the device was no longer available. Before I offer my solution, it is possible that I had another instance of HA running (dont ask) so that might have caused all my problems. But if someone is having a similar problem here is how I solved it. On the android app I went through the set-up process connecting the pulse2 to WIFI (this did require a factory reset of pulse2 - recessed button press) once the pulse2 found its own wifi and then went to connect back to my main wifi, before I pressed next on the android app, I connected the pulse2/homekit instance using the homekit code on the pulse2 device (yes HA did find it). I then finished the set-up on the android app. I hope this makes sense and helps someone. (partly because it means the issue was not me mistakenly running two instances of HA at the same time)

Hello All,
I have 4 Rollease blinds which I’m trying to have work under HA. The discussion here is about how to do so using the Rollease Acmeda Automate Pulse 2 Hub, but two different techniques (integrations) are being used:

  1. Rollease Acmeda Automate Pulse 2 Hub Integration written by atmurry. This integration interfaces directly with the Pulse 2 Hub. According to HA it has 0% use in active installations. See www.home-assistant.io/integrations/acmeda/
  2. Homekit Controller Integration that depends on the Pulse 2 Hub being an Apple HomeKit device. It’s used by 6.9% of active installations. See www.home-assistant.io/integrations/homekit_controller/

So which integration should I use? I’ve tried 2) and had nothing but problems. Currently I’m unable to get the integration to recognise my hub. I’d love to hear your experiences and opinion.

We have 9 blinds.

I have been using the Homekit integration - it was easy to set up and has been operating without any bugs for 2 years!

I haven’t tried the other one which may be good (or better?)… but I can recommend the homekit integration.

NOTE: you have to power cycle the PULSE HUB when you have a power outage or power cycle the HA server. Not sure if that has to do with the integrations.

I’ve been using the Automate-Pulse-v2 integration (via HACS) for the past 6 months to control my 8 blinds.

I see now that there are actually two versions of the Acmeda Automate Pulse Hub integration: one for Pulse version 1 hubs written by atmurray, and another for Pulse v2 hubs written by sillyfrog.

I’m trying to use the latter as I have a Pulse 2 hub, following the instructions at github.com/sillyfrog/Automate-Pulse-v2. I have successfully loaded the integration but I’m stuck at the step where it attempts to connect to my hub. When the integration starts I put in the IP address found on the Automate Pulse 2 app which is the same as that found on my router. However, this always ends with “Failed to connect”.

I have downloaded the Automate Pulse LINQ app to my Mac and it successfully connects to the hub.

I’ve tried looking in the Configuration->Logs and Supervisor->System log but apparently the integration does not write to either???

I’m hoping someone out there will have some ideas on what I’m doing wrong.

You can enable logging by adding the following section to your configuration.yaml

logger:
  default: warn
  logs:
    aiopulse2: debug

When you restart HA you should see a stream of information about the hub ID and any connected devices that it discovered.

I have been away from the home automation scene. Did a clean install of the new HassOS and so glad this custom integration exists. Thank you very much @sillyfrog !! Everything worked straight from the box.

@tallcuss - Do you have different subnets or firewall rules blocking your home assistant by any chance? Is your Pulse 2 hub on a static IP address?

Thanks Bunyip183 and timolol for your thoughts, but I’ve made no progress.

I cranked up the log messages and whilst I got a lot more messages, none mentioned the Pulse v2 integration or aiopulse2.

Some questions:
Must aiopulse2 be installed separately using the CLI command “pip install aiopulse2”? There’s no mention of it in sillyfrog’s instructions.

When connecting to the hub, must the P (pair?) button on the hub be pressed?

Is it normal/possible to have more than one device (HA, Automate Pulse2 mobile app, etc) connected to the hub simultaneously?

After connecting to the hub, were you able to connect the hub to your router via an ethernet cable and do away with the WiFi connection?

I installed it through the HACS component.

No. That is only required to pair new entities to the hub

Yes. I can still access my blinds through HA, Automate Pulse2 app and RF remote. Though I’ve never tried using all three methods simultaneously. :grinning:

Initially I did have the ethernet cable connected but I reverted back to WiFi only because I found that it caused problems when trying to use the Automate Pulse2 app.

@tallcuss You don’t need to do a pip install - Home Assistant takes care of that for you.

As mentioned, I would suggest going with HACS. It took me a while to get around to using HACS myself, - and now I have started, I regret it took me so long! I have made that repo compatible with HACS (as you probably noticed). Once HACS is setup it’s much easier for any new module, and you have access to a lot more integrations - many of which are kept up to date (which you don’t get with core). This aiopulse2 integration has been pending for nearly a year to get into core. I’m now working to get it as part of HACS default instead.

That said, if you are getting to the point where you can enter an IP address, then the install I think has gone well. It’s probably a connectivity issue. For the setup, I would suggest exiting all apps etc (on your computer/phone) - as there are some channels that only allow a single connection.

To crank up the debugging just for this, I have the following to cover all aspects of the plugin and module:

logger:
  default: info
  logs:
    aiopulse2: debug
    automate: debug
    custom_components.automate: debug

Good Luck!

Thanks Bunyip183 and sillyfrog for your help, but I’ve made no progress.

Yes, I have installed HACS and followed the Installation instructions given at github.com/sillyfrog/Automate-Pulse-v2.

Here’s what happens when I attempt to add the Pulse2 Integration: Configuration->Integrations->+ ADD INTEGRATION->Automate Pulse Hub V2. At that point a small popup window appears requesting the hub IP address. I enter the IP address 192.168.1.100 that my router shows for the WiFi connection of “espressif”, MAC address C4-4F-33-18-F7-81, and hit SUBMIT. A rotating arrow occurs for a few seconds and I get the message “Failed to connect”. When I linger the mouse over the SUBMIT button it shows the message “Not all required fields are filled in”.

I had already tried disconnecting everything from the hub so the Automate Pulse 2 Hub Integration would be the only connection. I’ve also tried many other things. None of them changed anything.

I used your suggested entry in my configuration.yaml file to output additional log messages, but there were no additional messages. (I’m looking at Configuration->Logs-> LOAD FULL ASSISTANT LOG, right?) When I look at the Python code I cannot see any logger messages that would be output if the connection were refused, and this would agree with what I’m seeing.

I am able to connect to the hub using the Automate Pulse 2 app on my phone and the PulseLINQ app on my Mac. Using the latter app I can see the hub’s serial number is 1010981 and its firmware version is 010100. The motors are type U (240v AC) and their firmware versions are 21 and 22.

Some questions:
Can I make changes to the Python in place (like insert logger statements), reboot the system and have it run properly?

How do I go about running Demo.py?