{
 "manufacturer": "Price Industries",
 "manufacturer_slug": "price-industries",
 "model": "PIC Price Intelligent Controller",
 "model_slug": "pic",
 "aliases": [
  "PIC",
  "Price Intelligent Controller",
  "PIC-BAC",
  "PIC-VAV"
 ],
 "equipment_type": "VAV / fan-powered terminal controller",
 "applies_to": "Price PIC DDC controllers on single-duct, fan-powered, dual-duct and exhaust terminals and on fan coils.",
 "summary": "The PIC is Price's DDC zone controller for VAV, fan-powered and dual-duct terminals and for fan coils. It talks BACnet MS/TP through the optional PIC-BAC module and, with the PIC-VAV module and a flow sensor, controls airflow pressure-independently. The same object list is used for every application, so the meaning of the configurable inputs and outputs depends on how the controller is set up.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": "v3.30.2",
 "default_device_instance": 101,
 "notes": [
  "Room Lights is printed as \"MO\" with no instance number; check the instance on the device.",
  "AI 6-9 come from the expansion module. AI 6-8 are named AI4-AI6 (Expan), but the source describes them as the voltage at the module's AI7-AI9.",
  "The analog and binary outputs can each be assigned to several functions in the controller's Output menu.",
  "MV 3 Occupancy uses 1 = Unoccupied, 2 = Occupied.",
  "Instances skip AV 18-28 and MV 2 and 9-11.",
  "The source also lists which values are retained after a power failure."
 ],
 "source": {
  "title": "BACnet Points List - PIC",
  "doc_number": null,
  "revision_date": "REV 2",
  "url": "https://legacy.priceindustries.com/content/uploads/assets/literature/documents---bacnet/pic---bacnet-points-list.pdf"
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "Room Temperature",
   "description": "Current Room Temperature",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Airflow",
   "description": "Current Airflow",
   "units": "cfm or L/s",
   "access": "W",
   "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": "CO2 Reading",
   "description": "Current CO2 at the T-Stat",
   "units": "ppm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "Humidity Reading",
   "description": "Current Relative Humidity at the T-Stat",
   "units": "%RH",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "AI4 (Expan)",
   "description": "Current Voltage at AI7 of Expansion Module",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "AI5 (Expan)",
   "description": "Current Voltage at AI8 of Expansion Module",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "AI6 (Expan)",
   "description": "Current Voltage at AI9 of Expansion Module",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "Thermistor (Expan)",
   "description": "Current Temperature from Expansion Module",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 1,
   "name": "Contact Closure",
   "description": "Contact input; function set in the controller Input menu",
   "units": "",
   "access": "W",
   "states": "Open/Closed"
  },
  {
   "type": "AO",
   "instance": 1,
   "name": "Analog Output 1 (ECM)",
   "description": "Analog output; function set in the controller Output menu",
   "units": "V",
   "access": "W",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 2,
   "name": "Analog Output 2 (Heat)",
   "description": "Analog output; function set in the controller Output menu",
   "units": "V",
   "access": "W",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 3,
   "name": "Analog Output 3 (Cool)",
   "description": "Analog output; function set in the controller Output menu",
   "units": "V",
   "access": "W",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 4,
   "name": "Analog Output 4 (Aux)",
   "description": "Analog output; function set in the controller Output menu",
   "units": "V",
   "access": "W",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 5,
   "name": "Damper Position",
   "description": "Analog output; function set in the controller Output menu",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 1,
   "name": "Binary Output 1 (ECM)",
   "description": "Binary output; function set in the controller Output menu",
   "units": "",
   "access": "W",
   "states": "Off/On"
  },
  {
   "type": "BO",
   "instance": 2,
   "name": "Binary Output 2 (Heat 1)",
   "description": "Binary output; function set in the controller Output menu",
   "units": "",
   "access": "W",
   "states": "Off/On"
  },
  {
   "type": "BO",
   "instance": 3,
   "name": "Binary Output 3 (Heat 2)",
   "description": "Binary output; function set in the controller Output menu",
   "units": "",
   "access": "W",
   "states": "Off/On"
  },
  {
   "type": "BO",
   "instance": 4,
   "name": "Binary Output 4 (Heat 3)",
   "description": "Binary output; function set in the controller Output menu",
   "units": "",
   "access": "W",
   "states": "Off/On"
  },
  {
   "type": "BO",
   "instance": 5,
   "name": "Binary Output 5 (Cool)",
   "description": "Binary output; function set in the controller Output menu",
   "units": "",
   "access": "W",
   "states": "Off/On"
  },
  {
   "type": "BO",
   "instance": 6,
   "name": "Binary Output 8 (Aux 1)",
   "description": "Binary output; function set in the controller Output menu",
   "units": "",
   "access": "W",
   "states": "Off/On"
  },
  {
   "type": "BO",
   "instance": 7,
   "name": "Binary Output 9 (Aux 2)",
   "description": "Binary output; function set in the controller Output menu",
   "units": "",
   "access": "W",
   "states": "Off/On"
  },
  {
   "type": "MO",
   "instance": null,
   "name": "Room Lights",
   "description": "Room lights output (motion thermostat)",
   "units": "",
   "access": "W",
   "states": "1=Off (Auto), 2=On (Auto), 3=Off (Manual), 4=On (Manual)"
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "Airflow Target",
   "description": "Supply airflow target the controller is chasing",
   "units": "cfm or L/s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "Room Setpoint - High Limit",
   "description": "Highest user-adjustable room setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "Room Setpoint - Low Limit",
   "description": "Lowest user-adjustable room setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "Night Heat Setpoint",
   "description": "Unoccupied heating setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "Night Cool Setpoint",
   "description": "Unoccupied cooling setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "Room Setpoint",
   "description": "Current room setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "Unoccupied (Night) Damper Position",
   "description": "Damper position for unoccupied periods",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "Neutral Duct Temp Airflow Target",
   "description": "Airflow target with neutral supply air (flow response chart)",
   "units": "cfm or L/s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "Cool Min Airflow Setpoint",
   "description": "Minimum cooling airflow (upper limit AV10)",
   "units": "cfm or L/s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "Cool Max Airflow Setpoint",
   "description": "Maximum cooling airflow (lower limit AV9)",
   "units": "cfm or L/s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "Heat Min Airflow Setpoint",
   "description": "Minimum heating airflow (upper limit AV12)",
   "units": "cfm or L/s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "Heat Max Airflow Setpoint",
   "description": "Maximum heating airflow (lower limit AV11)",
   "units": "cfm or L/s",
   "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": "Commissioned",
   "description": "Commissioning status: 0 = not commissioned, 1 = commissioned",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 29,
   "name": "High-Temperature Alarm Threshold - Level 3",
   "description": "Level 3 high temperature alarm threshold delta",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 30,
   "name": "High-Temperature Alarm Threshold - Level 2",
   "description": "Level 2 high temperature alarm threshold delta",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 31,
   "name": "Low-Temperature Alarm Threshold - Level 3",
   "description": "Level 3 low temperature alarm threshold delta",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 32,
   "name": "Low-Temperature Alarm Threshold - Level 2",
   "description": "Level 2 low temperature alarm threshold delta",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 33,
   "name": "Airflow Alarm Threshold - Level 3",
   "description": "Level 3 low airflow alarm threshold delta",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 34,
   "name": "Airflow Alarm Threshold - Level 2",
   "description": "Level 2 low airflow alarm threshold delta",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 35,
   "name": "Temperature Alarm Time Threshold",
   "description": "Time beyond threshold delta before a temperature alarm",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 36,
   "name": "Airflow Alarm Time Threshold",
   "description": "Time beyond airflow delta before an airflow alarm",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 37,
   "name": "Device Instance",
   "description": "BACnet device instance",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 38,
   "name": "MAC",
   "description": "BACnet MAC address",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 39,
   "name": "K Factor",
   "description": "Airflow that gives 1 in. w.c. of pressure",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 40,
   "name": "Room Temperature Offset",
   "description": "Offset added to the room temperature reading",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 1,
   "name": "Damper Override",
   "description": "Damper override command",
   "units": "",
   "access": "W",
   "states": "1=Disabled (No Override), 2=Go to Cool Min, 3=Go to Cool Max, 4=Go to Heat Min, 5=Go to Heat Max, 6=Go to Neutral, 7=Go to Full Open, 8=Go to Full Closed"
  },
  {
   "type": "MV",
   "instance": 3,
   "name": "Occupancy",
   "description": "Current occupancy state",
   "units": "",
   "access": "R",
   "states": "1=Unoccupied, 2=Occupied"
  },
  {
   "type": "MV",
   "instance": 4,
   "name": "Occupancy Source",
   "description": "What set the current occupancy",
   "units": "",
   "access": "R",
   "states": "1=Occupied Default Mode, 2=Occupied from Airflow, 3=Occupied from Contact Closure, 4=Occupied from T-Stat Button, 5=Occupied from Motion Sensor, 6=Occupied from Network Override, 7=Occupied from Local Override, 8=Unoccupied from Airflow, 9=Unoccupied from Contact Closure, 10=Unoccupied from T-Stat Button, 11=Unoccupied from Motion Sensor, 12=Unoccupied from Network Override, 13=Unoccupied from Local Override"
  },
  {
   "type": "MV",
   "instance": 5,
   "name": "Occupancy Override",
   "description": "Network occupancy override",
   "units": "",
   "access": "W",
   "states": "1=No Override, 2=Force Unoccupied, 3=Force Occupied"
  },
  {
   "type": "MV",
   "instance": 6,
   "name": "Binary Fan Type",
   "description": "Fan output sequence",
   "units": "",
   "access": "W",
   "states": "1=No Fan, 2=Day Heat/Night Heat, 3=Day Constant/Night Heat, 4=Constant, 5=Day Constant/Night Demand, 6=Day Demand/Night Demand"
  },
  {
   "type": "MV",
   "instance": 7,
   "name": "Binary Reheat Type",
   "description": "Reheat output type",
   "units": "",
   "access": "W",
   "states": "1=Binary, 2=Hot Water/Binary, 3=Binary/PWM, 4=Hot Water/PWM, 5=Binary (dis, with hot air), 6=Hot Water/Binary (dis, with hot air), 7=Binary/PWM (dis, with hot air), 8=Hot Water/PWM (dis, with hot air), 9=Disabled"
  },
  {
   "type": "MV",
   "instance": 8,
   "name": "Application",
   "description": "Controller application",
   "units": "",
   "access": "W",
   "states": "1=Air Terminal, 2=Fancoil (4-pipe), 3=Fancoil (2-pipe), 4=Dual Duct, 5=Exhaust Box, 6=Supply/Exhaust Box, 7=Mixing Box D.A.T, 8=CO2 Tracking, 9=Pressure Control"
  },
  {
   "type": "MV",
   "instance": 12,
   "name": "Control Mode",
   "description": "Allowed heating/cooling mode",
   "units": "",
   "access": "W",
   "states": "1=Automatic, 2=Cooling Only, 3=Heating Only"
  },
  {
   "type": "MV",
   "instance": 13,
   "name": "Controller State",
   "description": "Current mode: cooling, heating or deadband",
   "units": "",
   "access": "R",
   "states": "1=Cooling, 2=Heating, 3=Deadband"
  },
  {
   "type": "MV",
   "instance": 14,
   "name": "High Temperature Alarm",
   "description": "High room temperature alarm level",
   "units": "",
   "access": "R",
   "states": "1=Level 1, 2=Level 2, 3=Level 3, 4=Level 4, 5=No Alarm"
  },
  {
   "type": "MV",
   "instance": 15,
   "name": "Low Temperature Alarm",
   "description": "Low room temperature alarm level",
   "units": "",
   "access": "R",
   "states": "1=Level 1, 2=Level 2, 3=Level 3, 4=Level 4, 5=No Alarm"
  },
  {
   "type": "MV",
   "instance": 16,
   "name": "Low Airflow Alarm",
   "description": "Low airflow alarm level",
   "units": "",
   "access": "R",
   "states": "1=Level 1, 2=Level 2, 3=Level 3, 4=Level 4, 5=No Alarm"
  },
  {
   "type": "MV",
   "instance": 17,
   "name": "Duct Size",
   "description": "Inlet duct size",
   "units": "",
   "access": "W",
   "states": "1=4 inches, 2=5 inches, 3=5 inches, 4=7 inches, 5=8 inches, 6=9 inches, 7=10 inches, 8=12 inches, 9=14 inches, 10=16 inches, 11=24x16 inches, 12=9 inch low profile, 13=10 inch low profile, 14=12 inch low profile, 15=14 inch low profile, 16=16 inch low profile"
  },
  {
   "type": "MV",
   "instance": 18,
   "name": "Temperature Units",
   "description": "Display units",
   "units": "",
   "access": "W",
   "states": "1=Fahrenheit, 2=Celsius"
  },
  {
   "type": "MV",
   "instance": 19,
   "name": "Unoccupied Alarms",
   "description": "Alarms active during unoccupied periods",
   "units": "",
   "access": "W",
   "states": "1=Disabled, 2=Enabled"
  },
  {
   "type": "MV",
   "instance": 20,
   "name": "MAC/DI Link",
   "description": "Device instance linked to the MAC address",
   "units": "",
   "access": "W",
   "states": "1=Unlinked, 2=Linked"
  }
 ],
 "integration": {
  "summary": "Set a unique MAC and device instance at the thermostat, set the segment baud (Price default 76800), then map the occupancy override, room setpoint, room temperature, airflow and the alarm-level MVs. The controller runs its own airflow and reheat sequence; the BMS mostly adjusts setpoints and occupancy.",
  "minimum_points": [
   {
    "ref": "MV 5",
    "name": "Occupancy Override",
    "why": "Network occupancy: 2 = force unocc, 3 = force occ"
   },
   {
    "ref": "AV 6",
    "name": "Room Setpoint",
    "why": "Occupied room setpoint"
   },
   {
    "ref": "MV 3",
    "name": "Occupancy",
    "why": "Current occupancy (1 = Unoccupied, 2 = Occupied)"
   },
   {
    "ref": "MV 13",
    "name": "Controller State",
    "why": "Cooling, heating or deadband"
   },
   {
    "ref": "AI 1",
    "name": "Room Temperature",
    "why": "Room temperature"
   },
   {
    "ref": "AI 2",
    "name": "Airflow",
    "why": "Measured airflow"
   },
   {
    "ref": "AV 1",
    "name": "Airflow Target",
    "why": "Airflow target being controlled to"
   },
   {
    "ref": "MV 14",
    "name": "High Temperature Alarm",
    "why": "High room temp alarm level (5 = no alarm)"
   },
   {
    "ref": "MV 15",
    "name": "Low Temperature Alarm",
    "why": "Low room temp alarm level (5 = no alarm)"
   },
   {
    "ref": "MV 16",
    "name": "Low Airflow Alarm",
    "why": "Low airflow alarm level (5 = no alarm)"
   }
  ],
  "enable": "No enable point. Occupancy comes from airflow, a contact closure, the thermostat button or a motion sensor; the BMS can force it with MV 5 Occupancy Override (1 = No Override, 2 = Force Unoccupied, 3 = Force Occupied). MV 4 shows what set the current occupancy.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "BACnet MS/TP comes from the optional PIC-BAC BACnet module.",
   "Default baud 76800 (Price default; 9600, 19200 and 38400 also available). All devices on a segment must match.",
   "MAC address is set by DIP switches on the BACnet module or from the LCD thermostat; a software MAC overrides the switches. Addresses are read only at startup.",
   "Device instance (default 101, AV 37) is set from the LCD thermostat or the USB LINKER tool; MAC/DI Link adds the MAC into the instance."
  ],
  "gotchas": [
   "Alarm MVs report a level (1-4) or 5 = No Alarm; levels follow the AV alarm-threshold settings.",
   "Room setpoint writes are limited by the high/low limit AVs.",
   "Temperature objects follow the Temperature Units setting (°F or °C).",
   "Room Lights only works with the motion thermostat."
  ]
 },
 "page": "https://easybacnet.com/bacnet-points-lists/price-industries/pic",
 "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"
}
