{
 "manufacturer": "Acutherm",
 "manufacturer_slug": "acutherm",
 "model": "Advantage Digital VAV Diffuser",
 "model_slug": "advantage-digital-vav-diffuser",
 "aliases": [
  "Advantage",
  "ADV",
  "ADVM",
  "ADVS",
  "ADVR",
  "Acutherm Advantage"
 ],
 "equipment_type": "Digital VAV diffuser (master unit)",
 "applies_to": "Acutherm Advantage master diffusers (with drone diffusers slaved to them) fitted with the native BACnet option.",
 "summary": "The Advantage is a motorised VAV diffuser: each master unit has its own controller and wall thermostat and can drive up to five drone diffusers with a 0-10 V signal. With the optional native BACnet module each master is a BACnet MS/TP device; drones have no BACnet presence. The BMS overrides setpoint, room temperature and occupancy through the Net* objects rather than writing the room setpoint directly. All objects are AVs and AIs, with codes in place of binary or multistate objects.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": "3.0.5 Rev A 1027v",
 "default_device_instance": "100 plus the MAC address (e.g. 101)",
 "notes": [
  "Every object is an AI or AV; occupancy, overrides and contact states are numeric codes in AVs.",
  "AV 6 Room Setpoint is read-only over BACnet; write AV 28 Net Setpoint to change the setpoint from the BMS.",
  "AI 8-9 are for the wireless thermostat; AI 10-11 need the CO2/humidity thermostat; AV 2-3 need the occupancy thermostat.",
  "AV 41-44 apply only with the DMS airflow measurement option.",
  "Acutherm marks the controller tuning AVs (AV 1, 15-17, 26, 32, 13, 45) as not to be changed without its approval.",
  "Source title: Manual - List of BACnet Objects, Advantage Digital VAV Diffusers (v001, 12/29/21). Transport and addressing details come from the Advantage installation manual (Manual ADV 200)."
 ],
 "source": {
  "title": "Manual - List of BACnet Objects: Advantage Digital VAV Diffusers",
  "doc_number": "v001",
  "revision_date": "2021-12-29",
  "url": "https://holyoake.com/wp-content/uploads/2023/03/Manual_ADV_BACNet_001_v001_3.pdf"
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "Room Temperature",
   "description": "Current Room Temperature",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "N/A",
   "description": "Unused placeholder",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "Supply Air Temperature",
   "description": "Current Supply Air Temperature",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "Analog Input J18",
   "description": "Spare 0-10 V input (J18)",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "Analog Input 4",
   "description": "Spare 0-10 V input, IO board AI4",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "Analog Input 5",
   "description": "Spare 0-10 V input, IO board AI5",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "Analog Input 6",
   "description": "Spare 0-10 V input, IO board AI6",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "Wireless Signal Strength or N/A",
   "description": "Signal strength from the wireless thermostat",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "Wireless Battery Code or N/A",
   "description": "Battery code from the wireless thermostat",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "Room CO²",
   "description": "Current CO² at the T-Stat",
   "units": "ppm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "Room Humidity",
   "description": "Current Relative Humidity at the T-Stat",
   "units": "%RH",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "Control Model",
   "description": "Setpoint source (thermostat or not connected)",
   "units": "",
   "access": "R",
   "states": "2=Thermostat Setpoint, 3=T-Stat not connected"
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "Occupancy",
   "description": "Current occupancy state",
   "units": "",
   "access": "R",
   "states": "0=Unoccupied, 1=Occupied"
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "Occupancy Source",
   "description": "What set the current occupancy",
   "units": "",
   "access": "R",
   "states": "0=Occupied Default Mode, 2=Occupied from Contact Closure, 3=Occupied from T-Stat Button Press, 4=Occupied from Motion Sensor, 5=Occupied from Network Override (AV30), 12=Unoccupied from Contact Closure, 14=Unoccupied from Motion Sensor, 15=Unoccupied from Network Override"
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "Room Setpoint - Low Limit",
   "description": "Lowest user-adjustable room setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "Room Setpoint - High Limit",
   "description": "Highest user-adjustable room setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "Room Setpoint",
   "description": "Current room setpoint (limited by AV 4/AV 5)",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "Night Heat Setpoint",
   "description": "Unoccupied heating setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "Night Cool Setpoint",
   "description": "Unoccupied cooling setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "Binary Output Application",
   "description": "Spare binary output function",
   "units": "",
   "access": "W",
   "states": "0=On in heat, 1=On in cooling, 2=On in heat & cool, 3=On in deadband, 4=Room lights (motion stat), 5=Off (override), 6=On (override)"
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "Binary Output Signal Type",
   "description": "Spare binary output signal type",
   "units": "",
   "access": "R",
   "states": "1=PWM, 2=PDM, 3=On/Off, 4=PWM (off with hot duct air), 5=PDM (off with hot duct air), 6=On/Off (off with hot duct air)"
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "Binary Output Status",
   "description": "Spare binary output state (0/1 or 0-100 %)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "Unoccupied (Night) Damper Position",
   "description": "Damper position held during unoccupied periods",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "Ping",
   "description": "Write n to make the thermostat beep n times",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "Controller Status",
   "description": "Room load (PI): + heating, 0 deadband, - cooling",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "Proportional Band",
   "description": "Band over which the PI load goes 1-100 %",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "Day Differential",
   "description": "Band either side of setpoint treated as satisfied",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "Inlet Size",
   "description": "Diffuser inlet size: 6, 8, 10 or 12 in",
   "units": "in",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "Current Damper Position",
   "description": "Current damper position; 999 = recalibrating",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "Damper Target",
   "description": "Damper position target",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 20,
   "name": "Damper Neutral Supply Position",
   "description": "Damper position when supply air is neutral",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 21,
   "name": "Damper Cool Min Position",
   "description": "Minimum damper position in cooling",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 22,
   "name": "Damper Cool Max Position",
   "description": "Maximum damper position in cooling",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "Damper Heat Min Position",
   "description": "Minimum damper position in heating",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 24,
   "name": "Damper Heat Max Position",
   "description": "Maximum damper position in heating",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 25,
   "name": "Remote Mode Flag (Damper Position Override)",
   "description": "Damper override (remote mode)",
   "units": "",
   "access": "W",
   "states": "0=Automatic control, 1=Target Cool Min, 2=Target Cool Max, 3=Target Heat Min, 4=Target Heat Max, 5=Target Neutral Airflow, 6=Open Damper 100%, 7=Close Damper (0%)"
  },
  {
   "type": "AV",
   "instance": 26,
   "name": "Drone Output Voltage",
   "description": "0-10 V signal to drone diffusers",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 27,
   "name": "Aux Analog Output Voltage",
   "description": "Spare voltage output (J17)",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 28,
   "name": "Net Setpoint",
   "description": "Room setpoint override from the BACnet network",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 29,
   "name": "Net Room Temp",
   "description": "Room temperature override from the BACnet network",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 30,
   "name": "Net Occupancy",
   "description": "Occupancy override from the BACnet network",
   "units": "",
   "access": "W",
   "states": "0=Normal Operation, 1=Force Occupied, 2=Force Unoccupied"
  },
  {
   "type": "AV",
   "instance": 31,
   "name": "Net Lights",
   "description": "Room lights override from the BACnet network",
   "units": "",
   "access": "W",
   "states": "0=Normal Operation, 1=Force Lights On, 2=Force Lights Off"
  },
  {
   "type": "AV",
   "instance": 32,
   "name": "Power Frequency",
   "description": "Supply power frequency",
   "units": "Hz",
   "access": "W",
   "states": "50=50 Hz, 60=60 Hz"
  },
  {
   "type": "AV",
   "instance": 33,
   "name": "Contact Closure One Application",
   "description": "Contact closure function on J14",
   "units": "",
   "access": "W",
   "states": "0=Not Used, 1=Unoccupied, 2=Occupied, 3=Full Open, 4=Full Close"
  },
  {
   "type": "AV",
   "instance": 34,
   "name": "Contact Closure One Status",
   "description": "Contact closure state on J14",
   "units": "",
   "access": "R",
   "states": "0=Not Contacted, 1=Contacted"
  },
  {
   "type": "AV",
   "instance": 35,
   "name": "Contact Closure Two Application",
   "description": "Contact closure function on AI4",
   "units": "",
   "access": "W",
   "states": "0=Not Used, 1=Unoccupied, 2=Occupied, 3=Full Open, 4=Full Close"
  },
  {
   "type": "AV",
   "instance": 36,
   "name": "Contact Closure Two Status",
   "description": "Contact closure state on AI4",
   "units": "",
   "access": "R",
   "states": "0=Not Contacted, 1=Contacted"
  },
  {
   "type": "AV",
   "instance": 37,
   "name": "Contact Closure Three Application",
   "description": "Contact closure function on AI5",
   "units": "",
   "access": "W",
   "states": "0=Not Used, 1=Unoccupied, 2=Occupied, 3=Full Open, 4=Full Close"
  },
  {
   "type": "AV",
   "instance": 38,
   "name": "Contact Closure Three Status",
   "description": "Contact closure state on AI5",
   "units": "",
   "access": "R",
   "states": "0=Not Contacted, 1=Contacted"
  },
  {
   "type": "AV",
   "instance": 39,
   "name": "Contact Closure Four Application",
   "description": "Contact closure function on AI6",
   "units": "",
   "access": "W",
   "states": "0=Not Used, 1=Unoccupied, 2=Occupied, 3=Full Open, 4=Full Close"
  },
  {
   "type": "AV",
   "instance": 40,
   "name": "Contact Closure Four Status",
   "description": "Contact closure state on AI6",
   "units": "",
   "access": "R",
   "states": "0=Not Contacted, 1=Contacted"
  },
  {
   "type": "AV",
   "instance": 41,
   "name": "Airflow",
   "description": "Measured airflow (DMS flow sensor)",
   "units": "CFM, LPS or CMH",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 42,
   "name": "K Factor",
   "description": "K-factor used to calculate airflow",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 43,
   "name": "Airflow Sensor Connection Status",
   "description": "Airflow sensor connection status",
   "units": "",
   "access": "R",
   "states": "0=Not Connected, 1=Connected"
  },
  {
   "type": "AV",
   "instance": 44,
   "name": "Airflow Units",
   "description": "Airflow units",
   "units": "",
   "access": "R",
   "states": "1=CFM, 2=LPS, 3=CMH"
  },
  {
   "type": "AV",
   "instance": 45,
   "name": "Show User Settings",
   "description": "Reserved for manufacturer",
   "units": "",
   "access": "R",
   "states": ""
  }
 ],
 "integration": {
  "summary": "Set each master's MAC (1-99) and device instance from the LCD thermostat, keep 76800 baud, then map the Net* override objects for occupancy and setpoint plus room temperature, load and damper position. Drones follow their master and are not on the network.",
  "minimum_points": [
   {
    "ref": "AV 30",
    "name": "Net Occupancy",
    "why": "Occupancy: 0 normal, 1 force occ, 2 force unocc"
   },
   {
    "ref": "AV 28",
    "name": "Net Setpoint",
    "why": "Room setpoint from the BMS"
   },
   {
    "ref": "AV 2",
    "name": "Occupancy",
    "why": "Current occupancy (0 = Unoccupied, 1 = Occupied)"
   },
   {
    "ref": "AV 14",
    "name": "Controller Status",
    "why": "Room load, -100 % cooling to +100 % heating"
   },
   {
    "ref": "AI 1",
    "name": "Room Temperature",
    "why": "Room temperature"
   },
   {
    "ref": "AV 6",
    "name": "Room Setpoint",
    "why": "Active room setpoint"
   },
   {
    "ref": "AV 18",
    "name": "Current Damper Position",
    "why": "Damper position, %; 999 = recalibrating"
   },
   {
    "ref": "AV 41",
    "name": "Airflow",
    "why": "Measured airflow (needs the DMS flow sensor)"
   }
  ],
  "enable": "No enable point. The BMS forces occupancy with AV 30 Net Occupancy (0 = Normal Operation, 1 = Force Occupied, 2 = Force Unoccupied) and sets the room setpoint through AV 28 Net Setpoint. AV 25 overrides the damper (0 = automatic) for balancing.",
  "heartbeat": null,
  "remote_sensors": "AV 29 Net Room Temp overrides the room temperature from the BACnet network (default 0). AV 31 Net Lights overrides the room lights output (0 = normal, 1 = on, 2 = off).",
  "setup": [
   "BACnet MS/TP on the optional native BACnet module of each master diffuser; drones are not on the network.",
   "MAC address 1-99, set by DIP switches or (recommended) from the LCD thermostat/setup tool, which overrides the switches.",
   "Device instance defaults to 100 shown with the MAC as its last two digits (e.g. 101); set it from the LCD thermostat or setup tool.",
   "Default baud 76800 (also 38400, 19200, 9600). BACnet settings are read only at startup; the controller restarts after a software change, a DIP change needs a power cycle.",
   "Use twisted pair (CAT5 works) with NET COM connected at every device; 24 VAC polarity must match across the segment."
  ],
  "gotchas": [
   "AV 6 is read-only; writing the setpoint means writing AV 28 Net Setpoint.",
   "AV 18 reads 999 while the damper recalibrates.",
   "AV 25 damper override stays in force until set back to 0.",
   "Temperatures follow the controller's °F/°C setting."
  ]
 },
 "page": "https://easybacnet.com/bacnet-points-lists/acutherm/advantage-digital-vav-diffuser",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
