Source code for BAC0.core.proprietary_objects.jci

#!/usr/bin/env python

"""
Johnson Controls Proprietary Objects for FX/FEC Line
"""
from bacpypes.object import (
    AnalogInputObject,
    AnalogOutputObject,
    AnalogValueObject,
    DeviceObject,
)
from bacpypes.primitivedata import (
    Atomic,
    Boolean,  # Signed,
    CharacterString,
    Date,
    Enumerated,
    Real,
    Time,
    Unsigned,
)

#
#   Proprietary Objects and their attributes
#   https://cgproducts.johnsoncontrols.com/MET_PDF/12013102.pdf
#

JCIDeviceObject = {
    "name": "JCIDeviceObject",
    "vendor_id": 5,
    "objectType": "device",
    "bacpypes_type": DeviceObject,
    "properties": {
        "ALARM_STATE": {"obj_id": 1006, "datatype": Enumerated, "mutable": False},
        "ARCHIVE_DATE": {"obj_id": 849, "datatype": Date, "mutable": False},
        "ARCHIVE_STATUS": {"obj_id": 1187, "datatype": Unsigned, "mutable": False},
        "ARCHIVE_TIME": {"obj_id": 850, "datatype": Time, "mutable": False},
        "CPU_USAGE": {"obj_id": 2583, "datatype": Real, "mutable": False},
        "ENABLED": {"obj_id": 673, "datatype": Boolean, "mutable": True},
        "EXECUTION_PRIORITY": {
            "obj_id": 2197,
            "datatype": Enumerated,
            "mutable": True,
        },  # 0-3
        "EXTENDED_PROTO_VERSION": {
            "obj_id": 2291,
            "datatype": Unsigned,
            "mutable": False,
        },
        "FLASH_USAGE": {"obj_id": 2584, "datatype": Real, "mutable": False},
        "ITEM_REFERENCE": {
            "obj_id": 32527,
            "datatype": CharacterString,
            "mutable": False,
        },
        "JCI_STATUS": {"obj_id": 847, "datatype": Enumerated, "mutable": False},
        "MEMORY_USAGE": {"obj_id": 2581, "datatype": Real, "mutable": False},
        "OBJECT_CATEGORY": {
            "obj_id": 908,
            "datatype": Enumerated,
            "mutable": True,
        },  # 0-249
        "OBJECT_MEMORY_USAGE": {"obj_id": 2582, "datatype": Real, "mutable": False},
        "STATUS": {"obj_id": 512, "datatype": Enumerated, "mutable": False},
        "BACNET_BROADCAST_RECEIVE_RATE": {
            "obj_id": 745,
            "datatype": Unsigned,
            "mutable": False,
        },
        "DEFAULT_BASE_UNITS": {
            "obj_id": 2206,
            "datatype": Enumerated,
            "mutable": False,
        },
        "ESTIMATED_FLASH_AVAILABLE": {
            "obj_id": 2395,
            "datatype": Real,
            "mutable": False,
        },
        "LAST_IDLE_SAMPLE": {"obj_id": 30082, "datatype": Real, "mutable": False},
        "MAX_MESSAGE_BUFFER": {
            "obj_id": 848,
            "datatype": Unsigned,
            "mutable": True,
        },  # 98-65535
        "USER_NAME": {"obj_id": 2390, "datatype": CharacterString, "mutable": False},
        "PCODE": {"obj_id": 1320, "datatype": CharacterString, "mutable": False},
        # "SAB_DEVICE_STATUS_LIST": {"obj_id": 4513, "datatype": Complex, "mutable": False},
        "SAB_DEVICE_STATUS_LIST_CHANGED ": {
            "obj_id": 4514,
            "datatype": Unsigned,
            "mutable": False,
        },
        "EVENTS_LOST ": {"obj_id": 1479, "datatype": Unsigned, "mutable": False},
        # "STANDARD_TIME_OFFSET ": {"obj_id": 1017, "datatype": Signed, "mutable": False}, # -900-900
        # "DAYLIGHT_SAVING_TIME_OFFSET ": {"obj_id": 1093, "datatype": Signed, "mutable": False}, # -900-900
        # "STANDARD_TIME_START ": {"obj_id": 988, "datatype": Complex, "mutable": True},
        # "DAYLIGHT_SAVING_TIME_START ": {"obj_id": 1040, "datatype": Complex, "mutable": True},
        "ACCEPT_BACNET_TIME_SYNC": {
            "obj_id": 4970,
            "datatype": Boolean,
            "mutable": False,
        },
        # "LAST_BACNET_TIME_SYNC_RECEIVED ": {"obj_id": 5728, "datatype": Complex, "mutable": False},
        "SUPERVISORY_DEVICE_ONLINE": {
            "obj_id": 3653,
            "datatype": Boolean,
            "mutable": True,
        },
        "SUPERVISORY_OFFLINE_TIMEOUT": {
            "obj_id": 6002,
            "datatype": Unsigned,
            "mutable": True,
        },  # 1-255
        "NEXT_AVAILABLE_OID": {
            "obj_id": 787,
            "datatype": Unsigned,
            "mutable": True,
        },  # 30,000,001-41,799,991
        "HAS_UNBOUND_REFERENCES": {
            "obj_id": 767,
            "datatype": Boolean,
            "mutable": False,
        },
        "SURROGATE_CACHE_CNT": {"obj_id": 571, "datatype": Unsigned, "mutable": False},
        "SURROGATE_CACHE_MAX": {"obj_id": 639, "datatype": Unsigned, "mutable": False},
        # "ASSET_VERSIONS": {"obj_id": 4960, "datatype": Complex, "mutable": False},
        "LOAD_BALANCER_LEVEL": {
            "obj_id": 4722,
            "datatype": Enumerated,
            "mutable": False,
        },
        "TIMER_DB_SIZE": {"obj_id": 733, "datatype": Unsigned, "mutable": False},
        "TIMER_USED": {"obj_id": 734, "datatype": Unsigned, "mutable": False},
        "TIMER_PEAK": {"obj_id": 735, "datatype": Unsigned, "mutable": False},
        "TIMER_MESSAGES_ABORTED": {
            "obj_id": 4959,
            "datatype": Unsigned,
            "mutable": False,
        },
        "BACNET_OID_ALLOCATED": {
            "obj_id": 1291,
            "datatype": Unsigned,
            "mutable": False,
        },
        "BACNET_OID_USED": {"obj_id": 1292, "datatype": Unsigned, "mutable": False},
        "SIGN_PRI_DB_SIZE": {"obj_id": 730, "datatype": Unsigned, "mutable": False},
        "SIGN_PRI_USED": {"obj_id": 731, "datatype": Unsigned, "mutable": False},
        "SIGN_PRI_PEAK": {"obj_id": 732, "datatype": Unsigned, "mutable": False},
        "BACNET_ENCODE_TYPE": {
            "obj_id": 32578,
            "datatype": Enumerated,
            "mutable": True,
        },  # 0-3
        "ROUTING_MODE": {
            "obj_id": 4307,
            "datatype": Enumerated,
            "mutable": True,
        },  # 0-2
        "BACNET_INTEGRATED_OBJECTS": {
            "obj_id": 4302,
            "datatype": Enumerated,
            "mutable": False,
        },
        "BACNET_COMPATIBLE": {"obj_id": 4581, "datatype": Boolean, "mutable": False},
        "SEND_I_AM_RATE": {
            "obj_id": 579,
            "datatype": Unsigned,
            "mutable": True,
        },  # 60-86,400
        "DEFAULT_TIME_ZONE": {
            "obj_id": 32583,
            "datatype": Enumerated,
            "mutable": True,
        },  # #-1,101
        "TIME_ZONE": {
            "obj_id": 1403,
            "datatype": Enumerated,
            "mutable": True,
        },  # #-1,101
        "LOCAL_TIME_ZONE": {"obj_id": 1404, "datatype": Enumerated, "mutable": False},
        "FC_MULTICAST_RESPONDER": {
            "obj_id": 3390,
            "datatype": Unsigned,
            "mutable": True,
        },
        "FC_WAIT_BEFORE_POLLING": {
            "obj_id": 3391,
            "datatype": Unsigned,
            "mutable": True,
        },
        "SUPERVISOR_MAC_ADDRESS": {
            "obj_id": 3652,
            "datatype": Unsigned,
            "mutable": False,
        },
        "LIBRARY_PART_ID": {
            "obj_id": 3295,
            "datatype": CharacterString,
            "mutable": False,
        },
        "APPLICATION_CLASS_SET_VERSION": {
            "obj_id": 4128,
            "datatype": Unsigned,
            "mutable": False,
        },
        "DEVICE_MODEL_CLASS_SET_VERSION": {
            "obj_id": 4129,
            "datatype": Unsigned,
            "mutable": False,
        },
        "COV_MIN_SEND_TIME": {
            "obj_id": 3929,
            "datatype": Unsigned,
            "mutable": True,
        },  # 10-255
        "COV_TRANSMITS_PER_MINUTE": {
            "obj_id": 651,
            "datatype": Unsigned,
            "mutable": False,
        },
        "CONTROL_SEQUENCE_IN_TEST": {
            "obj_id": 3651,
            "datatype": Unsigned,
            "mutable": True,
        },
        "END_OF_LINE": {"obj_id": 603, "datatype": Boolean, "mutable": False},
        "DEVICE_ADDRESS": {"obj_id": 876, "datatype": Unsigned, "mutable": False},
        "FC_BUS_COMMUNICATION_MODE": {
            "obj_id": 4400,
            "datatype": Enumerated,
            "mutable": False,
        },
        "SYSTEM_TYPE": {"obj_id": 3900, "datatype": Unsigned, "mutable": False},
        "SYSTEM_CONFIGURATION": {
            "obj_id": 3899,
            "datatype": Unsigned,
            "mutable": False,
        },
        "SABusPerformance": {
            "obj_id": 12157,
            "datatype": Enumerated,
            "mutable": False,
        },
        "SABusTokenLoopTime": {
            "obj_id": 12158,
            "datatype": Unsigned,
            "mutable": False,
        },
        "SABusCOVRcvPerMinute": {
            "obj_id": 12159,
            "datatype": Unsigned,
            "mutable": False,
        },
        "SABusCOVWritesPerMinute": {
            "obj_id": 12160,
            "datatype": Unsigned,
            "mutable": False,
        },
    },
}
# EOL ?
# MEMORY ?

JCIAnalogValueObject = {
    "name": "JCIAnalogValueObject",
    "vendor_id": 5,
    "objectType": "analogValue",
    "bacpypes_type": AnalogValueObject,
    "properties": {
        "FLOW-SP_EEPROM": {"obj_id": 3113, "datatype": Real, "mutable": True},
        "Offset": {"obj_id": 956, "datatype": Real, "mutable": True},
        "Offline": {"obj_id": 913, "datatype": Boolean, "mutable": False},
        "SABusAddr": {"obj_id": 3645, "datatype": Unsigned, "mutable": False},
        "PeerToPeer": {"obj_id": 748, "datatype": Atomic, "mutable": False},
        "P2P_ErrorStatus": {"obj_id": 746, "datatype": Enumerated, "mutable": False},
    },
}

JCIAnalogInputObject = {
    "name": "JCIAnalogInputObject",
    "vendor_id": 5,
    "objectType": "analogInput",
    "bacpypes_type": AnalogInputObject,
    "properties": {
        "Offset": {"obj_id": 956, "datatype": Real, "mutable": True},
        "Offline": {"obj_id": 913, "datatype": Boolean, "mutable": False},
        "SABusAddr": {"obj_id": 3645, "datatype": Unsigned, "mutable": False},
        "InputRangeLow": {"obj_id": 1293, "datatype": Real, "mutable": True},
        "InputRangeHigh": {"obj_id": 1294, "datatype": Real, "mutable": True},
        "OutputRangeLow": {"obj_id": 1295, "datatype": Real, "mutable": True},
        "OutputRangeHigh": {"obj_id": 1296, "datatype": Real, "mutable": True},
    },
}

JCIAnalogOutputObject = {
    "name": "JCIAnalogOutputObject",
    "vendor_id": 5,
    "objectType": "analogOutput",
    "bacpypes_type": AnalogOutputObject,
    "properties": {
        "Offline": {"obj_id": 913, "datatype": Boolean, "mutable": False},
        "SABusAddr": {"obj_id": 3645, "datatype": Unsigned, "mutable": False},
        "MIN_OUT_VALUE": {"obj_id": 652, "datatype": Real, "mutable": True},
        "MAX_OUT_VALUE": {"obj_id": 653, "datatype": Real, "mutable": True},
        "polarity": {"obj_id": "polarity", "datatype": Enumerated, "mutable": True},
        "stroketime": {"obj_id": 3478, "datatype": Real, "mutable": True},
    },
}


[docs]def tec_short_point_list(unit_type="2-pipe"): """ unit_type can be : - 4-pipe - 2-pipe - VAV """ _lst = [ ("binaryInput", 30827), ("binaryInput", 30828), ("binaryOutput", 86908), ("binaryOutput", 86909), ("binaryOutput", 86910), ("binaryOutput", 86911), ("binaryOutput", 86912), ("binaryOutput", 87101), ("binaryOutput", 87102), ("multiStateValue", 29501), ("multiStateValue", 29500), ("multiStateValue", 29509), ("multiStateValue", 29517), ("multiStateValue", 29518), ("multiStateValue", 29519), ("multiStateValue", 29520), ("multiStateValue", 29524), ("multiStateValue", 29525), ("multiStateValue", 29527), ("multiStateValue", 29712), ("multiStateValue", 29700), ("multiStateValue", 29709), ("multiStateValue", 29708), ("analogValue", 29505), # ("analogValue", 29502), # ("analogValue", 29503), ("analogValue", 29504), ("analogValue", 29506), ("analogValue", 29507), ("analogValue", 29508), ("analogValue", 29515), ("analogValue", 29522), ("analogValue", 29529), ("analogValue", 29530), ("analogValue", 29532), ("analogValue", 29701), ("analogValue", 29703), ("analogValue", 29705), ("analogValue", 29706), ("analogValue", 29707), ("analogValue", 29714), ("analogValue", 29717), ("analogValue", 29725), ("analogValue", 29726), ("analogValue", 29727), ("analogOutput", 86905), ("multiStateValue", 6), ("trendLog", 101010), ] if unit_type == "4-pipe": _lst.append(("analogOutput", 86914)) _lst.append(("analogOutput", 86915)) return _lst