Source code for bac_py.types.enums

"""BACnet enumeration types per ASHRAE 135-2020."""

from __future__ import annotations

import logging
from enum import IntEnum

logger = logging.getLogger(__name__)


_OBJECT_TYPE_VENDOR_CACHE: dict[int, object] = {}


[docs] class ObjectType(IntEnum): """BACnet object types (Clause 12). Vendor-proprietary types (128-1023) are accepted as pseudo-members via ``_missing_`` so that devices with non-standard object types do not cause a ``ValueError`` during decoding. """ @classmethod def _missing_(cls, value: object) -> ObjectType | None: if isinstance(value, int) and 0 <= value <= 1023: cached = _OBJECT_TYPE_VENDOR_CACHE.get(value) if cached is not None: return cached # type: ignore[return-value] if len(_OBJECT_TYPE_VENDOR_CACHE) >= 4096: _OBJECT_TYPE_VENDOR_CACHE.clear() member = int.__new__(cls, value) member._name_ = f"VENDOR_{value}" member._value_ = value _OBJECT_TYPE_VENDOR_CACHE[value] = member return member return None ANALOG_INPUT = 0 ANALOG_OUTPUT = 1 ANALOG_VALUE = 2 BINARY_INPUT = 3 BINARY_OUTPUT = 4 BINARY_VALUE = 5 CALENDAR = 6 COMMAND = 7 DEVICE = 8 EVENT_ENROLLMENT = 9 FILE = 10 GROUP = 11 LOOP = 12 MULTI_STATE_INPUT = 13 MULTI_STATE_OUTPUT = 14 NOTIFICATION_CLASS = 15 PROGRAM = 16 SCHEDULE = 17 AVERAGING = 18 MULTI_STATE_VALUE = 19 TREND_LOG = 20 LIFE_SAFETY_POINT = 21 LIFE_SAFETY_ZONE = 22 ACCUMULATOR = 23 PULSE_CONVERTER = 24 EVENT_LOG = 25 GLOBAL_GROUP = 26 TREND_LOG_MULTIPLE = 27 LOAD_CONTROL = 28 STRUCTURED_VIEW = 29 ACCESS_DOOR = 30 TIMER = 31 ACCESS_CREDENTIAL = 32 ACCESS_POINT = 33 ACCESS_RIGHTS = 34 ACCESS_USER = 35 ACCESS_ZONE = 36 CREDENTIAL_DATA_INPUT = 37 NETWORK_SECURITY = 38 # Deprecated in 2020 (Clause 24 deleted) BITSTRING_VALUE = 39 CHARACTERSTRING_VALUE = 40 DATEPATTERN_VALUE = 41 DATE_VALUE = 42 DATETIMEPATTERN_VALUE = 43 DATETIME_VALUE = 44 INTEGER_VALUE = 45 LARGE_ANALOG_VALUE = 46 OCTETSTRING_VALUE = 47 POSITIVE_INTEGER_VALUE = 48 TIMEPATTERN_VALUE = 49 TIME_VALUE = 50 NOTIFICATION_FORWARDER = 51 ALERT_ENROLLMENT = 52 CHANNEL = 53 LIGHTING_OUTPUT = 54 BINARY_LIGHTING_OUTPUT = 55 NETWORK_PORT = 56 ELEVATOR_GROUP = 57 ESCALATOR = 58 LIFT = 59 STAGING = 60 # New in 2020 AUDIT_REPORTER = 61 # New in 2020 AUDIT_LOG = 62 # New in 2020
_PROPERTY_ID_VENDOR_CACHE: dict[int, object] = {}
[docs] class PropertyIdentifier(IntEnum): """BACnet property identifiers per ASHRAE 135-2020 Clause 21. Gaps (18, 51, 55, 95, 101, etc.) are properties deleted from the standard. Vendor-proprietary property IDs (512+) and any other values in the 22-bit property namespace (0--4194303) are accepted as pseudo-members via ``_missing_`` so that devices with non-standard property IDs do not cause a ``ValueError`` during decoding. """ @classmethod def _missing_(cls, value: object) -> PropertyIdentifier | None: if isinstance(value, int) and 0 <= value <= 4194303: cached = _PROPERTY_ID_VENDOR_CACHE.get(value) if cached is not None: return cached # type: ignore[return-value] if len(_PROPERTY_ID_VENDOR_CACHE) >= 4096: _PROPERTY_ID_VENDOR_CACHE.clear() member = int.__new__(cls, value) member._name_ = f"VENDOR_{value}" member._value_ = value _PROPERTY_ID_VENDOR_CACHE[value] = member logger.debug("vendor-proprietary PropertyIdentifier(%s)", value) return member return None # 0-50 ACKED_TRANSITIONS = 0 ACK_REQUIRED = 1 ACTION = 2 ACTION_TEXT = 3 ACTIVE_TEXT = 4 ACTIVE_VT_SESSIONS = 5 ALARM_VALUE = 6 ALARM_VALUES = 7 ALL = 8 ALL_WRITES_SUCCESSFUL = 9 APDU_SEGMENT_TIMEOUT = 10 APDU_TIMEOUT = 11 APPLICATION_SOFTWARE_VERSION = 12 ARCHIVE = 13 BIAS = 14 CHANGE_OF_STATE_COUNT = 15 CHANGE_OF_STATE_TIME = 16 NOTIFICATION_CLASS = 17 # 18: deleted CONTROLLED_VARIABLE_REFERENCE = 19 CONTROLLED_VARIABLE_UNITS = 20 CONTROLLED_VARIABLE_VALUE = 21 COV_INCREMENT = 22 DATE_LIST = 23 DAYLIGHT_SAVINGS_STATUS = 24 DEADBAND = 25 DERIVATIVE_CONSTANT = 26 DERIVATIVE_CONSTANT_UNITS = 27 DESCRIPTION = 28 DESCRIPTION_OF_HALT = 29 DEVICE_ADDRESS_BINDING = 30 DEVICE_TYPE = 31 EFFECTIVE_PERIOD = 32 ELAPSED_ACTIVE_TIME = 33 ERROR_LIMIT = 34 EVENT_ENABLE = 35 EVENT_STATE = 36 EVENT_TYPE = 37 EXCEPTION_SCHEDULE = 38 FAULT_VALUES = 39 FEEDBACK_VALUE = 40 FILE_ACCESS_METHOD = 41 FILE_SIZE = 42 FILE_TYPE = 43 FIRMWARE_REVISION = 44 HIGH_LIMIT = 45 INACTIVE_TEXT = 46 IN_PROCESS = 47 INSTANCE_OF = 48 INTEGRAL_CONSTANT = 49 INTEGRAL_CONSTANT_UNITS = 50 # 51-100 ISSUE_CONFIRMED_NOTIFICATIONS = 51 # removed in rev 4, re-added in rev 20 LIMIT_ENABLE = 52 LIST_OF_GROUP_MEMBERS = 53 LIST_OF_OBJECT_PROPERTY_REFERENCES = 54 # 55: deleted (formerly list-of-session-keys) LOCAL_DATE = 56 LOCAL_TIME = 57 LOCATION = 58 LOW_LIMIT = 59 MANIPULATED_VARIABLE_REFERENCE = 60 MAXIMUM_OUTPUT = 61 MAX_APDU_LENGTH_ACCEPTED = 62 MAX_INFO_FRAMES = 63 MAX_MASTER = 64 MAX_PRES_VALUE = 65 MINIMUM_OFF_TIME = 66 MINIMUM_ON_TIME = 67 MINIMUM_OUTPUT = 68 MIN_PRES_VALUE = 69 MODEL_NAME = 70 MODIFICATION_DATE = 71 NOTIFY_TYPE = 72 NUMBER_OF_APDU_RETRIES = 73 NUMBER_OF_STATES = 74 OBJECT_IDENTIFIER = 75 OBJECT_LIST = 76 OBJECT_NAME = 77 OBJECT_PROPERTY_REFERENCE = 78 OBJECT_TYPE = 79 OPTIONAL = 80 OUT_OF_SERVICE = 81 OUTPUT_UNITS = 82 EVENT_PARAMETERS = 83 POLARITY = 84 PRESENT_VALUE = 85 PRIORITY = 86 PRIORITY_ARRAY = 87 PRIORITY_FOR_WRITING = 88 PROCESS_IDENTIFIER = 89 PROGRAM_CHANGE = 90 PROGRAM_LOCATION = 91 PROGRAM_STATE = 92 PROPORTIONAL_CONSTANT = 93 PROPORTIONAL_CONSTANT_UNITS = 94 # 95: deleted (formerly protocol-conformance-class) PROTOCOL_OBJECT_TYPES_SUPPORTED = 96 PROTOCOL_SERVICES_SUPPORTED = 97 PROTOCOL_VERSION = 98 READ_ONLY = 99 REASON_FOR_HALT = 100 # 101-200 # 101: deleted (formerly recipient) RECIPIENT_LIST = 102 RELIABILITY = 103 RELINQUISH_DEFAULT = 104 REQUIRED = 105 RESOLUTION = 106 SEGMENTATION_SUPPORTED = 107 SETPOINT = 108 SETPOINT_REFERENCE = 109 STATE_TEXT = 110 STATUS_FLAGS = 111 SYSTEM_STATUS = 112 TIME_DELAY = 113 TIME_OF_ACTIVE_TIME_RESET = 114 TIME_OF_STATE_COUNT_RESET = 115 TIME_SYNCHRONIZATION_RECIPIENTS = 116 UNITS = 117 UPDATE_INTERVAL = 118 UTC_OFFSET = 119 VENDOR_IDENTIFIER = 120 VENDOR_NAME = 121 VT_CLASSES_SUPPORTED = 122 WEEKLY_SCHEDULE = 123 ATTEMPTED_SAMPLES = 124 AVERAGE_VALUE = 125 BUFFER_SIZE = 126 CLIENT_COV_INCREMENT = 127 COV_RESUBSCRIPTION_INTERVAL = 128 # 129: deleted (formerly current-notify-time) EVENT_TIME_STAMPS = 130 LOG_BUFFER = 131 LOG_DEVICE_OBJECT_PROPERTY = 132 LOG_ENABLE = 133 # renamed to "enable" in rev 5 LOG_INTERVAL = 134 MAXIMUM_VALUE = 135 MINIMUM_VALUE = 136 NOTIFICATION_THRESHOLD = 137 # 138: deleted (formerly previous-notify-time) PROTOCOL_REVISION = 139 RECORDS_SINCE_NOTIFICATION = 140 RECORD_COUNT = 141 START_TIME = 142 STOP_TIME = 143 STOP_WHEN_FULL = 144 TOTAL_RECORD_COUNT = 145 VALID_SAMPLES = 146 WINDOW_INTERVAL = 147 WINDOW_SAMPLES = 148 MAXIMUM_VALUE_TIMESTAMP = 149 MINIMUM_VALUE_TIMESTAMP = 150 VARIANCE_VALUE = 151 ACTIVE_COV_SUBSCRIPTIONS = 152 BACKUP_FAILURE_TIMEOUT = 153 CONFIGURATION_FILES = 154 DATABASE_REVISION = 155 DIRECT_READING = 156 LAST_RESTORE_TIME = 157 MAINTENANCE_REQUIRED = 158 MEMBER_OF = 159 MODE = 160 OPERATION_EXPECTED = 161 SETTING = 162 SILENCED = 163 TRACKING_VALUE = 164 ZONE_MEMBERS = 165 LIFE_SAFETY_ALARM_VALUES = 166 MAX_SEGMENTS_ACCEPTED = 167 PROFILE_NAME = 168 AUTO_SLAVE_DISCOVERY = 169 MANUAL_SLAVE_ADDRESS_BINDING = 170 SLAVE_ADDRESS_BINDING = 171 SLAVE_PROXY_ENABLE = 172 LAST_NOTIFY_RECORD = 173 SCHEDULE_DEFAULT = 174 ACCEPTED_MODES = 175 ADJUST_VALUE = 176 COUNT = 177 COUNT_BEFORE_CHANGE = 178 COUNT_CHANGE_TIME = 179 COV_PERIOD = 180 INPUT_REFERENCE = 181 LIMIT_MONITORING_INTERVAL = 182 LOGGING_OBJECT = 183 LOGGING_RECORD = 184 PRESCALE = 185 PULSE_RATE = 186 SCALE = 187 SCALE_FACTOR = 188 UPDATE_TIME = 189 VALUE_BEFORE_CHANGE = 190 VALUE_SET = 191 VALUE_CHANGE_TIME = 192 ALIGN_INTERVALS = 193 # 194: unassigned INTERVAL_OFFSET = 195 LAST_RESTART_REASON = 196 LOGGING_TYPE = 197 # 198-201: unassigned # 202-235 RESTART_NOTIFICATION_RECIPIENTS = 202 TIME_OF_DEVICE_RESTART = 203 TIME_SYNCHRONIZATION_INTERVAL = 204 TRIGGER = 205 UTC_TIME_SYNCHRONIZATION_RECIPIENTS = 206 NODE_SUBTYPE = 207 NODE_TYPE = 208 STRUCTURED_OBJECT_LIST = 209 SUBORDINATE_ANNOTATIONS = 210 SUBORDINATE_LIST = 211 ACTUAL_SHED_LEVEL = 212 DUTY_WINDOW = 213 EXPECTED_SHED_LEVEL = 214 FULL_DUTY_BASELINE = 215 # 216-217: unassigned REQUESTED_SHED_LEVEL = 218 SHED_DURATION = 219 SHED_LEVEL_DESCRIPTIONS = 220 SHED_LEVELS = 221 STATE_DESCRIPTION = 222 # 223-225: unassigned DOOR_ALARM_STATE = 226 DOOR_EXTENDED_PULSE_TIME = 227 DOOR_MEMBERS = 228 DOOR_OPEN_TOO_LONG_TIME = 229 DOOR_PULSE_TIME = 230 DOOR_STATUS = 231 DOOR_UNLOCK_DELAY_TIME = 232 LOCK_STATUS = 233 MASKED_ALARM_VALUES = 234 SECURED_STATUS = 235 # 244-321 (access control) ABSENTEE_LIMIT = 244 ACCESS_ALARM_EVENTS = 245 ACCESS_DOORS = 246 ACCESS_EVENT = 247 ACCESS_EVENT_AUTHENTICATION_FACTOR = 248 ACCESS_EVENT_CREDENTIAL = 249 ACCESS_EVENT_TIME = 250 ACCESS_TRANSACTION_EVENTS = 251 ACCOMPANIMENT = 252 ACCOMPANIMENT_TIME = 253 ACTIVATION_TIME = 254 ACTIVE_AUTHENTICATION_POLICY = 255 ASSIGNED_ACCESS_RIGHTS = 256 AUTHENTICATION_FACTORS = 257 AUTHENTICATION_POLICY_LIST = 258 AUTHENTICATION_POLICY_NAMES = 259 AUTHENTICATION_STATUS = 260 AUTHORIZATION_MODE = 261 BELONGS_TO = 262 CREDENTIAL_DISABLE = 263 CREDENTIAL_STATUS = 264 CREDENTIALS = 265 CREDENTIALS_IN_ZONE = 266 DAYS_REMAINING = 267 ENTRY_POINTS = 268 EXIT_POINTS = 269 EXPIRATION_TIME = 270 EXTENDED_TIME_ENABLE = 271 FAILED_ATTEMPT_EVENTS = 272 FAILED_ATTEMPTS = 273 FAILED_ATTEMPTS_TIME = 274 LAST_ACCESS_EVENT = 275 LAST_ACCESS_POINT = 276 LAST_CREDENTIAL_ADDED = 277 LAST_CREDENTIAL_ADDED_TIME = 278 LAST_CREDENTIAL_REMOVED = 279 LAST_CREDENTIAL_REMOVED_TIME = 280 LAST_USE_TIME = 281 LOCKOUT = 282 LOCKOUT_RELINQUISH_TIME = 283 # 284: deleted (formerly master-exemption) MAX_FAILED_ATTEMPTS = 285 MEMBERS = 286 MUSTER_POINT = 287 NEGATIVE_ACCESS_RULES = 288 NUMBER_OF_AUTHENTICATION_POLICIES = 289 OCCUPANCY_COUNT = 290 OCCUPANCY_COUNT_ADJUST = 291 OCCUPANCY_COUNT_ENABLE = 292 # 293: deleted (formerly occupancy-exemption) OCCUPANCY_LOWER_LIMIT = 294 OCCUPANCY_LOWER_LIMIT_ENFORCED = 295 OCCUPANCY_STATE = 296 OCCUPANCY_UPPER_LIMIT = 297 OCCUPANCY_UPPER_LIMIT_ENFORCED = 298 # 299: deleted (formerly passback-exemption) PASSBACK_MODE = 300 PASSBACK_TIMEOUT = 301 POSITIVE_ACCESS_RULES = 302 REASON_FOR_DISABLE = 303 SUPPORTED_FORMATS = 304 SUPPORTED_FORMAT_CLASSES = 305 THREAT_AUTHORITY = 306 THREAT_LEVEL = 307 TRACE_FLAG = 308 TRANSACTION_NOTIFICATION_CLASS = 309 USER_EXTERNAL_IDENTIFIER = 310 USER_INFORMATION_REFERENCE = 311 # 312-316: unassigned USER_NAME = 317 USER_TYPE = 318 USES_REMAINING = 319 ZONE_FROM = 320 ZONE_TO = 321 ACCESS_EVENT_TAG = 322 GLOBAL_IDENTIFIER = 323 # 326-398 VERIFICATION_TIME = 326 # 327-337: removed (security properties, Clause 24 deleted in 2020) BASE_DEVICE_SECURITY_POLICY = 327 # Deprecated: removed with Clause 24 in 135-2020. DISTRIBUTION_KEY_REVISION = 328 # Deprecated: removed with Clause 24 in 135-2020. DO_NOT_HIDE = 329 # Deprecated: removed with Clause 24 in 135-2020. KEY_SETS = 330 # Deprecated: removed with Clause 24 in 135-2020. LAST_KEY_SERVER = 331 # Deprecated: removed with Clause 24 in 135-2020. NETWORK_ACCESS_SECURITY_POLICIES = 332 # Deprecated: removed with Clause 24 in 135-2020. PACKET_REORDER_TIME = 333 # Deprecated: removed with Clause 24 in 135-2020. SECURITY_PDU_TIMEOUT = 334 # Deprecated: removed with Clause 24 in 135-2020. SECURITY_TIME_WINDOW = 335 # Deprecated: removed with Clause 24 in 135-2020. SUPPORTED_SECURITY_ALGORITHMS = 336 # Deprecated: removed with Clause 24 in 135-2020. UPDATE_KEY_SET_TIMEOUT = 337 # Deprecated: removed with Clause 24 in 135-2020. BACKUP_AND_RESTORE_STATE = 338 BACKUP_PREPARATION_TIME = 339 RESTORE_COMPLETION_TIME = 340 RESTORE_PREPARATION_TIME = 341 BIT_MASK = 342 BIT_TEXT = 343 IS_UTC = 344 GROUP_MEMBERS = 345 GROUP_MEMBER_NAMES = 346 MEMBER_STATUS_FLAGS = 347 REQUESTED_UPDATE_INTERVAL = 348 COVU_PERIOD = 349 COVU_RECIPIENTS = 350 EVENT_MESSAGE_TEXTS = 351 EVENT_MESSAGE_TEXTS_CONFIG = 352 EVENT_DETECTION_ENABLE = 353 EVENT_ALGORITHM_INHIBIT = 354 EVENT_ALGORITHM_INHIBIT_REF = 355 TIME_DELAY_NORMAL = 356 RELIABILITY_EVALUATION_INHIBIT = 357 FAULT_PARAMETERS = 358 FAULT_TYPE = 359 LOCAL_FORWARDING_ONLY = 360 PROCESS_IDENTIFIER_FILTER = 361 SUBSCRIBED_RECIPIENTS = 362 PORT_FILTER = 363 AUTHORIZATION_EXEMPTIONS = 364 ALLOW_GROUP_DELAY_INHIBIT = 365 CHANNEL_NUMBER = 366 CONTROL_GROUPS = 367 EXECUTION_DELAY = 368 LAST_PRIORITY = 369 WRITE_STATUS = 370 PROPERTY_LIST = 371 SERIAL_NUMBER = 372 BLINK_WARN_ENABLE = 373 DEFAULT_FADE_TIME = 374 DEFAULT_RAMP_RATE = 375 DEFAULT_STEP_INCREMENT = 376 EGRESS_TIME = 377 IN_PROGRESS = 378 INSTANTANEOUS_POWER = 379 LIGHTING_COMMAND = 380 LIGHTING_COMMAND_DEFAULT_PRIORITY = 381 MAX_ACTUAL_VALUE = 382 MIN_ACTUAL_VALUE = 383 POWER = 384 TRANSITION = 385 EGRESS_ACTIVE = 386 INTERFACE_VALUE = 387 FAULT_HIGH_LIMIT = 388 FAULT_LOW_LIMIT = 389 LOW_DIFF_LIMIT = 390 STRIKE_COUNT = 391 TIME_OF_STRIKE_COUNT_RESET = 392 DEFAULT_TIMEOUT = 393 INITIAL_TIMEOUT = 394 LAST_STATE_CHANGE = 395 STATE_CHANGE_VALUES = 396 TIMER_RUNNING = 397 TIMER_STATE = 398 # 399-429 (NetworkPort properties, Clause 12.56) APDU_LENGTH = 399 IP_ADDRESS = 400 IP_DEFAULT_GATEWAY = 401 IP_DHCP_ENABLE = 402 IP_DHCP_LEASE_TIME = 403 IP_DHCP_LEASE_TIME_REMAINING = 404 IP_DHCP_SERVER = 405 IP_DNS_SERVER = 406 BACNET_IP_GLOBAL_ADDRESS = 407 BACNET_IP_MODE = 408 BACNET_IP_MULTICAST_ADDRESS = 409 BACNET_IP_NAT_TRAVERSAL = 410 IP_SUBNET_MASK = 411 BACNET_IP_UDP_PORT = 412 BBMD_ACCEPT_FD_REGISTRATIONS = 413 BBMD_BROADCAST_DISTRIBUTION_TABLE = 414 BBMD_FOREIGN_DEVICE_TABLE = 415 CHANGES_PENDING = 416 COMMAND = 417 FD_BBMD_ADDRESS = 418 FD_SUBSCRIPTION_LIFETIME = 419 LINK_SPEED = 420 LINK_SPEEDS = 421 LINK_SPEED_AUTONEGOTIATE = 422 MAC_ADDRESS = 423 NETWORK_INTERFACE_NAME = 424 NETWORK_NUMBER = 425 NETWORK_NUMBER_QUALITY = 426 NETWORK_TYPE = 427 ROUTING_TABLE = 428 VIRTUAL_MAC_ADDRESS_TABLE = 429 # 430-446 (commandable + IPv6) COMMAND_TIME_ARRAY = 430 CURRENT_COMMAND_PRIORITY = 431 LAST_COMMAND_TIME = 432 VALUE_SOURCE = 433 VALUE_SOURCE_ARRAY = 434 BACNET_IPV6_MODE = 435 IPV6_ADDRESS = 436 IPV6_PREFIX_LENGTH = 437 BACNET_IPV6_UDP_PORT = 438 IPV6_DEFAULT_GATEWAY = 439 BACNET_IPV6_MULTICAST_ADDRESS = 440 IPV6_DNS_SERVER = 441 IPV6_AUTO_ADDRESSING_ENABLE = 442 IPV6_DHCP_LEASE_TIME = 443 IPV6_DHCP_LEASE_TIME_REMAINING = 444 IPV6_DHCP_SERVER = 445 IPV6_ZONE_INDEX = 446 # 447-480 (lift / escalator, Clause 12.58-12.60) ASSIGNED_LANDING_CALLS = 447 CAR_ASSIGNED_DIRECTION = 448 CAR_DOOR_COMMAND = 449 CAR_DOOR_STATUS = 450 CAR_DOOR_TEXT = 451 CAR_DOOR_ZONE = 452 CAR_DRIVE_STATUS = 453 CAR_LOAD = 454 CAR_LOAD_UNITS = 455 CAR_MODE = 456 CAR_MOVING_DIRECTION = 457 CAR_POSITION = 458 ELEVATOR_GROUP = 459 ENERGY_METER = 460 ENERGY_METER_REF = 461 ESCALATOR_MODE = 462 FAULT_SIGNALS = 463 FLOOR_TEXT = 464 GROUP_ID = 465 # 466: unassigned GROUP_MODE = 467 HIGHER_DECK = 468 INSTALLATION_ID = 469 LANDING_CALLS = 470 LANDING_CALL_CONTROL = 471 LANDING_DOOR_STATUS = 472 LOWER_DECK = 473 MACHINE_ROOM_ID = 474 MAKING_CAR_CALL = 475 NEXT_STOPPING_FLOOR = 476 OPERATION_DIRECTION = 477 PASSENGER_ALARM = 478 POWER_MODE = 479 REGISTERED_CAR_CALL = 480 # 481-507 (misc + structured view + staging + audit) ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS = 481 PROTOCOL_LEVEL = 482 REFERENCE_PORT = 483 DEPLOYED_PROFILE_LOCATION = 484 PROFILE_LOCATION = 485 TAGS = 486 SUBORDINATE_NODE_TYPES = 487 SUBORDINATE_TAGS = 488 SUBORDINATE_RELATIONSHIPS = 489 DEFAULT_SUBORDINATE_RELATIONSHIP = 490 REPRESENTS = 491 DEFAULT_PRESENT_VALUE = 492 PRESENT_STAGE = 493 STAGES = 494 STAGE_NAMES = 495 TARGET_REFERENCES = 496 AUDIT_SOURCE_REPORTER = 497 AUDIT_LEVEL = 498 AUDIT_NOTIFICATION_RECIPIENT = 499 AUDIT_PRIORITY_FILTER = 500 AUDITABLE_OPERATIONS = 501 DELETE_ON_FORWARD = 502 MAXIMUM_SEND_DELAY = 503 MONITORED_OBJECTS = 504 SEND_NOW = 505 FLOOR_NUMBER = 506 DEVICE_UUID = 507
[docs] class ErrorClass(IntEnum): """BACnet error classes (Clause 18.1.1).""" DEVICE = 0 OBJECT = 1 PROPERTY = 2 RESOURCES = 3 SECURITY = 4 SERVICES = 5 VT = 6 COMMUNICATION = 7
[docs] class ErrorCode(IntEnum): """BACnet error codes (Clause 18, Clause 21 numerical order).""" OTHER = 0 AUTHENTICATION_FAILED = 1 # removed in rev 11, kept for compat CONFIGURATION_IN_PROGRESS = 2 DEVICE_BUSY = 3 DYNAMIC_CREATION_NOT_SUPPORTED = 4 FILE_ACCESS_DENIED = 5 INCOMPATIBLE_SECURITY_LEVELS = 6 # removed in rev 11, kept for compat INCONSISTENT_PARAMETERS = 7 INCONSISTENT_SELECTION_CRITERION = 8 INVALID_DATA_TYPE = 9 INVALID_FILE_ACCESS_METHOD = 10 INVALID_FILE_START_POSITION = 11 INVALID_OPERATOR_NAME = 12 # removed in rev 11, kept for compat INVALID_PARAMETER_DATA_TYPE = 13 INVALID_TIME_STAMP = 14 KEY_GENERATION_ERROR = 15 # removed in rev 11, kept for compat MISSING_REQUIRED_PARAMETER = 16 NO_OBJECTS_OF_SPECIFIED_TYPE = 17 NO_SPACE_FOR_OBJECT = 18 NO_SPACE_TO_ADD_LIST_ELEMENT = 19 NO_SPACE_TO_WRITE_PROPERTY = 20 NO_VT_SESSIONS_AVAILABLE = 21 PROPERTY_IS_NOT_A_LIST = 22 OBJECT_DELETION_NOT_PERMITTED = 23 OBJECT_IDENTIFIER_ALREADY_EXISTS = 24 OPERATIONAL_PROBLEM = 25 PASSWORD_FAILURE = 26 READ_ACCESS_DENIED = 27 SECURITY_NOT_SUPPORTED = 28 # removed in rev 11, kept for compat SERVICE_REQUEST_DENIED = 29 TIMEOUT = 30 UNKNOWN_OBJECT = 31 UNKNOWN_PROPERTY = 32 # 33 removed UNKNOWN_VT_CLASS = 34 UNKNOWN_VT_SESSION = 35 UNSUPPORTED_OBJECT_TYPE = 36 VALUE_OUT_OF_RANGE = 37 VT_SESSION_ALREADY_CLOSED = 38 VT_SESSION_TERMINATION_FAILURE = 39 WRITE_ACCESS_DENIED = 40 CHARACTER_SET_NOT_SUPPORTED = 41 INVALID_ARRAY_INDEX = 42 COV_SUBSCRIPTION_FAILED = 43 NOT_COV_PROPERTY = 44 OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED = 45 INVALID_CONFIGURATION_DATA = 46 DATATYPE_NOT_SUPPORTED = 47 DUPLICATE_NAME = 48 DUPLICATE_OBJECT_ID = 49 PROPERTY_IS_NOT_AN_ARRAY = 50 ABORT_BUFFER_OVERFLOW = 51 ABORT_INVALID_APDU_IN_THIS_STATE = 52 ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK = 53 ABORT_SEGMENTATION_NOT_SUPPORTED = 54 ABORT_PROPRIETARY = 55 ABORT_OTHER = 56 INVALID_TAG = 57 NETWORK_DOWN = 58 REJECT_BUFFER_OVERFLOW = 59 REJECT_INCONSISTENT_PARAMETERS = 60 REJECT_INVALID_PARAMETER_DATA_TYPE = 61 REJECT_INVALID_TAG = 62 REJECT_MISSING_REQUIRED_PARAMETER = 63 REJECT_PARAMETER_OUT_OF_RANGE = 64 REJECT_TOO_MANY_ARGUMENTS = 65 REJECT_UNDEFINED_ENUMERATION = 66 REJECT_UNRECOGNIZED_SERVICE = 67 REJECT_PROPRIETARY = 68 REJECT_OTHER = 69 UNKNOWN_DEVICE = 70 UNKNOWN_ROUTE = 71 VALUE_NOT_INITIALIZED = 72 INVALID_EVENT_STATE = 73 NO_ALARM_CONFIGURED = 74 LOG_BUFFER_FULL = 75 LOGGED_VALUE_PURGED = 76 NO_PROPERTY_SPECIFIED = 77 NOT_CONFIGURED_FOR_TRIGGERED_LOGGING = 78 UNKNOWN_SUBSCRIPTION = 79 PARAMETER_OUT_OF_RANGE = 80 LIST_ELEMENT_NOT_FOUND = 81 BUSY = 82 COMMUNICATION_DISABLED = 83 SUCCESS = 84 ACCESS_DENIED = 85 BAD_DESTINATION_ADDRESS = 86 BAD_DESTINATION_DEVICE_ID = 87 BAD_SIGNATURE = 88 BAD_SOURCE_ADDRESS = 89 # Values 90-109: removed in revision 22 (Clause 24 deleted in 135-2020). BAD_TIMESTAMP = 90 CANNOT_USE_KEY = 91 CANNOT_VERIFY_MESSAGE_ID = 92 CORRECT_KEY_REVISION = 93 DESTINATION_DEVICE_ID_REQUIRED = 94 DUPLICATE_MESSAGE = 95 ENCRYPTION_NOT_CONFIGURED = 96 ENCRYPTION_REQUIRED = 97 INCORRECT_KEY = 98 INVALID_KEY_DATA = 99 KEY_UPDATE_IN_PROGRESS = 100 MALFORMED_MESSAGE = 101 NOT_KEY_SERVER = 102 SECURITY_NOT_CONFIGURED = 103 SOURCE_SECURITY_REQUIRED = 104 TOO_MANY_KEYS = 105 UNKNOWN_AUTHENTICATION_TYPE = 106 UNKNOWN_KEY = 107 UNKNOWN_KEY_REVISION = 108 UNKNOWN_SOURCE_MESSAGE = 109 NOT_ROUTER_TO_DNET = 110 ROUTER_BUSY = 111 UNKNOWN_NETWORK_MESSAGE = 112 MESSAGE_TOO_LONG = 113 SECURITY_ERROR = 114 ADDRESSING_ERROR = 115 WRITE_BDT_FAILED = 116 READ_BDT_FAILED = 117 REGISTER_FOREIGN_DEVICE_FAILED = 118 READ_FDT_FAILED = 119 DELETE_FDT_ENTRY_FAILED = 120 DISTRIBUTE_BROADCAST_FAILED = 121 UNKNOWN_FILE_SIZE = 122 ABORT_APDU_TOO_LONG = 123 ABORT_APPLICATION_EXCEEDED_REPLY_TIME = 124 ABORT_OUT_OF_RESOURCES = 125 ABORT_TSM_TIMEOUT = 126 ABORT_WINDOW_SIZE_OUT_OF_RANGE = 127 FILE_FULL = 128 INCONSISTENT_CONFIGURATION = 129 INCONSISTENT_OBJECT_TYPE = 130 INTERNAL_ERROR = 131 NOT_CONFIGURED = 132 OUT_OF_MEMORY = 133 VALUE_TOO_LONG = 134 ABORT_INSUFFICIENT_SECURITY = 135 ABORT_SECURITY_ERROR = 136 DUPLICATE_ENTRY = 137 INVALID_VALUE_IN_THIS_STATE = 138
[docs] class Segmentation(IntEnum): """BACnet segmentation support options (Clause 20.1.2.4).""" BOTH = 0 TRANSMIT = 1 RECEIVE = 2 NONE = 3
[docs] class AbortReason(IntEnum): """BACnet abort reasons (Clause 20.1.9).""" OTHER = 0 BUFFER_OVERFLOW = 1 INVALID_APDU_IN_THIS_STATE = 2 PREEMPTED_BY_HIGHER_PRIORITY_TASK = 3 SEGMENTATION_NOT_SUPPORTED = 4 SECURITY_ERROR = 5 INSUFFICIENT_SECURITY = 6 WINDOW_SIZE_OUT_OF_RANGE = 7 APPLICATION_EXCEEDED_REPLY_TIME = 8 OUT_OF_RESOURCES = 9 TSM_TIMEOUT = 10 APDU_TOO_LONG = 11
[docs] class RejectReason(IntEnum): """BACnet reject reasons (Clause 20.1.8).""" OTHER = 0 BUFFER_OVERFLOW = 1 INCONSISTENT_PARAMETERS = 2 INVALID_PARAMETER_DATA_TYPE = 3 INVALID_TAG = 4 MISSING_REQUIRED_PARAMETER = 5 PARAMETER_OUT_OF_RANGE = 6 TOO_MANY_ARGUMENTS = 7 UNDEFINED_ENUMERATION = 8 UNRECOGNIZED_SERVICE = 9
[docs] class PduType(IntEnum): """APDU PDU type identifiers (Clause 20.1).""" CONFIRMED_REQUEST = 0 UNCONFIRMED_REQUEST = 1 SIMPLE_ACK = 2 COMPLEX_ACK = 3 SEGMENT_ACK = 4 ERROR = 5 REJECT = 6 ABORT = 7
[docs] class ConfirmedServiceChoice(IntEnum): """Confirmed service request types (Clause 21).""" ACKNOWLEDGE_ALARM = 0 CONFIRMED_COV_NOTIFICATION = 1 CONFIRMED_EVENT_NOTIFICATION = 2 GET_ALARM_SUMMARY = 3 GET_ENROLLMENT_SUMMARY = 4 SUBSCRIBE_COV = 5 ATOMIC_READ_FILE = 6 ATOMIC_WRITE_FILE = 7 ADD_LIST_ELEMENT = 8 REMOVE_LIST_ELEMENT = 9 CREATE_OBJECT = 10 DELETE_OBJECT = 11 READ_PROPERTY = 12 READ_PROPERTY_MULTIPLE = 14 WRITE_PROPERTY = 15 WRITE_PROPERTY_MULTIPLE = 16 DEVICE_COMMUNICATION_CONTROL = 17 CONFIRMED_PRIVATE_TRANSFER = 18 CONFIRMED_TEXT_MESSAGE = 19 REINITIALIZE_DEVICE = 20 VT_OPEN = 21 VT_CLOSE = 22 VT_DATA = 23 READ_RANGE = 26 LIFE_SAFETY_OPERATION = 27 SUBSCRIBE_COV_PROPERTY = 28 GET_EVENT_INFORMATION = 29 SUBSCRIBE_COV_PROPERTY_MULTIPLE = 30 CONFIRMED_COV_NOTIFICATION_MULTIPLE = 31 CONFIRMED_AUDIT_NOTIFICATION = 32 AUDIT_LOG_QUERY = 33
[docs] class UnconfirmedServiceChoice(IntEnum): """Unconfirmed service request types (Clause 21).""" I_AM = 0 I_HAVE = 1 UNCONFIRMED_COV_NOTIFICATION = 2 UNCONFIRMED_EVENT_NOTIFICATION = 3 UNCONFIRMED_PRIVATE_TRANSFER = 4 UNCONFIRMED_TEXT_MESSAGE = 5 TIME_SYNCHRONIZATION = 6 WHO_HAS = 7 WHO_IS = 8 UTC_TIME_SYNCHRONIZATION = 9 WRITE_GROUP = 10 UNCONFIRMED_COV_NOTIFICATION_MULTIPLE = 11 UNCONFIRMED_AUDIT_NOTIFICATION = 12 WHO_AM_I = 13 YOU_ARE = 14
[docs] class NetworkPriority(IntEnum): """NPDU network priority levels (Clause 6.2.2).""" NORMAL = 0 URGENT = 1 CRITICAL_EQUIPMENT = 2 LIFE_SAFETY = 3
[docs] class NetworkMessageType(IntEnum): """Network layer message types (Clause 6.2.4).""" WHO_IS_ROUTER_TO_NETWORK = 0x00 I_AM_ROUTER_TO_NETWORK = 0x01 I_COULD_BE_ROUTER_TO_NETWORK = 0x02 REJECT_MESSAGE_TO_NETWORK = 0x03 ROUTER_BUSY_TO_NETWORK = 0x04 ROUTER_AVAILABLE_TO_NETWORK = 0x05 INITIALIZE_ROUTING_TABLE = 0x06 INITIALIZE_ROUTING_TABLE_ACK = 0x07 ESTABLISH_CONNECTION_TO_NETWORK = 0x08 DISCONNECT_CONNECTION_TO_NETWORK = 0x09 CHALLENGE_REQUEST = 0x0A SECURITY_PAYLOAD = 0x0B SECURITY_RESPONSE = 0x0C REQUEST_KEY_UPDATE = 0x0D UPDATE_KEY_SET = 0x0E UPDATE_DISTRIBUTION_KEY = 0x0F REQUEST_MASTER_KEY = 0x10 SET_MASTER_KEY = 0x11 WHAT_IS_NETWORK_NUMBER = 0x12 NETWORK_NUMBER_IS = 0x13
[docs] class BvlcFunction(IntEnum): """BVLC function codes (Annex J).""" BVLC_RESULT = 0x00 WRITE_BROADCAST_DISTRIBUTION_TABLE = 0x01 READ_BROADCAST_DISTRIBUTION_TABLE = 0x02 READ_BROADCAST_DISTRIBUTION_TABLE_ACK = 0x03 FORWARDED_NPDU = 0x04 REGISTER_FOREIGN_DEVICE = 0x05 READ_FOREIGN_DEVICE_TABLE = 0x06 READ_FOREIGN_DEVICE_TABLE_ACK = 0x07 DELETE_FOREIGN_DEVICE_TABLE_ENTRY = 0x08 DISTRIBUTE_BROADCAST_TO_NETWORK = 0x09 ORIGINAL_UNICAST_NPDU = 0x0A ORIGINAL_BROADCAST_NPDU = 0x0B SECURE_BVLL = 0x0C
[docs] class BvlcResultCode(IntEnum): """BVLC-Result codes (Annex J.2).""" SUCCESSFUL_COMPLETION = 0x0000 WRITE_BROADCAST_DISTRIBUTION_TABLE_NAK = 0x0010 READ_BROADCAST_DISTRIBUTION_TABLE_NAK = 0x0020 REGISTER_FOREIGN_DEVICE_NAK = 0x0030 READ_FOREIGN_DEVICE_TABLE_NAK = 0x0040 DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK = 0x0050 DISTRIBUTE_BROADCAST_TO_NETWORK_NAK = 0x0060
[docs] class Bvlc6Function(IntEnum): """BACnet/IPv6 BVLC function codes (Annex U).""" BVLC_RESULT = 0x00 ORIGINAL_UNICAST_NPDU = 0x01 ORIGINAL_BROADCAST_NPDU = 0x02 ADDRESS_RESOLUTION = 0x03 FORWARDED_ADDRESS_RESOLUTION = 0x04 ADDRESS_RESOLUTION_ACK = 0x05 VIRTUAL_ADDRESS_RESOLUTION = 0x06 VIRTUAL_ADDRESS_RESOLUTION_ACK = 0x07 FORWARDED_NPDU = 0x08 REGISTER_FOREIGN_DEVICE = 0x09 DELETE_FOREIGN_DEVICE_TABLE_ENTRY = 0x0A SECURE_BVLL = 0x0B DISTRIBUTE_BROADCAST_NPDU = 0x0C
[docs] class Bvlc6ResultCode(IntEnum): """BACnet/IPv6 BVLC-Result codes (Annex U).""" SUCCESSFUL_COMPLETION = 0x0000 ADDRESS_RESOLUTION_NAK = 0x0030 VIRTUAL_ADDRESS_RESOLUTION_NAK = 0x0040 REGISTER_FOREIGN_DEVICE_NAK = 0x0050 DELETE_FOREIGN_DEVICE_TABLE_ENTRY_NAK = 0x0060 DISTRIBUTE_BROADCAST_TO_NETWORK_NAK = 0x0070
[docs] class EventState(IntEnum): """BACnet event state enumeration (Clause 12).""" NORMAL = 0 FAULT = 1 OFFNORMAL = 2 HIGH_LIMIT = 3 LOW_LIMIT = 4 LIFE_SAFETY_ALARM = 5
[docs] class BinaryPV(IntEnum): """BACnet binary present value enumeration (Clause 21).""" INACTIVE = 0 ACTIVE = 1
[docs] class Polarity(IntEnum): """BACnet polarity enumeration (Clause 12).""" NORMAL = 0 REVERSE = 1
[docs] class Reliability(IntEnum): """BACnet reliability enumeration (Clause 12). Value 11 is intentionally omitted — it was removed from the standard and is not assigned to any reliability condition. """ NO_FAULT_DETECTED = 0 NO_SENSOR = 1 OVER_RANGE = 2 UNDER_RANGE = 3 OPEN_LOOP = 4 SHORTED_LOOP = 5 NO_OUTPUT = 6 UNRELIABLE_OTHER = 7 PROCESS_ERROR = 8 MULTI_STATE_FAULT = 9 CONFIGURATION_ERROR = 10 COMMUNICATION_FAILURE = 12 MEMBER_FAULT = 13 MONITORED_OBJECT_FAULT = 14 TRIPPED = 15 LAMP_FAILURE = 16 ACTIVATION_FAILURE = 17 RENEW_DHCP_FAILURE = 18 RENEW_FD_REGISTRATION_FAILURE = 19 RESTART_AUTO_NEGOTIATION_FAILURE = 20 RESTART_FAILURE = 21 PROPRIETARY_COMMAND_FAILURE = 22 FAULTS_LISTED = 23 REFERENCED_OBJECT_FAULT = 24
[docs] class EngineeringUnits(IntEnum): """BACnet engineering units enumeration (Clause 21). Complete per ASHRAE 135-2020. Values 0-255 and 47808-49999 are reserved for ASHRAE; 256-47807 and 50000-65535 may be used by vendors (Clause 23). """ # Acceleration METERS_PER_SECOND_PER_SECOND = 166 # Area SQUARE_METERS = 0 SQUARE_CENTIMETERS = 116 SQUARE_FEET = 1 SQUARE_INCHES = 115 # Currency CURRENCY1 = 105 CURRENCY2 = 106 CURRENCY3 = 107 CURRENCY4 = 108 CURRENCY5 = 109 CURRENCY6 = 110 CURRENCY7 = 111 CURRENCY8 = 112 CURRENCY9 = 113 CURRENCY10 = 114 # Electrical MILLIAMPERES = 2 AMPERES = 3 AMPERES_PER_METER = 167 AMPERES_PER_SQUARE_METER = 168 AMPERE_SQUARE_METERS = 169 DECIBELS = 199 DECIBELS_MILLIVOLT = 200 DECIBELS_VOLT = 201 FARADS = 170 HENRYS = 171 OHMS = 4 OHM_METER_SQUARED_PER_METER = 237 OHM_METERS = 172 MILLIOHMS = 145 KILOHMS = 122 MEGOHMS = 123 MICROSIEMENS = 190 MILLISIEMENS = 202 SIEMENS = 173 SIEMENS_PER_METER = 174 TESLAS = 175 VOLTS = 5 MILLIVOLTS = 124 KILOVOLTS = 6 MEGAVOLTS = 7 VOLT_AMPERES = 8 KILOVOLT_AMPERES = 9 MEGAVOLT_AMPERES = 10 VOLT_AMPERES_REACTIVE = 11 KILOVOLT_AMPERES_REACTIVE = 12 MEGAVOLT_AMPERES_REACTIVE = 13 VOLTS_PER_DEGREE_KELVIN = 176 VOLTS_PER_METER = 177 DEGREES_PHASE = 14 POWER_FACTOR = 15 WEBERS = 178 # Energy AMPERE_SECONDS = 238 VOLT_AMPERE_HOURS = 239 KILOVOLT_AMPERE_HOURS = 240 MEGAVOLT_AMPERE_HOURS = 241 VOLT_AMPERE_HOURS_REACTIVE = 242 KILOVOLT_AMPERE_HOURS_REACTIVE = 243 MEGAVOLT_AMPERE_HOURS_REACTIVE = 244 VOLT_SQUARE_HOURS = 245 AMPERE_SQUARE_HOURS = 246 JOULES = 16 KILOJOULES = 17 KILOJOULES_PER_KILOGRAM = 125 MEGAJOULES = 126 WATT_HOURS = 18 KILOWATT_HOURS = 19 MEGAWATT_HOURS = 146 WATT_HOURS_REACTIVE = 203 KILOWATT_HOURS_REACTIVE = 204 MEGAWATT_HOURS_REACTIVE = 205 BTUS = 20 KILO_BTUS = 147 MEGA_BTUS = 148 THERMS = 21 TON_HOURS = 22 # Enthalpy JOULES_PER_KILOGRAM_DRY_AIR = 23 KILOJOULES_PER_KILOGRAM_DRY_AIR = 149 MEGAJOULES_PER_KILOGRAM_DRY_AIR = 150 BTUS_PER_POUND_DRY_AIR = 24 BTUS_PER_POUND = 117 # Entropy JOULES_PER_DEGREE_KELVIN = 127 KILOJOULES_PER_DEGREE_KELVIN = 151 MEGAJOULES_PER_DEGREE_KELVIN = 152 JOULES_PER_KILOGRAM_DEGREE_KELVIN = 128 # Force NEWTON = 153 # Frequency CYCLES_PER_HOUR = 25 CYCLES_PER_MINUTE = 26 HERTZ = 27 KILOHERTZ = 129 MEGAHERTZ = 130 PER_HOUR = 131 # Humidity GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR = 28 PERCENT_RELATIVE_HUMIDITY = 29 # Length MICROMETERS = 194 MILLIMETERS = 30 CENTIMETERS = 118 KILOMETERS = 193 METERS = 31 INCHES = 32 FEET = 33 # Light CANDELAS = 179 CANDELAS_PER_SQUARE_METER = 180 WATTS_PER_SQUARE_FOOT = 34 WATTS_PER_SQUARE_METER = 35 LUMENS = 36 LUXES = 37 FOOT_CANDLES = 38 # Mass MILLIGRAMS = 196 GRAMS = 195 KILOGRAMS = 39 POUNDS_MASS = 40 TONS = 41 # Mass flow GRAMS_PER_SECOND = 154 GRAMS_PER_MINUTE = 155 KILOGRAMS_PER_SECOND = 42 KILOGRAMS_PER_MINUTE = 43 KILOGRAMS_PER_HOUR = 44 POUNDS_MASS_PER_SECOND = 119 POUNDS_MASS_PER_MINUTE = 45 POUNDS_MASS_PER_HOUR = 46 TONS_PER_HOUR = 156 # Power MILLIWATTS = 132 WATTS = 47 KILOWATTS = 48 MEGAWATTS = 49 BTUS_PER_HOUR = 50 KILO_BTUS_PER_HOUR = 157 JOULE_PER_HOURS = 247 HORSEPOWER = 51 TONS_REFRIGERATION = 52 # Pressure PASCALS = 53 HECTOPASCALS = 133 KILOPASCALS = 54 MILLIBARS = 134 BARS = 55 POUNDS_FORCE_PER_SQUARE_INCH = 56 MILLIMETERS_OF_WATER = 206 CENTIMETERS_OF_WATER = 57 INCHES_OF_WATER = 58 MILLIMETERS_OF_MERCURY = 59 CENTIMETERS_OF_MERCURY = 60 INCHES_OF_MERCURY = 61 # Temperature DEGREES_CELSIUS = 62 DEGREES_KELVIN = 63 DEGREES_KELVIN_PER_HOUR = 181 DEGREES_KELVIN_PER_MINUTE = 182 DEGREES_FAHRENHEIT = 64 DEGREE_DAYS_CELSIUS = 65 DEGREE_DAYS_FAHRENHEIT = 66 DELTA_DEGREES_FAHRENHEIT = 120 DELTA_DEGREES_KELVIN = 121 # Time YEARS = 67 MONTHS = 68 WEEKS = 69 DAYS = 70 HOURS = 71 MINUTES = 72 SECONDS = 73 HUNDREDTHS_SECONDS = 158 MILLISECONDS = 159 # Torque NEWTON_METERS = 160 # Velocity MILLIMETERS_PER_SECOND = 161 MILLIMETERS_PER_MINUTE = 162 METERS_PER_SECOND = 74 METERS_PER_MINUTE = 163 METERS_PER_HOUR = 164 KILOMETERS_PER_HOUR = 75 FEET_PER_SECOND = 76 FEET_PER_MINUTE = 77 MILES_PER_HOUR = 78 # Volume CUBIC_FEET = 79 CUBIC_METERS = 80 IMPERIAL_GALLONS = 81 MILLILITERS = 197 LITERS = 82 US_GALLONS = 83 # Volumetric flow CUBIC_FEET_PER_SECOND = 142 CUBIC_FEET_PER_MINUTE = 84 MILLION_STANDARD_CUBIC_FEET_PER_MINUTE = 254 CUBIC_FEET_PER_HOUR = 191 CUBIC_FEET_PER_DAY = 248 STANDARD_CUBIC_FEET_PER_DAY = 47808 MILLION_STANDARD_CUBIC_FEET_PER_DAY = 47809 THOUSAND_CUBIC_FEET_PER_DAY = 47810 THOUSAND_STANDARD_CUBIC_FEET_PER_DAY = 47811 POUNDS_MASS_PER_DAY = 47812 CUBIC_METERS_PER_SECOND = 85 CUBIC_METERS_PER_MINUTE = 165 CUBIC_METERS_PER_HOUR = 135 CUBIC_METERS_PER_DAY = 249 IMPERIAL_GALLONS_PER_MINUTE = 86 MILLILITERS_PER_SECOND = 198 LITERS_PER_SECOND = 87 LITERS_PER_MINUTE = 88 LITERS_PER_HOUR = 136 US_GALLONS_PER_MINUTE = 89 US_GALLONS_PER_HOUR = 192 # Other DEGREES_ANGULAR = 90 DEGREES_CELSIUS_PER_HOUR = 91 DEGREES_CELSIUS_PER_MINUTE = 92 DEGREES_FAHRENHEIT_PER_HOUR = 93 DEGREES_FAHRENHEIT_PER_MINUTE = 94 JOULE_SECONDS = 183 KILOGRAMS_PER_CUBIC_METER = 186 KILOWATT_HOURS_PER_SQUARE_METER = 137 KILOWATT_HOURS_PER_SQUARE_FOOT = 138 WATT_HOURS_PER_CUBIC_METER = 250 JOULES_PER_CUBIC_METER = 251 MEGAJOULES_PER_SQUARE_METER = 139 MEGAJOULES_PER_SQUARE_FOOT = 140 MOLE_PERCENT = 252 NO_UNITS = 95 NEWTON_SECONDS = 187 NEWTONS_PER_METER = 188 PARTS_PER_MILLION = 96 PARTS_PER_BILLION = 97 PASCAL_SECONDS = 253 PERCENT = 98 PERCENT_OBSCURATION_PER_FOOT = 143 PERCENT_OBSCURATION_PER_METER = 144 PERCENT_PER_SECOND = 99 PER_MINUTE = 100 PER_SECOND = 101 PSI_PER_DEGREE_FAHRENHEIT = 102 RADIANS = 103 RADIANS_PER_SECOND = 184 REVOLUTIONS_PER_MINUTE = 104 SQUARE_METERS_PER_NEWTON = 185 WATTS_PER_METER_PER_DEGREE_KELVIN = 189 WATTS_PER_SQUARE_METER_DEGREE_KELVIN = 141 PER_MILLE = 207 GRAMS_PER_GRAM = 208 KILOGRAMS_PER_KILOGRAM = 209 GRAMS_PER_KILOGRAM = 210 MILLIGRAMS_PER_GRAM = 211 MILLIGRAMS_PER_KILOGRAM = 212 GRAMS_PER_MILLILITER = 213 GRAMS_PER_LITER = 214 MILLIGRAMS_PER_LITER = 215 MICROGRAMS_PER_LITER = 216 GRAMS_PER_CUBIC_METER = 217 MILLIGRAMS_PER_CUBIC_METER = 218 MICROGRAMS_PER_CUBIC_METER = 219 NANOGRAMS_PER_CUBIC_METER = 220 GRAMS_PER_CUBIC_CENTIMETER = 221 BECQUERELS = 222 KILOBECQUERELS = 223 MEGABECQUERELS = 224 GRAY = 225 MILLIGRAY = 226 MICROGRAY = 227 SIEVERTS = 228 MILLISIEVERTS = 229 MICROSIEVERTS = 230 MICROSIEVERTS_PER_HOUR = 231 MILLIREMS = 47814 MILLIREMS_PER_HOUR = 47815 DECIBELS_A = 232 NEPHELOMETRIC_TURBIDITY_UNIT = 233 PH = 234 GRAMS_PER_SQUARE_METER = 235 MINUTES_PER_DEGREE_KELVIN = 236 DEGREES_LOVIBOND = 47816 ALCOHOL_BY_VOLUME = 47817 INTERNATIONAL_BITTERING_UNITS = 47818 EUROPEAN_BITTERNESS_UNITS = 47819 DEGREES_PLATO = 47820 SPECIFIC_GRAVITY = 47821 EUROPEAN_BREWING_CONVENTION = 47822
[docs] class EnableDisable(IntEnum): """BACnetEnableDisable values (Clause 16.4).""" ENABLE = 0 DISABLE = 1 # Deprecated in revision 20; use DISABLE_INITIATION instead. DISABLE_INITIATION = 2
[docs] class ReinitializedState(IntEnum): """BACnetReinitializedStateOfDevice values (Clause 16.5).""" COLDSTART = 0 WARMSTART = 1 START_BACKUP = 2 END_BACKUP = 3 START_RESTORE = 4 END_RESTORE = 5 ABORT_RESTORE = 6 ACTIVATE_CHANGES = 7
[docs] class FileAccessMethod(IntEnum): """BACnetFileAccessMethod values (Clause 12.12).""" STREAM_ACCESS = 0 RECORD_ACCESS = 1
[docs] class ProgramState(IntEnum): """BACnetProgramState values (Clause 12.22).""" IDLE = 0 LOADING = 1 RUNNING = 2 WAITING = 3 HALTED = 4 UNLOADING = 5
[docs] class ProgramChange(IntEnum): """BACnetProgramRequest values (Clause 12.22).""" READY = 0 LOAD = 1 RUN = 2 HALT = 3 RESTART = 4 UNLOAD = 5
[docs] class Action(IntEnum): """BACnetAction values (Clause 12.17).""" DIRECT = 0 REVERSE = 1
[docs] class DeviceStatus(IntEnum): """BACnetDeviceStatus values (Clause 12.11.9).""" OPERATIONAL = 0 OPERATIONAL_READ_ONLY = 1 DOWNLOAD_REQUIRED = 2 DOWNLOAD_IN_PROGRESS = 3 NON_OPERATIONAL = 4 BACKUP_IN_PROGRESS = 5
[docs] class BackupAndRestoreState(IntEnum): """BACnetBackupAndRestoreState values (Clause 19.1).""" IDLE = 0 PREPARING_FOR_BACKUP = 1 PREPARING_FOR_RESTORE = 2 PERFORMING_A_BACKUP = 3 PERFORMING_A_RESTORE = 4
[docs] class EventType(IntEnum): """BACnetEventType values (Clause 12.12.6).""" CHANGE_OF_BITSTRING = 0 CHANGE_OF_STATE = 1 CHANGE_OF_VALUE = 2 COMMAND_FAILURE = 3 FLOATING_LIMIT = 4 OUT_OF_RANGE = 5 CHANGE_OF_LIFE_SAFETY = 8 EXTENDED = 9 BUFFER_READY = 10 UNSIGNED_RANGE = 11 ACCESS_EVENT = 13 DOUBLE_OUT_OF_RANGE = 14 SIGNED_OUT_OF_RANGE = 15 UNSIGNED_OUT_OF_RANGE = 16 CHANGE_OF_CHARACTERSTRING = 17 CHANGE_OF_STATUS_FLAGS = 18 CHANGE_OF_RELIABILITY = 19 NONE = 20 CHANGE_OF_DISCRETE_VALUE = 21 CHANGE_OF_TIMER = 22
[docs] class LoggingType(IntEnum): """BACnetLoggingType values (Clause 12.25.14).""" POLLED = 0 COV = 1 TRIGGERED = 2
[docs] class NotifyType(IntEnum): """BACnetNotifyType values (Clause 12.21).""" ALARM = 0 EVENT = 1 ACK_NOTIFICATION = 2
[docs] class RejectMessageReason(IntEnum): """Reject-Message-To-Network reason codes (Clause 6.4.4).""" OTHER = 0 NOT_DIRECTLY_CONNECTED = 1 ROUTER_BUSY = 2 UNKNOWN_MESSAGE_TYPE = 3 MESSAGE_TOO_LONG = 4 SECURITY_ERROR = 5 ADDRESSING_ERROR = 6
[docs] class NetworkReachability(IntEnum): """Reachability status for a routing table entry (Clause 6.6.1).""" REACHABLE = 0 BUSY = 1 UNREACHABLE = 2
[docs] class NetworkType(IntEnum): """BACnet data link/network layer type (Clause 12.56.44).""" ETHERNET = 0 ARCNET = 1 MSTP = 2 PTP = 3 LONTALK = 4 IPV4 = 5 ZIGBEE = 6 VIRTUAL = 7 NON_BACNET = 8 # removed in protocol revision 16 IPV6 = 9 SERIAL = 10
[docs] class IPMode(IntEnum): """IP addressing mode for a NetworkPort (Clause 12.56).""" NORMAL = 0 FOREIGN = 1 BBMD = 2
[docs] class NetworkPortCommand(IntEnum): """Commands for a NetworkPort object (Clause 12.56.40).""" IDLE = 0 DISCARD_CHANGES = 1 RENEW_FD_REGISTRATION = 2 RESTART_SLAVE_DISCOVERY = 3 RENEW_DHCP = 4 RESTART_AUTONEG = 5 DISCONNECT = 6 RESTART_PORT = 7
[docs] class NetworkNumberQuality(IntEnum): """Quality of a NetworkPort's network number (Clause 12.56.42).""" UNKNOWN = 0 LEARNED = 1 LEARNED_CONFIGURED = 2 CONFIGURED = 3
[docs] class ProtocolLevel(IntEnum): """Protocol level of a NetworkPort (Clause 12.56).""" PHYSICAL = 0 PROTOCOL = 1 BACNET_APPLICATION = 2 NON_BACNET_APPLICATION = 3
[docs] class WriteStatus(IntEnum): """Status of the last Channel write operation (Clause 12.53).""" IDLE = 0 IN_PROGRESS = 1 SUCCESSFUL = 2 FAILED = 3
[docs] class LifeSafetyState(IntEnum): """Life safety point/zone sensor state (Clause 12.15/12.16).""" QUIET = 0 PRE_ALARM = 1 ALARM = 2 FAULT = 3 FAULT_PRE_ALARM = 4 FAULT_ALARM = 5 NOT_READY = 6 ACTIVE = 7 TAMPER = 8 TEST_ALARM = 9 TEST_ACTIVE = 10 TEST_FAULT = 11 TEST_FAULT_ALARM = 12 HOLDUP = 13 DURESS = 14 TAMPER_ALARM = 15 ABNORMAL = 16 EMERGENCY_POWER = 17 DELAYED = 18 BLOCKED = 19 LOCAL_ALARM = 20 GENERAL_ALARM = 21 SUPERVISORY = 22 TEST_SUPERVISORY = 23
[docs] class LifeSafetyMode(IntEnum): """Life safety operating mode (Clause 12.15.12).""" OFF = 0 ON = 1 TEST = 2 MANNED = 3 UNMANNED = 4 ARMED = 5 DISARMED = 6 PRE_ARMED = 7 SLOW = 8 FAST = 9 DISCONNECTED = 10 ENABLED = 11 DISABLED = 12 AUTOMATIC_RELEASE_DISABLED = 13 DEFAULT = 14
[docs] class LifeSafetyOperation(IntEnum): """Life safety commanded operation (Clause 12.15.13).""" NONE = 0 SILENCE = 1 SILENCE_AUDIBLE = 2 SILENCE_VISUAL = 3 SILENCE_ALL = 4 UNSILENCE = 5 UNSILENCE_AUDIBLE = 6 UNSILENCE_VISUAL = 7 UNSILENCE_ALL = 8 RESET = 9 RESET_ALARM = 10 RESET_FAULT = 11
[docs] class SilencedState(IntEnum): """Silenced state for a life safety point/zone (Clause 12.15.14).""" UNSILENCED = 0 AUDIBLE_SILENCED = 1 VISIBLE_SILENCED = 2 ALL_SILENCED = 3
[docs] class AcknowledgmentFilter(IntEnum): """BACnet acknowledgment filter for GetEnrollmentSummary (Clause 13.7.1).""" ALL = 0 ACKED = 1 NOT_ACKED = 2
[docs] class EventTransitionBits(IntEnum): """Positional constants for the 3-element event transition bitstring. Used to index into ``event_enable`` and ``acked_transitions`` bitstrings (Clause 12.11). """ TO_OFFNORMAL = 0 TO_FAULT = 1 TO_NORMAL = 2
[docs] class TimerState(IntEnum): """BACnet timer state enumeration (Clause 12.31, new in 2020).""" IDLE = 0 RUNNING = 1 EXPIRED = 2
[docs] class TimerTransition(IntEnum): """BACnet timer state transition enumeration (Clause 12.31, new in 2020).""" NONE = 0 IDLE_TO_RUNNING = 1 RUNNING_TO_IDLE = 2 RUNNING_TO_RUNNING = 3 RUNNING_TO_EXPIRED = 4 FORCED_TO_EXPIRED = 5 EXPIRED_TO_IDLE = 6 EXPIRED_TO_RUNNING = 7
[docs] class MessagePriority(IntEnum): """BACnet message priority for TextMessage services (Clause 16.5).""" NORMAL = 0 URGENT = 1
[docs] class VTClass(IntEnum): """BACnet virtual terminal class (Clause 17.1).""" DEFAULT_TERMINAL = 0 ANSI_X3_64 = 1 DEC_VT52 = 2 DEC_VT100 = 3 DEC_VT220 = 4 HP_700_94 = 5 IBM_3130 = 6
[docs] class NodeType(IntEnum): """BACnet node type for Structured View (Clause 12.29).""" UNKNOWN = 0 SYSTEM = 1 NETWORK = 2 DEVICE = 3 ORGANIZATIONAL = 4 AREA = 5 EQUIPMENT = 6 POINT = 7 COLLECTION = 8 PROPERTY = 9 FUNCTIONAL = 10 OTHER = 11 SUBSYSTEM = 12 BUILDING = 13 FLOOR = 14 SECTION = 15 MODULE = 16 TREE = 17 MEMBER = 18 PROTOCOL = 19 ROOM = 20 ZONE = 21
[docs] class ShedState(IntEnum): """BACnet shed state for Load Control (Clause 12.28).""" SHED_INACTIVE = 0 SHED_REQUEST_PENDING = 1 SHED_COMPLIANT = 2 SHED_NON_COMPLIANT = 3
[docs] class DoorAlarmState(IntEnum): """BACnet door alarm state (Clause 12.26).""" NORMAL = 0 ALARM = 1 DOOR_OPEN_TOO_LONG = 2 FORCED_OPEN = 3 TAMPER = 4 DOOR_FAULT = 5 LOCK_FAULT = 6 FREE_ACCESS = 7 EGRESS_OPEN = 8
[docs] class DoorStatus(IntEnum): """BACnet door status (Clause 12.26).""" CLOSED = 0 OPENED = 1 UNKNOWN = 2
[docs] class LockStatus(IntEnum): """BACnet lock status (Clause 12.26).""" LOCKED = 0 UNLOCKED = 1 LOCK_FAULT = 2 UNUSED = 3 UNKNOWN = 4
[docs] class DoorSecuredStatus(IntEnum): """BACnet secured status for Access Door (Clause 12.26).""" SECURED = 0 UNSECURED = 1 UNKNOWN = 2
[docs] class LightingOperation(IntEnum): """BACnet lighting operation (Clause 12.54).""" NONE = 0 FADE_TO = 1 RAMP_TO = 2 STEP_UP = 3 STEP_DOWN = 4 STEP_ON = 5 STEP_OFF = 6 WARN = 7 WARN_OFF = 8 WARN_RELINQUISH = 9 STOP = 10
[docs] class LightingInProgress(IntEnum): """BACnet lighting in-progress state (Clause 12.54).""" IDLE = 0 FADE_ACTIVE = 1 RAMP_ACTIVE = 2 NOT_CONTROLLED = 3 OTHER = 4
[docs] class AccessEvent(IntEnum): """BACnet access event (Clause 12.33). Values 0-127 are granted events; 128-511 are denied events. Values 0-511 reserved for ASHRAE; 512-65535 for vendor use (Clause 23). """ NONE = 0 GRANTED = 1 MUSTER = 2 PASSBACK_DETECTED = 3 DURESS = 4 TRACE = 5 LOCKOUT_MAX_ATTEMPTS = 6 LOCKOUT_OTHER = 7 LOCKOUT_RELINQUISHED = 8 LOCKED_BY_HIGHER_PRIORITY = 9 OUT_OF_SERVICE = 10 OUT_OF_SERVICE_RELINQUISHED = 11 ACCOMPANIMENT_BY = 12 AUTHENTICATION_FACTOR_READ = 13 AUTHORIZATION_DELAYED = 14 VERIFICATION_REQUIRED = 15 NO_ENTRY_AFTER_GRANTED = 16 # Denied events (128+) DENIED_DENY_ALL = 128 DENIED_UNKNOWN_CREDENTIAL = 129 DENIED_AUTHENTICATION_UNAVAILABLE = 130 DENIED_AUTHENTICATION_FACTOR_TIMEOUT = 131 DENIED_INCORRECT_AUTHENTICATION_FACTOR = 132 DENIED_ZONE_NO_ACCESS_RIGHTS = 133 DENIED_POINT_NO_ACCESS_RIGHTS = 134 DENIED_NO_ACCESS_RIGHTS = 135 DENIED_OUT_OF_TIME_RANGE = 136 DENIED_THREAT_LEVEL = 137 DENIED_PASSBACK = 138 DENIED_UNEXPECTED_LOCATION_USAGE = 139 DENIED_MAX_ATTEMPTS = 140 DENIED_LOWER_OCCUPANCY_LIMIT = 141 DENIED_UPPER_OCCUPANCY_LIMIT = 142 DENIED_AUTHENTICATION_FACTOR_LOST = 143 DENIED_AUTHENTICATION_FACTOR_STOLEN = 144 DENIED_AUTHENTICATION_FACTOR_DAMAGED = 145 DENIED_AUTHENTICATION_FACTOR_DESTROYED = 146 DENIED_AUTHENTICATION_FACTOR_DISABLED = 147 DENIED_AUTHENTICATION_FACTOR_ERROR = 148 DENIED_CREDENTIAL_UNASSIGNED = 149 DENIED_CREDENTIAL_NOT_PROVISIONED = 150 DENIED_CREDENTIAL_NOT_YET_ACTIVE = 151 DENIED_CREDENTIAL_EXPIRED = 152 DENIED_CREDENTIAL_MANUAL_DISABLE = 153 DENIED_CREDENTIAL_LOCKOUT = 154 DENIED_CREDENTIAL_MAX_DAYS = 155 DENIED_CREDENTIAL_MAX_USES = 156 DENIED_CREDENTIAL_INACTIVITY = 157 DENIED_CREDENTIAL_DISABLED = 158 DENIED_NO_ACCOMPANIMENT = 159 DENIED_INCORRECT_ACCOMPANIMENT = 160 DENIED_LOCKOUT = 161 DENIED_VERIFICATION_FAILED = 162 DENIED_VERIFICATION_TIMEOUT = 163 DENIED_OTHER = 164
[docs] class AccessCredentialDisable(IntEnum): """BACnet access credential disable (Clause 21). Values 0-63 reserved for ASHRAE; 64-65535 for vendor use (Clause 23). """ NONE = 0 DISABLE = 1 DISABLE_MANUAL = 2 DISABLE_LOCKOUT = 3
[docs] class AccessCredentialDisableReason(IntEnum): """BACnet access credential disable reason (Clause 21). Values 0-63 reserved for ASHRAE; 64-65535 for vendor use (Clause 23). """ DISABLED = 0 DISABLED_NEEDS_PROVISIONING = 1 DISABLED_UNASSIGNED = 2 DISABLED_NOT_YET_ACTIVE = 3 DISABLED_EXPIRED = 4 DISABLED_LOCKOUT = 5 DISABLED_MAX_DAYS = 6 DISABLED_MAX_USES = 7 DISABLED_INACTIVITY = 8 DISABLED_MANUAL = 9
[docs] class AccessUserType(IntEnum): """BACnet access user type (Clause 12.35).""" ASSET = 0 GROUP = 1 PERSON = 2
[docs] class AuthorizationMode(IntEnum): """BACnet authorization mode (Clause 12.31).""" AUTHORIZE = 0 GRANT_ACTIVE = 1 DENY_ALL = 2 VERIFICATION_REQUIRED = 3 AUTHORIZATION_DELAYED = 4 NONE = 5
[docs] class AccessPassbackMode(IntEnum): """BACnet access passback mode (Clause 12.32).""" PASSBACK_OFF = 0 HARD_PASSBACK = 1 SOFT_PASSBACK = 2
[docs] class EscalatorMode(IntEnum): """BACnet escalator operating mode (Clause 12.60).""" UNKNOWN = 0 STOP = 1 UP = 2 DOWN = 3 INSPECTION = 4 OUT_OF_SERVICE = 5
[docs] class EscalatorFault(IntEnum): """BACnet escalator fault signals (Clause 12.60).""" CONTROLLER_FAULT = 0 DRIVE_AND_MOTOR_FAULT = 1 MECHANICAL_COMPONENT_FAULT = 2 OVERSPEED_FAULT = 3 POWER_SUPPLY_FAULT = 4 SAFETY_DEVICE_FAULT = 5 CONTROLLER_SUPPLY_FAULT = 6 DRIVE_TEMPERATURE_EXCEEDED = 7 COMB_PLATE_FAULT = 8
[docs] class LiftCarDirection(IntEnum): """BACnet lift car travel direction (Clause 12.59).""" UNKNOWN = 0 NONE = 1 STOPPED = 2 UP = 3 DOWN = 4 UP_AND_DOWN = 5
[docs] class LiftGroupMode(IntEnum): """BACnet lift group operating mode (Clause 12.58).""" UNKNOWN = 0 NORMAL = 1 DOWN_PEAK = 2 TWO_WAY = 3 FOUR_WAY = 4 EMERGENCY = 5 UP_PEAK = 6
[docs] class LiftCarDoorStatus(IntEnum): """BACnet lift car door status (Clause 12.59).""" UNKNOWN = 0 NONE = 1 CLOSING = 2 CLOSED = 3 OPENING = 4 OPENED = 5 SAFETY_LOCKED = 6 LIMITED_OPENED = 7
[docs] class LiftCarDoorCommand(IntEnum): """BACnet lift car door command (Clause 21).""" NONE = 0 OPEN = 1 CLOSE = 2
[docs] class LiftCarDriveStatus(IntEnum): """BACnet lift car drive status (Clause 21).""" UNKNOWN = 0 STATIONARY = 1 BRAKING = 2 ACCELERATE = 3 DECELERATE = 4 RATED_SPEED = 5 SINGLE_FLOOR_JUMP = 6 TWO_FLOOR_JUMP = 7 THREE_FLOOR_JUMP = 8 MULTI_FLOOR_JUMP = 9
[docs] class LiftCarMode(IntEnum): """BACnet lift car operating mode (Clause 21). Values 0-1023 reserved for ASHRAE; 1024-65535 for vendor use (Clause 23). """ UNKNOWN = 0 NORMAL = 1 VIP = 2 HOMING = 3 PARKING = 4 ATTENDANT_CONTROL = 5 FIREFIGHTER_CONTROL = 6 EMERGENCY_POWER = 7 INSPECTION = 8 CABINET_RECALL = 9 EARTHQUAKE_OPERATION = 10 FIRE_OPERATION = 11 OUT_OF_SERVICE = 12 OCCUPANT_EVACUATION = 13
[docs] class LiftFault(IntEnum): """BACnet lift fault signals (Clause 21). Values 0-1023 reserved for ASHRAE; 1024-65535 for vendor use (Clause 23). """ CONTROLLER_FAULT = 0 DRIVE_AND_MOTOR_FAULT = 1 GOVERNOR_AND_SAFETY_GEAR_FAULT = 2 LIFT_SHAFT_DEVICE_FAULT = 3 POWER_SUPPLY_FAULT = 4 SAFETY_INTERLOCK_FAULT = 5 DOOR_CLOSING_FAULT = 6 DOOR_OPENING_FAULT = 7 CAR_STOPPED_OUTSIDE_LANDING_ZONE = 8 CALL_BUTTON_STUCK = 9 START_FAILURE = 10 CONTROLLER_SUPPLY_FAULT = 11 SELF_TEST_FAILURE = 12 RUNTIME_LIMIT_EXCEEDED = 13 POSITION_LOST = 14 DRIVE_TEMPERATURE_EXCEEDED = 15 LOAD_MEASUREMENT_FAULT = 16
[docs] class StagingState(IntEnum): """BACnet staging state (Clause 12.62, new in 2020).""" NOT_STAGED = 0 STAGING = 1 STAGED = 2 COMMITTING = 3 COMMITTED = 4 ABANDONING = 5 ABANDONED = 6
[docs] class AuditLevel(IntEnum): """BACnet audit level (Clause 19.6, new in 2020).""" NONE = 0 AUDIT_ALL = 1 AUDIT_CONFIG = 2 DEFAULT = 3
[docs] class AuditOperation(IntEnum): """BACnet audit operation (Clause 19.6, new in 2020).""" READ = 0 WRITE = 1 CREATE = 2 DELETE = 3 LIFE_SAFETY = 4 ACKNOWLEDGE_ALARM = 5 DEVICE_DISABLE_COMM = 6 DEVICE_ENABLE_COMM = 7 DEVICE_RESET = 8 DEVICE_BACKUP = 9 DEVICE_RESTORE = 10 SUBSCRIPTION = 11 NOTIFICATION = 12 AUDITING_FAILURE = 13 NETWORK_CHANGES = 14 GENERAL = 15
[docs] class BACnetSuccessFilter(IntEnum): """BACnet success filter for audit log queries (Clause 13.19, new in 2020).""" ALL = 0 SUCCESSES_ONLY = 1 FAILURES_ONLY = 2