{
 "manufacturer": "Lochinvar",
 "manufacturer_slug": "lochinvar",
 "model": "Veritus / Emerge_X heat pump water heater (ProtoNode FPC-N54)",
 "model_slug": "veritus-emerge-x-protonode-n54",
 "aliases": [
  "Veritus",
  "Emerge_X",
  "Emerge X",
  "Lochinvar Veritus",
  "ProtoNode FPC-N54"
 ],
 "equipment_type": "Heat pump water heater plant controller",
 "applies_to": "Lochinvar Veritus and Emerge_X heat pump water heater systems (up to 64 units), read through the ProtoNode FPC-N54.",
 "summary": "Lochinvar's ProtoNode FPC-N54 maps the Veritus / Emerge_X heat pump water heater controller to 54 BACnet objects. Binary inputs give thermostat, BMS enable, louver, recirculation pump, runtime, alarm and backup heat relay states; analog inputs give system and tank temperatures, packed per-unit status words, error codes and flow; eight analog values take BMS commands such as demand enable and tank setpoint.",
 "bacnet_transport": [
  "BACnet IP",
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": null,
 "access_inferred": true,
 "notes": [
  "Veritus and Emerge_X share this one table in the guide (section 9.1).",
  "The table has no read/write column; access is inferred from the object type and the N2 type (AO = writable).",
  "Backup Heat 1/2 and their rates appear both as AIs (43-44, read) and as AVs (51-54, write).",
  "The guide gives no units, ranges or state texts."
 ],
 "integration": {
  "summary": "Map the Demand Enable and Tank Setpoint AVs for control, then read system setpoint and temperatures, tank temperatures, the runtime and alarm relays, the packed units-in-run/lockout words and the SCB error and warning codes. The guide gives no command sequence, so check the Veritus/Emerge_X manual before writing Configuration or the backup heat objects.",
  "minimum_points": [
   {
    "ref": "AV 47",
    "name": "Demand Enable",
    "why": "Demand enable command from the BMS"
   },
   {
    "ref": "AV 48",
    "name": "Tank Setpoint",
    "why": "Tank (DHW) setpoint command"
   },
   {
    "ref": "AI 14",
    "name": "System Setpoint",
    "why": "Active system setpoint"
   },
   {
    "ref": "AI 15",
    "name": "System Supply Temperature",
    "why": "System supply water temperature"
   },
   {
    "ref": "AI 19",
    "name": "Tank 1 Temperature",
    "why": "Tank 1 temperature"
   },
   {
    "ref": "BI 6",
    "name": "Runtime Relay",
    "why": "Runtime relay state (plant running)"
   },
   {
    "ref": "AI 29",
    "name": "Units In Run (1-16)",
    "why": "Packed run status, units 1-16"
   },
   {
    "ref": "BI 7",
    "name": "Alarm Relay",
    "why": "Alarm relay state"
   },
   {
    "ref": "AI 41",
    "name": "SCB Error Code",
    "why": "Active system control board error code"
   }
  ],
  "enable": "AV 47 Demand Enable and AV 48 Tank Setpoint are the writable objects for control; BI 2 BMS Enable reads back the BMS enable input. The guide does not describe the values or the order to write them.",
  "heartbeat": null,
  "remote_sensors": "AV 49 0-10V BMS Input lets the BMS supply the analog input value; the guide does not say how it is scaled.",
  "setup": [
   "ProtoNode FPC-N54 to the unit: Modbus RTU, 19200 baud, no parity, 8 data bits, 1 stop bit.",
   "Give each unit a unique Node-ID (1-255). BACnet device instance = Node_Offset (default 50,000) + Node-ID.",
   "The BACnet IP or BACnet MS/TP field protocol is chosen in the ProtoNode web configurator; default IP 192.168.1.24."
  ],
  "gotchas": [
   "Access is inferred: the table has no read/write column; AVs (N2 AO) are treated as writable.",
   "Units Present/In Run/In Blocking/In Lockout come as four packed words each, covering units 1-64.",
   "Objects 11-13 are named after raw Modbus registers (30001-30003); their meaning is not given."
  ]
 },
 "source": {
  "title": "Operating Manual - ProtoNode FPC-N54 for Interfacing Lochinvar Products, section 9.1 Veritus and Emerge_X",
  "doc_number": "CN1998 Rev 7.C (Lochinvar 100377812_2000809463 Rev B)",
  "revision_date": null,
  "url": "https://assets.lochinvar.com/damroot/Original/10014/100377812_2000809463_Rev%20B%20(60567)%20ProtoNode%20Operating%20Manual.pdf"
 },
 "points": [
  {
   "type": "BI",
   "instance": 1,
   "name": "TSTAT",
   "description": "Thermostat input state",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 2,
   "name": "BMS Enable",
   "description": "BMS enable input state",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 3,
   "name": "Louver Proving",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 4,
   "name": "Louver Relay",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 5,
   "name": "Recirc Pump",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 6,
   "name": "Runtime Relay",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 7,
   "name": "Alarm Relay",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 8,
   "name": "Backup Heat 1",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 9,
   "name": "Backup Heat 2",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "Discrete Inputs 0-8",
   "description": "Packed discrete inputs 0-8",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "30001",
   "description": "Raw Modbus input register 30001",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "30002",
   "description": "Raw Modbus input register 30002",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "30003",
   "description": "Raw Modbus input register 30003",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 14,
   "name": "System Setpoint",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 15,
   "name": "System Supply Temperature",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 16,
   "name": "System Return Temperature",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 17,
   "name": "System Recirc Temperature",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 18,
   "name": "System Outdoor Temperature",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 19,
   "name": "Tank 1 Temperature",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 20,
   "name": "Tank 2 Temperature",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 21,
   "name": "Tank 3 Temperature",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 22,
   "name": "Tank 4 Temperature",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 23,
   "name": "Tank 5 Temperature",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 24,
   "name": "Tank 6 Temperature",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 25,
   "name": "Units Present (1-16)",
   "description": "Units present, units 1-16 (packed)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 26,
   "name": "Units Present (17-32)",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 27,
   "name": "Units Present (33-48)",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 28,
   "name": "Units Present (49-64)",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 29,
   "name": "Units In Run (1-16)",
   "description": "Units running, units 1-16 (packed)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 30,
   "name": "Units In Run (17-32)",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 31,
   "name": "Units In Run (33-48)",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 32,
   "name": "Units In Run (49-64)",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 33,
   "name": "Units In Blocking (1-16)",
   "description": "Units in blocking, units 1-16 (packed)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 34,
   "name": "Units In Blocking (17-32)",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 35,
   "name": "Units In Blocking (33-48)",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 36,
   "name": "Units In Blocking (49-64)",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 37,
   "name": "Units In Lockout (1-16)",
   "description": "Units in lockout, units 1-16 (packed)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 38,
   "name": "Units In Lockout (17-32)",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 39,
   "name": "Units In Lockout (33-48)",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 40,
   "name": "Units In Lockout (49-64)",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 41,
   "name": "SCB Error Code",
   "description": "System control board error code",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 42,
   "name": "SCB Warning Code",
   "description": "System control board warning code",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 43,
   "name": "Backup Heat 1 Rate",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 44,
   "name": "Backup Heat 2 Rate",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 45,
   "name": "Total Heat Pump Flow",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 46,
   "name": "Configuration",
   "description": "Configuration register",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 47,
   "name": "Demand Enable",
   "description": "Demand enable command",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 48,
   "name": "Tank Setpoint",
   "description": "Tank setpoint command",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 49,
   "name": "0-10V BMS Input",
   "description": "BMS 0-10 V input value",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 50,
   "name": "Active Tank Sensor",
   "description": "Selects the active tank sensor",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 51,
   "name": "Backup Heat 1",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 52,
   "name": "Backup Heat 2",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 53,
   "name": "Backup Heat 1 Rate",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 54,
   "name": "Backup Heat 2 Rate",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/lochinvar/veritus-emerge-x-protonode-n54",
 "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"
}
