{
 "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": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
