Page 11 of 13

Re: Visonic Powermax Powerlink protocol description

PostPosted: Tue May 17, 2016 3:19 pm
by janssuuh
Hi all,

At the first page of this forum, there is a python example of calculating the checksum.
I try to get a response from my Powermax Plus by sending the init message (PM has PowerLink enrolled), but I don't get any response from the PowerMax.
(In this example I added the prefix / checksum and postfix to the message.)

(Tried the Interface of Bart, which works fine, so hardware is ok.)
I'm not sure how to format the Hex bytes correctly (hex string, or hex byte?)

Is anyone familiar to this? My code;

Code: Select all
import time
import serial

ser = serial.Serial(
    port='/dev/ttyUSB0',
    baudrate=9600,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
    timeout=1
)

ser.close()
ser.open()
ser.isOpen()

MSG="\x0D\xAB\x06\x00\x01\x00\x00\x00\x00\x00\x00\x00\x43\x0A\x0A"
MSG2=bytearray([0x0D,0xAB,0x06,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x43,0x0A,0x0A])


# Try HexString ---------------------------------------
ser.write(MSG)

time.sleep(2)

# Try Hex array ---------------------------------------
l = len(MSG2)
x=0
while x < l:
        #print format(MSG2[x],'02X')
        ser.write(format(MSG2[x],'02X'))
        x+=1

ser.close()


Thanks!

Re: Visonic Powermax Powerlink protocol description

PostPosted: Wed May 18, 2016 9:50 pm
by janssuuh
Got it to work by just writing

Code: Select all
l = len(MSG)
ser.write(MSG2[0:l])


Getting zone events and got it to Arm / Disarm.

Work in progress :)

Re: Visonic Powermax Powerlink protocol description

PostPosted: Fri Jun 10, 2016 10:08 pm
by irekz
Hi guys. This thread is GREAT, thanks for all you work.
I found however that number of commands are not documented here (like EEPROM download, etc).
If you don't mind reading BASIC, this file is a goldmine:

https://github.com/DomotiGa/DomotiGa/bl ... onic.class

I found it easy to follow, and seems to be of very good quality.
Based on this file I'm progressing rapidly with my C++ implementation that will be running on micro controller (ESP 8266).

Hope this helps :)

Re: Visonic Powermax Powerlink protocol description

PostPosted: Sat Jun 11, 2016 8:08 am
by nlrb
irekz wrote:Hi guys. This thread is GREAT, thanks for all you work.
I found however that number of commands are not documented here (like EEPROM download, etc).
If you don't mind reading BASIC, this file is a goldmine:

https://github.com/DomotiGa/DomotiGa/bl ... onic.class

I found it easy to follow, and seems to be of very good quality.
Based on this file I'm progressing rapidly with my C++ implementation that will be running on micro controller (ESP 8266).

Hope this helps :)


Looks like they made this code based on my reverse engineering & Vera implementation, but 'forgot' to mention that:
Code: Select all
http://code.mios.com/trac/mios_visonic-powermax/browser

BTW - I've ported the main part of this also to NodeJS to run on Homey if that is helpful:
Code: Select all
https://github.com/nlrb/com.visonic.powermax

Re: Visonic Powermax Powerlink protocol description

PostPosted: Sat Jun 11, 2016 9:58 pm
by wwolkers
nlrb wrote:Looks like they made this code based on my reverse engineering & Vera implementation, but 'forgot' to mention that:
Code: Select all
http://code.mios.com/trac/mios_visonic-powermax/browser

BTW - I've ported the main part of this also to NodeJS to run on Homey if that is helpful:
Code: Select all
https://github.com/nlrb/com.visonic.powermax

Hi nlrb,

Having written part of the visonic implementation for DomotiGa, I can say that I have never before even seen the implementation you made. I'll check it though to see if there's anything in there which I can add to DomotiGa again :)
The implementation is based on information from this forum, and our own reverse engineering since we use PowerMaster panels which have a couple extra's (Mostly done by Alexei btw)

I hadn't seen the nodejs implementation either btw, nice work!

Re: Visonic Powermax Powerlink protocol description

PostPosted: Sun Jun 12, 2016 9:19 pm
by Mario from Spain
irekz wrote:Based on this file I'm progressing rapidly with my C++ implementation that will be running on micro controller (ESP 8266).

Hope this helps :)


Very interesting to see this working on ESP8266, specially if it's via MQTT or as a library so it's easy to complement with MQTT support.

I'll follow your work.

Re: Visonic Powermax Powerlink protocol description

PostPosted: Tue Jun 14, 2016 10:01 pm
by irekz
Mario from Spain wrote:Very interesting to see this working on ESP8266, specially if it's via MQTT or as a library so it's easy to complement with MQTT support.
I'll follow your work.


Just created a new post about ESP8266 solution. It's a good starting point for a project.
My aim was to keep it as simple as possible (only PowerMax functionality is implemented), and leave for other guys to customize/add modules you need (like MQTT support).
Cheers,
Irek

Re: Visonic Powermax Powerlink protocol description

PostPosted: Sat Jul 02, 2016 9:48 pm
by irekz
Hi guys.
Managed to get Visonic Remote Programmer to talk to my alarm via WiFi, and I can easily log all traffic.
Found something that possibly is not described in this forum (or any source code I saw): wireless sensor signal strength.
You can get this information in two ways:

1) as part of regular download EPROM message
2) when in download mode by requesting signal info only:
Code: Select all
0x0D,0x3E,0xDA,0x09,0x1C,0x00,0xB0,0x03,0x00,0x03,0x00,0x03,0x08,0x0A

(this is packet sniffed from Remote Programmer), 0x1C is zone count I believe.

response from PM:
Code: Select all
0x0D,0x3F,0xDA,0x09,0x1C,0x03,0x03,0x03,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAE,0x0A


again 0x1C is a zone count, followed by signal strength indicator for each zone:
0x00: bad
0x01: poor
0x02: medium
0x03: strong

hope this helps :)
Irek


UPDATE: signal strength appears to be updated only during: "Walk Test" or "Wireless Sensor Test"

Re: Visonic Powermax Powerlink protocol description

PostPosted: Mon Jul 04, 2016 5:04 pm
by bartbakels
irek,

im not realy sure if this correct, if i check my sensors, which are next to my controlpanel, which read bad, which not seem to be correct.

BRT

Re: Visonic Powermax Powerlink protocol description

PostPosted: Mon Jul 04, 2016 5:09 pm
by bartbakels
bartbakels wrote:irek,

im not realy sure if this correct, if i check my sensors, which are next to my controlpanel, which read bad, which not seem to be correct.

BRT



Sorry,

It seem to be correct, when i check with the visonic programmer tool. SORRY!!

however dont understand when most of my sensors are bad...

Re: Visonic Powermax Powerlink protocol description

PostPosted: Mon Jul 04, 2016 8:49 pm
by irekz
It seem to be correct, when i check with the visonic programmer tool. SORRY!!
however dont understand when most of my sensors are bad...


Have the same problem with 2 sensors showing 0 value (one next to the PowerMax box).
Not sure how and when this values are updated... maybe someone here will know (constantly by the box, during walk in test, or some other way?)

Cheers,
Irek

Re: Visonic Powermax Powerlink protocol description

PostPosted: Wed Jul 06, 2016 10:27 am
by bartbakels
HI,

Anybody have an idea, to remotely trigger an alarm, by the RS-232 interface? Maybe via a panic button emulation or another smart idea?

regards

Bart

Re: Visonic Powermax Powerlink protocol description

PostPosted: Wed Jul 06, 2016 8:17 pm
by irekz
bartbakels wrote:HI,
Anybody have an idea, to remotely trigger an alarm, by the RS-232 interface? Maybe via a panic button emulation or another smart idea?


There is no option like this in 'Remote Programer' windows app. (there are options there to arm/disarm, but nothing to trigger the alarm.
One way to experiment is maybe with 0xA1 message (used for arming disarming). 3rd byte can have those values:
0x00 Disarm
0x04 Arm home
0x05 Arm away
0x14 Arm home instantly

Maybe one of the other values can trigger the panic alarm? Just a guess.

Re: Visonic Powermax Powerlink protocol description

PostPosted: Wed Jul 06, 2016 8:24 pm
by irekz
irekz wrote:
Not sure how and when this values are updated... maybe someone here will know (constantly by the box, during walk in test, or some other way?)


Reading PowerMax Complete installation manual I get a feel that signal strength might be updated only during 'DIAGNOSTIC TEST'
see: http://www.visonic.com/data/uploads/pow ... 302754.pdf
page: 4.10

Re: Visonic Powermax Powerlink protocol description

PostPosted: Thu Jul 14, 2016 5:52 pm
by irekz
bartbakels wrote:HI,
Anybody have an idea, to remotely trigger an alarm, by the RS-232 interface? Maybe via a panic button emulation or another smart idea?


Hi Bart.
I did some research and have a plan to achieve just that. In my setup I have Wemos D1 microcontroller installed inside the alarm box.
It looks like that my alarm supports hardwired zones (zone 29 'out of the box' or two zones: 29 & 30 with extender module).
Wiring for hardiwred zones is very simple (all you need to simulate a sensor is to have two resistors!).

So my plan is to: add a power relay to Wemos board + 2 resistors. I will drive the relay from the microcontroller. This will give me an ability to tigger alarm on zone 29 via wifi.
For more information how to wire the zone 29 see: http://www.visonic.com/data/uploads/pow ... 302754.pdf
page: 6 (ZONE 29 & SIREN WIRING). Look at Figure 3.2 - there is a wiring of detector without tamper switch: just a switch/relay with two resistors!

Hope this helps,
Kind regards,
Irek