{
 "manufacturer": "Belimo",
 "manufacturer_slug": "belimo",
 "model": "VAV-Universal VRU",
 "model_slug": "vav-universal-vru",
 "aliases": [
  "VAV-Universal",
  "VRU-D3-BAC",
  "VRU-M1-BAC",
  "VRU-M1R-BAC",
  "VRU-..-BAC"
 ],
 "equipment_type": "VAV / CAV / pressure controller",
 "applies_to": "Belimo VAV-Universal controllers VRU-D3-BAC, VRU-M1-BAC and VRU-M1R-BAC used for VAV/CAV airflow, duct pressure and room pressure control.",
 "summary": "The VAV-Universal VRU is a damper controller with an integrated differential pressure sensor that is paired with a separate actuator. The damper manufacturer selects the application (flow control, pressure control, room pressure control or flow measurement), and the AO 1 setpoint is interpreted to match. Over BACnet MS/TP it reports airflow, differential pressure, position and status, and accepts setpoint, limits and override commands.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": "Application 01.04.0006, firmware 14.10.0002",
 "default_device_instance": 1,
 "access_inferred": false,
 "notes": [
  "Which objects are in service depends on the application in MV 2; airflow objects are out of service in pressure applications and vice versa.",
  "MV 2 ApplicationSel and MV 100 ControlMode are read-only over BACnet; they are set by the damper manufacturer.",
  "Room pressure control and MV 102 OperationMode apply to the VRU-M1R-BAC only.",
  "MI 103 has no access marking in the document; it is listed as read-only.",
  "The sensor input S1 is not available while the room pressure cascade (MV 10) is enabled."
 ],
 "integration": {
  "summary": "SpSource defaults to Bus, so the BMS can command AO 1 SpRel straight away; it is interpreted as flow, pressure or position per the factory-set application and is scaled between Min and Max. Read airflow or differential pressure plus BI 101 for alarms. If the bus watchdog is enabled, keep writing AO 1 or MO 1 inside the timeout.",
  "minimum_points": [
   {
    "ref": "AO 1",
    "name": "SpRel",
    "why": "Flow, pressure or position setpoint"
   },
   {
    "ref": "AI 19",
    "name": "AbsFlow_UnitSel",
    "why": "Measured airflow"
   },
   {
    "ref": "AI 18",
    "name": "DeltaP_UnitSel",
    "why": "Measured differential pressure"
   },
   {
    "ref": "AI 1",
    "name": "RelPos",
    "why": "Damper position feedback"
   },
   {
    "ref": "BI 101",
    "name": "SummaryStatus",
    "why": "Overall OK / not OK alarm"
   }
  ],
  "enable": "MV 122 SpSource = 2 (Bus, default) makes AO 1 the active setpoint; Analog uses the signal on wire 3, and then the watchdog only tracks MO 1.",
  "heartbeat": "AV 130 BusWatchdog, 0-3600 s, 0 = disabled. Writes to AO 1 or MO 1 reset the timer; on timeout their priority arrays are cleared and the relinquish defaults apply, and MI 110 shows Bus watchdog triggered.",
  "remote_sensors": "Sensor 1 can be read when MV 220 is Active (0-10 V) or Passive (resistance) in AI 20, or Switch in BI 20. With the room pressure cascade enabled, S1 becomes the 0-10 V cascade input instead.",
  "setup": [
   "MS/TP only: baud 9600-115200, default 38400; MAC address 0-127, default 1; max 32 nodes without repeater.",
   "Default device instance 1.",
   "Configure with Belimo Assistant 2.",
   "AV 120 SystemAltitude (0-3000 m above sea level) is writable; set it to the installed altitude."
  ],
  "gotchas": [
   "Writable objects with instance 90 and above are persistent; do not write them on a regular basis.",
   "Min cannot be set above Max, and Max is limited to 20-100%.",
   "Airflow-not-reached is flagged after 600 s and pressure-not-reached after 180 s.",
   "Max 6 active COV subscriptions."
  ]
 },
 "source": {
  "title": "BACnet Interface Description, VAV-Universal VRU-D3-BAC, VRU-M1-BAC, VRU-M1R-BAC",
  "doc_number": null,
  "revision_date": "2026-01 / V1.04",
  "url": "https://www.belimo.com/mam/general-documents/system_integration/BACnet/belimo_BACnet_Interface-description_VRU_V1_4_en-gb.pdf"
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "RelPos",
   "description": "Relative damper position in adapted range",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "AbsPos",
   "description": "Absolute angular position",
   "units": "°",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "SpAnalog",
   "description": "Analog setpoint (flow, pressure or position)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "RelDeltaP",
   "description": "Differential pressure relative to nominal (AV 122)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "RelFlow",
   "description": "Airflow relative to nominal (AV 112)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "AbsFlow_m3h",
   "description": "Absolute airflow",
   "units": "m³/h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 18,
   "name": "DeltaP_UnitSel",
   "description": "Differential pressure in selected unit",
   "units": "Pa or in. W.C. (MV 127)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 19,
   "name": "AbsFlow_UnitSel",
   "description": "Absolute airflow in selected unit",
   "units": "m³/h, l/s or cfm (MV 121)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 20,
   "name": "Sens1Analog",
   "description": "Sensor 1 value (0-10 V or resistance)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 29,
   "name": "DeltaP_Pa",
   "description": "Differential pressure",
   "units": "Pa",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 1,
   "name": "SpRel",
   "description": "Relative setpoint (flow, pressure or position), scaled Min-Max",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 97,
   "name": "Min",
   "description": "Minimum setpoint limit",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 98,
   "name": "Max",
   "description": "Maximum setpoint limit (20-100%)",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 112,
   "name": "Vnom_m3h",
   "description": "Nominal airflow",
   "units": "m³/h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 119,
   "name": "Vnom_UnitSel",
   "description": "Nominal airflow in selected unit",
   "units": "m³/h, l/s or cfm (MV 121)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 120,
   "name": "SystemAltitude",
   "description": "Installation altitude above sea level",
   "units": "m",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 122,
   "name": "DeltaPnom_Pa",
   "description": "Nominal differential pressure of sensor",
   "units": "Pa",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 129,
   "name": "DeltaPnom_UnitSel",
   "description": "Nominal differential pressure in selected unit",
   "units": "Pa or in. W.C. (MV 127)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 130,
   "name": "BusWatchdog",
   "description": "Bus watchdog timeout, 0 = disabled",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 20,
   "name": "Sens1Switch",
   "description": "Sensor 1 switch input status",
   "units": "",
   "access": "R",
   "states": "0=Inactive, 1=Active"
  },
  {
   "type": "BI",
   "instance": 99,
   "name": "BusTermination",
   "description": "120 Ω bus termination enabled",
   "units": "",
   "access": "R",
   "states": "0=Disabled, 1=Enabled"
  },
  {
   "type": "BI",
   "instance": 101,
   "name": "SummaryStatus",
   "description": "Summary of all status objects",
   "units": "",
   "access": "R",
   "states": "0=OK, 1=Not OK"
  },
  {
   "type": "MV",
   "instance": 2,
   "name": "ApplicationSel",
   "description": "Application set by the damper manufacturer",
   "units": "",
   "access": "R",
   "states": "1=Flow control, 2=Pressure control, 3=Room pressure control, 4=Flow measurement"
  },
  {
   "type": "MV",
   "instance": 10,
   "name": "RmPCascade",
   "description": "Room pressure cascade via sensor input S1",
   "units": "",
   "access": "R",
   "states": "1=Disabled, 2=Enabled, 3=Enabled fast (M1R only)"
  },
  {
   "type": "MI",
   "instance": 100,
   "name": "InternalActivity",
   "description": "Internal activity running",
   "units": "",
   "access": "R",
   "states": "1=None, 2=Test, 3=Adaptation, 4=Synchronization"
  },
  {
   "type": "MI",
   "instance": 103,
   "name": "StatusSensor",
   "description": "Differential pressure sensor status",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=dP sensor not OK, 3=dP sensor out of range, 4=dP sensor wrong connected"
  },
  {
   "type": "MI",
   "instance": 104,
   "name": "StatusFlow",
   "description": "Airflow status",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=–, 3=Airflow not reached"
  },
  {
   "type": "MI",
   "instance": 106,
   "name": "StatusActuator",
   "description": "Actuator status",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=–, 3=Gear train disengaged, 4=–, 5=Actuator doesn't fit to application"
  },
  {
   "type": "MI",
   "instance": 109,
   "name": "StatusPressure",
   "description": "Differential pressure control status",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=–, 3=Pressure not reached"
  },
  {
   "type": "MI",
   "instance": 110,
   "name": "StatusDevice",
   "description": "Device status (bus watchdog)",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=Bus watchdog triggered"
  },
  {
   "type": "MO",
   "instance": 1,
   "name": "Override",
   "description": "Override control of the setpoint",
   "units": "",
   "access": "C",
   "states": "1=None, 2=Open, 3=Close, 4=Min, 5=–, 6=Max, 7=–, 8=–, 9=Motor stop"
  },
  {
   "type": "MV",
   "instance": 100,
   "name": "ControlMode",
   "description": "Control mode set by damper manufacturer",
   "units": "",
   "access": "R",
   "states": "1=PosCtrl, 2=FlowCtrl"
  },
  {
   "type": "MV",
   "instance": 102,
   "name": "OperationMode",
   "description": "Room pressure direction (VRU-M1R-BAC only)",
   "units": "",
   "access": "W",
   "states": "1=Negative pressure, 2=Positive pressure"
  },
  {
   "type": "MV",
   "instance": 120,
   "name": "Command",
   "description": "Start adaptation, test run or synchronization",
   "units": "",
   "access": "W",
   "states": "1=None, 2=Adaptation, 3=Test run, 4=Synchronization"
  },
  {
   "type": "MV",
   "instance": 121,
   "name": "UnitSelAirFlow",
   "description": "Engineering unit for airflow objects",
   "units": "",
   "access": "W",
   "states": "1=–, 2=m³/h, 3=l/s, 4=–, 5=–, 6=–, 7=cfm"
  },
  {
   "type": "MV",
   "instance": 122,
   "name": "SpSource",
   "description": "Setpoint source: analog wire 3 or bus AO 1",
   "units": "",
   "access": "W",
   "states": "1=Analog, 2=Bus"
  },
  {
   "type": "MV",
   "instance": 127,
   "name": "UnitSelPressure",
   "description": "Engineering unit for pressure objects",
   "units": "",
   "access": "W",
   "states": "1=Pascal, 2=–, 3=Inches of water"
  },
  {
   "type": "MV",
   "instance": 220,
   "name": "Sens1Type",
   "description": "Sensor 1 type",
   "units": "",
   "access": "W",
   "states": "1=None, 2=Active, 3=Passive, 4=–, 5=Switch"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/belimo/vav-universal-vru",
 "note": "Provided as-is. Point availability varies by firmware and options; verify against the live device.",
 "disclaimer": "DISCLAIMER: reference only, provided AS IS with no warranty. May contain errors or be out of date. You must verify every point against the manufacturer's current documentation and the live device before use. easybacnet.com accepts no liability for its use and is not affiliated with the manufacturer. Terms: https://easybacnet.com/terms#content"
}
