The process of reading labels isnt that difficult. First thing you need to do is to determine where the labels are stored in EEPROM. RAM stores info about the panel, like current open zones, doors, etc. EEPROM stores all panel settings (typically anything you can change via the keypad).
For labels, see the document EVO_Technical_Info_v1_0_0.xlsx I posted further down. The sheet “EEPROM Map” shows you the address of each label. E.g. Zone Label 001 is at EEPROM address 0x00430 and it’s 16 bytes long (since a label has 16 characters max).
To read this in code, make sure you are logged into the IP150 module. I’m assuming you are this far at least? My sheet “IP150 Login-Logout Sequence” sequence gives more info on this.
Once you are successfully logged in you need to issue command 0x5. Messages to the IP150 has a 16 byte header followed by the serial protocol command. So to read zone label 0x00430 you need to issue this command:
Header: 0xAA, 0x08, 0x00, 0x04, 0x08, 0x00, 0x00, 0x14, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE (this was found through tracing Winload packets)
Serial Message: 0x50 0x08 0x00 0x00 0x04 0x30 0x10 0x?? (last byte is the checksum)
Of course you send the header and message as one long byte sequence.
The serial message is explained as follows;
0x50 = Command 0x5, Block number 0x0
0x08 = The serial message has 8 bytes total.
0x00 = Control byte. Bit 7 ON = RAM, Bit 7 OFF = EEPROM. Bit 0 & 1 is the EEPROM memory address’ bit 16 & 17 if the address exceeds 0x0FFFF. In our example we dont exceed it.
0x00 = Bus address = 00 (panel)
0x04 = Memory address HIGH
0x30 = Memory address LOW
0x10 = Bytes to read = 16 (length of a label)
0x?? = You need to calculate the checksum of the serial message’s bytes by summing bytes 00-06.
Once you issue this command you’ll get the 0x5 response message. It looks very similar. It will have a 16 byte header that’s returned and the serial message. Bytes 06-21 in the serial message response contains the 16 bytes of data you requested (the label). Convert the bytes to ASCII.
If you are NOT using the IP150 the process should be relatively similar, except you will not have the 16 byte header as that seems to be IP150 specific. Your login sequence might also be slightly different as you would have to ignore the IP150 module login part, but you’d have to still follow the rest of the commands to establish a connection (but I cant verify this as I work with the IP150 only).