{
 "manufacturer": "WaterFurnace",
 "manufacturer_slug": "waterfurnace",
 "model": "Versatec Dual Compressor Water-to-Water Heat Pump (FX10)",
 "model_slug": "fx10-versatec-dual-compressor-water-to-water",
 "short_model": "Versatec Dual Water-to-Water",
 "aliases": [
  "PRODCWW-02",
  "PRODCWW",
  "Versatec Dual Compressor",
  "WaterFurnace FX10"
 ],
 "equipment_type": "Water-to-water heat pump controller",
 "applies_to": "WaterFurnace Versatec dual-compressor water-to-water heat pumps with the FX10 DDC controller and expansion board.",
 "summary": "BACnet objects for WaterFurnace's dual-compressor Versatec water-to-water heat pump on the FX10 controller. The BAS sends the lead (Y1) and lag (Y2) compressor calls and the reversing valve call, and reads water and refrigerant temperatures for both circuits, per-stage alarms and compressor status. Two flash-backed values set the freeze limits.",
 "bacnet_transport": [],
 "firmware": null,
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "Output-type points are volatile and fall back to uncommanded after a power cycle; unlimited writes.",
  "Value-type points (AV/MV) are stored in flash (about 2,000,000 write life); never write them from automatic reset logic.",
  "No engineering units are printed in the source; temperatures are presumably degrees F.",
  "AI9-AI11 report compressor and alarm states as analog values: 0 % = off/normal, 100 % = on/alarm.",
  "MO4 Application Mode and MO5 Heat Cool Mode are marked 'not used' and have no stated access; listed here as read-only.",
  "The sheet does not state the BACnet transport."
 ],
 "source": {
  "title": "BACnet Points For Versatec Dual Compressor Water to Water",
  "doc_number": "PRODCWW-02",
  "revision_date": null,
  "url": "https://www.waterfurnace.com/downloads/ddc/BACnet-Resources/BACnet-points-pdfs/PRODCWW-02.pdf"
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "Source Frz 1",
   "description": "Refrigerant temp entering source heat exchanger, comp 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Load Frz 1",
   "description": "Refrigerant temp entering load heat exchanger, comp 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "Enter Load Temp",
   "description": "Entering load water temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "Leave Load Temp1",
   "description": "Leaving load water temperature, heat exchanger 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "Enter Source Temp1",
   "description": "Entering source water temperature, heat exchanger 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "Leave Source Temp",
   "description": "Leaving source water temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "Source Frz Setpt",
   "description": "Source heat exchanger freeze limit",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "Load Frz Setpt",
   "description": "Load heat exchanger freeze limit",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "Comp1 Status Output",
   "description": "Compressor 1 state: 0 % off, 100 % on",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "Alarm Status Output",
   "description": "Alarm state: 0 % normal, 100 % in alarm",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "Comp2 Status Output",
   "description": "Compressor 2 state: 0 % off, 100 % on",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "Source Frz 2",
   "description": "Refrigerant temp entering source heat exchanger, comp 2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "Load Frz 2",
   "description": "Refrigerant temp entering load heat exchanger, comp 2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 14,
   "name": "Leave Load Temp2",
   "description": "Leaving load water temperature, heat exchanger 2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 15,
   "name": "Enter Source Temp2",
   "description": "Entering source water temperature, heat exchanger 2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "Frz Setpt 1",
   "description": "Freeze limit with selection jumpers installed (flash)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "Frz Setpt 2",
   "description": "Freeze limit with selection jumpers removed (flash)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 1,
   "name": "Compr 1 Cmd Status",
   "description": "Commanded compressor 1 state",
   "units": "",
   "access": "R",
   "states": "Inactive=Off; Active=On"
  },
  {
   "type": "BI",
   "instance": 2,
   "name": "Compr 2 Cmd Status",
   "description": "Commanded compressor 2 state",
   "units": "",
   "access": "R",
   "states": "Inactive=Off; Active=On"
  },
  {
   "type": "BI",
   "instance": 3,
   "name": "Rev Valve Status",
   "description": "Commanded reversing valve position",
   "units": "",
   "access": "R",
   "states": "Inactive=Cooling; Active=Heating"
  },
  {
   "type": "BI",
   "instance": 4,
   "name": "Acc 1 Status",
   "description": "Accessory 1 output state",
   "units": "",
   "access": "R",
   "states": "Inactive=Off; Active=On"
  },
  {
   "type": "BI",
   "instance": 5,
   "name": "Acc 2 Status",
   "description": "Accessory 2 output state",
   "units": "",
   "access": "R",
   "states": "Inactive=Off; Active=On"
  },
  {
   "type": "BI",
   "instance": 6,
   "name": "Stage 1 Alarm",
   "description": "Compressor 1 alarm",
   "units": "",
   "access": "R",
   "states": "Inactive=Normal; Active=Alarm"
  },
  {
   "type": "BI",
   "instance": 7,
   "name": "Stage 2 Alarm",
   "description": "Compressor 2 alarm",
   "units": "",
   "access": "R",
   "states": "Inactive=Normal; Active=Alarm"
  },
  {
   "type": "BO",
   "instance": 1,
   "name": "Alarm Reset",
   "description": "Reset manual-reset alarms: Active, then back to Inactive",
   "units": "",
   "access": "W",
   "states": "Inactive=Normal; Active=Reset"
  },
  {
   "type": "MI",
   "instance": 1,
   "name": "Mode of Operation",
   "description": "Current operating status",
   "units": "",
   "access": "R",
   "states": "1=Auto; 7=Shutdown"
  },
  {
   "type": "MO",
   "instance": 1,
   "name": "Emergency Override",
   "description": "Network emergency shutdown",
   "units": "",
   "access": "W",
   "states": "1=Normal; 5=Shutdown"
  },
  {
   "type": "MO",
   "instance": 2,
   "name": "Compressor 1 Enable",
   "description": "Lead compressor call (thermostat Y1)",
   "units": "",
   "access": "W",
   "states": "1=Off; 2=On"
  },
  {
   "type": "MO",
   "instance": 3,
   "name": "Valve Enable",
   "description": "Network reversing valve call",
   "units": "",
   "access": "W",
   "states": "1=Cooling; 2=Heating"
  },
  {
   "type": "MO",
   "instance": 4,
   "name": "Application Mode",
   "description": "Not used",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "MO",
   "instance": 5,
   "name": "Heat Cool Mode",
   "description": "Not used",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "MO",
   "instance": 6,
   "name": "Compressor 2 Enable",
   "description": "Lag compressor call (thermostat Y2)",
   "units": "",
   "access": "W",
   "states": "1=Off; 2=On"
  }
 ],
 "integration": {
  "summary": "The BAS stages this unit directly: MO2 is the lead compressor (Y1) call, MO6 the lag compressor (Y2) call and MO3 the reversing valve call. MO1 shuts the unit down from the network and BO1 resets manual-reset alarms. Watch load water temperatures, the AI10 alarm status and the per-stage alarms.",
  "minimum_points": [
   {
    "ref": "MO 2",
    "name": "Compressor 1 Enable",
    "why": "Stage 1 compressor call"
   },
   {
    "ref": "MO 6",
    "name": "Compressor 2 Enable",
    "why": "Stage 2 compressor call"
   },
   {
    "ref": "MO 3",
    "name": "Valve Enable",
    "why": "Heating/cooling selection"
   },
   {
    "ref": "MO 1",
    "name": "Emergency Override",
    "why": "Network emergency shutdown"
   },
   {
    "ref": "BO 1",
    "name": "Alarm Reset",
    "why": "Reset manual-reset alarms"
   },
   {
    "ref": "MI 1",
    "name": "Mode of Operation",
    "why": "Auto or shutdown status"
   },
   {
    "ref": "BI 1",
    "name": "Compr 1 Cmd Status",
    "why": "Compressor 1 commanded on/off"
   },
   {
    "ref": "AI 3",
    "name": "Enter Load Temp",
    "why": "Entering load water temperature"
   },
   {
    "ref": "AI 4",
    "name": "Leave Load Temp1",
    "why": "Leaving load water temperature"
   },
   {
    "ref": "AI 10",
    "name": "Alarm Status Output",
    "why": "Any alarm (0 % normal, 100 % alarm)"
   }
  ],
  "enable": "There is no internal temperature control or enable point: the unit runs only on external compressor (Y1) and reversing valve (O) calls, sent either at the terminal board or over the network. MO1 Emergency Override (1=Normal, 5=Shutdown) stops both compressors.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "Freeze limits are factory set to 30 F and drop to 15 F when the selection jumpers are removed; AV1/AV2 hold the two values."
  ],
  "gotchas": [
   "Output points (AO/MO) are volatile and go back to uncommanded after a power cycle, so rewrite them after power is restored.",
   "AV/MV points are stored in flash (about 2,000,000 writes); write them only manually or by schedule, never from automatic reset logic.",
   "MO3 uses 1=Cooling, 2=Heating on this sheet, the opposite of the single-compressor Versatec sheet.",
   "A Y1 call turns on X1 first; the compressor starts after a 90-second delay for the isolation valve. Cycling the reversing valve shuts the compressors down.",
   "After power-up or leaving emergency shutdown, outputs wait a random 1-120 second start delay.",
   "Alarm Reset (BO1) is written Active to reset, then back to Inactive."
  ]
 },
 "page": "https://easybacnet.com/bacnet-points-lists/waterfurnace/fx10-versatec-dual-compressor-water-to-water",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
