{
 "manufacturer": "Paragon Controls",
 "manufacturer_slug": "paragon-controls",
 "model": "SPM-4000 Dual Controller space pressure monitor (BACnet MS/TP)",
 "model_slug": "spm-4000-dual-controller",
 "aliases": [
  "SPM-4000 Dual Controller",
  "SPM4000 Dual",
  "Guardian Infinity Dual Controller"
 ],
 "equipment_type": "Room pressure dual controller",
 "applies_to": "Paragon Controls SPM-4000 Dual Controller two-space pressure monitors with two control loops, fitted with the BACnet communication board.",
 "summary": "The SPM-4000 Dual Controller monitors two spaces and runs a separate control loop for each. On BACnet MS/TP it gives both pressures, both controller outputs, per-space modes and alarm limits, and setpoints and tuning for each loop. Unlike the single-loop SPM-4000 it has no temperature, humidity, flow or air-change objects.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "The manual gives each object as '<object type> <number> - <label>'; the label is used here as the object name.",
  "Device instance range 1,002 to 65,535 per the manual."
 ],
 "source": {
  "title": "BACnet Communication Operation & Maintenance Manual (MicroTransEQ, MicroTransII, SPM-3000, SPM-4000)",
  "doc_number": null,
  "revision_date": "Revision Level 003",
  "url": "https://paragoncontrols.com/wp-content/uploads/2021/03/BACnet-IOM.pdf"
 },
 "integration": {
  "summary": "Set each space's mode (MSV 1 / MSV 3) and the loop setpoints for that mode (AV 11-13 for loop 1, AV 17-19 for loop 2). Read both pressures, both controller outputs, the system start status and the alarm multistates.",
  "minimum_points": [
   {
    "ref": "MV 1",
    "name": "Sp1 Operating Mode",
    "why": "Space 1 mode: 1 off, 2 positive, 3 negative"
   },
   {
    "ref": "MV 3",
    "name": "Sp2 Operating Mode",
    "why": "Space 2 mode: 1 off, 2 positive, 3 negative"
   },
   {
    "ref": "AV 11",
    "name": "Cnt1 Pos Setpoint",
    "why": "Loop 1 setpoint in positive mode"
   },
   {
    "ref": "AV 17",
    "name": "Cnt2 Pos Setpoint",
    "why": "Loop 2 setpoint in positive mode"
   },
   {
    "ref": "BI 1",
    "name": "Sys Start In Status",
    "why": "System start input, 1 = run"
   },
   {
    "ref": "AI 1",
    "name": "Sp1 Process Value",
    "why": "Space 1 differential pressure"
   },
   {
    "ref": "AI 2",
    "name": "Sp2 Process Value",
    "why": "Space 2 differential pressure"
   },
   {
    "ref": "AO 1",
    "name": "Controller Output 1",
    "why": "Loop 1 output"
   },
   {
    "ref": "MV 2",
    "name": "Sp1 Alarm Status",
    "why": "Space 1 alarm: 1 none, 2 high, 3 low"
   },
   {
    "ref": "MV 4",
    "name": "Sp2 Alarm Status",
    "why": "Space 2 alarm: 1 none, 2 high, 3 low"
   }
  ],
  "enable": "Run/stop comes from the hard-wired system start input; BI 1 only reports it.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "MS/TP MAC address 2-127, unique on each trunk; set at the device (see the device O&M).",
   "Baud 9600, 19200, 38400 or 76800; the SPM-3000 section gives 38400 as the default.",
   "Turn the BACnet terminator switch ON only on the two end devices of the trunk.",
   "Device instance 1,002 to 65,535."
  ],
  "gotchas": [
   "AV 25 is the front-panel password; leave it alone unless asked.",
   "The negative-mode setpoints are AV 12 (loop 1) and AV 18 (loop 2)."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "Sp1 Process Value",
   "description": "Space 1 pressure",
   "units": "Per MSV 5",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Sp2 Process Value",
   "description": "Space 2 pressure",
   "units": "Per MSV 5",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 1,
   "name": "Controller Output 1",
   "description": "Loop 1 output",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 2,
   "name": "Controller Output 2",
   "description": "Loop 2 output",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "Sp1 Operating Range",
   "description": "Space 1 pressure span",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "Sp1 Pos High Alarm",
   "description": "Space 1 high limit, positive mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "Sp1 Pos Low Alarm",
   "description": "Space 1 low limit, positive mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "Sp1 Neg High Alarm",
   "description": "Space 1 high limit, negative mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "Sp1 Neg Low Alarm",
   "description": "Space 1 low limit, negative mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "Sp2 Operating Range",
   "description": "Space 2 pressure span",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "Sp2 Pos High Alarm",
   "description": "Space 2 high limit, positive mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "Sp2 Pos Low Alarm",
   "description": "Space 2 low limit, positive mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "Sp2 Neg High Alarm",
   "description": "Space 2 high limit, negative mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "Sp2 Neg Low Alarm",
   "description": "Space 2 low limit, negative mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "Cnt1 Pos Setpoint",
   "description": "Loop 1 setpoint, positive mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "Cnt1 Neg Setpoint",
   "description": "Loop 1 setpoint, negative mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "Cnt1 Off Setpoint",
   "description": "Loop 1 setpoint, off mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "Cnt1 Prop Band",
   "description": "Loop 1 proportional band",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "Cnt1 Integral Time",
   "description": "Loop 1 integral time",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "Cnt1 Derivative Time",
   "description": "Loop 1 derivative time",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "Cnt2 Pos Setpoint",
   "description": "Loop 2 setpoint, positive mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "Cnt2 Neg Setpoint",
   "description": "Loop 2 setpoint, negative mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "Cnt2 Off Setpoint",
   "description": "Loop 2 setpoint, off mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 20,
   "name": "Cnt2 Prop Band",
   "description": "Loop 2 proportional band",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 21,
   "name": "Cnt2 Integral Time",
   "description": "Loop 2 integral time",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 22,
   "name": "Cnt2 Derivative Time",
   "description": "Loop 2 derivative time",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "Sp1 Alarm Delay",
   "description": "Space 1 alarm delay",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 24,
   "name": "Sp2 Alarm Delay",
   "description": "Space 2 alarm delay",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 25,
   "name": "Field Password",
   "description": "Front-panel password",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 26,
   "name": "Decimal Point",
   "description": "Display decimal places",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 1,
   "name": "Sys Start In Status",
   "description": "System start input",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=Run"
  },
  {
   "type": "BI",
   "instance": 2,
   "name": "Sys Hold In Status",
   "description": "System hold input",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "Audible Alarm Enable",
   "description": "Audible alarm on/off",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "MV",
   "instance": 1,
   "name": "Sp1 Operating Mode",
   "description": "Space 1 mode",
   "units": "",
   "access": "W",
   "states": "1=Off, 2=Pos, 3=Neg"
  },
  {
   "type": "MV",
   "instance": 2,
   "name": "Sp1 Alarm Status",
   "description": "Space 1 alarm state",
   "units": "",
   "access": "R",
   "states": "1=No Alarms, 2=High, 3=Low"
  },
  {
   "type": "MV",
   "instance": 3,
   "name": "Sp2 Operating Mode",
   "description": "Space 2 mode",
   "units": "",
   "access": "W",
   "states": "1=Off, 2=Pos, 3=Neg"
  },
  {
   "type": "MV",
   "instance": 4,
   "name": "Sp2 Alarm Status",
   "description": "Space 2 alarm state",
   "units": "",
   "access": "R",
   "states": "1=No Alarms, 2=High, 3=Low"
  },
  {
   "type": "MV",
   "instance": 5,
   "name": "Engineering Units",
   "description": "Pressure units",
   "units": "",
   "access": "W",
   "states": "1=\"W.C., 2=Pa, 3=KPa, 4=mmW.C."
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/paragon-controls/spm-4000-dual-controller",
 "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"
}
