Visonic Powermax and Powermaster Component

Ok, I think I got it, here is the first test:

python3 test.py -usb COM5
0:00:00 < 3392>     INFO   Setting key OverrideCode to value -1
0:00:00 < 3392>     INFO   Setting key ForceStandard to value False
DEBUG:asyncio:Using proactor: IocpProactor
0:00:00.024939 < 1035>     INFO   [Connection] Connected to local Protocol handler and Transport Layer
0:00:00.024939 < 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.047090 < 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.052465 < 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.084989 < 2347>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:00.084989 < 1335>  WARNING   [data receiver] Warning : Construction of incoming packet unknown - Message Type 0X22
0:00:00.086620 < 1456>     INFO   [validatePDU] Not valid packet, CRC failed, may be ongoing and not final 0A
0:00:00.095107 < 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.102698 < 1355>  WARNING   [data receiver] Unhandled message 0x22
0:00:00.102698 < 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.195935 < 1530>    DEBUG   [pmSendPdu] Sending Command (Ack)    raw data 0d 02 fd 0a    waiting for message response ['0X3C']
0:00:19.851399 < 2360>     INFO   [handle_msgtype06] Timeout Received  data
0:00:19.852081 < 1530>    DEBUG   [pmSendPdu] Sending Command (Stop)    raw data 0d 0b f4 0a    waiting for message response []
0:00:19.852081 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:00:19.866181 < 2347>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:19.866181 < 2375>     INFO   [handle_msgtype08] Access Denied  len 0 data
0:00:19.867044 < 2379>    DEBUG   [handle_msgtype08]                last command 0b
0:00:21.338090 < 1530>    DEBUG   [pmSendPdu] Sending Command (Exit)    raw data 0d 0f f0 0a    waiting for message response []
0:00:21.338678 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:00:21.354961 < 2347>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:46.041135 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 25   Response list before 0  after 1
0:00:46.043083 < 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.040287 < 1577>     INFO   [SendCommand] Re-Sending last message  I'm Alive Message To Panel
0:02:27.040287 < 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.040340 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 102   Response list before 0  after 1
0:02:28.040340 < 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.040639 < 1577>     INFO   [SendCommand] Re-Sending last message  I'm Alive Message To Panel
0:04:08.040639 < 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.039494 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 101   Response list before 0  after 1
0:04:09.040254 < 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.040187 < 1157>     INFO   [Controller] Trigger Panel Download Attempt
0:04:19.040988 < 1619>     INFO   [Start_Download] Starting download mode
0:04:19.047967 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 10   Response list before 0  after 1
0:04:19.054949 < 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.040293 < 1141>  WARNING   [Controller] ********************** Download Timer has Expired, Download has taken too long *********************
0:07:20.040293 < 1142>  WARNING   [Controller] ************************************* Going to standard mode ***************************************
0:07:20.042279 < 1264>     INFO   [Standard Mode] Entering Standard Mode
0:07:20.042279 < 1605>    DEBUG   [ClearList] Setting queue empty
WARNING:__main__:Visonic attempt to add device with type <class 'int'>  device is 7
0:07:20.052608 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 181   Response list before 0  after 1
0:07:20.058928 < 1530>    DEBUG   [pmSendPdu] Sending Command (Exit)    raw data 0d 0f f0 0a    waiting for message response ['0X2']
0:07:20.059943 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:07:21.556178 < 1530>    DEBUG   [pmSendPdu] Sending Command (Stop)    raw data 0d 0b f4 0a    waiting for message response ['0X2']
0:07:21.556807 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:07:23.055907 < 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.056466 < 1532>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 8.0
0:07:30.039613 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:07:30.039613 < 1605>    DEBUG   [ClearList] Setting queue empty
0:07:30.041216 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:07:31.055607 < 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.041125 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:07:40.042121 < 1605>    DEBUG   [ClearList] Setting queue empty
0:07:40.054092 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:07:40.059077 < 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.040068 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:07:50.040068 < 1605>    DEBUG   [ClearList] Setting queue empty
0:07:50.041679 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:07:50.049057 < 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.040800 < 1207>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:08:00.041378 < 1605>    DEBUG   [ClearList] Setting queue empty
0:08:00.043416 < 1593>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:08:00.051355 < 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']

Note: Sometimes when I run the test my panel doesn’t go into “Downloading” mode, I have to stop the test and restart again.

Hi David, are you certain that you’re running 0.3.3.8, the version I uploaded to Github earlier tonight. If you are them I’m really confused :slight_smile:

I’m very sorry I had just reallized the last two bloks of tests were made in version v0.3.3.6, how stupid i’m so sorry .
I have to re-run both v0.3.3.7 and v0.3.3.8.

That’s OK, just run the 2 tests for 0.3.3.8 please, forget about 0.3.3.7

Ok, here is the first V0.3.3.8 test output:

python3 test.py -usb COM5
0:00:00.000997 < 3405>     INFO   Setting key OverrideCode to value -1
0:00:00.000997 < 3405>     INFO   Setting key ForceStandard to value False
DEBUG:asyncio:Using proactor: IocpProactor
0:00:00.019737 < 1038>     INFO   [Connection] Connected to local Protocol handler and Transport Layer
0:00:00.019737 < 1622>     INFO   [Start_Download] Starting download mode
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.8\pyvisonic.py:1542: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.8\pyvisonic.py:1602: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.031705 < 1533>    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 []
0:00:00.066013 < 2350>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:00.080974 < 1422>    DEBUG   [Sending ack] PowerlinkMode=False    Is PM Ack Reqd=False    This is an Ack for message=0X22
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.8\pyvisonic.py:1435: RuntimeWarning: coroutine 'wait_for' was never awaited
  asyncio.wait_for(t, None)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
0:00:00.081972 < 2469>    DEBUG   [handle_msgtype3C] PanelType=0 : PowerMax , Model=21   Powermaster False
0:00:00.081972 < 1633>     INFO   [Panel Settings] Reading panel settings
0:00:00.082969 < 1596>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:00:00.174021 < 1533>    DEBUG   [pmSendPdu] Sending Command (Ack)    raw data 0d 02 fd 0a    waiting for message response ['0X3F', '0X2']
0:00:00.313378 < 1533>    DEBUG   [pmSendPdu] Sending Command (Download Data Set)    raw data 0d 3e 00 00 80 00 b0 00 00 00 00 00 90 0a    waiting for message response ['0X3F', '0X2']
0:00:00.338249 < 1375>    DEBUG   [data receiver] msgType 0X2 got it so removed from list, list is now ['0X3F']
0:00:00.338249 < 2350>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:00.353851 < 2378>     INFO   [handle_msgtype08] Access Denied  len 0 data
0:00:00.353851 < 2382>    DEBUG   [handle_msgtype08]                last command 3e 00 00 80 00 b0 00 00 00 00 00
0:00:02.847721 < 2378>     INFO   [handle_msgtype08] Access Denied  len 0 data
0:00:02.847721 < 2382>    DEBUG   [handle_msgtype08]                last command 3e 00 00 80 00 b0 00 00 00 00 00
0:00:05.342743 < 2378>     INFO   [handle_msgtype08] Access Denied  len 0 data
0:00:05.342743 < 2382>    DEBUG   [handle_msgtype08]                last command 3e 00 00 80 00 b0 00 00 00 00 00
0:00:07.853814 < 2378>     INFO   [handle_msgtype08] Access Denied  len 0 data
0:00:07.854574 < 2382>    DEBUG   [handle_msgtype08]                last command 3e 00 00 80 00 b0 00 00 00 00 00
0:00:10.347649 < 2378>     INFO   [handle_msgtype08] Access Denied  len 0 data
0:00:10.348082 < 2382>    DEBUG   [handle_msgtype08]                last command 3e 00 00 80 00 b0 00 00 00 00 00
0:00:12.857900 < 2378>     INFO   [handle_msgtype08] Access Denied  len 0 data
0:00:12.858592 < 2382>    DEBUG   [handle_msgtype08]                last command 3e 00 00 80 00 b0 00 00 00 00 00
0:00:15.351208 < 2378>     INFO   [handle_msgtype08] Access Denied  len 0 data
0:00:15.351208 < 2382>    DEBUG   [handle_msgtype08]                last command 3e 00 00 80 00 b0 00 00 00 00 00
0:00:17.861799 < 2378>     INFO   [handle_msgtype08] Access Denied  len 0 data
0:00:17.861799 < 2382>    DEBUG   [handle_msgtype08]                last command 3e 00 00 80 00 b0 00 00 00 00 00
0:00:20.085004 < 2363>     INFO   [handle_msgtype06] Timeout Received  data
0:00:20.085721 < 1533>    DEBUG   [pmSendPdu] Sending Command (Stop)    raw data 0d 0b f4 0a    waiting for message response []
0:00:20.086717 < 1535>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:00:20.100246 < 2350>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:20.100246 < 2378>     INFO   [handle_msgtype08] Access Denied  len 0 data
0:00:20.101086 < 2382>    DEBUG   [handle_msgtype08]                last command 0b
0:00:21.578542 < 1533>    DEBUG   [pmSendPdu] Sending Command (Exit)    raw data 0d 0f f0 0a    waiting for message response []
0:00:21.578542 < 1535>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:00:21.603477 < 2350>    DEBUG   [handle_msgtype02] Ack Received  data =
0:00:46.031766 < 1596>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 25   Response list before 0  after 1
0:00:46.032413 < 1533>    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.032680 < 1580>     INFO   [SendCommand] Re-Sending last message  I'm Alive Message To Panel
0:02:26.033369 < 1608>    DEBUG   [ClearList] Setting queue empty
C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.8\pyvisonic.py:1584: 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-160' coro=<ProtocolBase.SendCommandAsync() done, defined at C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.8\pyvisonic.py:1546> exception=AttributeError("'NoneType' object has no attribute 'triedResendingMessage'")>
Traceback (most recent call last):
  File "C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.8\pyvisonic.py", line 1585, in SendCommandAsync
    self.pmLastSentMessage.triedResendingMessage = True
AttributeError: 'NoneType' object has no attribute 'triedResendingMessage'
0:02:27.031773 < 1596>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 101   Response list before 0  after 1
0:02:27.032516 < 1533>    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.032983 < 1580>     INFO   [SendCommand] Re-Sending last message  I'm Alive Message To Panel
0:04:08.033748 < 1608>    DEBUG   [ClearList] Setting queue empty
ERROR:asyncio:Task exception was never retrieved
future: <Task finished name='Task-265' coro=<ProtocolBase.SendCommandAsync() done, defined at C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.8\pyvisonic.py:1546> exception=AttributeError("'NoneType' object has no attribute 'triedResendingMessage'")>
Traceback (most recent call last):
  File "C:\Users\david\OneDrive\Desktop\Hassio\Visonic v0.3.3.8\pyvisonic.py", line 1585, in SendCommandAsync
    self.pmLastSentMessage.triedResendingMessage = True
AttributeError: 'NoneType' object has no attribute 'triedResendingMessage'
0:04:09.032652 < 1596>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 102   Response list before 0  after 1
0:04:09.033443 < 1533>    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:20.033391 < 1160>     INFO   [Controller] Trigger Panel Download Attempt
0:04:20.034179 < 1622>     INFO   [Start_Download] Starting download mode
0:04:20.041157 < 1533>    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 []
0:07:21.032500 < 1144>  WARNING   [Controller] ********************** Download Timer has Expired, Download has taken too long *********************
0:07:21.032500 < 1145>  WARNING   [Controller] ************************************* Going to standard mode ***************************************
0:07:21.033459 < 1267>     INFO   [Standard Mode] Entering Standard Mode
0:07:21.034451 < 1608>    DEBUG   [ClearList] Setting queue empty
WARNING:__main__:Visonic attempt to add device with type <class 'int'>  device is 7
0:07:21.035328 < 1596>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 192   Response list before 0  after 1
0:07:21.036283 < 1533>    DEBUG   [pmSendPdu] Sending Command (Exit)    raw data 0d 0f f0 0a    waiting for message response ['0X2']
0:07:21.037286 < 1535>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:07:22.531967 < 1533>    DEBUG   [pmSendPdu] Sending Command (Stop)    raw data 0d 0b f4 0a    waiting for message response ['0X2']
0:07:22.532958 < 1535>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:07:24.032747 < 1533>    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:24.033504 < 1535>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 8.0
0:07:31.032491 < 1210>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:07:31.032491 < 1608>    DEBUG   [ClearList] Setting queue empty
0:07:31.034177 < 1596>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:07:32.032232 < 1533>    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:41.032246 < 1210>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:07:41.033078 < 1608>    DEBUG   [ClearList] Setting queue empty
0:07:41.038088 < 1596>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:07:41.039085 < 1533>    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:51.032259 < 1210>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:07:51.033056 < 1608>    DEBUG   [ClearList] Setting queue empty
0:07:51.039041 < 1596>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:07:51.041033 < 1533>    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:01.033098 < 1210>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:08:01.033098 < 1608>    DEBUG   [ClearList] Setting queue empty
0:08:01.034573 < 1596>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:08:01.041978 < 1533>    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 double checked both tests now to make sure I wasn’t making any mistakes again.

This second test output was quite big, so I made a Pastebin:

https://pastebin.com/ELzAMxKh

I think you may have got it now.

Hi all,
I think i’ve read all related post for DevRebelo issue but i may have missed one so let’s share that thought, i don’t think it has been discussed yet:

DevRebelo, what about your panel configuration, do you have multiple partitions enabled ?
Doesn’t Visonix Powermax module assume to work only with mono partitions(default config) panels ? Could it explained that unknown 0x22 message from the panel ?

I deal battery reporting for all visonic sensors in my adaptive tricky card.
I use it since few months now, it’s stable just awsome and perfect for my personnal use.

  • Orange shield is contextually shown for each open/triggered zone (could be filtered to a smaller list of sensor), it allow me to bypass that sensor for arming the panel despite the open zone.
    (The 3rd floor of my house doesn’t represent risk at night so i can leave windows open on summer time and still arm the alarm for all other zones)

  • Grey shield is contextually shown for listing all bypassed zones, a click on it and the zone is re-enabled in alarm supervision.

  • Red Battery icon only appears in card for each visonic sensor that get a 0 battery level. A click on the icon put the zone in bypass mode.
    Not sure if low battery on a zone can put the panel in trouble mode and prevent it to be armed but if so i’ll have a way to easily bypass the zone and some latitude on the battery replacement delay)

1 Like

By the way Dave, my implementation of bypassing individual zone in UI makes that bullet point obselte in your doc :

  • You cannot bypass / arm individual sensors using the HA interface. I can do it, I just don’t know how to interface to it from within HA.

I’ve posted my config here in August [post 534] but since then :

  • my contribution on MonsterCard plugin has been merged in the official project so no need to install it from my repo but just do it from HACS.
  • i’ve refactored few things to makes it more maintainable, mainly by switching my Lovelace to the yaml mode so i can include files in views and card. It’s more digest when using horizontal and vertical card
  • Low battery section was added
  • CSS tuning for some boders supression, better icons selection and other tweaks for giving impression it’s a native whole card

I can share my new card config for those who would be interested but it could run only in lovelace yaml mode. Otherwise just compose with my previous config:

Is the zone information correct

Processing settings information
     i=12 :    SensorID=0xd3   zoneInfo=0x2   ZTypeName=Flood   Chime=Off   sensorTypeStr=Motion   zoneName=Front door
     i=29 :    SensorID=0xff   zoneInfo=0x0   ZTypeName=Non-Alarm   Chime=Off   sensorTypeStr=Wired   zoneName=Utility room

I assume that you don’t have a flood sensor, especially a one that thinks it’s a motion sensor :smile:

So it looks like after downloading the EPROM, the data from your panel is different to newer panels.

Hi, I’ve changed the readme for the next time I upload a release, thankyou.

I don’t think that the original Powermax panel could have multiple partitions, anyone else know for sure?

I’m beginning to think that the original Powermax has a similar but very different message protocol, there are some messages that are the same but some are not.

Looks great, I’ll take a more detailed look when I get some time.

Hi olijouve
No,

I don’t have multiple partitions enable, I don’t even know if my panel has a multiple partitions option.

Yes, hehe, I don’t have sensors with identity issues, the sensor is a PIR K9-85 MCW

I missed this question, yes, its corect: Front Door and Utitity Room.

OK that’s good, that’s a little progress. It seems to be downloading the EPROM and at least getting some (most?) information correct about your sensors.

The test.py that you ran and uploaded the output to pastebin tells me that your panel doesn’t like having the time set. Everything before this line (below) was as I would expect.

0:00:48.332540 < 1533>    DEBUG   [pmSendPdu] Sending Command (Setting Time)    etc etc.

I have uploaded version 0.3.3.9 to Github, please can you try it.

Note that I have modified the test.py and pyvisonic.py files so you do not need to make any code changes. Please do not change any code for this test.

Run it from your windows PC as per normal and upload the output please.

Just for your information, when run from the command line using test.py, this version:

  • Does not set the time (let’s see what happens)
  • Does not try to get to powerlink. It gets the EPROM and stays in “Standard Plus” mode.
  • Sends a “get status” to the panel and waits to see if we’re getting sensor states. This is important, if we don’t get sensor states then there’s no point in doing anything else.

When run from within HA it should be as normal.

Hi Dave, here is the output:

https://pastebin.com/S0tEd7bJ

It seems to smell very good starting to the 722th line… David, you should give an other try on visonic HA integration…
Dave, you rock !

Thankyou for that, I have a question for you. Hopefully I can explain…

Last time the panel didn’t like the “set time” sequence so I missed that out and went for a “get status” instead. However, it didn’t do it straight away and sent an “I’m alive” to the panel which the panel didn’t like.

0:00:46.889324 < 1541>    DEBUG   [pmSendPdu] Sending Command (Exit)    raw data 0d 0f f0 0a    waiting for message response []
0:00:46.890322 < 1543>    DEBUG   [pmSendPdu]          Command has a wait time after transmission 1.5
0:00:46.902320 < 2362>    DEBUG   [handle_msgtype02] Ack Received  data =
0:01:11.062806 < 1604>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 25   Response list before 0  after 1
0:01:11.063684 < 1541>    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:01:21.062873 < 1216>    DEBUG   [Controller] ****************************** Response Timer Expired ********************************
0:01:21.063454 < 1616>    DEBUG   [ClearList] Setting queue empty
0:01:21.064458 < 1604>    DEBUG   [pmSendPdu] Resetting expected response counter, it got to 0   Response list before 0  after 2
0:01:21.064458 < 1541>    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']

In the sequence above, lines 1, 2 and 3 send an “exit” which should exit download

Can you check the display on your panel, when you get to this time in the dos window on your PC after time 0:00:46.9 does the panel display show “downloading” (“Processando”) or does it change to it’s normal “Ready”?

When we send this on line 5 above “Sending Command (I’m Alive Message To Panel)” we should get back an acknowledge from the panel but we don’t so this is where it goes wrong. This is similar to last time but with the “set time”.

So I’ve uploaded 0.3.3.10 just for you really, I’ve replaced the “I’m Alive” message with “Get Status” and we’ll see what happens.

Can you run it again as before, from your windows PC and upload to pastebin again. You will not need to edit any python files.

David, just a bit more explanation so you know what’s going on…

I am trying to get the panel to interact and tell me the state of the sensors. I am trying to get the basic communication going, nothing complex, this is really the simplest level of communication. When I send a “Get Status” to the panel, then it should respond with an acknowledge and a series of “A5” messages telling me the state of the sensors and the panel. I have to be honest here, if it doesn’t do this then we’re stuck as I cannot find any other information about it on the internet after lots of searching.

Also, I have had a go with the Visonic PRP and all I can get it to do is to upload and download the EPROM data. I don’t seem to be able to get the “live” sensor state from the panel or any actual “live” data. Can anyone else? It is possible that the Visonic PRP is only made to do this, to upload and download the EPROM and nothing else. So we may not be able to use the Visonic PRP for anything to help us. It is also possible that all your Powermax panel can do is this upload and download function and nothing else, it may refuse all other interactions.

I’m willing to keep trying for as long as we can, as long as you can run things to test them. Let’s see how far we get but we are just experimenting at the moment. What we’ve found so far (being able to download some of the EPROM) doesn’t mean we can get the “live” sensor and panel data.

Hi Dave, here is the output for v0.3.3.10:

https://pastebin.com/C1YPcUNj

Yes Dave, when I run the test.py my panel displays “Downloading” up until "0:00:47.062618"then the panel displays “Ready” (in my panel is “Pronto”).

I did, it is not working yet :frowning:

Sorry I had read your problem too quickly. I thought it was the list of sensors that did not go back to the panel.
If i understand, blocking point is more the non-transmission / protocol incompatibility of events on the serial port on the panel.

Original PowerMax documentation does not mention PowerLink compatibility, communications on this old model seems to be centrale/dialing oriented.

Pages 11-12 describe specific reporting options.

On page 12 - Section 6.8 Report Format says :
Here you select the reporting format used by the control panel to report events to central stations. The options are: Contact-ID - SIA - 4/2 1900/1400 - 4/2 1800/2300 (for code lists - see Appendix A).

I would suggest you to check that Section 6.8 Report Format is set to 4/2 1800/2300 as it’s linked to the event code list in Appendix A on pages 20-21. This protocol seems to looks like more what Dave’s module expect.
Could still have protocol difference with the Pro model (and we’re still not sure events do are transmited on serial line, doesn’t it ? )