{
 "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": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
