{
 "manufacturer": "PVI",
 "manufacturer_slug": "pvi",
 "model": "EOS (BTCII) water heater control",
 "model_slug": "eos-btcii-water-heater",
 "aliases": [
  "PVI EOS",
  "BTCII",
  "EOS Controller",
  "Conquest",
  "PVI Conquest",
  "J1239D-570",
  "PV7213",
  "Power VTX",
  "TurboPower 96"
 ],
 "equipment_type": "Commercial gas water heater control",
 "applies_to": "PVI water heaters with the EOS BTCII touch-screen control (Conquest 100 and 130 gallon, Power VTX, TurboPower 96), firmware J1239D-570 or newer.",
 "summary": "The EOS BTCII control on PVI water heaters speaks BACnet MS/TP (or Modbus RTU) directly from the back of its touch screen. It exposes only Analog Inputs and Analog Values: system status and alert, target and system temperature, the heater's probes, ignition state, modulation, relay states, flame current, run hours, cycles and error code, plus writable system enable, setpoint, heater enable and pump force-on outputs. Cascade objects are present but not used on water heaters.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": "J1239D-570 and newer",
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "Object names and instances follow the discovery list printed in the manual (instance 9002 example). The manual's point details mark each point Typical, Advanced or Don't use.",
  "Cascade objects (AI 5-10), SYSTEM DEMAND, HEATER 1 STATUS, HEATER 1 DHW, BAS TARGET and ROTATION are marked not used for water heaters.",
  "The point details swap the drive numbering: they list HEATER 1 DRIVE 2 at 1001 (pump 2, DHW/sanitary) and DRIVE 1 at 1002 (heater pump), while the discovery list has DRIVE 1 at 1001 and DRIVE 2 at 1002. Check on site.",
  "Flame current is reported with BACnet units of milliamperes, but the value is in tenths of a microamp (10 = 1 µA).",
  "Error codes 1-31 (manual list): 1 EEPROM, 2 outdoor sensor, 3 supply sensor, 4 DHW sensor, 5 software, 6 FTBus comm, 7 LWCO, 8 remote proving, 9 air pressure, 10 low gas pressure, 11-14 outlet/inlet/vent/hi-limit sensor, 15 ignition failure, 16 flame loss, 17 vent hi-limit, 18 tank hi-limit, 19 false flame, 20 OEM card, 21 internal failure, 22 hi-delta, 23 low HSI, 24 low voltage, 25 blower speed, 26 high gas pressure, 27-31 linked-system communication."
 ],
 "source": {
  "title": "EOS Interface Guide, and Points List - For EOS BTCII Firmware Version J1239D-570 and Newer",
  "doc_number": "PV7213 (PN 144594)",
  "revision_date": "2021-01",
  "url": "https://www.pvi.com/dfsmedia/0533dbba17714b1ab581ab07a4cbb521/53661-source/eos-interface-and-points-list-pv7213.pdf"
 },
 "integration": {
  "summary": "Set the BTCII network mode to BACnet on the display, give it a device instance and MAC, and wire the 3-pin RS-485 terminal. Enable the heater with HEATER 1 ENABLE (and SYSTEM ENABLE), write SETPOINT, and read SYSTEM STATUS, the tank probes, HEATER 1 ALERT and HEATER 1 ERROR.",
  "minimum_points": [
   {
    "ref": "AV 1000",
    "name": "HEATER 1 ENABLE",
    "why": "Heater enable (1 = enable)"
   },
   {
    "ref": "AV 2",
    "name": "SETPOINT",
    "why": "Water heater setpoint"
   },
   {
    "ref": "AI 0",
    "name": "SYSTEM STATUS",
    "why": "0 disabled, 1 idle, 2 heating"
   },
   {
    "ref": "AI 1005",
    "name": "HEATER 1 PROBE 1",
    "why": "Outlet / top of tank temperature"
   },
   {
    "ref": "AI 1006",
    "name": "HEATER 1 PROBE 2",
    "why": "Mid-tank temperature"
   },
   {
    "ref": "AI 1003",
    "name": "HEATER 1 ALERT",
    "why": "0 ok, 1 alert, 2 soft lockout, 3 hard lockout"
   },
   {
    "ref": "AI 1018",
    "name": "HEATER 1 ERROR",
    "why": "Latest error code (0 = none)"
   }
  ],
  "enable": "HEATER 1 ENABLE (AV 1000) enables or disables the heater (1/0). SYSTEM ENABLE (AV 0) is a separate system enable from the setup menu. The TH input (R1-R2, jumpered at the factory) must also be closed; AI 1001 shows it.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "On the display: Toolbox menu, access level ADV, then NETWORK menu: set MODE (BAS) to BACN.",
   "Device instance is entered on the display (1-4194303); MAC 1-127 (default 3); baud 2400-115k (default 38k4); Max Master default 127; Max Info Frames default 1.",
   "RS-485 on a 3-pin terminal on the back of the BTCII display: A(-) to the BAS D+, B(+) to D-, plus ground. No bias or termination resistors are built in.",
   "The port is shared with Modbus RTU; only one protocol is active."
  ],
  "gotchas": [
   "SYSTEM STATUS does not show errors; a lockout reads as Idle. Use HEATER 1 ALERT and HEATER 1 ERROR.",
   "Do not use the cascade or boiler-only points on a water heater."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 0,
   "name": "SYSTEM STATUS",
   "description": "System status",
   "units": "",
   "access": "R",
   "states": "0=Disabled, 1=Idle, 2=Heating"
  },
  {
   "type": "AI",
   "instance": 1,
   "name": "SYSTEM DEMAND",
   "description": "External enable input (1 = on)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "SYSTEM ALERT",
   "description": "System alert",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=Alert, 2=Error"
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "SYSTEM TARGET",
   "description": "Target temperature in use",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "SYSTEM TEMP",
   "description": "Operating (system) sensor temperature",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "CASCADE STATUS",
   "description": "Cascade communication status",
   "units": "",
   "access": "R",
   "states": "0=Standalone, 1=Working, 2=Not All Talking, 3=No Connection"
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "CASCADE INSTALLED",
   "description": "Boilers configured in the cascade",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "CASCADE TALKING",
   "description": "Boilers talking on the cascade",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "CASCADE ENABLED",
   "description": "Enabled boilers in the system",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "CASCADE OPERATING",
   "description": "Boiler currently modulating",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "CASCADE LEAD",
   "description": "Current lead boiler number",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1000,
   "name": "HEATER 1 STATUS",
   "description": "Cascade communication status of this unit",
   "units": "",
   "access": "R",
   "states": "0=No Communication, 1=Communicating, 2=Lost Communication"
  },
  {
   "type": "AI",
   "instance": 1001,
   "name": "HEATER 1 TH",
   "description": "TH enable input (R1-R2)",
   "units": "",
   "access": "R",
   "states": "0=Open (disabled), 1=Closed (enabled)"
  },
  {
   "type": "AI",
   "instance": 1002,
   "name": "HEATER 1 DHW",
   "description": "DHW call input",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "AI",
   "instance": 1003,
   "name": "HEATER 1 ALERT",
   "description": "Alert status",
   "units": "",
   "access": "R",
   "states": "0=None, 1=Alert, 2=Auto (soft lockout), 3=Manual (hard lockout)"
  },
  {
   "type": "AI",
   "instance": 1004,
   "name": "HEATER 1 IGNITION",
   "description": "Burner sequence",
   "units": "",
   "access": "R",
   "states": "0=Idle, 1=Prepurge, 2=Ignition, 3=Burner On, 4=Postpurge, 5=Fail"
  },
  {
   "type": "AI",
   "instance": 1005,
   "name": "HEATER 1 PROBE 1",
   "description": "Outlet probe (top of tank / boiler outlet)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1006,
   "name": "HEATER 1 PROBE 2",
   "description": "Inlet probe (mid tank / return)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1007,
   "name": "HEATER 1 PROBE 3",
   "description": "Vent (flue) probe",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1008,
   "name": "HEATER 1 PROBE 4",
   "description": "Probe 4 (DHW sensor input)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1009,
   "name": "HEATER 1 PROBE 5",
   "description": "Probe 5 (supply sensor input)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1010,
   "name": "HEATER 1 PROBE 6",
   "description": "Probe 6 (outdoor sensor input)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1011,
   "name": "HEATER 1 MOD",
   "description": "Modulation rate, 0-100 %",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1012,
   "name": "HEATER 1 RELAY 1",
   "description": "Relay J14-1 (pump 2, typically DHW/sanitary) status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "AI",
   "instance": 1013,
   "name": "HEATER 1 RELAY 2",
   "description": "Relay J14-2 (pump 1, heater pump) status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "AI",
   "instance": 1014,
   "name": "HEATER 1 EMS VOLTAGE",
   "description": "EMS analog input (PIM J1-8/9)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1015,
   "name": "HEATER 1 CURRENT",
   "description": "Flame current (10 = 1 µA)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1016,
   "name": "HEATER 1 RUNTIME",
   "description": "Burner run hours, rolls over at 65535",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1017,
   "name": "HEATER 1 CYCLES",
   "description": "Burner start attempts, rolls over at 65535",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1018,
   "name": "HEATER 1 ERROR",
   "description": "Latest error code (0 = none)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 0,
   "name": "SYSTEM ENABLE",
   "description": "System enable",
   "units": "",
   "access": "W",
   "states": "0=Disabled, 1=Enabled"
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "BAS TARGET",
   "description": "BAS setpoint; overrides SETPOINT when non-zero",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "SETPOINT",
   "description": "Heater setpoint",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "ROTATION",
   "description": "Rotation (no details in the manual)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1000,
   "name": "HEATER 1 ENABLE",
   "description": "Heater enable",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "AV",
   "instance": 1001,
   "name": "HEATER 1 DRIVE 1",
   "description": "Pump relay force-on (see note on drive numbering)",
   "units": "",
   "access": "W",
   "states": "0=Auto, 1=Force On"
  },
  {
   "type": "AV",
   "instance": 1002,
   "name": "HEATER 1 DRIVE 2",
   "description": "Pump relay force-on (see note on drive numbering)",
   "units": "",
   "access": "W",
   "states": "0=Auto, 1=Force On"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/pvi/eos-btcii-water-heater",
 "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"
}
