Rollease Acmeda Automate Pulse hub integration

Yes, in the UI. Go to Configuration, then Integrations, click on the + icon, then scroll down to Rollease Acmeda Automate.

Problem for me is that it adds the Integration successfully and finds the hub but no cover devices are found.

I am getting the following the log file:

> Logger: aiopulse.hub
> Source: __main__.py:342
> First occurred: 8:53:11 AM (1 occurrences)
> Last logged: 8:53:11 AM
> 
> 192.168.1.167: Received unknown message type: b'63000091' message: b'06536d6172745f4964315f793a51001600030000000000000053020800303030303030333954020800303430323030313355020800303048464c50423156020c0046304645364245333236333057020d003139322e3136382e312e313637ff5f'

I get the following error message: Received unknown message type: b’61000091’

It seems to be objecting to scenes defined in the hub. I have attached a screenshot of the error messages

Hi @fantangelo, The unknown message type should be able to be safely ignored, it will still try and parse the message. Could you re-download and try the demo application to see if it still works?

Hi @gregbm, it seems like your scene list is being provided in a structure that it isn’t expecting.
A few bits of information that would help:

  1. Are you using a v1 or v2 hub?
  2. Could you let me know what scenes you have configured? A screen shot from the app would be useful.
  3. Could you download and try the demo app fo the API?
    https://github.com/atmurray/aiopulse
  1. I have two hubs, both v1. My scenes include rollers from both hubs.
  2. I have eleven scenes. Two screen shots attached.
  3. I am using the demo app to get these results.

Thanks for your help

Thanks @gregbm, I’ve just checked-in a new version to my fork that should be more tolerant to unexpected response formats and will provide better exception information. Would you mind giving it a go?

Also, I should point out that the Home Assistant integration isn’t making use of Rooms or Scenes. I’d be interested in knowing if people would find that useful somehow.

Output attached

I personally don’t care about rooms or scenes

@gregbm, that’s the conclusion I came to, home-assistand only needs the blinds from my perspective.
Would you mind using https://pastebin.com/ or similar to share the output so I don’t have to re-type the message :wink:
Also, after connecting, do you get the correct list of blinds when you issue the “list” command and have you tried moving the blinds from the demo?

Awesome work.

I finally got it working from your fork. I get all the covers and even battery sensors.
The only problem I can only close the blinds, up is greyed.
I dont think we need scenes or rooms, all that can be done through home assistant anyways.

Until the integration is available in the main Home Assistant release, I’ve posted information on how to add it as a custom integration here:

This works for the hass.io appliance too.

@stavroz, great to hear it works! Sorry that it was a bit painful, hopefully the instructions on how to add it as a custom-component will help others. As per how home-assistant works with “covers”, up/down will be greyed out if it thinks the blind is fully opened/closed - is that the case?

No, it seems to think they are all open, so they will close ok. Also, if i use the slider they will just close all the way.

That’s strange, so despite setting a closed amount it always closes to 100%?

Thats correct. Not sure but mine were never setup to be able to close half way though. Maybe thats the issue?

Oh really? So in the app they’re either completely open or completely closed?

yes, thats correct. although there is a 50% button that doesnt work…

@stavroz, do your blinds have physical limit switches by any chance? The ones I have don’t but instead you have to calibrate the top and bottom position. It could be that the blind information returned by the hub does reveal the capabilities of the blind somehow.

Out of interest, what is the “Type” of the blind returned by the demo app “list” command? Here is mind:

Hub 1: Name: VNUGIESUNR
Roller 1: Name: Blind 1 ID: xxxxx Serial: 562002 Room: All Blinds Type: 3 Closed %: 44 Battery %: 100 Flags: 10110100
Roller 2: Name: Blind 2 ID: xxxxx Serial: 562001 Room: All Blinds Type: 3 Closed %: 0 Battery %: 100 Flags: 10110100
Roller 3: Name: Blind 3 ID: xxxxx Serial: 562002 Room: All Blinds Type: 3 Closed %: 0 Battery %: 100 Flags: 00000000
Roller 4: Name: Blind 4 ID: xxxxx Serial: 562003 Room: All Blinds Type: 3 Closed %: 100 Battery %: 100 Flags: 10110100
Room Name: All Blinds ID: 73B2 Icon: 1
Room Name: ROOM ID: D1B6 Icon: 6
Scene Name: Outer closed ID: E12A Icon: 0
Scene Name: Right door open ID: 73FD Icon: 0
Scene Name: Left door open ID: 71E3 Icon: 0
Scene Name: Sunset ID: 2C91 Icon: 6
Scene Name: SCENE test blah ID: 0FE9 Icon: 0
Scene Name: SCENE ID: D46D Icon: 0

OK, now I get:

2020-04-18 07:11:47 ERROR (MainThread) [root] 192.168.1.167: Exception raised when parsing response: b'00000003c10100009106536d6172745f4964315f793aaf000101050000000000000010000100050002080062643731a9e14a300f000100010e00030044656e0002080062643731447442cd0f000100060e0007004b69746368656e0002080062643731e1f8c4d40f000100030e000b0044696e696e6720526f6f6d0002080062643731ddada4000f000100010e0010004c6976696e6720526f6f6d204465636b00020800626437315f9d101d0f000100010e0010004c6976696e6720526f6f6d2045617374ff21'
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 503, in response_parse
    Hub.respmap[mtype].execute(self, message)
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 400, in execute
    self.function(target, message)
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 441, in rec_message
    self.msgmap[mtype].execute(self, message[ptr:])
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 400, in execute
    self.function(target, message)
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 250, in response_roomlist
    room_id, ptr = utils.unpack_string(message, ptr)
  File "/usr/local/lib/python3.7/site-packages/aiopulse/utils.py", line 28, in unpack_string
    str_new.decode("utf-8"),
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa9 in position 4: invalid start byte
2020-04-18 07:11:48 WARNING (MainThread) [aiopulse.hub] 192.168.1.167: Received unknown response type: b'05000091', trying to decode anyway. Message: b'06536d6172745f4964315f793a9a02210106000000000000001000010009010106002e96c87200010002080062643731a9e14a300f000100040e00090044656e205368616465020102003102780206003030313030310301010010040103005f2703010106001ec29e5200010002080062643731447442cd0f000100040e000d004b69746368656e205368616465020102003102780206003030313030320301010010040103005f270301010600a440349300010002080062643731e1f8c4d40f000100040e000d0044696e696e6720526f6f6d2031020102003102780206003030313030330301010010040103005f270301010600a471f32e00010002080062643731e1f8c4d40f000100040e000d0044696e696e6720526f6f6d2032020102003102780206003030313030370301010010040103005f2703010106002dfb7e7000010002080062643731e1f8c4d40f000100040e000d0044696e696e6720526f6f6d2033020102003102780206003030313030340301010010040103005f2703010106000c100e1b00010002080062643731ddada4000f000100040e0010004c6976696e6720526f6f6d204465636b020102003102780206003030313030350301010010040103005f270301010600d6d4303f000100020800626437315f9d101d0f000100040e0010004c6976696e6720526f6f6d2045617374020102003102780206003030313030360301010010040103005f27030101060031e1ccac000100020800626437315f9d101d0f000100040e0010004c6976696e6720526f6f6d2045617374020102000102780206003030313030380301010010040103005f270301010600b541646d00010002080062643731a9e14a300f000100040e00090044656e205368616465020102000102780206003030313030390301010010040103005f2703ff2a'
2020-04-18 07:11:48 ERROR (MainThread) [root] 192.168.1.167: Exception raised when parsing response: b'00000003ac0500009106536d6172745f4964315f793a9a02210106000000000000001000010009010106002e96c87200010002080062643731a9e14a300f000100040e00090044656e205368616465020102003102780206003030313030310301010010040103005f2703010106001ec29e5200010002080062643731447442cd0f000100040e000d004b69746368656e205368616465020102003102780206003030313030320301010010040103005f270301010600a440349300010002080062643731e1f8c4d40f000100040e000d0044696e696e6720526f6f6d2031020102003102780206003030313030330301010010040103005f270301010600a471f32e00010002080062643731e1f8c4d40f000100040e000d0044696e696e6720526f6f6d2032020102003102780206003030313030370301010010040103005f2703010106002dfb7e7000010002080062643731e1f8c4d40f000100040e000d0044696e696e6720526f6f6d2033020102003102780206003030313030340301010010040103005f2703010106000c100e1b00010002080062643731ddada4000f000100040e0010004c6976696e6720526f6f6d204465636b020102003102780206003030313030350301010010040103005f270301010600d6d4303f000100020800626437315f9d101d0f000100040e0010004c6976696e6720526f6f6d2045617374020102003102780206003030313030360301010010040103005f27030101060031e1ccac000100020800626437315f9d101d0f000100040e0010004c6976696e6720526f6f6d2045617374020102000102780206003030313030380301010010040103005f270301010600b541646d00010002080062643731a9e14a300f000100040e00090044656e205368616465020102000102780206003030313030390301010010040103005f2703ff2a'
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 510, in response_parse
    self.rec_message(message)
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 441, in rec_message
    self.msgmap[mtype].execute(self, message[ptr:])
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 400, in execute
    self.function(target, message)
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 329, in response_rollerlist
    room_id, ptr = utils.unpack_string(message, ptr)
  File "/usr/local/lib/python3.7/site-packages/aiopulse/utils.py", line 28, in unpack_string
    str_new.decode("utf-8"),
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa9 in position 4: invalid start byte
2020-04-18 07:11:48 WARNING (MainThread) [aiopulse.hub] 192.168.1.167: Received unknown response type: b'71000091', trying to decode anyway. Message: b'06536d6172745f4964315f793a5f0033010a0000000000000010000100021002080062643731606b26610f000100020e0007004d6f726e696e671302010007520202006f941002080062643731a21d8b8a0f000100010e0007004576656e696e671302010007520202006f94ffe5'
2020-04-18 07:11:48 ERROR (MainThread) [root] 192.168.1.167: Exception raised when parsing response: b'000000037100009106536d6172745f4964315f793a5f0033010a0000000000000010000100021002080062643731606b26610f000100020e0007004d6f726e696e671302010007520202006f941002080062643731a21d8b8a0f000100010e0007004576656e696e671302010007520202006f94ffe5'
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 510, in response_parse
    self.rec_message(message)
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 441, in rec_message
    self.msgmap[mtype].execute(self, message[ptr:])
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 400, in execute
    self.function(target, message)
  File "/usr/local/lib/python3.7/site-packages/aiopulse/hub.py", line 266, in response_scenelist
    scene_id, ptr = utils.unpack_string(message, ptr)
  File "/usr/local/lib/python3.7/site-packages/aiopulse/utils.py", line 28, in unpack_string
    str_new.decode("utf-8"),
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa2 in position 4: invalid start byte

I now worked out how to set the ‘favourite’, also upper and lower limits on my blind with the remote. ‘UP’ is still greyed.

I dont know if I can run the demo app. Im running home assistant in a docker.

Interesting to see the hub is lit blue meaning it has a permanent connection to HA…

Weird things happen when i try to use the app.

i have this in the logs.

2020-04-18 11:19:48 WARNING (MainThread) [aiopulse.hub] 192.168.1.18: Handshake failed
2020-04-18 11:19:55 WARNING (MainThread) [aiopulse.hub] 192.168.1.18: Received unknown response type: b’06000091’, trying to decode anyway. Message: b’06536d6172745f4964315f793a…