1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
|
"""Module for KNX/IP Enum classes."""
from enum import Enum
class KNXIPServiceType(Enum):
"""Enum class for KNX/IP Service Types."""
# 0x02 Core services
SEARCH_REQUEST = 0x0201
SEARCH_RESPONSE = 0x0202
DESCRIPTION_REQUEST = 0x0203
DESCRIPTION_RESPONSE = 0x0204
CONNECT_REQUEST = 0x0205
CONNECT_RESPONSE = 0x0206
CONNECTIONSTATE_REQUEST = 0x0207
CONNECTIONSTATE_RESPONSE = 0x0208
DISCONNECT_REQUEST = 0x0209
DISCONNECT_RESPONSE = 0x020A
SEARCH_REQUEST_EXTENDED = 0x020B
SEARCH_RESPONSE_EXTENDED = 0x020C
# 0x03 Device Management services
DEVICE_CONFIGURATION_REQUEST = 0x0310
DEVICE_CONFIGURATION_ACK = 0x0311
# 0x04 Tunneling services
TUNNELLING_REQUEST = 0x0420
TUNNELLING_ACK = 0x0421
TUNNELLING_FEATURE_GET = 0x0422
TUNNELLING_FEATURE_RESPONSE = 0x0423
TUNNELLING_FEATURE_SET = 0x0424
TUNNELLING_FEATURE_INFO = 0x0425
# 0x05 Routing services
ROUTING_INDICATION = 0x0530
ROUTING_LOST_MESSAGE = 0x0531
ROUTING_BUSY = 0x0532
ROUTING_SYSTEM_BROADCAST = 0x0533
# 0x06 Remote Logging services
# 0x07 Remote Configuration and Diagnosis services
REMOTE_DIAG_REQUEST = 0x0740
REMOTE_DIAG_RESPONSE = 0x0741
REMOTE_CONFIG_REQUEST = 0x0742
REMOTE_RESET_REQUEST = 0x0743
# 0x08 Object Server services
# 0x09 Security services
SECURE_WRAPPER = 0x0950
SESSION_REQUEST = 0x0951
SESSION_RESPONSE = 0x0952
SESSION_AUTHENTICATE = 0x0953
SESSION_STATUS = 0x0954
TIMER_NOTIFY = 0x0955
class ConnectRequestType(Enum):
"""Enum class for KNX/IP Connect Request Types."""
# Data connection used to configure a KNXnet/IP device
DEVICE_MGMT_CONNECTION = 0x03
# Data connection used to forward KNX telegrams between
# two KNXnet/IP devices.
TUNNEL_CONNECTION = 0x04
# Data connection used for configuration and data transfer
# with a remote logging server.
REMLOG_CONNECTION = 0x06
# Data connection used for data transfer with a remote
# configuration server.
REMCONF_CONNECTION = 0x07
# Data connection used for configuration and data transfer
# with an Object Server in a KNXnet/IP device.
OBJSVR_CONNECTION = 0x08
class TunnellingLayer(Enum):
"""Enum class for KNX/IP Tunnelling Layer."""
# Data Link Layer tunnel
DATA_LINK_LAYER = 0x02
# Raw tunnel
RAW_LAYER = 0x04
# Busmonitor tunnel
BUSMONITOR_LAYER = 0x80
class DIBTypeCode(Enum):
"""Enum class for KNX/IP DIB Type Codes."""
# Device information e.g. KNX medium.
DEVICE_INFO = 0x01
# Service families supported by the device.
SUPP_SVC_FAMILIES = 0x02
# IP configuration
IP_CONFIG = 0x03
# current configuration
IP_CUR_CONFIG = 0x04
# KNX addresses
KNX_ADDRESSES = 0x05
# KNX IP Secure
SECURED_SERVICE_FAMILIES = 0x06
TUNNELING_INFO = 0x07
ADDITIONAL_DEVICE_INFO = 0x08
# DIB structure for further data defined by device manufacturer.
MFR_DATA = 0xFE
class HostProtocol(Enum):
"""Enum class for host protocol."""
IPV4_UDP = 0x01
IPV4_TCP = 0x02
class KNXMedium(Enum):
"""Enum class for KNX Medium."""
TP1 = 0x02
PL110 = 0x04
RF = 0x10
KNX_IP = 0x20
class DIBServiceFamily(Enum):
"""Enum class for KNX/IP DIB Service Family."""
# Core
CORE = 0x02
# Device Management
DEVICE_MANAGEMENT = 0x03
# Tunnelling
TUNNELING = 0x04
# Routing
ROUTING = 0x05
# Remote Logging
REMOTE_LOGGING = 0x06
# Configuration and Diagnosis
REMOTE_CONFIGURATION_DIAGNOSIS = 0x07
# Object Server'.
OBJECT_SERVER = 0x08
# Security - Extended search response only
SECURITY = 0x09
class SecureSessionStatusCode(Enum):
"""Enum class for KNX/IP Secure session status codes."""
# The user could successfully be authenticated
STATUS_AUTHENTICATION_SUCCESS = 0x00
# An error occurred during secure session handshake
STATUS_AUTHENTICATION_FAILED = 0x01
# The session is not (yet) authenticated
STATUS_UNAUTHENTICATED = 0x02
# A timeout occurred during secure session handshake
STATUS_TIMEOUT = 0x03
# Prevent inactivity on the secure session closing it with timeout error
STATUS_KEEPALIVE = 0x04
# The secure session shall be closed
STATUS_CLOSE = 0x05
class SearchRequestParameterType(Enum):
"""Search Request Parameter (SRP) is used to transfer additional information in a KNXnet/IP SEARCH_REQUEST_EXTENDED."""
# Used to test behavior of the KNXnet/IP server for unknown SRPs. Don't use!
INVALID = 0x00
# Select only KNXnet/IP Servers that are currently in programming mode
SELECT_BY_PROGRAMMING_MODE = 0x01
# Select only KNXnet/IP Servers that have the given MAC address
SELECT_BY_MAC_ADDRESS = 0x02
# Select only KNXnet/IP Servers that support the given DIBServiceFamily in a given version
SELECT_BY_SERVICE = 0x03
# The Client shall include this SRP to indicate that it is interested in the listed DIBs
REQUEST_DIBS = 0x04
class TunnellingFeatureType(Enum):
"""Enum class for KNX/IP Tunnel Features services."""
# Getting the supported EMI type(s) (only cEMI allowed)
SUPPORTED_EMI_TYPE = 0x01
# Getting the local Device Descriptor Type 0 for possible local device management
DEVICE_DESCRIPTOR_TYPE_0 = 0x02
# Getting and informing on the bus connection status
BUS_CONNECTION_STATUS = 0x03
# Getting the manufacturer code of the Bus Access Server
MANUFACTURER_CODE = 0x04
# Getting and Setting the EMI type to use
ACTIVE_EMI_TYPE = 0x05
# Getting, Setting and informing on the Interface Individual Address
INTERFACE_INDIVIDUAL_ADDRESS = 0x06
# Getting and informing on the maximum APDU length
MAX_APDU_LENGTH = 0x07
# Getting and Setting the Interface Feature Info service Enable
INTERFACE_FEATURE_INFO_ENABLE = 0x08
|