Visonic Powermax and Powermaster Component

I have installed the com0com, but unfortunately I have no idea how to configure and use it.
I have changed the PRP COM Port to COM1 as you suggested and I have downloaded v0.3.3.5 from your Github.
I also don’t understand what is -coma and -comb in the command bridge.py, when I ran that command I got this:

bridge.py: error: unrecognized arguments: -coma COM2 -comb COM5

Can you please give me more detailed instructions (really detailed, please :wink: )

I think I got it, the bridge error was my fault, I was running it from the wrong folder (and previous version).

The rest I think I was able to figure it out.

This is just the login part:

python3 bridge.py -coma COM2 -comb COM5
INFO:root:Initialising Protocol
INFO:root:Initialising Connection : COM_A
INFO:root:Initialising Connection : COM_B
INFO:root:[Connection] Connected made : COM_A
INFO:root:[Connection] Connected made : COM_B
INFO:root:[sending to COM_B at 2019-12-05 01:56:23.155901] : 0d 24 00 00 56 50 00 00 00 00 00 00 35 0a
INFO:root:[received from COM_B at 2019-12-05 01:56:23.175877] : 0d 02
INFO:root:[received from COM_B at 2019-12-05 01:56:23.191829] : fd 0a 0d 22 fd 0a 01 16 15 00 0d 00 00 00 9c 0a
INFO:root:[sending to COM_B at 2019-12-05 01:56:23.270639] : 0d 02 fd 0a

I hope this is a part of what you need to analyze the Protocol of my panel.

I have a Pastebin with the complete download (or Upload) Output from the panel, but I don’t know if I should paste it here because it might contain sensitive information.

Hmm…HACS doesn’t show the new version as being available. It’s still showing 0.3.3.4 as being the latest version.

I sure am getting geezerly.

Ah yes, that’s because I didn’t go as far as a formal Github release which is what HACS needs. You would need to download it as a zip file from Github.

There’s the 0x22 message from the panel that I don’t know what it means. At least it’s being consistent.

Yes it will contain your user codes and maybe the installer code. Could you search and replace any user or installer codes you use and upload it? If your user code was “1234” then search for “12 34”, hopefully you’ll see what I mean.

I have no ideal how HACS performs its bookkeeping functions, but the plug-in thinks I’m still on 0.3.3.4 despite having updated to 0.3.3.5. In addition, HACS still serves up the old readme.md file. Apparently it doesn’t use the info from pyvisonic.py. The next formal release will likely fix things.

Does the payload of the data of the 0x22 message correlate with any message types in the newer panels? Specifically, do the ‘00’ bytes positions line up with anything else?

So I connected Visonic PRP to my panel and I got this

INFO:root:[sending to Alarm at 2019-12-02 21:23:29.099261] : 0d 24 00 00 56 50 00 00 00 00 00 00 35 0a
INFO:root:[received from Alarm at 2019-12-02 21:23:29.158095] : 0d 02 fd 0a 0d 3c fd 0a 00 00 47 04 01 00 00 00 6f 0a
INFO:root:[sending to Alarm at 2019-12-02 21:23:29.211941] : 0d 02 fd 0a

They look similar to that which David R got
Where you get this

0d 22 fd 0a 01 16 15 00 0d 00 00 00 9c 0a

I get this

0d 3c fd 0a 00 00 47 04 01 00 00 00 6f 0a

So I get a 3C message instead of a 22 message but they look kind of similar, close but different.

A 3C message defines the panel type and the software version.

I ignore the software version but I do decode the model and panel type. I use this as confirmation to then download the EPROM.

Looking at your 22 message, bytes “15 00” this would make the
Panel as Powermax (0x00)
Model 21 (0x15)

It looks close enough to me to probably be a definition, I am assuming that Visonic changed the message definition from your panel to newer ones and so created a new message as 3C.

So, I’ve made an alteration in pyvisonic.py to decode a 22 message in the same way as a 3C message. I have no idea if this will work but David R, will you try it please.

I have uploaded version 0.3.3.6 to Github, please download it to your Windows PC. You do not need the bridge or the com0com.

Simply run test.py and connect straight to the COM port you use (COM5?) and tell me what happens.

If you get stuck then please ask here for help.

Here is the Pastebin link with all the user codes and the installer code changed:

https://pastebin.com/StpYktrm

If you need anything else, just ask.

Ok, here it is:

python3 test.py -usb COM5
0:00:00.001477 < 3392>     INFO   Setting key OverrideCode to value -1
0:00:00.001961 < 3392>     INFO   Setting key ForceStandard to value False
DEBUG:asyncio:Using proactor: IocpProactor
0:00:00.114332 < 1035>     INFO   [Connection] Connected to local Protocol handler and Transport Layer
0:00:00.114332 < 1605>    DEBUG   [ClearList] Setting queue empty
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1539: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.210637 < 1619>     INFO   [Start_Download] Starting download mode
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1599: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.212235 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 1
0:00:00.213233 < 1530>    DEBUG   [pmSendPdu] Sending Command (Exit)    raw data 0d 0f f0 0a    waiting for message response ['0X2']
0:00:00.213233 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:00:01.691098 < 1530>    DEBUG   [pmSendPdu] Sending Command (Stop)    raw data 0d 0b f4 0a    waiting for message response ['0X2']
0:00:01.692036 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:00:03.192492 < 1530>    DEBUG   [pmSendPdu] Sending Command (Initializing PowerMax/Master PowerLink Connection)    raw data 0d ab 0a 00 01 00 00 00 00 00 00 00 43 06 0a    waiting for message response ['0X2']
0:00:03.193547 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 8.0
0:03:00.190768 < 1141>  WARNING   [Controller] ********************** Download Timer has Expired, Download has taken too long *********************
0:03:00.191765 < 1142>  WARNING   [Controller] ************************************* Going to standard mode ***************************************
0:03:00.192759 < 1264>     INFO   [Standard Mode] Entering Standard Mode
0:03:00.193763 < 1605>    DEBUG   [ClearList] Setting queue empty
WARNING:__main__:Visonic attempt to add device with type <class 'int'>  device is 7
0:03:00.195929 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 181   Response list before 0  after 1
0:03:00.197752 < 1530>    DEBUG   [pmSendPdu] Sending Command (Exit)    raw data 0d 0f f0 0a    waiting for message response ['0X2']
0:03:00.198748 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:03:01.690322 < 1530>    DEBUG   [pmSendPdu] Sending Command (Stop)    raw data 0d 0b f4 0a    waiting for message response ['0X2']
0:03:01.691273 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:03:03.191241 < 1530>    DEBUG   [pmSendPdu] Sending Command (Initializing PowerMax/Master PowerLink Connection)    raw data 0d ab 0a 00 01 00 00 00 00 00 00 00 43 06 0a    waiting for message response ['0X2']
0:03:03.192231 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 8.0
0:03:10.190938 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:03:10.191888 < 1605>    DEBUG   [ClearList] Setting queue empty
0:03:10.192886 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:03:11.192536 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:03:20.191487 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:03:20.192669 < 1605>    DEBUG   [ClearList] Setting queue empty
0:03:20.194424 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:03:20.195419 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:03:30.190758 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:03:30.191958 < 1605>    DEBUG   [ClearList] Setting queue empty
0:03:30.193782 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:03:30.194720 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:03:40.191363 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:03:40.192413 < 1605>    DEBUG   [ClearList] Setting queue empty
0:03:40.193142 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:03:40.195136 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:03:50.191631 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:03:50.193106 < 1605>    DEBUG   [ClearList] Setting queue empty
0:03:50.199395 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:03:50.200395 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:04:00.190590 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:04:00.191387 < 1605>    DEBUG   [ClearList] Setting queue empty
0:04:00.199365 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:04:00.207445 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:04:10.190655 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:04:10.191621 < 1605>    DEBUG   [ClearList] Setting queue empty
0:04:10.197585 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:04:10.205565 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']

I’m really sorry I forgot something, a few days ago I asked you to comment out a line in pyvisonic.py and you’ll need to do it again with this new version.

        self.reset_keep_alive_messages()
        self.sendInitCommand()
        if not self.ForceStandardMode:

to this

        self.reset_keep_alive_messages()
        #self.sendInitCommand()
        if not self.ForceStandardMode:

put a “#” at the start of the line, it should be line 1076
Can you do this and try again please

No problem, here it is again:

python3 test.py -usb COM5
0:00:00.000998 < 3392>     INFO   Setting key OverrideCode to value -1
0:00:00.001828 < 3392>     INFO   Setting key ForceStandard to value False
DEBUG:asyncio:Using proactor: IocpProactor
0:00:00.029757 < 1035>     INFO   [Connection] Connected to local Protocol handler and Transport Layer
0:00:00.031067 < 1619>     INFO   [Start_Download] Starting download mode
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1539: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.044998 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 1
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1599: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.053753 < 1530>    DEBUG   [pmSendPdu] Sending Command (Start Download Mode)    raw data 0d 24 00 00 56 50 00 00 00 00 00 00 35 0a    waiting for message response ['0X3C']
0:03:00.045597 < 1141>  WARNING   [Controller] ********************** Download Timer has Expired, Download has taken too long *********************
0:03:00.046823 < 1142>  WARNING   [Controller] ************************************* Going to standard mode ***************************************
0:03:00.053653 < 1264>     INFO   [Standard Mode] Entering Standard Mode
0:03:00.055763 < 1605>    DEBUG   [ClearList] Setting queue empty
WARNING:__main__:Visonic attempt to add device with type <class 'int'>  device is 7
0:03:00.070466 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 181   Response list before 0  after 1
0:03:00.080665 < 1530>    DEBUG   [pmSendPdu] Sending Command (Exit)    raw data 0d 0f f0 0a    waiting for message response ['0X2']
0:03:00.087666 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:03:01.575926 < 1530>    DEBUG   [pmSendPdu] Sending Command (Stop)    raw data 0d 0b f4 0a    waiting for message response ['0X2']
0:03:01.577417 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:03:03.075856 < 1530>    DEBUG   [pmSendPdu] Sending Command (Initializing PowerMax/Master PowerLink Connection)    raw data 0d ab 0a 00 01 00 00 00 00 00 00 00 43 06 0a    waiting for message response ['0X2']
0:03:03.077853 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 8.0
0:03:10.045191 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:03:10.046413 < 1605>    DEBUG   [ClearList] Setting queue empty
0:03:10.052168 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:03:11.075332 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:03:20.044348 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:03:20.045579 < 1605>    DEBUG   [ClearList] Setting queue empty
0:03:20.056329 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:03:20.501640 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:03:30.046052 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:03:30.047644 < 1605>    DEBUG   [ClearList] Setting queue empty
0:03:30.054898 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:03:30.057827 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:03:40.044631 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:03:40.046015 < 1605>    DEBUG   [ClearList] Setting queue empty
0:03:40.053629 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:03:40.055648 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:03:50.044896 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:03:50.046765 < 1605>    DEBUG   [ClearList] Setting queue empty
0:03:50.053777 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:03:50.061715 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:04:00.044188 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:04:00.045630 < 1605>    DEBUG   [ClearList] Setting queue empty
0:04:00.052754 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:04:00.058926 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:04:10.045045 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:04:10.046839 < 1605>    DEBUG   [ClearList] Setting queue empty
0:04:10.054814 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:04:10.059805 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:04:20.045706 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:04:20.047081 < 1605>    DEBUG   [ClearList] Setting queue empty
0:04:20.054617 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:04:20.062284 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:04:30.044516 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:04:30.045930 < 1605>    DEBUG   [ClearList] Setting queue empty
0:04:30.053544 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:04:30.061253 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:04:40.044725 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:04:40.046204 < 1605>    DEBUG   [ClearList] Setting queue empty
0:04:40.053490 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:04:40.061480 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']

I made several tries and for this one I think the output is different:

python3 test.py -usb COM5
0:00:00.001404 < 3392>     INFO   Setting key OverrideCode to value -1
0:00:00.001876 < 3392>     INFO   Setting key ForceStandard to value False
DEBUG:asyncio:Using proactor: IocpProactor
0:00:00.045043 < 1035>     INFO   [Connection] Connected to local Protocol handler and Transport Layer
0:00:00.045987 < 1619>     INFO   [Start_Download] Starting download mode
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1539: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.060328 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 1
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1599: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.068666 < 1530>    DEBUG   [pmSendPdu] Sending Command (Start Download Mode)    raw data 0d 24 00 00 56 50 00 00 00 00 00 00 35 0a    waiting for message response ['0X3C']
0:00:00.105262 < 2347>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:00.106625 < 1335>  WARNING   [data receiver] Warning : Construction of incoming packet unknown - Message Type 0X22
0:00:00.112184 < 1456>     INFO   [validatePDU] Not valid packet, CRC failed, may be ongoing and not final 0A
0:00:00.114304 < 1399>    DEBUG   [data receiver] Building PDU: Length is now 4 bytes (apparently PDU not complete)    0d 22 fd 0a     checksum calcs dd
0:00:00.121237 < 1355>  WARNING   [data receiver] Unhandled message 0x22
0:00:00.127186 < 1419>    DEBUG   [Sending ack] PowerlinkMode=False    Is PM Ack Reqd=False    This is an Ack for message=0X0
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1432: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.201186 < 1530>    DEBUG   [pmSendPdu] Sending Command (Ack)    raw data 0d 02 fd 0a    waiting for message response ['0X3C']
0:00:20.002946 < 2360>     INFO   [handle_msgtype06] Timeout Received  data
0:00:20.006040 < 1530>    DEBUG   [pmSendPdu] Sending Command (Stop)    raw data 0d 0b f4 0a    waiting for message response []
0:00:20.006892 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:00:20.020027 < 2347>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:20.034539 < 2375>     INFO   [handle_msgtype08] Access Denied  len 0 data
0:00:20.036062 < 2379>    DEBUG   [handle_msgtype08]                last command 0b
0:00:21.498451 < 1530>    DEBUG   [pmSendPdu] Sending Command (Exit)    raw data 0d 0f f0 0a    waiting for message response []
0:00:21.499458 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:00:21.523318 < 2347>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:46.061958 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 25   Response list before 0  after 1
0:00:46.062952 < 1530>    DEBUG   [pmSendPdu] Sending Command (I'm Alive Message To Panel)    raw data 0d ab 03 00 00 00 00 00 00 00 00 00 43 0e 0a    waiting for message response ['0X2']

Ok, I made some more tests and I’m connecting to the panel, When I run the test.py my panel displays “Processando” (something like Processing) after perhaps 20 seconds or so, the “Processando” dispears from the display and the panel enters normal ready to arm mode.

OK that and the pastebin gives me more info, thankyou.

So, I’ve uploaded 0.3.3.7 to Github.
I’d like you to do the first thing, run it and upload the output.
Then try the second thing, run it and upload the output

First
Do the edit that you normally do, it’s line 1079 this time, put a “#” at the start of the line

        self.reset_keep_alive_messages()
        #self.sendInitCommand()
        if not self.ForceStandardMode:

OK run it and upload the output

Second, leave the previous change on 1079 and now do this as well on line 927

        self.oldpowermax = False

to

        self.oldpowermax = True

And upload the output please

Also

Could this be translated as “Downloading”

Here is the first test output:

python3 test.py -usb COM5
0:00:00 < 3392>     INFO   Setting key OverrideCode to value -1
0:00:00.000997 < 3392>     INFO   Setting key ForceStandard to value False
DEBUG:asyncio:Using proactor: IocpProactor
0:00:00.020987 < 1035>     INFO   [Connection] Connected to local Protocol handler and Transport Layer
0:00:00.020987 < 1619>     INFO   [Start_Download] Starting download mode
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1539: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.038116 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 1
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1599: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.049173 < 1530>    DEBUG   [pmSendPdu] Sending Command (Start Download Mode)    raw data 0d 24 00 00 56 50 00 00 00 00 00 00 35 0a    waiting for message response ['0X3C']
0:00:00.081939 < 2347>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:00.081939 < 1335>  WARNING   [data receiver] Warning : Construction of incoming packet unknown - Message Type 0X22
0:00:00.083928 < 1456>     INFO   [validatePDU] Not valid packet, CRC failed, may be ongoing and not final 0A
0:00:00.091254 < 1399>    DEBUG   [data receiver] Building PDU: Length is now 4 bytes (apparently PDU not complete)    0d 22 fd 0a     checksum calcs dd
0:00:00.097955 < 1355>  WARNING   [data receiver] Unhandled message 0x22
0:00:00.097955 < 1419>    DEBUG   [Sending ack] PowerlinkMode=False    Is PM Ack Reqd=False    This is an Ack for message=0X0
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1432: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.184942 < 1530>    DEBUG   [pmSendPdu] Sending Command (Ack)    raw data 0d 02 fd 0a    waiting for message response ['0X3C']
0:00:19.416642 < 2360>     INFO   [handle_msgtype06] Timeout Received  data
0:00:19.417637 < 1530>    DEBUG   [pmSendPdu] Sending Command (Stop)    raw data 0d 0b f4 0a    waiting for message response []
0:00:19.420633 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:00:19.431605 < 2347>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:19.447609 < 2375>     INFO   [handle_msgtype08] Access Denied  len 0 data
0:00:19.448556 < 2379>    DEBUG   [handle_msgtype08]                last command 0b
0:00:20.918872 < 1530>    DEBUG   [pmSendPdu] Sending Command (Exit)    raw data 0d 0f f0 0a    waiting for message response []
0:00:20.918872 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:00:20.935228 < 2347>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:45.046455 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 25   Response list before 0  after 1
0:00:45.047452 < 1530>    DEBUG   [pmSendPdu] Sending Command (I'm Alive Message To Panel)    raw data 0d ab 03 00 00 00 00 00 00 00 00 00 43 0e 0a    waiting for message response ['0X2']
0:02:26.046019 < 1577>     INFO   [SendCommand] Re-Sending last message  I'm Alive Message To Panel
0:02:26.047014 < 1605>    DEBUG   [ClearList] Setting queue empty
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1581: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
ERROR:asyncio:Task exception was never retrieved
future: <Task finished name='Task-158' coro=<ProtocolBase.SendCommandAsync() done, defined at C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1543> exception=AttributeError("'NoneType' object has no attribute 'triedResendingMessage'")>
Traceback (most recent call last):
  File "C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py", line 1582, in SendCommandAsync
    self.pmLastSentMessage.triedResendingMessage = True
AttributeError: 'NoneType' object has no attribute 'triedResendingMessage'
0:02:27.045081 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 102   Response list before 0  after 1
0:02:27.046075 < 1530>    DEBUG   [pmSendPdu] Sending Command (I'm Alive Message To Panel)    raw data 0d ab 03 00 00 00 00 00 00 00 00 00 43 0e 0a    waiting for message response ['0X2']
0:04:08.045345 < 1577>     INFO   [SendCommand] Re-Sending last message  I'm Alive Message To Panel
0:04:08.046025 < 1605>    DEBUG   [ClearList] Setting queue empty
ERROR:asyncio:Task exception was never retrieved
future: <Task finished name='Task-263' coro=<ProtocolBase.SendCommandAsync() done, defined at C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1543> exception=AttributeError("'NoneType' object has no attribute 'triedResendingMessage'")>
Traceback (most recent call last):
  File "C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py", line 1582, in SendCommandAsync
    self.pmLastSentMessage.triedResendingMessage = True
AttributeError: 'NoneType' object has no attribute 'triedResendingMessage'
0:04:09.044189 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 102   Response list before 0  after 1
0:04:09.045189 < 1530>    DEBUG   [pmSendPdu] Sending Command (I'm Alive Message To Panel)    raw data 0d ab 03 00 00 00 00 00 00 00 00 00 43 0e 0a    waiting for message response ['0X2']
0:04:19.045482 < 1157>     INFO   [Controller] Trigger Panel Download Attempt
0:04:19.045482 < 1619>     INFO   [Start_Download] Starting download mode
0:04:19.046479 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 10   Response list before 0  after 1
0:04:19.054460 < 1530>    DEBUG   [pmSendPdu] Sending Command (Start Download Mode)    raw data 0d 24 00 00 56 50 00 00 00 00 00 00 35 0a    waiting for message response ['0X3C']
0:07:20.045254 < 1141>  WARNING   [Controller] ********************** Download Timer has Expired, Download has taken too long *********************
0:07:20.045254 < 1142>  WARNING   [Controller] ************************************* Going to standard mode ***************************************
0:07:20.047246 < 1264>     INFO   [Standard Mode] Entering Standard Mode
0:07:20.054562 < 1605>    DEBUG   [ClearList] Setting queue empty
WARNING:__main__:Visonic attempt to add device with type <class 'int'>  device is 7
0:07:20.057195 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 181   Response list before 0  after 1
0:07:20.057195 < 1530>    DEBUG   [pmSendPdu] Sending Command (Exit)    raw data 0d 0f f0 0a    waiting for message response ['0X2']
0:07:20.064179 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:07:21.545272 < 1530>    DEBUG   [pmSendPdu] Sending Command (Stop)    raw data 0d 0b f4 0a    waiting for message response ['0X2']
0:07:21.546099 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:07:23.044367 < 1530>    DEBUG   [pmSendPdu] Sending Command (Initializing PowerMax/Master PowerLink Connection)    raw data 0d ab 0a 00 01 00 00 00 00 00 00 00 43 06 0a    waiting for message response ['0X2']
0:07:23.044367 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 8.0
0:07:30.044010 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:07:30.044010 < 1605>    DEBUG   [ClearList] Setting queue empty
0:07:30.045934 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:07:31.044300 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:07:40.043985 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:07:40.044526 < 1605>    DEBUG   [ClearList] Setting queue empty
0:07:40.045516 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:07:40.052573 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:07:50.043931 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:07:50.043931 < 1605>    DEBUG   [ClearList] Setting queue empty
0:07:50.045521 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:07:50.045521 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:08:00.044308 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:08:00.044308 < 1605>    DEBUG   [ClearList] Setting queue empty
0:08:00.047268 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:08:00.047268 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:08:10.043788 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:08:10.044595 < 1605>    DEBUG   [ClearList] Setting queue empty
0:08:10.050578 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:08:10.053575 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:08:20.044443 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:08:20.044941 < 1605>    DEBUG   [ClearList] Setting queue empty
0:08:20.047939 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:08:20.054776 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']

Perhaps, it’s the same word that is displayed when I connect with the PRP App, When you connect the PRP App to your panel doesn’t it display something?

Here is the second test output:

python3 test.py -usb COM5
0:00:00 < 3392>     INFO   Setting key OverrideCode to value -1
0:00:00.001005 < 3392>     INFO   Setting key ForceStandard to value False
DEBUG:asyncio:Using proactor: IocpProactor
0:00:00.032893 < 1035>     INFO   [Connection] Connected to local Protocol handler and Transport Layer
0:00:00.033890 < 1619>     INFO   [Start_Download] Starting download mode
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1539: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.062813 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 1
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1599: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.064807 < 1530>    DEBUG   [pmSendPdu] Sending Command (Start Download Mode)    raw data 0d 24 00 00 56 50 00 00 00 00 00 00 35 0a    waiting for message response ['0X3C']
0:00:00.092737 < 2347>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:00.093732 < 1335>  WARNING   [data receiver] Warning : Construction of incoming packet unknown - Message Type 0X22
0:00:00.097720 < 1456>     INFO   [validatePDU] Not valid packet, CRC failed, may be ongoing and not final 0A
0:00:00.105099 < 1399>    DEBUG   [data receiver] Building PDU: Length is now 4 bytes (apparently PDU not complete)    0d 22 fd 0a     checksum calcs dd
0:00:00.109426 < 1355>  WARNING   [data receiver] Unhandled message 0x22
0:00:00.110428 < 1419>    DEBUG   [Sending ack] PowerlinkMode=False    Is PM Ack Reqd=False    This is an Ack for message=0X0
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1432: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.207154 < 1530>    DEBUG   [pmSendPdu] Sending Command (Ack)    raw data 0d 02 fd 0a    waiting for message response ['0X3C']
0:00:19.556640 < 2360>     INFO   [handle_msgtype06] Timeout Received  data
0:00:19.558625 < 1530>    DEBUG   [pmSendPdu] Sending Command (Stop)    raw data 0d 0b f4 0a    waiting for message response []
0:00:19.563617 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:00:19.571590 < 2347>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:19.586617 < 2375>     INFO   [handle_msgtype08] Access Denied  len 0 data
0:00:19.587614 < 2379>    DEBUG   [handle_msgtype08]                last command 0b
0:00:21.067049 < 1530>    DEBUG   [pmSendPdu] Sending Command (Exit)    raw data 0d 0f f0 0a    waiting for message response []
0:00:21.067049 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:00:21.091103 < 2347>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:46.034922 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 25   Response list before 0  after 1
0:00:46.036916 < 1530>    DEBUG   [pmSendPdu] Sending Command (I'm Alive Message To Panel)    raw data 0d ab 03 00 00 00 00 00 00 00 00 00 43 0e 0a    waiting for message response ['0X2']
0:02:27.035398 < 1577>     INFO   [SendCommand] Re-Sending last message  I'm Alive Message To Panel
0:02:27.035398 < 1605>    DEBUG   [ClearList] Setting queue empty
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1581: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
ERROR:asyncio:Task exception was never retrieved
future: <Task finished name='Task-159' coro=<ProtocolBase.SendCommandAsync() done, defined at C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1543> exception=AttributeError("'NoneType' object has no attribute 'triedResendingMessage'")>
Traceback (most recent call last):
  File "C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py", line 1582, in SendCommandAsync
    self.pmLastSentMessage.triedResendingMessage = True
AttributeError: 'NoneType' object has no attribute 'triedResendingMessage'
0:02:28.035630 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 102   Response list before 0  after 1
0:02:28.035630 < 1530>    DEBUG   [pmSendPdu] Sending Command (I'm Alive Message To Panel)    raw data 0d ab 03 00 00 00 00 00 00 00 00 00 43 0e 0a    waiting for message response ['0X2']
0:04:09.034910 < 1577>     INFO   [SendCommand] Re-Sending last message  I'm Alive Message To Panel
0:04:09.034910 < 1605>    DEBUG   [ClearList] Setting queue empty
ERROR:asyncio:Task exception was never retrieved
future: <Task finished name='Task-264' coro=<ProtocolBase.SendCommandAsync() done, defined at C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py:1543> exception=AttributeError("'NoneType' object has no attribute 'triedResendingMessage'")>
Traceback (most recent call last):
  File "C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.6\pyvisonic.py", line 1582, in SendCommandAsync
    self.pmLastSentMessage.triedResendingMessage = True
AttributeError: 'NoneType' object has no attribute 'triedResendingMessage'
0:04:10.036019 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 102   Response list before 0  after 1
0:04:10.037017 < 1530>    DEBUG   [pmSendPdu] Sending Command (I'm Alive Message To Panel)    raw data 0d ab 03 00 00 00 00 00 00 00 00 00 43 0e 0a    waiting for message response ['0X2']
0:04:19.035434 < 1157>     INFO   [Controller] Trigger Panel Download Attempt
0:04:19.035434 < 1619>     INFO   [Start_Download] Starting download mode
0:04:19.043735 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 9   Response list before 0  after 1
0:04:19.044472 < 1530>    DEBUG   [pmSendPdu] Sending Command (Start Download Mode)    raw data 0d 24 00 00 56 50 00 00 00 00 00 00 35 0a    waiting for message response ['0X3C']
0:07:20.035748 < 1141>  WARNING   [Controller] ********************** Download Timer has Expired, Download has taken too long *********************
0:07:20.035748 < 1142>  WARNING   [Controller] ************************************* Going to standard mode ***************************************
0:07:20.037710 < 1264>     INFO   [Standard Mode] Entering Standard Mode
0:07:20.038710 < 1605>    DEBUG   [ClearList] Setting queue empty
WARNING:__main__:Visonic attempt to add device with type <class 'int'>  device is 7
0:07:20.046687 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 181   Response list before 0  after 1
0:07:20.048323 < 1530>    DEBUG   [pmSendPdu] Sending Command (Exit)    raw data 0d 0f f0 0a    waiting for message response ['0X2']
0:07:20.048323 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:07:21.534189 < 1530>    DEBUG   [pmSendPdu] Sending Command (Stop)    raw data 0d 0b f4 0a    waiting for message response ['0X2']
0:07:21.535195 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:07:23.035105 < 1530>    DEBUG   [pmSendPdu] Sending Command (Initializing PowerMax/Master PowerLink Connection)    raw data 0d ab 0a 00 01 00 00 00 00 00 00 00 43 06 0a    waiting for message response ['0X2']
0:07:23.035105 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 8.0
0:07:30.034958 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:07:30.034958 < 1605>    DEBUG   [ClearList] Setting queue empty
0:07:30.036956 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:07:31.034222 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:07:40.034814 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:07:40.034814 < 1605>    DEBUG   [ClearList] Setting queue empty
0:07:40.036809 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:07:40.037807 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:07:50.034185 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:07:50.034185 < 1605>    DEBUG   [ClearList] Setting queue empty
0:07:50.036145 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:07:50.037143 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']
0:08:00.036084 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:08:00.036084 < 1605>    DEBUG   [ClearList] Setting queue empty
0:08:00.039078 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:08:00.044973 < 1530>    DEBUG   [pmSendPdu] Sending Command (Getting Status)    raw data 0d a2 00 00 00 00 00 00 00 00 00 00 43 1a 0a    waiting for message response ['0XA5', '0X2']

OK, I made another mistake, my only defense is that I can’t run it myself to try it!

I’ve just uploaded another version to Github. 0.3.3.8

Can you repeat exactly the same again, both tests and the line numbers are the same too.
I ask you to change the line numbers so anyone else downloading that version doesn’t execute the test code and it should still work for them, I hope you understand.

EDIT: I forgot to answer your question

Yes, it says “Downloading”. It should also say it when running test.py :slight_smile:

Sorry, you lost me there I’m afraid I don’t understand what you mean.

When I upload a version to Github I still want it to work for everyone that uses it in HA and I don’t want to break it. So when I upload a version for you to try, I ask you to make a couple of changes.