{
 "manufacturer": "MacroAir",
 "manufacturer_slug": "macroair",
 "model": "AirLynk / Dual Control HVLS Fan Network Controller",
 "model_slug": "airlynk-dual-control",
 "aliases": [
  "AirLynk",
  "Airlynk",
  "Dual Control",
  "MacroAir Dual Controller",
  "90-30060-00",
  "AVD",
  "AVDX",
  "HVLS fan controller"
 ],
 "equipment_type": "HVLS ceiling fan network controller",
 "applies_to": "MacroAir high-volume low-speed fans (AVD, AVD S, AVDX, AVD 370/2 and others) networked to an AirLynk PLC, with or without the Dual Controller.",
 "summary": "AirLynk is MacroAir's PLC that networks up to 30 HVLS fans over Modbus RTU and presents them to a BMS over BACnet MS/TP or BACnet IP (or Modbus RTU/TCP). Every object is an analog value: speed and direction commands per fan, read-back of each fan's output frequency or current, fault code and fan diameter, plus all-fan and selected-fan commands, motor calibration, a fan-scan flag and one reset-all-faults command.",
 "bacnet_transport": [
  "BACnet MS/TP",
  "BACnet IP"
 ],
 "firmware": null,
 "default_device_instance": null,
 "access_inferred": true,
 "notes": [
  "The appendix has no read/write column: points described as 'Sets' or 'Reset' are shown writable, 'Shows'/'Displays' read-only.",
  "Instances repeat in blocks of 30, one per fan Modbus node ID (1-30): speed AV 1-30, direction AV 31-60, Hz/current AV 61-90, fault AV 91-120, diameter AV 121-150.",
  "FanRPM reads 0.1 Hz on AVD drives or 0.1 A on others, despite its name.",
  "Fault codes are not listed in the appendix; the manual refers to each fan's own manual.",
  "The manual uses 'BACnet' to mean 'Modbus/BACnet' throughout.",
  "Source: Appendix A, Airlynk Modbus + BACnet Control Points, pages 31-36 (160 objects)."
 ],
 "source": {
  "title": "Operation Manual - MacroAir Dual Control (Airlynk Modbus + BACnet Control Points, Appendix A)",
  "doc_number": "90-30060-00 Rev A-02",
  "revision_date": "2021-07-16",
  "url": "https://cdn.shopify.com/s/files/1/0633/1341/2310/files/OPERATION_MANUAL_DUAL_CONTROL_rev_A-02_20210716.pdf"
 },
 "points": [
  {
   "type": "AV",
   "instance": 0,
   "name": "AllFanReset",
   "description": "Reset the faults on every fan",
   "units": "",
   "access": "W",
   "states": "1=Reset"
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "FanSpeed1",
   "description": "Sets the speed of fan 1",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "FanSpeed2",
   "description": "Sets the speed of fan 2",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "FanSpeed3",
   "description": "Sets the speed of fan 3",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "FanSpeed4",
   "description": "Sets the speed of fan 4",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "FanSpeed5",
   "description": "Sets the speed of fan 5",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "FanSpeed6",
   "description": "Sets the speed of fan 6",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "FanSpeed7",
   "description": "Sets the speed of fan 7",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "FanSpeed8",
   "description": "Sets the speed of fan 8",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "FanSpeed9",
   "description": "Sets the speed of fan 9",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "FanSpeed10",
   "description": "Sets the speed of fan 10",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "FanSpeed11",
   "description": "Sets the speed of fan 11",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "FanSpeed12",
   "description": "Sets the speed of fan 12",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "FanSpeed13",
   "description": "Sets the speed of fan 13",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "FanSpeed14",
   "description": "Sets the speed of fan 14",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "FanSpeed15",
   "description": "Sets the speed of fan 15",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "FanSpeed16",
   "description": "Sets the speed of fan 16",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "FanSpeed17",
   "description": "Sets the speed of fan 17",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "FanSpeed18",
   "description": "Sets the speed of fan 18",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "FanSpeed19",
   "description": "Sets the speed of fan 19",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 20,
   "name": "FanSpeed20",
   "description": "Sets the speed of fan 20",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 21,
   "name": "FanSpeed21",
   "description": "Sets the speed of fan 21",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 22,
   "name": "FanSpeed22",
   "description": "Sets the speed of fan 22",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "FanSpeed23",
   "description": "Sets the speed of fan 23",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 24,
   "name": "FanSpeed24",
   "description": "Sets the speed of fan 24",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 25,
   "name": "FanSpeed25",
   "description": "Sets the speed of fan 25",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 26,
   "name": "FanSpeed26",
   "description": "Sets the speed of fan 26",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 27,
   "name": "FanSpeed27",
   "description": "Sets the speed of fan 27",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 28,
   "name": "FanSpeed28",
   "description": "Sets the speed of fan 28",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 29,
   "name": "FanSpeed29",
   "description": "Sets the speed of fan 29",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 30,
   "name": "FanSpeed30",
   "description": "Sets the speed of fan 30",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 31,
   "name": "FanDir1",
   "description": "Sets the direction of fan 1",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 32,
   "name": "FanDir2",
   "description": "Sets the direction of fan 2",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 33,
   "name": "FanDir3",
   "description": "Sets the direction of fan 3",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 34,
   "name": "FanDir4",
   "description": "Sets the direction of fan 4",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 35,
   "name": "FanDir5",
   "description": "Sets the direction of fan 5",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 36,
   "name": "FanDir6",
   "description": "Sets the direction of fan 6",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 37,
   "name": "FanDir7",
   "description": "Sets the direction of fan 7",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 38,
   "name": "FanDir8",
   "description": "Sets the direction of fan 8",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 39,
   "name": "FanDir9",
   "description": "Sets the direction of fan 9",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 40,
   "name": "FanDir10",
   "description": "Sets the direction of fan 10",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 41,
   "name": "FanDir11",
   "description": "Sets the direction of fan 11",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 42,
   "name": "FanDir12",
   "description": "Sets the direction of fan 12",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 43,
   "name": "FanDir13",
   "description": "Sets the direction of fan 13",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 44,
   "name": "FanDir14",
   "description": "Sets the direction of fan 14",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 45,
   "name": "FanDir15",
   "description": "Sets the direction of fan 15",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 46,
   "name": "FanDir16",
   "description": "Sets the direction of fan 16",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 47,
   "name": "FanDir17",
   "description": "Sets the direction of fan 17",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 48,
   "name": "FanDir18",
   "description": "Sets the direction of fan 18",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 49,
   "name": "FanDir19",
   "description": "Sets the direction of fan 19",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 50,
   "name": "FanDir20",
   "description": "Sets the direction of fan 20",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 51,
   "name": "FanDir21",
   "description": "Sets the direction of fan 21",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 52,
   "name": "FanDir22",
   "description": "Sets the direction of fan 22",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 53,
   "name": "FanDir23",
   "description": "Sets the direction of fan 23",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 54,
   "name": "FanDir24",
   "description": "Sets the direction of fan 24",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 55,
   "name": "FanDir25",
   "description": "Sets the direction of fan 25",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 56,
   "name": "FanDir26",
   "description": "Sets the direction of fan 26",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 57,
   "name": "FanDir27",
   "description": "Sets the direction of fan 27",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 58,
   "name": "FanDir28",
   "description": "Sets the direction of fan 28",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 59,
   "name": "FanDir29",
   "description": "Sets the direction of fan 29",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 60,
   "name": "FanDir30",
   "description": "Sets the direction of fan 30",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 61,
   "name": "FanRPM1",
   "description": "Shows the Hz/output current of fan 1; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 62,
   "name": "FanRPM2",
   "description": "Shows the Hz/output current of fan 2; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 63,
   "name": "FanRPM3",
   "description": "Shows the Hz/output current of fan 3; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 64,
   "name": "FanRPM4",
   "description": "Shows the Hz/output current of fan 4; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 65,
   "name": "FanRPM5",
   "description": "Shows the Hz/output current of fan 5; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 66,
   "name": "FanRPM6",
   "description": "Shows the Hz/output current of fan 6; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 67,
   "name": "FanRPM7",
   "description": "Shows the Hz/output current of fan 7; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 68,
   "name": "FanRPM8",
   "description": "Shows the Hz/output current of fan 8; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 69,
   "name": "FanRPM9",
   "description": "Shows the Hz/output current of fan 9; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 70,
   "name": "FanRPM10",
   "description": "Shows the Hz/output current of fan 10; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 71,
   "name": "FanRPM11",
   "description": "Shows the Hz/output current of fan 11; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 72,
   "name": "FanRPM12",
   "description": "Shows the Hz/output current of fan 12; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 73,
   "name": "FanRPM13",
   "description": "Shows the Hz/output current of fan 13; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 74,
   "name": "FanRPM14",
   "description": "Shows the Hz/output current of fan 14; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 75,
   "name": "FanRPM15",
   "description": "Shows the Hz/output current of fan 15; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 76,
   "name": "FanRPM16",
   "description": "Shows the Hz/output current of fan 16; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 77,
   "name": "FanRPM17",
   "description": "Shows the Hz/output current of fan 17; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 78,
   "name": "FanRPM18",
   "description": "Shows the Hz/output current of fan 18; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 79,
   "name": "FanRPM19",
   "description": "Shows the Hz/output current of fan 19; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 80,
   "name": "FanRPM20",
   "description": "Shows the Hz/output current of fan 20; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 81,
   "name": "FanRPM21",
   "description": "Shows the Hz/output current of fan 21; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 82,
   "name": "FanRPM22",
   "description": "Shows the Hz/output current of fan 22; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 83,
   "name": "FanRPM23",
   "description": "Shows the Hz/output current of fan 23; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 84,
   "name": "FanRPM24",
   "description": "Shows the Hz/output current of fan 24; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 85,
   "name": "FanRPM25",
   "description": "Shows the Hz/output current of fan 25; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 86,
   "name": "FanRPM26",
   "description": "Shows the Hz/output current of fan 26; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 87,
   "name": "FanRPM27",
   "description": "Shows the Hz/output current of fan 27; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 88,
   "name": "FanRPM28",
   "description": "Shows the Hz/output current of fan 28; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 89,
   "name": "FanRPM29",
   "description": "Shows the Hz/output current of fan 29; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 90,
   "name": "FanRPM30",
   "description": "Shows the Hz/output current of fan 30; 0.1 Hz (AVD fans) or 0.1 A",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 91,
   "name": "FanFault1",
   "description": "Displays the fault of fan 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 92,
   "name": "FanFault2",
   "description": "Displays the fault of fan 2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 93,
   "name": "FanFault3",
   "description": "Displays the fault of fan 3",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 94,
   "name": "FanFault4",
   "description": "Displays the fault of fan 4",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 95,
   "name": "FanFault5",
   "description": "Displays the fault of fan 5",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 96,
   "name": "FanFault6",
   "description": "Displays the fault of fan 6",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 97,
   "name": "FanFault7",
   "description": "Displays the fault of fan 7",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 98,
   "name": "FanFault8",
   "description": "Displays the fault of fan 8",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 99,
   "name": "FanFault9",
   "description": "Displays the fault of fan 9",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 100,
   "name": "FanFault10",
   "description": "Displays the fault of fan 10",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 101,
   "name": "FanFault11",
   "description": "Displays the fault of fan 11",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 102,
   "name": "FanFault12",
   "description": "Displays the fault of fan 12",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 103,
   "name": "FanFault13",
   "description": "Displays the fault of fan 13",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 104,
   "name": "FanFault14",
   "description": "Displays the fault of fan 14",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 105,
   "name": "FanFault15",
   "description": "Displays the fault of fan 15",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 106,
   "name": "FanFault16",
   "description": "Displays the fault of fan 16",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 107,
   "name": "FanFault17",
   "description": "Displays the fault of fan 17",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 108,
   "name": "FanFault18",
   "description": "Displays the fault of fan 18",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 109,
   "name": "FanFault19",
   "description": "Displays the fault of fan 19",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 110,
   "name": "FanFault20",
   "description": "Displays the fault of fan 20",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 111,
   "name": "FanFault21",
   "description": "Displays the fault of fan 21",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 112,
   "name": "FanFault22",
   "description": "Displays the fault of fan 22",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 113,
   "name": "FanFault23",
   "description": "Displays the fault of fan 23",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 114,
   "name": "FanFault24",
   "description": "Displays the fault of fan 24",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 115,
   "name": "FanFault25",
   "description": "Displays the fault of fan 25",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 116,
   "name": "FanFault26",
   "description": "Displays the fault of fan 26",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 117,
   "name": "FanFault27",
   "description": "Displays the fault of fan 27",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 118,
   "name": "FanFault28",
   "description": "Displays the fault of fan 28",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 119,
   "name": "FanFault29",
   "description": "Displays the fault of fan 29",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 120,
   "name": "FanFault30",
   "description": "Displays the fault of fan 30",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 121,
   "name": "FanSize1",
   "description": "Sets the diameter of fan 1; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 122,
   "name": "FanSize2",
   "description": "Sets the diameter of fan 2; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 123,
   "name": "FanSize3",
   "description": "Sets the diameter of fan 3; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 124,
   "name": "FanSize4",
   "description": "Sets the diameter of fan 4; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 125,
   "name": "FanSize5",
   "description": "Sets the diameter of fan 5; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 126,
   "name": "FanSize6",
   "description": "Sets the diameter of fan 6; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 127,
   "name": "FanSize7",
   "description": "Sets the diameter of fan 7; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 128,
   "name": "FanSize8",
   "description": "Sets the diameter of fan 8; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 129,
   "name": "FanSize9",
   "description": "Sets the diameter of fan 9; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 130,
   "name": "FanSize10",
   "description": "Sets the diameter of fan 10; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 131,
   "name": "FanSize11",
   "description": "Sets the diameter of fan 11; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 132,
   "name": "FanSize12",
   "description": "Sets the diameter of fan 12; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 133,
   "name": "FanSize13",
   "description": "Sets the diameter of fan 13; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 134,
   "name": "FanSize14",
   "description": "Sets the diameter of fan 14; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 135,
   "name": "FanSize15",
   "description": "Sets the diameter of fan 15; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 136,
   "name": "FanSize16",
   "description": "Sets the diameter of fan 16; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 137,
   "name": "FanSize17",
   "description": "Sets the diameter of fan 17; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 138,
   "name": "FanSize18",
   "description": "Sets the diameter of fan 18; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 139,
   "name": "FanSize19",
   "description": "Sets the diameter of fan 19; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 140,
   "name": "FanSize20",
   "description": "Sets the diameter of fan 20; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 141,
   "name": "FanSize21",
   "description": "Sets the diameter of fan 21; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 142,
   "name": "FanSize22",
   "description": "Sets the diameter of fan 22; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 143,
   "name": "FanSize23",
   "description": "Sets the diameter of fan 23; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 144,
   "name": "FanSize24",
   "description": "Sets the diameter of fan 24; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 145,
   "name": "FanSize25",
   "description": "Sets the diameter of fan 25; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 146,
   "name": "FanSize26",
   "description": "Sets the diameter of fan 26; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 147,
   "name": "FanSize27",
   "description": "Sets the diameter of fan 27; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 148,
   "name": "FanSize28",
   "description": "Sets the diameter of fan 28; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 149,
   "name": "FanSize29",
   "description": "Sets the diameter of fan 29; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 150,
   "name": "FanSize30",
   "description": "Sets the diameter of fan 30; 8-24 ft, add 300 for 3-blade",
   "units": "ft",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 151,
   "name": "AllFanDir",
   "description": "Sets the direction of all fans",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 152,
   "name": "AllFanSpeed",
   "description": "Sets the speed of all fans",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 153,
   "name": "AllFanSend",
   "description": "Sends the all-fan speed and direction",
   "units": "",
   "access": "W",
   "states": "1=Send"
  },
  {
   "type": "AV",
   "instance": 154,
   "name": "FanOn",
   "description": "Selects the individual fan to set (fan 1-30)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 155,
   "name": "FanDir",
   "description": "Sets the direction of the selected fan",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=Forward, 2=Reverse"
  },
  {
   "type": "AV",
   "instance": 156,
   "name": "FanSpeed",
   "description": "Sets the speed of the selected fan",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 157,
   "name": "FanSend",
   "description": "Sends speed and direction to the selected fan",
   "units": "",
   "access": "W",
   "states": "1=Send"
  },
  {
   "type": "AV",
   "instance": 158,
   "name": "MotorCal",
   "description": "Runs motor calibration on the selected fan",
   "units": "",
   "access": "W",
   "states": "1=Send"
  },
  {
   "type": "AV",
   "instance": 159,
   "name": "FanScanning",
   "description": "AirLynk is scanning for fans",
   "units": "",
   "access": "R",
   "states": "1=Scan in progress, 0=Scan complete"
  }
 ],
 "integration": {
  "summary": "Give each fan a unique Modbus node ID (1-30) and document it, then pick BACnet MS/TP or BACnet IP on the AirLynk touch screen (MSTP Setup / IP Setup). Write FanSpeedN (0-100 %) and FanDirN for each fan, read FanRPMN and FanFaultN, and use AllFanReset to clear faults.",
  "minimum_points": [
   {
    "ref": "AV 1",
    "name": "FanSpeed1",
    "why": "Fan 1 speed command, 0-100 %"
   },
   {
    "ref": "AV 31",
    "name": "FanDir1",
    "why": "Fan 1: 0 off, 1 forward, 2 reverse"
   },
   {
    "ref": "AV 0",
    "name": "AllFanReset",
    "why": "Write 1 to reset faults on all fans"
   },
   {
    "ref": "AV 61",
    "name": "FanRPM1",
    "why": "Fan 1 output, 0.1 Hz (AVD) or 0.1 A"
   },
   {
    "ref": "AV 91",
    "name": "FanFault1",
    "why": "Fan 1 fault code"
   }
  ],
  "enable": "FanDirN = 0 turns fan N off; 1 or 2 runs it forward or reverse at the FanSpeedN setting.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "BACnet MS/TP: on Main Page 2 > MSTP Setup set Proto = BACn, the address, baud and Dev ID; BMS RS-485 lands on PLC port CN19.",
   "BACnet IP: on Main Page 2 > IP Setup set IP, mask, gateway and port (0 = 47808); MSTP Proto must then be Modb at 19.2k, 8 data bits, no parity, 1 stop bit.",
   "If BACnet MS/TP is used, leave the PLC IP at 192.168.1.100 so the Dual Controller keeps working.",
   "Fan Modbus node IDs must be unique, 1-30."
  ],
  "gotchas": [
   "If MSTP Proto is set to BACn, BACnet IP does not work.",
   "The minimum list shows fan 1; fan N uses instance + (N - 1) in each block.",
   "FanSize writes change the configured blade diameter; don't write them cyclically."
  ]
 },
 "page": "https://easybacnet.com/bacnet-points-lists/macroair/airlynk-dual-control",
 "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"
}
