{
 "manufacturer": "Belimo",
 "manufacturer_slug": "belimo",
 "model": "2-way EPIV V4",
 "model_slug": "epiv-2-way-v4",
 "aliases": [
  "EPIV",
  "EP..R2+BAC",
  "EP..R2+KBAC",
  "Electronic Pressure Independent Valve",
  "2-way EPIV DN 15-50"
 ],
 "equipment_type": "Pressure-independent control valve",
 "applies_to": "Belimo 2-way electronic pressure-independent valves (EPIV) version 4.2, DN 15 to 50, BACnet models EP..R2+(K)BAC.",
 "summary": "The 2-way EPIV is a characterized control valve with a built-in ultrasonic flow sensor that holds flow regardless of system pressure. Over BACnet it takes a relative setpoint on AO 1 that means either position or flow, and reports position, flow, accumulated volume, flow-body temperature, glycol content and status. The document lists BACnet MS/TP and BACnet IP settings.",
 "bacnet_transport": [
  "BACnet IP",
  "BACnet MS/TP"
 ],
 "firmware": "Application EPIV 4.2",
 "default_device_instance": 1,
 "access_inferred": false,
 "notes": [
  "The document prints access as R / W; those objects are listed here as writable (W).",
  "Flow and volume units follow MV 123 and MV 126; temperature unit follows MV 127.",
  "Sensor 1 objects (AI 20, BI 20) are out of service unless MV 220 selects the matching sensor type.",
  "Data can take up to 190 s to initialise after power-up; values read 0 until then.",
  "Value ranges depend on valve size (DN); see the product datasheet."
 ],
 "integration": {
  "summary": "Write MV 122 SpSource to Bus, pick position or flow control in MV 100, set the flow limits, then command AO 1 SpRel. Monitor AV 19 flow and AI 1 position, and use the MV 103-106 status objects and AV 140 ErrorState for alarms. If a bus fail action is set, keep rewriting AO 1 or MV 1 within the watchdog time.",
  "minimum_points": [
   {
    "ref": "AO 1",
    "name": "SpRel",
    "why": "Position or flow setpoint from the BMS"
   },
   {
    "ref": "MV 122",
    "name": "SpSource",
    "why": "Must be Bus for AO 1 to take effect"
   },
   {
    "ref": "AV 19",
    "name": "AbsFlow_UnitSel",
    "why": "Measured flow"
   },
   {
    "ref": "AI 1",
    "name": "RelPos",
    "why": "Valve position feedback"
   },
   {
    "ref": "AV 140",
    "name": "ErrorState",
    "why": "Bit-coded fault and warning flags"
   }
  ],
  "enable": "Write MV 122 SpSource = 2 (Bus); otherwise the valve follows the 0.5-10 V signal on wire 3 and AO 1 is overridden.",
  "heartbeat": "AV 130 BusWatchdog sets 5-3600 s (default 120 s). If neither AO 1 nor MV 1 is rewritten within that time, the valve moves to the MV 130 BusFailAction (default None; options Open, Close, Max, Min, Stop) and sets bit 15 in AV 140.",
  "remote_sensors": null,
  "setup": [
   "Default device instance 1.",
   "MS/TP: baud 9600-115200, default 38400; MAC address 0-127, default 1; max 32 nodes without repeater.",
   "BACnet IP: UDP port configurable, default 47808.",
   "Configure with Belimo Assistant 2; bus termination is set there and shown in BV 99."
  ],
  "gotchas": [
   "Writable objects with instance 90 and above are persistent; do not write them cyclically.",
   "Changing MV 100 ControlMode resets the valve.",
   "Vmax below 25% of nominal flow is raised to 25%.",
   "Max 5 active COV subscriptions."
  ]
 },
 "source": {
  "title": "BACnet Interface Description, 2-way EPIV, DN 15…50 (Version 4.2)",
  "doc_number": null,
  "revision_date": "2025-09 / V4.2",
  "url": "https://www.belimo.com/mam/general-documents/system_integration/BACnet/belimo_BACnet_Interface-description_2way-EPIV_V4_2_en-gb.pdf"
 },
 "points": [
  {
   "type": "AO",
   "instance": 1,
   "name": "SpRel",
   "description": "Relative setpoint: position or flow",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "SpAnalog",
   "description": "Analog setpoint when setpoint source is analog",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1,
   "name": "RelPos",
   "description": "Relative valve position",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "AbsPos",
   "description": "Absolute valve position",
   "units": "°",
   "access": "R",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 122,
   "name": "SpSource",
   "description": "Setpoint source: analog wire 3 or bus AO 1",
   "units": "",
   "access": "W",
   "states": "1=Analog, 2=Bus"
  },
  {
   "type": "MV",
   "instance": 100,
   "name": "ControlMode",
   "description": "How the setpoint is interpreted",
   "units": "",
   "access": "W",
   "states": "1=Position Control, 2=Flow Control"
  },
  {
   "type": "MV",
   "instance": 1,
   "name": "Override",
   "description": "Override control of the setpoint",
   "units": "",
   "access": "W",
   "states": "1=None, 2=Open valve, 3=Close valve, 4=Minimum, 5=–, 6=Maximum, 7=Nominal, 8=–, 9=–, 10=–, 11=Motor Stop"
  },
  {
   "type": "MV",
   "instance": 120,
   "name": "Command",
   "description": "Start service/test function; returns to None",
   "units": "",
   "access": "W",
   "states": "1=None, 2=–, 3=Synchronization"
  },
  {
   "type": "MV",
   "instance": 130,
   "name": "BusFailAction",
   "description": "Action when bus watchdog expires",
   "units": "",
   "access": "W",
   "states": "1=None, 2=Open, 3=Close, 4=Max, 5=Min, 6=–, 7=Stop"
  },
  {
   "type": "AV",
   "instance": 130,
   "name": "BusWatchdog",
   "description": "Bus watchdog timeout (5-3600, default 120)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 99,
   "name": "BusTermination",
   "description": "120 Ω bus termination enabled",
   "units": "",
   "access": "R",
   "states": "0=Disabled, 1=Enabled"
  },
  {
   "type": "MV",
   "instance": 106,
   "name": "StatusActuator",
   "description": "Actuator status",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=Actuator cannot move, 3=Gear train disengaged, 4=No communication to actuator"
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "SpAbsFlow_UnitSel",
   "description": "Active absolute flow setpoint",
   "units": "m³/s, m³/h, l/s, l/min, l/h, gpm or cfm (MV 123)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "RelFlow",
   "description": "Flow relative to maximum flow limit",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "AbsFlow_UnitSel",
   "description": "Measured absolute flow",
   "units": "m³/s, m³/h, l/s, l/min, l/h, gpm or cfm (MV 123)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 90,
   "name": "Vmin",
   "description": "Minimum flow limit",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 93,
   "name": "Vmin_UnitSel",
   "description": "Minimum flow limit",
   "units": "m³/s, m³/h, l/s, l/min, l/h, gpm or cfm (MV 123)",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 94,
   "name": "Vmax",
   "description": "Maximum flow limit (25-100% of nominal)",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 97,
   "name": "Vmax_UnitSel",
   "description": "Maximum flow limit",
   "units": "m³/s, m³/h, l/s, l/min, l/h, gpm or cfm (MV 123)",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 100,
   "name": "Vnom_UnitSel",
   "description": "Nominal flow of the valve",
   "units": "m³/s, m³/h, l/s, l/min, l/h, gpm or cfm (MV 123)",
   "access": "R",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 123,
   "name": "UnitSelFlow",
   "description": "Engineering unit for flow objects",
   "units": "",
   "access": "W",
   "states": "1=m³/s, 2=m³/h, 3=l/s, 4=l/min, 5=l/h, 6=gpm, 7=cfm"
  },
  {
   "type": "AV",
   "instance": 52,
   "name": "Volume_UnitSel",
   "description": "Accumulated volume",
   "units": "m³, l, gal or cf (MV 126)",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 50,
   "name": "VolumePIV_UnitSel",
   "description": "Accumulated volume as integer",
   "units": "MV 126 unit",
   "access": "R",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 126,
   "name": "UnitSelVolume",
   "description": "Engineering unit for volume objects",
   "units": "",
   "access": "W",
   "states": "1=m³, 2=Litre, 3=Gallon, 4=Cubic foot"
  },
  {
   "type": "MV",
   "instance": 103,
   "name": "StatusSensor",
   "description": "Flow and temperature sensor status",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=Flow measurement error, 3=Flowbody temperature not OK, 4=–, 5=Communication to flow sensor interrupted"
  },
  {
   "type": "MV",
   "instance": 104,
   "name": "StatusFlow",
   "description": "Flow status",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=Actual flow exceeds nominal flow, 3=Flow with closed valve, 4=Flow setpoint cannot be reached, 5=Reverse flow"
  },
  {
   "type": "MV",
   "instance": 105,
   "name": "StatusMedia",
   "description": "Medium status",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=Glycol detected, 3=Freeze warning"
  },
  {
   "type": "AV",
   "instance": 60,
   "name": "GlycolConcentration",
   "description": "Glycol concentration",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 201,
   "name": "MeterSerialNo_Part1",
   "description": "Flow meter serial number, first digits",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 202,
   "name": "MeterSerialNo_Part2",
   "description": "Flow meter serial number, last digits",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 23,
   "name": "T_UnitSel",
   "description": "Flow body temperature",
   "units": "°C, K or °F (MV 127)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 20,
   "name": "Sens1Active_Volt",
   "description": "Sensor 1 input as voltage (active sensor)",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 20,
   "name": "Sens1Switch",
   "description": "Sensor 1 as switch input",
   "units": "",
   "access": "R",
   "states": "0=Inactive, 1=Active"
  },
  {
   "type": "MV",
   "instance": 127,
   "name": "UnitSelTemperature",
   "description": "Engineering unit for temperature",
   "units": "",
   "access": "W",
   "states": "1=°C, 2=K, 3=°F"
  },
  {
   "type": "MV",
   "instance": 220,
   "name": "Sens1Type",
   "description": "Sensor 1 input type (bus setpoint only)",
   "units": "",
   "access": "W",
   "states": "1=None, 2=Active volt, 3=–, 4=–, 5=Switch"
  },
  {
   "type": "AV",
   "instance": 140,
   "name": "ErrorState",
   "description": "Bit-coded error and warning flags",
   "units": "",
   "access": "R",
   "states": "Bit 0=No communication to actuator, 1=Gear train disengaged, 2=Actuator cannot move, 3=Reverse flow, 4=Flow setpoint not reached, 5=Flow with closed valve, 6=Flow actual exceeds flow nominal, 7=Flow measurement error, 9=Flowbody temperature error, 10=Communication to sensor interrupted, 11=Freeze warning, 12=Glycol detected, 15=Bus watchdog triggered"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/belimo/epiv-2-way-v4",
 "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"
}
