{
 "manufacturer": "Neptronic",
 "manufacturer_slug": "neptronic",
 "model": "EVCBM Dual Duct VAV Controller",
 "model_slug": "evcbm-dual-duct-vav-controller",
 "aliases": [
  "EVCBM",
  "EVCBM Dual Duct",
  "EVCB dual duct"
 ],
 "equipment_type": "Dual duct VAV terminal controller",
 "applies_to": "Neptronic EVCBM master controller used on dual duct terminals, with a second (slave) airflow channel for the other duct.",
 "summary": "The EVCBM Dual Duct controller manages both hot and cold decks of a dual duct box, with separate airflow K-factor, setpoint and balancing objects for the master and slave sides. It talks BACnet MS/TP with a fixed object table. Points cover zone temperature and setpoints, demands, both airflow channels and output configuration.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": "4.09 (as printed)",
 "default_device_instance": "153000 + MAC address",
 "access_inferred": false,
 "notes": [
  "Object availability varies by sub-model; the source marks each object per model.",
  "Multistate state lists depend on other configuration objects.",
  "Airflow values are listed without units; scaling depends on the controller configuration.",
  "Objects ending in 1 refer to the master duct and objects ending in 2 to the slave duct."
 ],
 "source": {
  "title": "EVCBM Dual Duct BACnet Communication Module User Guide",
  "doc_number": "EVCBM Dual Duct-V500-BACnet Guide-EUA-180927",
  "revision_date": "2018-09-27",
  "url": "https://www.neptronic.com/Controls/PDF/EVC/BACnetModbus/20181001/EVCBM%20Dual%20Duct-V500-BACnet%20Guide-EUA-180927.pdf"
 },
 "integration": {
  "summary": "Read the zone temperature, setpoint, demands and airflow, and drive occupancy with MSV.11. To control from a BMS space temperature, set MSV.4 to Network Sensor and keep writing AV.1 ControlTemp faster than the Cfg_NetworkTimeOut period (AV.145).",
  "minimum_points": [
   {
    "ref": "MV 11",
    "name": "NsbOccCommand",
    "why": "BMS occupancy / night setback / off command"
   },
   {
    "ref": "AV 15",
    "name": "TempSetPoint",
    "why": "Occupied/day zone setpoint"
   },
   {
    "ref": "MV 4",
    "name": "Cfg_TempControlSource",
    "why": "Select internal, external or network temperature"
   },
   {
    "ref": "AV 1",
    "name": "ControlTemp",
    "why": "Control temp; BMS writes it when MSV.4 = Network Sensor"
   },
   {
    "ref": "MV 12",
    "name": "OccupancyStatus",
    "why": "Actual occupancy state"
   },
   {
    "ref": "AV 110",
    "name": "ActualAirFlow1",
    "why": "Measured airflow"
   },
   {
    "ref": "AV 111",
    "name": "AirFlowSetPoint1",
    "why": "Airflow setpoint calculated from demand"
   },
   {
    "ref": "AV 121",
    "name": "ActualAirFlow2",
    "why": "Measured airflow of the slave (second) duct"
   },
   {
    "ref": "AV 20",
    "name": "HeatingDemand1",
    "why": "Heating ramp demand, %"
   },
   {
    "ref": "AV 40",
    "name": "CoolingDemand1",
    "why": "Cooling ramp demand, %"
   }
  ],
  "enable": "Occupancy and off are commanded with MSV.11 NsbOccCommand: Locally (wired input/sensor decides), Occupancy, No Occupancy (night setback) or OFF.",
  "heartbeat": "AV.145 Cfg_NetworkTimeOut (0-60 min): when the temperature source is Network/Remote and the BMS has not written a temperature within this time, the EVC goes to OFF and AV.1 shows 999°C in fault. Setting it to 0 makes AV.1 fall back to the AV.15 setpoint value instead.",
  "remote_sensors": "Set MSV.4 Cfg_TempControlSource to Network Sensor; AV.1 ControlTemp then becomes writable and must be refreshed by the BMS (see AV.145).",
  "setup": [
   "BACnet MS/TP only; the device instance defaults to 153000 + MAC address (auto) and can be changed from the menu or by writing the Device Object_Identifier.",
   "MAC address defaults to 0; baud rate auto-detects (9600/19200/38400/76800), or set it by writing Device proprietary property 1001.",
   "Max_Master defaults to 127; lower it to the highest MAC on the trunk for faster token passing.",
   "A Copy Config function in the menu can clone one controller's configuration to others of the same type on the trunk."
  ],
  "gotchas": [
   "Out_of_Service on read-only objects is writable for testing, but it reverts automatically after 15 minutes (Device proprietary property 1002, 0-120 min, 0 = never).",
   "Many multistate objects only offer some states depending on other configuration objects; read State_Text from the device.",
   "Cfg_ objects are commissioning parameters; avoid writing them cyclically from the BMS.",
   "Airflow objects show \"No units\"; the value follows the airflow scale set on the controller (MSV.41 Cfg_AirFlowScale where present)."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 2,
   "name": "AnalogInput2",
   "description": "CO2Sensor: Input set to 0-10Vdc CO2 sensor",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "InternTemp",
   "description": "Intern temperature sensor (ITS)",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "InternHumidity",
   "description": "Humidity reading of on board humidity sensor of TRLH or TRLGH24 unit",
   "units": "%RH",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "TrlgCO2",
   "description": "CO reading of on-board sensor of TRLG24 or TRLGH24 thermostat unit",
   "units": "ppm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 2,
   "name": "AnalogOutput2",
   "description": "Modulation percentage of analog output 2 based on demand",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "ControlTemp",
   "description": "Control temperature; writable when MSV.4 is Network Sensor",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "ExternTemp",
   "description": "Extern temperature sensor (ETS)",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "AirSupplyTemp",
   "description": "Air supply temperature sensor (AST)",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "CO2Sensor",
   "description": "Carbon dioxide sensor (CO2)",
   "units": "ppm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "Cfg_InternTempOffset",
   "description": "To calibrate the integrated temperature sensor of the TRL (ITS)",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "Cfg_ExternTempOffset",
   "description": "To calibrate the external temperature sensor (ETS)",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "TempSetPoint",
   "description": "Actual user setpoint of the zone in occupied/day mode",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "Cfg_MinpSetPoint",
   "description": "User minimum permitted setpoint of the zone in occupied/day mode",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "Cfg_MaxpSetPoint",
   "description": "User maximum permitted setpoint of the zone in occupied/day mode",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "SetPointCoolNoOccNSB",
   "description": "Cooling setpoint when in night setback or unoccupied",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "SetPointHeatNoOccNSB",
   "description": "Heating setpoint when in night setback or unoccupied",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 20,
   "name": "HeatingDemand1",
   "description": "Heating demand in percentage for the Heating Ramp 1. This value is",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 21,
   "name": "Cfg_HeatingPropBand1",
   "description": "Range through which the controller will modulate the heating output from 0-100%",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 22,
   "name": "Cfg_HeatingDeadBand",
   "description": "Range where the controller will not take action when below the zone",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "HeatingDemand2",
   "description": "Heating demand in percentage for the Heating Ramp 2. This value is",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 24,
   "name": "Cfg_HeatingPropBand2",
   "description": "Range through which the controller will modulate the heating output from 0-100%",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 25,
   "name": "Cfg_HeatingDeadBand2",
   "description": "Range where the controller will not take action when below the zone",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 30,
   "name": "Cfg_IntegralTimeHeating",
   "description": "Reciprocal of the integral time in seconds (1/I or repeats per second)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 40,
   "name": "CoolingDemand1",
   "description": "Cooling demand for the Cooling Ramp 1. This value is based on",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 41,
   "name": "Cfg_CoolingPropBand1",
   "description": "Range through which the controller will modulate the cooling output from 0-100%",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 42,
   "name": "Cfg_CoolingDeadBand1",
   "description": "Range at which the controller will not take action when above the",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 45,
   "name": "CoolingDemand2",
   "description": "Cooling demand for the Cooling Ramp 2. This value is based on",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 46,
   "name": "Cfg_CoolingPropBand2",
   "description": "Range through which the controller will modulate the cooling output from 0-100%",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 47,
   "name": "Cfg_CoolingDeadBand2",
   "description": "Range at which the controller will not take action when above the",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 50,
   "name": "Cfg_IntegralTimeCooling",
   "description": "Reciprocal of the integral time in seconds (1/I or repeats per second)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 51,
   "name": "Cfg_CoolingAntiCycleDelay",
   "description": "In minutes to prevent the cooling outputs to cycle on and off",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 60,
   "name": "Cfg_NSBSetBackOverrideDelay",
   "description": "Time in minutes when in night setback and an override has been",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 61,
   "name": "Cfg_NoOccOverrideDelay",
   "description": "Time in minutes when unoccupied and an override has been activated on",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 62,
   "name": "Cfg_OccupancyMinTime",
   "description": "Time in minutes for minimum time to maintain occupancy mode after a",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 64,
   "name": "Cfg_DigitalInput2Delay",
   "description": "Time in seconds",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 72,
   "name": "Cfg_AnalogOutput2Min",
   "description": "Minimum control signal of the controlled element",
   "units": "V",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 73,
   "name": "Cfg_AnalogOutput2Max",
   "description": "Maximum control signal of the controlled element",
   "units": "V",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 75,
   "name": "FloatingTO1/TO2Timer",
   "description": "Time required by the valve actuator to complete a 90° run",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 77,
   "name": "Cfg_TO1ClosePos",
   "description": "That indicates at what percentage of the demand the contact closes to",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 78,
   "name": "Cfg_TO1OpenPos",
   "description": "That indicates at what percentage of the demand the contact opens to",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 79,
   "name": "Cfg_TO2ClosePos",
   "description": "",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 80,
   "name": "Cfg_TO2OpenPos",
   "description": "",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 93,
   "name": "Motor1Position",
   "description": "Damper actuator position of the master unit",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 94,
   "name": "Motor2Position",
   "description": "Damper actuator position of the slave unit",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 100,
   "name": "Cfg_PressureNumFilter",
   "description": "To stabilize the reading of the differential pressure transducer when balancing",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 101,
   "name": "Cfg_AirFlowKFactor1",
   "description": "Maximum airflow of the Master VAV box at 1\" w.c",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 102,
   "name": "Cfg_AirFlowCoolMin",
   "description": "Minimum cooling airflow when system is in cooling mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 103,
   "name": "Cfg_AirFlowCoolMax",
   "description": "Maximum cooling airflow when system is in cooling mode",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 104,
   "name": "Cfg_AirFlowHeatMin",
   "description": "Minimum heating airflow when system is in heating mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 105,
   "name": "Cfg_AirFlowHeatMax",
   "description": "Maximum cooling airflow when system is in heating mode",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 110,
   "name": "ActualAirFlow1",
   "description": "Actual converted airflow measured by the differential pressure transducer on the master",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 111,
   "name": "AirFlowSetPoint1",
   "description": "Airflow calculated by demand for the master unit",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 112,
   "name": "Cfg_AdjustAirFlow1Max",
   "description": "During airflow balancing sequence of the master unit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 113,
   "name": "Cfg_AdjustAirFlow1Min",
   "description": "During airflow balancing sequence of the master unit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 114,
   "name": "Cfg_AirFlow1Offset",
   "description": "To adjust the calibration of the differential pressure transducer of the master",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 116,
   "name": "Cfg_AirFlowHysteresisStop",
   "description": "Airflow setpoint percentage used to prevent damper actuator oscillations",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 117,
   "name": "Cfg_AirFlowHysteresisStart",
   "description": "Airflow setpoint percentage used to prevent actuator from oscillations",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 120,
   "name": "Cfg_AirFlowKFactor2",
   "description": "Maximum airflow of the slave VAV box at 1\" w.c",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 121,
   "name": "ActualAirFlow2",
   "description": "Actual converted airflow measured by the differential pressure transducer on the slave",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 122,
   "name": "AirFlowSetPoint2",
   "description": "Airflow calculated by demand for the slave unit",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 123,
   "name": "Cfg_AdjustAirFlow2Max",
   "description": "During airflow balancing sequence of the slave unit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 124,
   "name": "Cfg_AdjustAirFlow2Min",
   "description": "During airflow balancing sequence of the slave unit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 125,
   "name": "Cfg_AirFlow2Offset",
   "description": "To adjust the calibration of the differential pressure transducer of the slave",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 126,
   "name": "PressureInput2",
   "description": "Voltage output value in mV of the pressure sensor on the slave",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 127,
   "name": "Cfg_Pressure2NumFilter",
   "description": "To stabilize the reading of the differential pressure transducer when balancing the",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 128,
   "name": "Cfg_MixAirDeadBand",
   "description": "For snap acting, set to deadband mix to 0°C or 0°F. For",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 132,
   "name": "Cfg_Input3 Minimum Reading",
   "description": "This setting represents the deadband of the pressure sensor in mV. For",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 133,
   "name": "Cfg_Input3 Reading",
   "description": "Voltage output value in mV of the pressure sensor on the master",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 140,
   "name": "Cfg_CO2Range",
   "description": "Maximum range of the CO2 sensor (PPM) or the external sensor if",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 141,
   "name": "CO2Setpoint",
   "description": "Maximum limit of CO2 concentration before the EVC sends an alarm",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 145,
   "name": "Cfg_NetworkTimeOut",
   "description": "BMS temperature timeout when control source is network",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 165,
   "name": "CopyCfgStartAddress",
   "description": "When using copy config, this value represents the first address in the",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 166,
   "name": "CopyCfgEndAddress",
   "description": "When using copy config, this value represents the last address in the",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 167,
   "name": "CopyCfgResult",
   "description": "When using copy config, this value is used to verify that the",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 170,
   "name": "CL_HT_SwitchTimer",
   "description": "Time required before the changeover is permitted to take place (time in",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 171,
   "name": "CL_HT_SwitchTimerCount",
   "description": "Remaining time before the changeover is authorised",
   "units": "s",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 180,
   "name": "FloatingTO1/TO2",
   "description": "Status value to show the floating signal demand",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 182,
   "name": "TO1Pulsing",
   "description": "TR Status value to show the pulse signal demand",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 183,
   "name": "TO2Pulsing",
   "description": "Status value to show the pulse signal demand",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 1,
   "name": "DigitalInput1",
   "description": "Contact status of the input",
   "units": "",
   "access": "R",
   "states": "0 = Open 1 = Close"
  },
  {
   "type": "BI",
   "instance": 2,
   "name": "DigitalInput2",
   "description": "Contact status of the input",
   "units": "",
   "access": "R",
   "states": "0 = Open 1 = Close"
  },
  {
   "type": "BO",
   "instance": 1,
   "name": "TO1OnOff",
   "description": "Status value to show if TO1 is active or not",
   "units": "",
   "access": "W",
   "states": "0 = Off 1 = On"
  },
  {
   "type": "BO",
   "instance": 2,
   "name": "TO2OnOff",
   "description": "Status value to show if TO2 is active or not",
   "units": "",
   "access": "W",
   "states": "0 = Off 1 = On"
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "Cfg_TempUnitBACnet",
   "description": "Temperature units used in BACnet",
   "units": "",
   "access": "W",
   "states": "0 = Celsius, 1 = Fahrenheit"
  },
  {
   "type": "BV",
   "instance": 2,
   "name": "Cfg_TempSetPointLock",
   "description": "Lock the zone setpoint and prevent users to change the value",
   "units": "",
   "access": "W",
   "states": "0 = Disable, 1 = Enable"
  },
  {
   "type": "BV",
   "instance": 3,
   "name": "UserSysOffMode",
   "description": "Allow users to turn off the EVC. (0) Enable user to turn",
   "units": "",
   "access": "W",
   "states": "0 = Enable, 1 = Disable"
  },
  {
   "type": "BV",
   "instance": 4,
   "name": "Cfg_TempUnitTstat",
   "description": "User temperature units used on TRL. If set to (0), the temperature",
   "units": "",
   "access": "W",
   "states": "0 = Celsius, 1 = Fahrenheit"
  },
  {
   "type": "BV",
   "instance": 6,
   "name": "Cfg_FreezeProtection",
   "description": "Prevent a zone from falling below 4°C (39.2°F)",
   "units": "",
   "access": "W",
   "states": "0 = Off , 1 = On"
  },
  {
   "type": "BV",
   "instance": 7,
   "name": "Cfg_KeyPadUpperLeftLock",
   "description": "Lock the Cool/Heat button",
   "units": "",
   "access": "W",
   "states": "0 = Off, 1 = On (If set to “On”, functionality of these buttons will not be available.)"
  },
  {
   "type": "BV",
   "instance": 8,
   "name": "Cfg_KeyPadBottomLeftLock",
   "description": "Lock the °C/°F button",
   "units": "",
   "access": "W",
   "states": "0 = Off, 1 = On If set to “On”, functionality of these buttons will not be available."
  },
  {
   "type": "BV",
   "instance": 9,
   "name": "Cfg_KeyPadArrowsLock",
   "description": "Lock the arrow buttons",
   "units": "",
   "access": "W",
   "states": "0 = Off, 1 = On If set to “On”, functionality of these buttons will not be available."
  },
  {
   "type": "BV",
   "instance": 10,
   "name": "Cfg_ProgramLock",
   "description": "Lock the all TRL buttons",
   "units": "",
   "access": "W",
   "states": "0 = Off, 1 = On If set to “On”, functionality of these buttons will not be available."
  },
  {
   "type": "BV",
   "instance": 20,
   "name": "Cfg_NightSetBackMode",
   "description": "Determine the action of the EVC when in night setback",
   "units": "",
   "access": "W",
   "states": "0 = Setpoint, 1 = OFF"
  },
  {
   "type": "BV",
   "instance": 26,
   "name": "Cfg_AnalogOutput2Direction",
   "description": "Analog output direction",
   "units": "",
   "access": "W",
   "states": "0 = Direct, 1 = Reverse"
  },
  {
   "type": "BV",
   "instance": 30,
   "name": "Cfg_FloatingTO1/TO2Direction",
   "description": "TRIAC contact normal state (Normally Open, Normally Close) when MSV.26 TO1 Signal",
   "units": "",
   "access": "W",
   "states": "0 = Direct, 1 = Reverse"
  },
  {
   "type": "BV",
   "instance": 32,
   "name": "Cfg_TO1 Direction",
   "description": "TRIAC contact normal state value of the rotation when MSV.26 TO1 Signal",
   "units": "",
   "access": "W",
   "states": "0 = Direct, 1 = Reverse"
  },
  {
   "type": "BV",
   "instance": 33,
   "name": "Cfg_TO2 Direction",
   "description": "TRIAC contact normal state value of the rotation when MSV.28 TO2 Signal",
   "units": "",
   "access": "W",
   "states": "0 = Direct, 1 = Reverse"
  },
  {
   "type": "BV",
   "instance": 36,
   "name": "Cfg_Digital Input 2 Contact",
   "description": "Change the contact's normal position",
   "units": "",
   "access": "W",
   "states": "0 = Norm Open, 1 = Norm Close"
  },
  {
   "type": "BV",
   "instance": 40,
   "name": "Cfg_Motor1Direction",
   "description": "Change the rotation direction of the damper actuator of the Master unit",
   "units": "",
   "access": "W",
   "states": "0 = Direct, 1 = Reverse"
  },
  {
   "type": "BV",
   "instance": 41,
   "name": "Cfg_Motor2Direction",
   "description": "Change the rotation direction of the damper actuator of the Slave unit",
   "units": "",
   "access": "W",
   "states": "0 = Direct, 1 = Reverse"
  },
  {
   "type": "BV",
   "instance": 45,
   "name": "AirFlowBalancing1",
   "description": "Enable and disable the airflow balancing for the Master unit",
   "units": "",
   "access": "W",
   "states": "0= Disable, 1= Enable"
  },
  {
   "type": "BV",
   "instance": 46,
   "name": "AirFlowBalancing2",
   "description": "To enable and disable the airflow balancing for the Slave unit",
   "units": "",
   "access": "W",
   "states": "0= Disable, 1= Enable"
  },
  {
   "type": "BV",
   "instance": 48,
   "name": "Cfg_ConstantFlowOption",
   "description": "If set to \"no\", the controller can perform snap acting or perform",
   "units": "",
   "access": "W",
   "states": "0= No, 1= Yes"
  },
  {
   "type": "BV",
   "instance": 49,
   "name": "Cfg_Pressure2Option",
   "description": "Select Local or Total based on location of crossflow sensor",
   "units": "",
   "access": "W",
   "states": "0= Local, 1= Total"
  },
  {
   "type": "BV",
   "instance": 55,
   "name": "AL_HighCO2Level",
   "description": "Indicates that the CO2 concentration is above setpoint",
   "units": "",
   "access": "R",
   "states": "0= No, 1= Yes"
  },
  {
   "type": "BV",
   "instance": 56,
   "name": "AL_Override",
   "description": "Status to inform if an override is active",
   "units": "",
   "access": "R",
   "states": "0= No, 1= Yes"
  },
  {
   "type": "BV",
   "instance": 60,
   "name": "Cfg_DisplayRH",
   "description": "Determines if the thermostat displays the %RH value",
   "units": "",
   "access": "W",
   "states": "0= Off, 1= On"
  },
  {
   "type": "BV",
   "instance": 65,
   "name": "Cfg_DisplayCO2",
   "description": "Determines if the thermostat displays the CO2 value",
   "units": "",
   "access": "W",
   "states": "0= Off, 1= On"
  },
  {
   "type": "BV",
   "instance": 66,
   "name": "Cfg_CO2ControlSource",
   "description": "Determines the source of the CO2 reading",
   "units": "",
   "access": "W",
   "states": "0= Analog Input, 1= TRLG"
  },
  {
   "type": "BV",
   "instance": 70,
   "name": "Cfg_ActiveSchedule",
   "description": "Activate the schedule",
   "units": "",
   "access": "W",
   "states": "0= No, 1= Yes"
  },
  {
   "type": "BV",
   "instance": 90,
   "name": "CopyCfgExecute",
   "description": "When using copy config, this value is used to start the copy",
   "units": "",
   "access": "W",
   "states": "0= No, 1= Yes"
  },
  {
   "type": "BV",
   "instance": 91,
   "name": "Cfg_Pressure1Calibration",
   "description": "To recalibrate the differential pressure transducer of the Master unit",
   "units": "",
   "access": "W",
   "states": "0= No, 1= Yes"
  },
  {
   "type": "BV",
   "instance": 92,
   "name": "Cfg_Pressure1Calibration Lock",
   "description": "To unlock the calibration process of BV.91 of the Master unit",
   "units": "",
   "access": "W",
   "states": "0 = Lock, 1 = Unlock"
  },
  {
   "type": "MV",
   "instance": 2,
   "name": "Cfg_UniversalInputAI2Type",
   "description": "Input",
   "units": "",
   "access": "W",
   "states": "Off Extern Sensor CO2 Sensor Air Supply Temp"
  },
  {
   "type": "MV",
   "instance": 4,
   "name": "Cfg_TempControlSource",
   "description": "Control temperature to be used by the EVC. Intern Temp, the control",
   "units": "",
   "access": "W",
   "states": "Intern Sensor Extern Sensor Network Sensor"
  },
  {
   "type": "MV",
   "instance": 10,
   "name": "Cfg_NsbOccContact",
   "description": "DI1 mode",
   "units": "",
   "access": "W",
   "states": "Off Occ Norm Open Occ Norm Close NSB Norm Open NSB Norm Close"
  },
  {
   "type": "MV",
   "instance": 11,
   "name": "NsbOccCommand",
   "description": "Set the occupancy or night setback mode",
   "units": "",
   "access": "W",
   "states": "OFF/Locally/Locally Occupancy/OFF/OFF No Occupancy/Occupancy/Day -- /No Occupancy/Night"
  },
  {
   "type": "MV",
   "instance": 12,
   "name": "OccupancyStatus",
   "description": "Status that indicates the actual occupancy when occupancy is used",
   "units": "",
   "access": "R",
   "states": "NoOccupancy Occupancy Override"
  },
  {
   "type": "MV",
   "instance": 13,
   "name": "NightSetBackStatus",
   "description": "Status that indicates the actual mode of the zone when night setback",
   "units": "",
   "access": "R",
   "states": "Day Night Override"
  },
  {
   "type": "MV",
   "instance": 14,
   "name": "Cfg_DigitalInput2Type",
   "description": "DI2 mode",
   "units": "",
   "access": "W",
   "states": "Off Override Over Heat1 Over Heat2 Over Heat All"
  },
  {
   "type": "MV",
   "instance": 15,
   "name": "OverHeatStatus",
   "description": "Status to inform if a heat override is active",
   "units": "",
   "access": "R",
   "states": "OverHeatNormal Over Heat1 Over Heat2 Over Heat All"
  },
  {
   "type": "MV",
   "instance": 16,
   "name": "UserSystemMode",
   "description": "Zone mode the user has set on the TRL. Not to be",
   "units": "",
   "access": "W",
   "states": "Auto Heating Cooling Off"
  },
  {
   "type": "MV",
   "instance": 17,
   "name": "UserSysModeSelect",
   "description": "Set the permissions or restrictions to change the zone mode by the",
   "units": "",
   "access": "W",
   "states": "Auto Heating Cooling Heating or Cooling Auto Lock"
  },
  {
   "type": "MV",
   "instance": 22,
   "name": "Cfg_AnalogOutput2Ramp",
   "description": "Ramp used to modulate AO1 based on demand",
   "units": "",
   "access": "W",
   "states": "Off Cooling Ramp1 Cooling Ramp2 Heating Ramp1 Heating Ramp2 CO2 Alarm | CO2 Alarm (CO2): This ramp is used to activate or deactivate controlled elements based on CO2 levels. The ramp is configured with \"AV.140 CO2 Range\" and \"AV.141 CO2 Setpoint\". When \"BV.55 CO2 Alarm\" is activated, AO1 will activate as well. With this option, AO1 becomes a binary output (0 or 10Vdc)."
  },
  {
   "type": "MV",
   "instance": 25,
   "name": "Cfg_TO1Ramp",
   "description": "Ramp used to modulate (pulse or floating) or activate/deactivate (On/Off) TO1 based",
   "units": "",
   "access": "W",
   "states": "Off Cooling Ramp1 Cooling Ramp2 Heating Ramp1 Heating Ramp2 CO2 Alarm"
  },
  {
   "type": "MV",
   "instance": 26,
   "name": "Cfg_TO1SignalType",
   "description": "Output signal type",
   "units": "",
   "access": "W",
   "states": "Pulsing (If Hr1 or Hr2 is selected)  On_Off  Floating"
  },
  {
   "type": "MV",
   "instance": 27,
   "name": "Cfg_TO2Ramp",
   "description": "",
   "units": "",
   "access": "W",
   "states": "Off Cooling Ramp1 Cooling Ramp2 Heating Ramp1 Heating Ramp2 CO2 Alarm"
  },
  {
   "type": "MV",
   "instance": 28,
   "name": "Cfg_TO2SignalType",
   "description": "Output signal type",
   "units": "",
   "access": "W",
   "states": "Pulsing (If Hr1 or Hr2 is selected) 2On_Off 3Floating"
  },
  {
   "type": "MV",
   "instance": 35,
   "name": "Cfg_Motor1Ramp",
   "description": "Ramp used to modulate the damper actuator of the Master unit based",
   "units": "",
   "access": "W",
   "states": "Cooling Ramp1 Heating Ramp1"
  },
  {
   "type": "MV",
   "instance": 36,
   "name": "Cfg_NSBMotorMode",
   "description": "Set the motor position while in night setback",
   "units": "",
   "access": "W",
   "states": "Auto Open"
  },
  {
   "type": "MV",
   "instance": 37,
   "name": "Motor1PositionOverride",
   "description": "To override the motor position of the Master unit",
   "units": "",
   "access": "W",
   "states": "Auto Open Close Air Flow Min (heat/cool as per current mode) Air Flow Max (heat/cool as per current mode)"
  },
  {
   "type": "MV",
   "instance": 38,
   "name": "Motor2PositionOverride",
   "description": "To override the motor position of the Slave unit",
   "units": "",
   "access": "W",
   "states": "Auto Open Close Air Flow Min (heat/cool as per current mode) Air Flow Max (heat/cool as per current mode)"
  },
  {
   "type": "MV",
   "instance": 41,
   "name": "Cfg_AirFlowScale",
   "description": "Airflow scale used to get a better resolution when small airflows are",
   "units": "",
   "access": "W",
   "states": "Scale1 | Scale10 | Scale100"
  },
  {
   "type": "MV",
   "instance": 42,
   "name": "AirFlowBal1_Mode",
   "description": "Position the damper actuator of the Master unit to preset positions",
   "units": "",
   "access": "W",
   "states": "Closed | Min Flow | Max Flow | Full Open"
  },
  {
   "type": "MV",
   "instance": 43,
   "name": "AirFlowBal2_Mode",
   "description": "Position the damper actuator of the Slave unit to preset positions",
   "units": "",
   "access": "W",
   "states": "Closed | Min Flow | Max Flow | Full Open"
  },
  {
   "type": "MV",
   "instance": 95,
   "name": "Cfg_DisplayInfo",
   "description": "Information displayed on the TRL. Display Temp Demand: the TRL will display",
   "units": "",
   "access": "W",
   "states": "Temp and Demand | Setpoint and Demand Temp only | Setpoint only | Off"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/neptronic/evcbm-dual-duct-vav-controller",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
