Messages

Bus messages

Msg

class knx_stack.Msg(iterable=(), /)

A bus message wrapper which is able to consume the message’s bytes in different ways: through an octect, through a short or through a long.

>>> import knx_stack
>>> msg = knx_stack.Msg.make_from_str("112203AA0B0C0D")
>>> (head, body) = msg.octect()
>>> head
0x11
>>> body
2203AA0B0C0D
>>> (head, body) = body.short()
>>> head
0x2203
>>> body
AA0B0C0D
>>> (head, body) = body.long()
>>> head
0xAA0B0C0D
>>> body
classmethod make_from_str(msg: str) knx_stack.Msg
static stringtooctects(msg: str) Iterable[knx_stack.msg.Octect]
octect() Tuple[knx_stack.msg.Octect, knx_stack.Msg]

Consumes an Octect from the message’s byte list

Returns

Tuple(Octect, the other bytes as a new Msg)

short() Tuple[knx_stack.msg.Short, knx_stack.Msg]

Consumes a Short from the message’s byte list

Returns

Tuple(Short, the other bytes as a new Msg)

long() Tuple[knx_stack.msg.Long, knx_stack.Msg]

Consumes a Long from the message’s byte list

Returns

Tuple(Long, the other bytes as a new Msg)

Octect

class knx_stack.msg.Octect

A wrapper for a byte value with methods to access low and high nibbles.

>>> import knx_stack
>>> o = knx_stack.msg.Octect(knx_stack.msg.Nibbles(high=1, low=0))
>>> o
0x10
>>> o.nibble.high
1
>>> o.nibble.low
0
>>> o.value
16
nibble

Structure/Union member

value

Structure/Union member

Short

class knx_stack.msg.Short

A wrapper for a short value with methods to access MSB (most significant byte), LSB (less significant byte) and both its octects.

>>> import knx_stack
>>> MSB = knx_stack.msg.Octect(knx_stack.msg.Nibbles(high=1, low=0)).value
>>> LSB = knx_stack.msg.Octect(knx_stack.msg.Nibbles(high=0, low=1)).value
>>> bytes = knx_stack.msg.Bytes(MSB=MSB, LSB=LSB)
>>> short = knx_stack.msg.Short(bytes)
>>> short
0x1001
>>> short.byte.MSB
16
>>> short.byte.LSB
1
>>> short.value
4097
property MSB: knx_stack.msg.Octect
property LSB: knx_stack.msg.Octect
property octects: Iterable[knx_stack.msg.Octect]
byte

Structure/Union member

value

Structure/Union member

Long

class knx_stack.msg.Long

A wrapper for a long value with methods to access its single bytes or octects.

>>> import knx_stack
>>> long = knx_stack.msg.Long(value=0x91000008)
>>> long.B1
0x08
>>> long.B2
0x00
>>> long.B3
0x00
>>> long.B4
0x91
property B1: knx_stack.msg.Octect
property B2: knx_stack.msg.Octect
property B3: knx_stack.msg.Octect
property B4: knx_stack.msg.Octect
property octects: Iterable[knx_stack.msg.Octect]
byte

Structure/Union member

value

Structure/Union member

Application messages

ISO/OSI Stack layers

Application layer

A_Group_Value_Read
class knx_stack.definition.layer.application.a_group_value_read.req.Msg(asap)
property asap

Alias for field number 0

class knx_stack.definition.layer.application.a_group_value_read.ind.Msg(asap, dpt)
property asap

Alias for field number 0

property dpt

Alias for field number 1

class knx_stack.definition.layer.application.a_group_value_read.con.Msg(asap, dpt, status)
property asap

Alias for field number 0

property dpt

Alias for field number 1

property status

Alias for field number 2

A_Group_Value_Response
class knx_stack.definition.layer.application.a_group_value_response.ind.Msg(asap, dpt)
property asap

Alias for field number 0

property dpt

Alias for field number 1

class knx_stack.definition.layer.application.a_group_value_response.con.Msg(asap, dpt, status)
property asap

Alias for field number 0

property dpt

Alias for field number 1

property status

Alias for field number 2

A_Group_Value_Write
class knx_stack.definition.layer.application.a_group_value_write.req.Msg(asap, dpt)
property asap

Alias for field number 0

property dpt

Alias for field number 1

class knx_stack.definition.layer.application.a_group_value_write.ind.Msg(asap, dpt)
property asap

Alias for field number 0

property dpt

Alias for field number 1

class knx_stack.definition.layer.application.a_group_value_write.con.Msg(asap, dpt, status)
property asap

Alias for field number 0

property dpt

Alias for field number 1

property status

Alias for field number 2

A_Property_Value_Read
class knx_stack.definition.layer.application.a_property_value_read.req.Msg(asap, object_index, property_id, number_of_elements, start_index)
property asap

Alias for field number 0

property object_index

Alias for field number 1

property property_id

Alias for field number 2

property number_of_elements

Alias for field number 3

property start_index

Alias for field number 4

class knx_stack.definition.layer.application.a_property_value_read.ind.Msg(asap, object_index, property_id, number_of_elements, start_index)
property asap

Alias for field number 0

property object_index

Alias for field number 1

property property_id

Alias for field number 2

property number_of_elements

Alias for field number 3

property start_index

Alias for field number 4

class knx_stack.definition.layer.application.a_property_value_read.con.Msg(asap, object_index, property_id, number_of_elements, start_index, status)
property asap

Alias for field number 0

property object_index

Alias for field number 1

property property_id

Alias for field number 2

property number_of_elements

Alias for field number 3

property start_index

Alias for field number 4

property status

Alias for field number 5

A_Property_Value_Response
class knx_stack.definition.layer.application.a_property_value_response.ind.Msg(asap, object_index, property_id, number_of_elements, start_index, data)
property asap

Alias for field number 0

property object_index

Alias for field number 1

property property_id

Alias for field number 2

property number_of_elements

Alias for field number 3

property start_index

Alias for field number 4

property data

Alias for field number 5

class knx_stack.definition.layer.application.a_property_value_response.con.Msg(asap, object_index, property_id, number_of_elements, start_index, data, status)
property asap

Alias for field number 0

property object_index

Alias for field number 1

property property_id

Alias for field number 2

property number_of_elements

Alias for field number 3

property start_index

Alias for field number 4

property data

Alias for field number 5

property status

Alias for field number 6

A_Property_Value_Write
class knx_stack.definition.layer.application.a_property_value_write.req.Msg(asap, object_index, property_id, number_of_elements, start_index, data)
property asap

Alias for field number 0

property object_index

Alias for field number 1

property property_id

Alias for field number 2

property number_of_elements

Alias for field number 3

property start_index

Alias for field number 4

property data

Alias for field number 5

class knx_stack.definition.layer.application.a_property_value_write.ind.Msg(asap, object_index, property_id, number_of_elements, start_index, data)
property asap

Alias for field number 0

property object_index

Alias for field number 1

property property_id

Alias for field number 2

property number_of_elements

Alias for field number 3

property start_index

Alias for field number 4

property data

Alias for field number 5

class knx_stack.definition.layer.application.a_property_value_write.con.Msg(asap, object_index, property_id, number_of_elements, start_index, data, status)
property asap

Alias for field number 0

property object_index

Alias for field number 1

property property_id

Alias for field number 2

property number_of_elements

Alias for field number 3

property start_index

Alias for field number 4

property data

Alias for field number 5

property status

Alias for field number 6

KNXnet IP

Core

Connect
class knx_stack.definition.knxnet_ip.core.connect.req.Msg(addr_control_endpoint, port_control_endpoint, addr_data_endpoint, port_data_endpoint)
property addr_control_endpoint

Alias for field number 0

property port_control_endpoint

Alias for field number 1

property addr_data_endpoint

Alias for field number 2

property port_data_endpoint

Alias for field number 3

class knx_stack.definition.knxnet_ip.core.connect.res.Msg(ip, port, individual_address, status)
property ip

Alias for field number 0

property port

Alias for field number 1

property individual_address

Alias for field number 2

property status

Alias for field number 3

Disconnect
class knx_stack.definition.knxnet_ip.core.disconnect.req.Msg(addr_control_endpoint, port_control_endpoint)
property addr_control_endpoint

Alias for field number 0

property port_control_endpoint

Alias for field number 1

class knx_stack.definition.knxnet_ip.core.disconnect.res.Msg(communication_channel_id, status)
property communication_channel_id

Alias for field number 0

property status

Alias for field number 1

Connectionstate
class knx_stack.definition.knxnet_ip.core.connectionstate.req.Msg(addr_control_endpoint, port_control_endpoint)
property addr_control_endpoint

Alias for field number 0

property port_control_endpoint

Alias for field number 1

class knx_stack.definition.knxnet_ip.core.connectionstate.res.Msg(status)
property status

Alias for field number 0

Tunneling

class knx_stack.definition.knxnet_ip.tunneling.req.Msg(sequence_counter, status)
property sequence_counter

Alias for field number 0

property status

Alias for field number 1

class knx_stack.definition.knxnet_ip.tunneling.ack.Msg(sequence_counter, status)
property sequence_counter

Alias for field number 0

property status

Alias for field number 1