{
 "manufacturer": "TROX",
 "manufacturer_slug": "trox",
 "model": "XDMB0 compact VAV control component (TVE, BACnet MS/TP)",
 "model_slug": "xdmb0-compact-control-component",
 "aliases": [
  "XDMB0",
  "TVE XDMB0",
  "TVE-Q",
  "Compact XDMB0"
 ],
 "equipment_type": "VAV box controller (compact, built-in damper drive)",
 "applies_to": "TROX TVE and TVE-Q VAV terminal units fitted with the XDMB0 compact control component.",
 "summary": "XDMB0 is the compact actuator-controller TROX fits to its TVE and TVE-Q VAV units. It speaks Modbus RTU or BACnet MS/TP and exposes 23 objects: airflow setpoint (AO 0) and override (MO 1), actual airflow and damper position, operating limits, a bus-failure watchdog and status objects. Some objects are listed but marked as not supported.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": "SW 116.955.11.2022, FW 101.1.10.2020/GR",
 "default_device_instance": 1,
 "access_inferred": false,
 "notes": [
  "Min, Max, BusFailWatchdog, SpSource and UnitSel (marked W¹ in the manual) are stored in EEPROM; the manual says they must not be written cyclically.",
  "AO 0 and MO 1 are commandable (priority array).",
  "Mid (AV 118), Sens1Switch (BI 8), Sens1Type (MV 107) and ControlMode (MV 123) are visible but not (fully) supported.",
  "The airflow unit for AI 7 and AV 233 follows MV 201 UnitSel (default m³/h)."
 ],
 "source": {
  "title": "Control component Compact XDMB0 - Installation, operation and maintenance manual",
  "doc_number": "CD10105 V1",
  "revision_date": "2025-05",
  "url": "https://www.trox.de/en/downloads/6c1db795aa3c72ce/XDMB0_IOM_CD10105_V1_2025_05_GB_en--1-.pdf"
 },
 "points": [
  {
   "type": "AI",
   "instance": 0,
   "name": "RelSpAnalogue",
   "description": "Setpoint read at analogue input Y (analogue mode only)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "RelPos",
   "description": "Damper opening, 0 = closed",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "AbsPos",
   "description": "Damper travel from closed, service use only",
   "units": "°",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "RelActual_Value",
   "description": "Actual airflow, % of nominal",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "AbsActual_Value",
   "description": "Actual airflow in the unit set by MV 201",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "Sens1Analogue",
   "description": "Signal voltage at input Y",
   "units": "mV",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 0,
   "name": "RelSpBus",
   "description": "Airflow setpoint via bus, % of Min..Max range",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 105,
   "name": "Min",
   "description": "Lower operating limit qvmin, % of nominal",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 106,
   "name": "Max",
   "description": "Upper operating limit qvmax, % of nominal",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 109,
   "name": "BusFailWatchdog",
   "description": "Bus failure timeout, 0 = off (default 120)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 118,
   "name": "Mid",
   "description": "Visible but not fully supported",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 233,
   "name": "AbsNomValue",
   "description": "Nominal airflow of the unit (unit per MV 201)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 0,
   "name": "SummaryStatus",
   "description": "Collective fault (StatusActuator + StatusDevice)",
   "units": "",
   "access": "R",
   "states": "0=OK, 1=Not_OK"
  },
  {
   "type": "BI",
   "instance": 8,
   "name": "Sens1Switch",
   "description": "Visible but not supported",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "MI",
   "instance": 2,
   "name": "InternalActivity",
   "description": "Internal activity such as test or adaptation run",
   "units": "",
   "access": "R",
   "states": "1=None, 2=Test, 3=Adaptation"
  },
  {
   "type": "MI",
   "instance": 104,
   "name": "StatusActuator",
   "description": "Actuator status",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=EEPROM Error, 3=Under voltage, 4=Actuator cannot move (actuator blocked)"
  },
  {
   "type": "MI",
   "instance": 109,
   "name": "StatusDevice",
   "description": "Bus failure watchdog status",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=Bus watchdog triggered"
  },
  {
   "type": "MO",
   "instance": 1,
   "name": "Override",
   "description": "Override of the setpoint",
   "units": "",
   "access": "C",
   "states": "1=None, 2=Open, 3=Close, 4=Min, 5=Max, 6-8=not in use, 9=Stop"
  },
  {
   "type": "MV",
   "instance": 2,
   "name": "Command",
   "description": "Service command; returns to None",
   "units": "",
   "access": "W",
   "states": "1=None, 2=Adaptation, 3=Test, 4=Reset"
  },
  {
   "type": "MV",
   "instance": 107,
   "name": "Sens1Type",
   "description": "Visible but not supported with TVE(-Q)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 122,
   "name": "SpSource",
   "description": "Setpoint source",
   "units": "",
   "access": "W",
   "states": "1=Analogue, 2=Bus"
  },
  {
   "type": "MV",
   "instance": 123,
   "name": "ControlMode",
   "description": "Only standard closed-loop operation (2) permitted",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 201,
   "name": "UnitSel",
   "description": "Airflow unit",
   "units": "",
   "access": "W",
   "states": "1=l/s, 2=m³/h, 5=cfm"
  }
 ],
 "integration": {
  "summary": "Set MV 122 SpSource to Bus (the default), then write the airflow setpoint to AO 0 RelSpBus as a percentage of the Min..Max range; use MO 1 Override for open/close/min/max. Read AI 6 or AI 7 for actual airflow, AI 4 for damper position and BI 0 for faults. Set AV 109 so the unit falls back to a safe state if the BMS stops writing.",
  "minimum_points": [
   {
    "ref": "AO 0",
    "name": "RelSpBus",
    "why": "Airflow setpoint between Min and Max"
   },
   {
    "ref": "AI 7",
    "name": "AbsActual_Value",
    "why": "Measured airflow"
   },
   {
    "ref": "AI 4",
    "name": "RelPos",
    "why": "Damper position feedback"
   },
   {
    "ref": "BI 0",
    "name": "SummaryStatus",
    "why": "Overall OK / not OK alarm"
   }
  ],
  "enable": "MV 122 SpSource selects the setpoint source: 2 = Bus (default, AO 0 is used and input Y ignored), 1 = Analogue (input Y only, AO 0 goes out of service).",
  "heartbeat": "AV 109 BusFailWatchdog sets the bus-failure timeout in seconds (default 120, 0 = off). It is reset by every successful write to AO 0 or MO 1, so the BMS must keep writing one of them; when it expires the AO 0 Relinquish_Default applies and MI 109 shows the trip.",
  "remote_sensors": null,
  "setup": [
   "BACnet MS/TP, address 0..127 (default 1); baud 9600-115200, factory setting bc3 = 38400.",
   "Address and comms parameters are set on the display, with the GUIV3-M adjustment device or the WINVAV2 PC software.",
   "Default device instance 1; change it to a unique number."
  ],
  "gotchas": [
   "Do not write the EEPROM objects (AV 105, AV 106, AV 109, MV 122, MV 201) cyclically; AO 0 and MO 1 are the objects meant for frequent writes.",
   "AV 109 counts from power-up until the first write, so a unit can trip its watchdog before the BMS starts writing.",
   "With TVE units 100 % opening is not a 90° blade angle; use RelPos, not AbsPos, for open/closed."
  ]
 },
 "page": "https://easybacnet.com/bacnet-points-lists/trox/xdmb0-compact-control-component",
 "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"
}
