{
 "manufacturer": "A. O. Smith",
 "manufacturer_slug": "a-o-smith",
 "model": "Custom Xi / Gold Xi electric water heaters (ETH-1000 / Mirius gateway)",
 "model_slug": "electric-water-heater-eth-1000-mirius",
 "aliases": [
  "Custom Xi",
  "Gold Xi",
  "Xi electric",
  "ETH-1000",
  "Mirius",
  "100316044",
  "100316045",
  "ICC gateway"
 ],
 "equipment_type": "Commercial electric water heater",
 "applies_to": "A. O. Smith Custom Xi and Gold Xi series commercial electric water heaters fitted with the ICC ETH-1000 or Mirius communication gateway.",
 "summary": "A. O. Smith's Xi electric water heaters talk to BACnet through an ICC gateway: the Mirius gives BACnet MS/TP and the ETH-1000 gives BACnet IP. The virtual device exposes tank temperatures, the setpoint and per-bank differentials, element-bank counts, run times and cycles, probe, ECO and low-water inputs, bank output states and state/fault/alert codes. The BMS can write the setpoint and enable or disable heating through an EMS control word.",
 "bacnet_transport": [
  "BACnet MS/TP",
  "BACnet IP"
 ],
 "firmware": "Mirius V3.000, ETH-1000 V4.001 (device object values in the manual)",
 "default_device_instance": 530081,
 "access_inferred": false,
 "notes": [
  "The printed table has two errors. It lists two rows as AI 5 'Tank Temperature' (one the controlling tank temperature, one the calculated value) and no AI 3; AI 5 is listed once here. It also gives BV 504 two names (Alarm Condition, 0 = False / 1 = True, and System In Fault, 0 = Okay / 1 = In Fault); because the manual does not say which is right, BV 504 is left out here. Check both on the live gateway.",
  "Objects marked ETH-1000 only are not available through the Mirius MS/TP gateway.",
  "Temperatures are in °C on the bus; the setpoint limits are also given in °F.",
  "The manual's text gives 530081 as the default device instance for electric models, but its electric device-object table prints 520081 (the gas default); check the gateway.",
  "AV 263 EMS Mode-Status: write 3841 to enter EMS mode, 1/0 to enable/disable heating, 3584 to refresh.",
  "To leave EMS mode write 3840; then write 0 and 3584 to clear leftover bits 1 and 14."
 ],
 "source": {
  "title": "Installation Manual: Inter-Appliance Communications, Communication Node for EMS/BMS Control (ETH-1000 / Mirius)",
  "doc_number": "100329879_2000571701 Rev. C",
  "revision_date": "2020-02",
  "url": "https://assets.hotwater.com/damroot/Original/10004/100329879.pdf"
 },
 "integration": {
  "summary": "Install the ICC gateway (Mirius for BACnet MS/TP, ETH-1000 for BACnet IP) and set its address and device instance with ICC Configuration Studio. The BMS writes the tank setpoint (AV 201) and, if it should switch heating, takes EMS control through AV 263 and refreshes it at least every 30 s. Read the tank temperature, banks on, CCB state and fault/alert codes.",
  "minimum_points": [
   {
    "ref": "AV 263",
    "name": "EMS Mode-Status",
    "why": "EMS control word: enable/disable heating"
   },
   {
    "ref": "AV 201",
    "name": "Temper Setpoint",
    "why": "Tank setpoint, 32.2-82.2 °C"
   },
   {
    "ref": "MV 801",
    "name": "CCB System State",
    "why": "0 = standby, 6 = heating, 8 = fault"
   },
   {
    "ref": "AI 5",
    "name": "Tank Temperature",
    "why": "Controlling tank temperature, °C"
   },
   {
    "ref": "AV 242",
    "name": "#Banks Cmd’d On",
    "why": "Element banks currently commanded on"
   },
   {
    "ref": "MV 802",
    "name": "Fault Code",
    "why": "Active fault code"
   },
   {
    "ref": "MV 803",
    "name": "Alert Code",
    "why": "Active alert code"
   }
  ],
  "enable": "Heating on/off from the BMS goes through AV 263 EMS Mode-Status: write 3841 to put the heater in EMS mode, then 1 to enable or 0 to disable heating. The tank setpoint is AV 201.",
  "heartbeat": "Write 3584 (EMS Mode Refresh) within 30 s, 15 s or less recommended, or EMS mode ends.",
  "remote_sensors": null,
  "setup": [
   "Gateway settings (address, baud, device instance, device name, IP) are changed with the ICC Configuration Studio software over USB.",
   "Mirius defaults: Modbus address 1, BACnet MS/TP MAC 81; electric models default to device instance 530081.",
   "MS/TP baud rates listed: 4800-115200; the ETH-1000 uses DHCP by default.",
   "Default device name: Elec Water Heater."
  ],
  "gotchas": [
   "The manual's object table has errors (two AI 5 rows, two names for BV 504); BV 504 is left out here, so confirm both on the live device.",
   "Several counters and bank run times are ETH-1000 only.",
   "Temperatures are in °C on the bus."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "Firmware Ver-Rev1",
   "description": "Firmware version; major in upper byte, minor in lower",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Configuration",
   "description": "Configuration word",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "Tank Temperature",
   "description": "Controlling tank temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "Lower Temperature",
   "description": "Lower or Secondary Temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 201,
   "name": "Temper Setpoint",
   "description": "Tank temperature setpoint; 32.2-82.2 °C (90-180 °F)",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 202,
   "name": "Differen’lBank1",
   "description": "Bank 1 differential; 0.6-11.1 °C (1-20 °F)",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 203,
   "name": "Differen’lBank2",
   "description": "Bank 2 differential; 0.6-11.1 °C (1-20 °F)",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 204,
   "name": "Differen’lBank3",
   "description": "Bank 3 differential; 0.6-11.1 °C (1-20 °F)",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 205,
   "name": "Differen’lBank4",
   "description": "Bank 4 differential; 0.6-11.1 °C (1-20 °F)",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 206,
   "name": "Differen’lBank5",
   "description": "Bank 5 differential; 0.6-11.1 °C (1-20 °F)",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 209,
   "name": "Number of Cycles",
   "description": "Number of heating cycles",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 210,
   "name": "Elapsed Time",
   "description": "Powered-up time, hours with two decimals",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 211,
   "name": "Elapsed Days",
   "description": "Powered-up time, days part",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 212,
   "name": "Elapsed Hours",
   "description": "Powered-up time, hours part (use with Elapsed Days)",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 213,
   "name": "Heating Time",
   "description": "Time spent heating, hours with two decimals",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 214,
   "name": "Heating Days",
   "description": "Time spent heating, days part",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 215,
   "name": "Heating Hours",
   "description": "Time spent heating, hours part (use with Heating Days)",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 217,
   "name": "#CCB HW Faults",
   "description": "CCB Hardware Fault Counter",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 218,
   "name": "#Model Faults",
   "description": "Model Fault Counter; ETH-1000 only",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 219,
   "name": "#Temp Probe Faults",
   "description": "Temperature Probe Fault Counter",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 223,
   "name": "#CCB Comm Faults",
   "description": "Communication Fault Counter; ETH-1000 only",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 224,
   "name": "#ECO Faults",
   "description": "High-temperature ECO trip counter",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 233,
   "name": "#Powr Anode Flts",
   "description": "Powered Anode Alert Counter",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 234,
   "name": "#Element Faults",
   "description": "Element Fault Counter",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 235,
   "name": "#LWCO Faults",
   "description": "Low Water Cut Off Fault Counter",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 236,
   "name": "#Element Banks Used",
   "description": "Number of Element Banks in Water Heater",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 237,
   "name": "#Elements in Bank 1",
   "description": "Elements monitored for current in bank 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 238,
   "name": "#Elements in Bank 2",
   "description": "Elements monitored for current in bank 2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 239,
   "name": "#Elements in Bank 3",
   "description": "Elements monitored for current in bank 3",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 240,
   "name": "#Elements in Bank 4",
   "description": "Elements monitored for current in bank 4",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 241,
   "name": "#Elements in Bank 5",
   "description": "Elements monitored for current in bank 5",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 242,
   "name": "#Banks Cmd’d On",
   "description": "Number of Banks currently Commanded to be on",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 243,
   "name": "Bank On Time",
   "description": "Bank 1 powered time, hours with two decimals; ETH-1000 only",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 244,
   "name": "Bank1 On Days",
   "description": "Bank 1 heating time, days part",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 245,
   "name": "Bank1 On Hours",
   "description": "Bank 1 heating time, hours part",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 246,
   "name": "Bank2 On Time",
   "description": "Bank 2 powered time, hours with two decimals; ETH-1000 only",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 247,
   "name": "Bank2 On Days",
   "description": "Bank 2 heating time, days part",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 248,
   "name": "Bank2 On Hours",
   "description": "Bank 2 heating time, hours part",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 249,
   "name": "Bank3 On Time",
   "description": "Bank 3 powered time, hours with two decimals; ETH-1000 only",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 250,
   "name": "Bank3 On Days",
   "description": "Bank 3 heating time, days part",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 251,
   "name": "Bank3 On Hours",
   "description": "Bank 3 heating time, hours part",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 252,
   "name": "Bank4 On Time",
   "description": "Bank 4 powered time, hours with two decimals; ETH-1000 only",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 253,
   "name": "Bank4 On Days",
   "description": "Bank 4 heating time, days part",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 254,
   "name": "Bank4 On Hours",
   "description": "Bank 4 heating time, hours part",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 255,
   "name": "Bank5 On Time",
   "description": "Bank 5 powered time, hours with two decimals; ETH-1000 only",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 256,
   "name": "Bank5 On Days",
   "description": "Bank 5 heating time, days part",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 257,
   "name": "Bank5 On Hours",
   "description": "Bank 5 heating time, hours part",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 258,
   "name": "Bank 1 Heating Cycles",
   "description": "Bank 1 heating cycles",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 259,
   "name": "Bank 2 Heating Cycles",
   "description": "Bank 2 heating cycles",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 260,
   "name": "Bank 3 Heating Cycles",
   "description": "Bank 3 heating cycles",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 261,
   "name": "Bank 4 Heating Cycles",
   "description": "Bank 4 heating cycles",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 262,
   "name": "Bank 5 Heating Cycles",
   "description": "Bank 5 heating cycles",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 263,
   "name": "EMS Mode-Status",
   "description": "EMS control word (BMS enable/disable of heating); see notes",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 264,
   "name": "Element Status",
   "description": "Element status bits",
   "units": "",
   "access": "R",
   "states": "Bit 0 = element 1 ... bit 14 = element 15"
  },
  {
   "type": "BI",
   "instance": 301,
   "name": "Temp Probe Open",
   "description": "Temperature Probe open status",
   "units": "",
   "access": "R",
   "states": "0=Okay, 1=Open"
  },
  {
   "type": "BI",
   "instance": 302,
   "name": "Temp Probe Short",
   "description": "Temperature Probe shorted status",
   "units": "",
   "access": "R",
   "states": "0=Okay, 1=Shorted"
  },
  {
   "type": "BI",
   "instance": 313,
   "name": "Temp Probe ECO Status",
   "description": "Probe high-temperature energy cut-out (ECO) status",
   "units": "",
   "access": "R",
   "states": "0=Open Switch, 1=Closed Switch"
  },
  {
   "type": "BI",
   "instance": 321,
   "name": "Safety Relay Feedback",
   "description": "Safety relay feedback",
   "units": "",
   "access": "R",
   "states": "0=Open, 1=Closed"
  },
  {
   "type": "BI",
   "instance": 322,
   "name": "Tank Full (LWCO)",
   "description": "Low water cut-off: tank full",
   "units": "",
   "access": "R",
   "states": "0=Open Switch, 1=Closed Switch"
  },
  {
   "type": "BI",
   "instance": 323,
   "name": "AC Input1 T’stat",
   "description": "AC input 1 thermostat (external enable 1)",
   "units": "",
   "access": "R",
   "states": "0=Open, 1=Closed"
  },
  {
   "type": "BI",
   "instance": 324,
   "name": "AC Input2 T’stat",
   "description": "AC input 2 thermostat (external enable 2)",
   "units": "",
   "access": "R",
   "states": "0=Open, 1=Closed"
  },
  {
   "type": "BO",
   "instance": 405,
   "name": "Bank1 Output Status",
   "description": "Bank 1 output state",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BO",
   "instance": 406,
   "name": "Bank2 Output Status",
   "description": "Bank 2 output state",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BO",
   "instance": 407,
   "name": "Bank3 Output Status",
   "description": "Bank 3 output state",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BO",
   "instance": 408,
   "name": "Bank4 Output Status",
   "description": "Bank 4 output state",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BO",
   "instance": 409,
   "name": "Bank5 Output Status",
   "description": "Bank 5 output state",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 505,
   "name": "Output Relay Status",
   "description": "Output relay status",
   "units": "",
   "access": "R",
   "states": "0=Relay Off, 1=Relay On"
  },
  {
   "type": "MV",
   "instance": 801,
   "name": "CCB System State",
   "description": "CCB control state",
   "units": "",
   "access": "R",
   "states": "0=Off (Standby), 6=Heating, 8=Fault"
  },
  {
   "type": "MV",
   "instance": 802,
   "name": "Fault Code",
   "description": "Active fault code",
   "units": "",
   "access": "R",
   "states": "Numeric code; see the fault codes and warnings table in the manual"
  },
  {
   "type": "MV",
   "instance": 803,
   "name": "Alert Code",
   "description": "Active alert code",
   "units": "",
   "access": "R",
   "states": "Numeric code; see the fault codes and warnings table in the manual"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/a-o-smith/electric-water-heater-eth-1000-mirius",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
