{
 "manufacturer": "Condair",
 "manufacturer_slug": "condair",
 "model": "Condair DL (BACnet gateway board)",
 "model_slug": "dl-gateway-board",
 "aliases": [
  "Virtual_BCU_DL",
  "DL ProtoCessor gateway",
  "BMS DL BACnet"
 ],
 "equipment_type": "Hybrid humidifier BACnet gateway",
 "applies_to": "Condair DL hybrid humidifiers (Integrated Controller 5.9.x.x) fitted with the optional BACnet/LonWorks gateway board.",
 "summary": "Older or retrofit Condair DL units can reach BACnet IP or MS/TP through an optional ProtoCessor gateway board that maps the controller's Modbus data to BACnet objects. The virtual device exposes status, Ag-Ion hygiene data, pressures, PI settings, remote flush/wash-over commands and valve states.",
 "bacnet_transport": [
  "BACnet IP",
  "BACnet MS/TP"
 ],
 "firmware": "Integrated Controller 5.9.x.x",
 "default_device_instance": "300 (BACnet IP); 1001 (MS/TP)",
 "access_inferred": false,
 "notes": [
  "These objects belong to the optional ProtoCessor (FieldServer) BACnet/LonWorks gateway board, not the BACnet on-board interface; object names and instances differ between the two.",
  "Gateway defaults: IP 192.168.1.24 (boards shipped from February 2022; earlier boards 10.232.72.172), network number 101, MS/TP MAC 127 and MS/TP Node_ID 1001; settings are edited in the gateway's config.csv via its web GUI.",
  "The gateway talks to the Integrated Controller over Modbus RTU, so the controller signal source is set to Modbus (not BACnet) and its own BACnet on-board function must be Off.",
  "Capacity, pressure and temperature units follow the controller's Metric/Imperial setting."
 ],
 "source": {
  "title": "Gateway Board for BACnet and LonWorks - Supplemental Installation and Operation Manual",
  "doc_number": "2585293-L",
  "revision_date": "2022-02",
  "url": "https://www.condair.com/consense/bms-communication-ic-1.0/am_bms_interface_2585293_en_condairltd.pdf"
 },
 "integration": {
  "summary": "Configure the DL controller for Modbus RTU (address 10, even, 9600) with Signal Source = Modbus, set the gateway's BACnet IP or MS/TP parameters, then write demand or RH to AO 1. Watch BI 14 to confirm the gateway still sees the humidifier.",
  "minimum_points": [
   {
    "ref": "AO 1",
    "name": "AO_RemRHorDem",
    "why": "Demand or measured RH from the BMS"
   },
   {
    "ref": "AV 1",
    "name": "AV_SetPointHum",
    "why": "Humidity setpoint used in RH P/PI mode"
   },
   {
    "ref": "MI 1",
    "name": "MI_HumStatus",
    "why": "Operating status"
   },
   {
    "ref": "AI 6",
    "name": "AI_ActCapHum",
    "why": "Actual spray water output"
   },
   {
    "ref": "BI 14",
    "name": "BI_Connection",
    "why": "Gateway-to-humidifier node status"
   },
   {
    "ref": "MI 2",
    "name": "MI_ServStatus",
    "why": "Maintenance/fault status"
   },
   {
    "ref": "AI 1",
    "name": "AI_ErrorCode",
    "why": "Active error code"
   }
  ],
  "enable": "Set Control Settings (password 0335) > Signal Source to Modbus, choose the Control Mode (Demand, RH P or RH PI), and set the controller's Modbus RTU parameters to match the gateway.",
  "heartbeat": "Controller BMS Timeout (1-300 s, default 300 s): if the control signal is not updated within the timeout, warning W35 BMS Timeout is raised and humidification stops until a valid signal returns. The gateway only forwards the control value to the humidifier when it changes.",
  "remote_sensors": "In Demand mode the BMS writes the required output (0-100 %) to the AO 1. In RH P or RH PI mode the BMS writes the measured humidity there and the controller's own setpoint, P-band and I-time AVs do the control. Do not connect a hard-wired demand or sensor signal while the BACnet signal is used.",
  "setup": [
   "Integrated Controller Communication submenu (password 0335): Modbus/RTU, address 10, even parity, 9600 baud, MSR first; disable the controller's own BACnet function.",
   "Gateway factory settings: BACnet IP device instance DL 300, ME 410, RS 710 (EL 220); MS/TP 9600 baud, MAC 127, Node_ID 1001.",
   "Gateway IP defaults to 192.168.1.24/24 for boards built from February 2022 (10.232.72.172/16 before); configure via the FS-GUI web page on port 80.",
   "Device instance, network number (default 101) and MS/TP MAC are edited in the gateway's config.csv."
  ],
  "gotchas": [
   "Because the gateway only passes the control value on when it changes, rewriting an identical value may not refresh the controller's BMS timeout; the manual does not describe a workaround.",
   "Object names and instances differ from the BACnet on-board interface of the same humidifier; do not reuse an on-board mapping.",
   "Capacity, pressure and temperature units follow the controller's Metric/Imperial setting."
  ]
 },
 "points": [
  {
   "type": "DEV",
   "instance": 300,
   "name": "Virtual_BCU_DL",
   "description": "Humidifier DL",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "MI",
   "instance": 1,
   "name": "MI_HumStatus",
   "description": "Operating status",
   "units": "",
   "access": "R",
   "states": "1=Initializing, 2=Diagnostic, 3=Stopped, 4=Flushing, 5=Standby, 6=Flushed, 7=Humidifying, 8=Ready, 9=Refreshing, 10=Air Pressure Cleaning, 11=Filling, 12=Conductivity Flush, 13=Switched Off, 14=Remote Off, 15=Regenerating, 16=Temperature Flush, 17=Ceramic Wash Over"
  },
  {
   "type": "MI",
   "instance": 2,
   "name": "MI_ServStatus",
   "description": "Maintenance and malfunctions status",
   "units": "",
   "access": "R",
   "states": "1=Service Info, 2=Warning, 3=Activation Code, 4=Out of Commissioning, 5=Refill Disinfection, 6=Service, 7=Fault, 8=Replace Ag Cartridge, 9=Disinfection"
  },
  {
   "type": "MI",
   "instance": 3,
   "name": "MI_HumType",
   "description": "Device type",
   "units": "",
   "access": "R",
   "states": "1=Hum, 2=Hum + FC, 3=Hum + RO-C, 4=Hum + FC-off"
  },
  {
   "type": "AI",
   "instance": 1,
   "name": "AI_ErrorCode",
   "description": "Error code",
   "units": "",
   "access": "R",
   "states": "0=no Error"
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "AI_OperatHours",
   "description": "Operating hours",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "AI_HoursToServ",
   "description": "Next service",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "AI_RHorDemand",
   "description": "Actual humidity or demand",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "AI_MaxHumOut",
   "description": "Max. capacity",
   "units": "kg/h or lb/h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "AI_ActCapHum",
   "description": "Actual capacity",
   "units": "kg/h or lb/h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "AI_RemCapSilv",
   "description": "Remaining Ag-Ion capacity",
   "units": "Ah",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "AI_TaAgCurrent",
   "description": "Target Ag-Ion current",
   "units": "mA",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "AI_PressInlet",
   "description": "Inlet pressure PS4",
   "units": "bar or psi",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "AI_PressNozzle",
   "description": "Nozzle pressure PS5",
   "units": "bar or psi",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "AI_ActPermTemp",
   "description": "Water temperature",
   "units": "°C or °F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "AI_ActPermCond",
   "description": "Conductivity",
   "units": "µS/cm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "AI_PumpCurrent",
   "description": "Pump current",
   "units": "A",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 14,
   "name": "AI_AgCurrent",
   "description": "Ag-Ion current",
   "units": "mA",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "AV_SetPointHum",
   "description": "Humidity setpoint",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "AV_PropBand",
   "description": "Proportional band",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "AV_IntTime",
   "description": "Integral time",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "AV_CapLimit",
   "description": "Manual capacity",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "AV_RemoteFlush",
   "description": "Remote flush",
   "units": "",
   "access": "W",
   "states": "Read: 0=Off, 2=Flushing active, Write: 0=Stop flushing, 1=Start flushing"
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "AV_CeramicWashOver",
   "description": "Ceramic wash over",
   "units": "",
   "access": "W",
   "states": "Read: 0=Off, 2=Ceramic wash over active, Write: 0=Stop ceramic wash over, 1=Start ceramic wash over"
  },
  {
   "type": "AO",
   "instance": 1,
   "name": "AO_RemRHorDem",
   "description": "Actual humidity or demand via BACnet",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 1,
   "name": "BI_ExtSChSta",
   "description": "Safety loop",
   "units": "",
   "access": "R",
   "states": "0=Open, 1=Closed (ok)"
  },
  {
   "type": "BI",
   "instance": 2,
   "name": "BI_ValveY1",
   "description": "Y1 inlet valve",
   "units": "",
   "access": "R",
   "states": "0=Closed, 1=Open"
  },
  {
   "type": "BI",
   "instance": 3,
   "name": "BI_ValveY2",
   "description": "Y2 valve",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 4,
   "name": "BI_ValveY3",
   "description": "Y3 valve air cleaning",
   "units": "",
   "access": "R",
   "states": "0=Closed, 1=Open"
  },
  {
   "type": "BI",
   "instance": 5,
   "name": "BI_ValveY4",
   "description": "Y4 valve external pipe flush",
   "units": "",
   "access": "R",
   "states": "0=Closed, 1=Open"
  },
  {
   "type": "BI",
   "instance": 6,
   "name": "BI_StageValveY5",
   "description": "Y5 valve spray circuit",
   "units": "",
   "access": "R",
   "states": "0=Closed, 1=Open"
  },
  {
   "type": "BI",
   "instance": 7,
   "name": "BI_StageValveY6",
   "description": "Y6 valve spray circuit",
   "units": "",
   "access": "R",
   "states": "0=Closed, 1=Open"
  },
  {
   "type": "BI",
   "instance": 8,
   "name": "BI_StageValveY7",
   "description": "Y7 valve spray circuit",
   "units": "",
   "access": "R",
   "states": "0=Closed, 1=Open"
  },
  {
   "type": "BI",
   "instance": 9,
   "name": "BI_StageValveY8",
   "description": "Y8 valve spray circuit",
   "units": "",
   "access": "R",
   "states": "0=Closed, 1=Open"
  },
  {
   "type": "BI",
   "instance": 10,
   "name": "BI_StageValveY9",
   "description": "Y9 valve spray circuit",
   "units": "",
   "access": "R",
   "states": "0=Closed, 1=Open"
  },
  {
   "type": "BI",
   "instance": 11,
   "name": "BI_DrainValY10",
   "description": "Y10 valve drain (NO)",
   "units": "",
   "access": "R",
   "states": "0=Open, 1=Closed"
  },
  {
   "type": "BI",
   "instance": 12,
   "name": "BI_ValveY11",
   "description": "Y11 auxiliary outlet valve",
   "units": "",
   "access": "R",
   "states": "0=Open, 1=Closed"
  },
  {
   "type": "BI",
   "instance": 13,
   "name": "BI_Pump",
   "description": "FC enable",
   "units": "",
   "access": "R",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "BI",
   "instance": 14,
   "name": "BI_Connection",
   "description": "Node status",
   "units": "",
   "access": "R",
   "states": "0=Node offline, 1=Node online"
  }
 ],
 "short_model": "DL (BACnet gateway board)",
 "page": "https://easybacnet.com/bacnet-points-lists/condair/dl-gateway-board",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
