{
 "manufacturer": "Xylem",
 "manufacturer_slug": "xylem",
 "model": "Lowara ecocirc XL / XLplus circulator",
 "model_slug": "lowara-ecocirc-xlplus",
 "aliases": [
  "ecocirc XLplus",
  "ecocirc XL",
  "Lowara ecocirc",
  "ecocirc XLplus BACnet"
 ],
 "equipment_type": "ECM circulator pump (wet rotor)",
 "applies_to": "Lowara ecocirc XL and ecocirc XLplus single and twin wet-rotor circulators with the communication-capable drive.",
 "summary": "The ecocirc XL / XLplus drive is a BACnet MS/TP master (Modbus is the alternative). It uses only two object types: Analog Values for settings and commands (on/off, control mode, pressure/speed/temperature setpoints, twin-pump setup) and Analog Inputs for readings, alarm and error bit fields, twin-slave data, an error log and run timers.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": "Derived from the serial number: the lower 22 bits of the hex S/N on the drive label",
 "access_inferred": false,
 "notes": [
  "The device instance is fixed by the serial number: convert the hex S/N to 32-bit binary, drop the top 10 bits, and read the remaining 22 bits as decimal.",
  "Setpoint min/max/default values depend on the pump model; the table values are for reference only.",
  "Bit-field AIs (11-14, 25-27, 31, 36-38) must be split into 16 bits; the manual gives each bit meaning.",
  "AI 28-43 show one entry of the 8-entry error log, selected by AV 18.",
  "Temperature AIs read 3.40282347e+38 (water probes) or 255 (winding/module) when the probe may be faulty.",
  "AI 44-47 are listed as unused and are left out."
 ],
 "integration": {
  "summary": "Wire the pump to the MS/TP trunk and set the baud rate (38400 or higher is suggested). Find the device instance from the serial number. Write AV 0 to run or stop the pump, AV 1 for the control mode and the matching setpoint (AV 5, AV 6 or AV 7). Read power, head, flow, speed and the error code.",
  "minimum_points": [
   {
    "ref": "AV 0",
    "why": "Pump on/off (1 = on)",
    "name": "ON OFF"
   },
   {
    "ref": "AV 1",
    "why": "Control mode: 1 const. pressure, 2 prop., 3 curve",
    "name": "OP. MODALITY"
   },
   {
    "ref": "AV 6",
    "why": "Constant pressure head setpoint, m (mode 1)",
    "name": "CONST. H S.P."
   },
   {
    "ref": "AV 5",
    "why": "Proportional pressure head setpoint, m (mode 2)",
    "name": "PROP. H S.P."
   },
   {
    "ref": "AV 7",
    "why": "Constant curve speed setpoint, rpm (mode 3)",
    "name": "RPM S.P."
   },
   {
    "ref": "AI 3",
    "why": "Pump speed, rpm",
    "name": "CURR. RPM"
   },
   {
    "ref": "AI 0",
    "why": "Input power, W",
    "name": "POWER"
   },
   {
    "ref": "AI 2",
    "why": "Flow estimate, m³/h",
    "name": "CURR. Q"
   },
   {
    "ref": "AI 1",
    "why": "Head, m",
    "name": "CURR. H"
   },
   {
    "ref": "AI 15",
    "why": "Active error code; 0 = no error",
    "name": "CURR. ERROR"
   }
  ],
  "enable": "No separate enable: AV 0 ON OFF turns the pump on (1) or off (0) and AV 1 selects the control mode whose setpoint (AV 5, AV 6 or AV 7) applies.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "MS/TP master; baud 4800-57600, and the manual suggests 38400 or higher to avoid timing problems.",
   "Device instance comes from the drive serial number (lower 22 bits of the hex S/N).",
   "No segmentation support."
  ],
  "gotchas": [
   "Setpoint ranges depend on the pump model; check limits before writing.",
   "Twin pumps: AV 16 sets master/slave/single and AV 17 the twin mode; slave readings appear on AI 16-27.",
   "Several AIs are packed bit fields, not plain numbers."
  ]
 },
 "source": {
  "title": "ecocirc XLplus BACnet Objects (Technical Sheet)",
  "doc_number": "ecocirc XLplus BACnet Objects r1.0",
  "revision_date": "2014-06-05 (PICS date)",
  "url": "https://www.xylem.com/siteassets/brand/lowara/resources/manual/2014-08-29_ecocircxlplus_bacnet_objects_r1.0.pdf"
 },
 "points": [
  {
   "type": "AV",
   "instance": 0,
   "name": "ON OFF",
   "description": "Operating mode (pump on/off), default 1",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "OP. MODALITY",
   "description": "Control mode, default 2",
   "units": "",
   "access": "W",
   "states": "1=Constant pressure, 2=Proportional pressure, 3=Constant curve"
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "NIGHT MODE",
   "description": "Night mode activation",
   "units": "",
   "access": "W",
   "states": "0=Not active, 1=Active"
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "AIR VENTING",
   "description": "Air venting procedure",
   "units": "",
   "access": "W",
   "states": "0=Not active, 1=Active"
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "A. VEN. PWR ON",
   "description": "Air venting at power on",
   "units": "",
   "access": "W",
   "states": "0=Not active, 1=Active"
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "PROP. H S.P.",
   "description": "Proportional pressure setpoint (control mode 2)",
   "units": "m",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "CONST. H S.P.",
   "description": "Constant pressure setpoint (control mode 1)",
   "units": "m",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "RPM S.P.",
   "description": "Constant curve speed setpoint (control mode 3)",
   "units": "rpm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "T REG. TYPE",
   "description": "Temperature control mode",
   "units": "",
   "access": "W",
   "states": "0=Not active, 1=Prop. temperature to head, 2=Constant temperature"
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "ABS T S.P.",
   "description": "Absolute temperature setpoint",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "DIFF T S.P.",
   "description": "Differential temperature setpoint, 5-30",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "T ACQ. TYPE",
   "description": "Temperature probe source",
   "units": "",
   "access": "W",
   "states": "0=Internal, 1=External, 2=Differential"
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "T SLOPE",
   "description": "Temperature slope",
   "units": "",
   "access": "W",
   "states": "0=Increasing, 1=Decreasing"
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "KP CONST. T",
   "description": "Proportional constant for temperature control",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "KI CONST. T",
   "description": "Integral constant for temperature control",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "T PI PERIOD",
   "description": "Temperature control sampling time",
   "units": "ms",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "CIRC. CONF",
   "description": "Circulator configuration",
   "units": "",
   "access": "W",
   "states": "0=Twin master, 1=Twin slave, 2=Single"
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "TWIN MOD.",
   "description": "Twin pump control mode",
   "units": "",
   "access": "W",
   "states": "0=Backup, 1=Alternate, 2=Parallel, 3=Forced parallel"
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "LOG IDX SEL.",
   "description": "Error log row selector (0-7) for AI 28-43",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 0,
   "name": "POWER",
   "description": "Input power",
   "units": "W",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1,
   "name": "CURR. H",
   "description": "Head",
   "units": "m",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "CURR. Q",
   "description": "Flow",
   "units": "m³/h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "CURR. RPM",
   "description": "Speed",
   "units": "rpm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "CAN TEMP",
   "description": "Water temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "EXT. TEMP",
   "description": "External water temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "WIND 1 TEMP",
   "description": "Winding 1 temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "WIND 2 TEMP",
   "description": "Winding 2 temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "WIND 3 TEMP",
   "description": "Winding 3 temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "MODULE TEMP",
   "description": "Power module temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "IQ",
   "description": "Quadrature current",
   "units": "A",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "IO B.F. STS",
   "description": "I/O status bit field (0-10 V, 4-20 mA, start/stop, probe, relay)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "ALARM 1 B.F.",
   "description": "Alarm bit field 1 (A1-A7, A12)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "ALARM 2 B.F.",
   "description": "Alarm bit field 2 (internal alarms A20)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 14,
   "name": "ERROR 1 B.F.",
   "description": "Error bit field (E1-E10)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 15,
   "name": "CURR. ERROR",
   "description": "Active error code, 0 = no error",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 16,
   "name": "SLAVE PWR",
   "description": "Twin slave input power",
   "units": "W",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 17,
   "name": "SLAVE H",
   "description": "Twin slave head",
   "units": "m",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 18,
   "name": "SLAVE Q",
   "description": "Twin slave flow",
   "units": "m³/h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 19,
   "name": "SLAVE RPM",
   "description": "Twin slave speed",
   "units": "rpm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 20,
   "name": "SLAVE W.1 T",
   "description": "Twin slave winding 1 temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 21,
   "name": "SLAVE W.2 T",
   "description": "Twin slave winding 2 temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 22,
   "name": "SLAVE W.3 T",
   "description": "Twin slave winding 3 temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 23,
   "name": "SLAVE MOD. T",
   "description": "Twin slave power module temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 24,
   "name": "SLAVE IQ",
   "description": "Twin slave quadrature current",
   "units": "A",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 25,
   "name": "SLAVE B.F. A1",
   "description": "Twin slave alarm bit field 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 26,
   "name": "SLAVE B.F. A2",
   "description": "Twin slave alarm bit field 2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 27,
   "name": "SLAVE B.F. E2",
   "description": "Twin slave error bit field",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 28,
   "name": "LOG ACT ERR",
   "description": "Logged error X: error code",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 29,
   "name": "LOG ERR STA T",
   "description": "Logged error X: start time",
   "units": "s",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 30,
   "name": "LOG ERR END T",
   "description": "Logged error X: end time",
   "units": "s",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 31,
   "name": "LOG ERR B.F.",
   "description": "Logged error X: error bit field",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 32,
   "name": "LOG ERR COUNT",
   "description": "Logged error X: occurrence counter",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 33,
   "name": "LOG RPM SET",
   "description": "Logged error X: speed setpoint",
   "units": "rpm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 34,
   "name": "LOG RPM VALUE",
   "description": "Logged error X: speed",
   "units": "rpm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 35,
   "name": "LOG IQ",
   "description": "Logged error X: quadrature current",
   "units": "A",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 36,
   "name": "LOG AL 1 B.F.",
   "description": "Logged error X: alarm bit field 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 37,
   "name": "LOG AL 2 B.F.",
   "description": "Logged error X: alarm bit field 2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 38,
   "name": "LOG B.F. IO",
   "description": "Logged error X: I/O status bit field",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 39,
   "name": "LOG PWR",
   "description": "Logged error X: input power",
   "units": "W",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 40,
   "name": "LOG Q",
   "description": "Logged error X: flow",
   "units": "m³/h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 41,
   "name": "LOG H",
   "description": "Logged error X: head",
   "units": "m",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 42,
   "name": "LOG PWR M T",
   "description": "Logged error X: power module temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 43,
   "name": "LOG ON-OFF",
   "description": "Logged error X: operating mode",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 48,
   "name": "LIFE TMR",
   "description": "Life timer",
   "units": "s",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 49,
   "name": "TMR P 0-25",
   "description": "Time at 0-25 % power",
   "units": "s",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 50,
   "name": "TMR P 25-50",
   "description": "Time at 25-50 % power",
   "units": "s",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 51,
   "name": "TMR P 50-75",
   "description": "Time at 50-75 % power",
   "units": "s",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 52,
   "name": "TMR P 75-100",
   "description": "Time at 75-100 % power",
   "units": "s",
   "access": "R",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/xylem/lowara-ecocirc-xlplus",
 "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"
}
