Multi Master/Slave answers cluster

If a field of the payload starts with 0x, this means that it's an hexadecimal representation, and if it starts with 0b, it is a binary representation.

Any multi-byte numerical value is serialized in “Big Endian” order.

Present value


Standard report

Report

FeaturesFctrl CmdIDClusterIDAttributeIDAttribute typeDataComment
Report attributes0x110x0A0x80 0x090x00 0x000x410xss 0xdd 0xdd 0xdd 0xaa...aaCurrent Multi answers frame got in the last Master/Slaves exchanges

0xss: Data size (size of 0xdddddd + 0xaa..aa)

0xdd 0xdd 0xdd: Data descriptor

0xaa..0xaa : All the current available answers, got in the last Master/Slave exchanges, aggregated (with or without ModBus headers according to the Header option attribute). First datas corresponding to the smallest set bit index on Data descriptor, and so on.

This report can be sent on several frames if it is longer than 51 bytes

In the tab here above,a "Data descriptor" can be seen (0xdddddd). This descriptor is used to describe the data that are after it in the payload. Here below, can be see the analysis of what is inside this descriptor.

0xdddddd = 0b cccccccc nnntttpp pppppppp where :

  • cccccccc (on 1 byte) : Number of the "frame series" sent, from 0 to 255 (cyclic counter). This number is incremented every time a report is sent
  • nnn (on 3 bits) : Number of the current frame
  • ttt (on 3 bits) : Number of the last frame to send with this series number (0bssssssss). Thus, it is the total number of frames to send for this report, minus 1
  • pppppppppp (on 10 bits) : Presence or absence of the Master/Slave answer, from the EndPoint corresponding to the bit index, in the frame
    • Example: if 0bpppppppppp = 0b0000001011, then only the Master/Slave answers from EndPoint n°0,1 and 3 are present in the rest of the payload

Configuration

FeaturesFctrl CmdIDClusterIDPayloadComment
Configure reporting0x110x060x80 0x090x00 0x00 0x00 0x41 0xmmmm 0xMMMM 0x01 0x00This command allows to configure a report on the Multi answers frame, containing all the Serial Master/Slave answers

0x00 0x00: Attribute ID
0x41: Attribute type
0xmmmm: Minimum reporting interval
0xMMMM: Maximum reporting interval
0x01 : size of reportable change
0x00: reportable change => A report will be trigged only on the maximum reporting interval
Configure reporting response0x110x070x80 0x090xss 0x00 0x00 0x000xss:status (0x00 if everything is OK)
Read reporting configuration0x110x080x80 0x090x00 0x00 0x000x00 0x00: Attribute ID
Read reporting configuration response0x110x090x80 0x090xss 0x00 0x00 0x00 0x41 0xmmmm 0xMMMM 0x01 0x000xss:status (0x00 if everything is OK)
0x00 0x00:Attribute ID
0x41: Attribute type
0xmmmm: Minimum reporting interval
0xMMMM: Maximum reporting interval
0x01 : size of reportable change
0x00: reportable change

Read/Write

FeaturesFctrl CmdIDClusterIDAttribute IDStatusAttribute typeDataComment
Read attribute request0x110x000x80 0x090x00 0x00Ask the current Multi answers frame containing all the current answers got in the last Master/Slave exchanges
Read attribute response0x110x010x80 0x090x00 0x000x000x410xss 0xdd 0xdd 0xdd 0xaa...aaCurrent Multi answers frame got in the last Master/Slave exchanges

0xss : Data size (size of 0xdddddd + 0xaa..aa)
0xdd 0xdd 0xdd : Data descriptor
0xaa..0xaa : All the current available answers, got in the last Master/Slave exchanges, aggregated

This response can be sent on several frames it it is longer than 51 bytes

Header option


Read/Write

FeaturesFctrl CmdIDClusterIDAttributeIDStatusAttribute typeDataComment
Read attribute request0x110x000x80 0x090x00 0x01Ask the current Header option of the cluster
Read attribute response0x110x010x80 0x090x00 0x010x00 0x100xhhCurrent Header option that will be used in the Present value report

0xhh: Header option
if 0xhh=0x01 [default value], all the ModBus answers' headers are kept in the Present value reports
if 0xhh=0x00, the ModBus answers' headers are not kept in order to optimize the Present value report frame size
Write attribute no response0x110x050x80 0x090x00 0x010x100xhhSet the current value of the Header option (see here below for more explanation)
Print Friendly