{
 "manufacturer": "Belimo",
 "manufacturer_slug": "belimo",
 "model": "Energy Valve V4",
 "model_slug": "energy-valve-v4",
 "aliases": [
  "Energy Valve",
  "EV..R2+BAC",
  "EV..R2+KBAC",
  "EV..R2+MID",
  "EV..R3+BAC",
  "Belimo Energy Valve 4"
 ],
 "equipment_type": "Pressure-independent control valve with energy meter",
 "applies_to": "Belimo Energy Valve version 4, DN 15 to 50, BACnet models EV..R2+(K)BAC, EV..R2+MID and EV..R3+BAC.",
 "summary": "The Energy Valve V4 is a pressure-independent characterized control valve with an ultrasonic flow sensor and two temperature sensors, so it reports flow, delta T, power and heating/cooling energy. It speaks BACnet MS/TP and BACnet IP (including foreign-device registration). The setpoint on AO 1 means position, flow, power or differential pressure depending on the control mode in MV 100, and the engineering units of most analog objects follow selectable unit objects.",
 "bacnet_transport": [
  "BACnet IP",
  "BACnet MS/TP"
 ],
 "firmware": "Application 04.01.0000, firmware 14.10.0002 (interface description V4.2.0)",
 "default_device_instance": 1,
 "access_inferred": false,
 "notes": [
  "Version 1-3 Energy Valves use a different object list; this file covers V4 only.",
  "Units of flow, power, energy, volume, temperature and pressure objects follow the unit-select MVs 123-131 and can change.",
  "MV 200 selects the certified (MID models only) or lifetime meter register for the energy and volume objects.",
  "Sensor 1 objects (AI 20/21, AV 20, BI 20) are out of service unless MV 220/221 select the matching sensor type.",
  "Differential pressure objects are used with the differential pressure control mode.",
  "AV 55 and AV 135 are both printed as AbsDiffPressure in the document; check the names read from the device."
 ],
 "integration": {
  "summary": "Set MV 122 SpSource to Bus, choose the control mode in MV 100 and the flow and power limits, then command AO 1 SpRel from the BMS. Read flow, temperatures, delta T, power and energy for monitoring, and watch MV 99 SummaryStatus and AV 140 ErrorState for faults. If you enable a bus fail action, the BMS must keep rewriting the setpoint inside the watchdog time.",
  "minimum_points": [
   {
    "ref": "AO 1",
    "name": "SpRel",
    "why": "Setpoint: position, flow, power or dp per control mode"
   },
   {
    "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": "AV 22",
    "name": "DeltaT_UnitSel",
    "why": "Coil delta T"
   },
   {
    "ref": "AV 46",
    "name": "HeatingPower_UnitSel",
    "why": "Heating power delivered; units set by MV 124"
   },
   {
    "ref": "AV 45",
    "name": "CoolingPower_UnitSel",
    "why": "Cooling power delivered; units set by MV 124"
   },
   {
    "ref": "AV 47",
    "name": "CoolingEnergy_UnitSel",
    "why": "Cooling energy meter"
   },
   {
    "ref": "AV 48",
    "name": "HeatingEnergy_UnitSel",
    "why": "Heating energy meter"
   },
   {
    "ref": "MV 99",
    "name": "SummaryStatus",
    "why": "Overall OK / warning / not OK"
   },
   {
    "ref": "AV 140",
    "name": "ErrorState",
    "why": "Bit-coded fault and warning flags"
   }
  ],
  "enable": "Write MV 122 SpSource = 2 (Bus) so the valve follows AO 1 SpRel instead of the 0-10 V signal on wire 3. MV 1 Override can force open, close, min, max, nominal or motor stop.",
  "heartbeat": "AV 130 BusWatchdog sets a timeout of 5-3600 s (default 120 s). If no write arrives within that time, the valve runs the action in MV 130 BusFailAction (default None; options Open, Close, Max, Min, Stop) and sets the bus watchdog bit in AV 140. With a fail action set, the BMS must keep rewriting the setpoint.",
  "remote_sensors": null,
  "setup": [
   "Default device instance 1; on MS/TP the device ID is this value plus the MAC address.",
   "MS/TP: baud 9600-115200, default 38400; MAC address 0-127, default 1; max 32 nodes per segment without repeater.",
   "BACnet IP: UDP port configurable, default 47808; foreign-device registration supported.",
   "Configure with Belimo Assistant 2 or the valve's built-in web server.",
   "Bus termination (120 Ω) is set with Belimo Assistant 2; BV 99 shows its state."
  ],
  "gotchas": [
   "Writable objects with instance 90 and above are stored persistently; do not write them on a regular schedule.",
   "Changing MV 100 ControlMode resets the valve.",
   "Engineering units change when the unit-select MVs are written; recheck BMS scaling after any change.",
   "Vmax below 25% of nominal flow is raised to 25%.",
   "Avoid switching MV 200 between certified and lifetime registers, it breaks energy trending.",
   "Max 6 active COV subscriptions."
  ]
 },
 "source": {
  "title": "BACnet Interface Description, Energy Valve DN 15...50 (Version 4)",
  "doc_number": null,
  "revision_date": "2024-09 / V4.2.0",
  "url": "https://www.belimo.com/mam/general-documents/system_integration/BACnet/belimo_BACnet_Interface-description_Energy-Valve_V4_2_en-gb.pdf"
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "RelPos",
   "description": "Relative valve position",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "SpAnalog",
   "description": "Analog setpoint when setpoint source is analog",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 20,
   "name": "Sens1Active_Volt",
   "description": "Sensor 1 input as voltage (active sensor)",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 21,
   "name": "Sens1Passive_Ohm",
   "description": "Sensor 1 input as resistance (passive sensor)",
   "units": "Ω",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 22,
   "name": "T1_UnitSel",
   "description": "Remote temperature T1",
   "units": "°C, K or °F (MV 127)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 23,
   "name": "T2_UnitSel",
   "description": "Flow body temperature T2",
   "units": "°C, K or °F (MV 127)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 1,
   "name": "SpRel",
   "description": "Relative setpoint: position, flow or power",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "AbsPos",
   "description": "Absolute valve position",
   "units": "°",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "RelFlow",
   "description": "Flow relative to maximum flow limit",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "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": 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": 20,
   "name": "Sens1Temp_UnitSel",
   "description": "Sensor 1 as temperature (passive sensor)",
   "units": "°C, K or °F (MV 127)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 22,
   "name": "DeltaT_UnitSel",
   "description": "Delta T between T1 and T2",
   "units": "°C, K or °F (MV 128)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 40,
   "name": "RelPower",
   "description": "Power relative to maximum power limit",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 45,
   "name": "CoolingPower_UnitSel",
   "description": "Cooling power",
   "units": "W, kW, MW, BTU/h, kBTU/h or ton (MV 124)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 46,
   "name": "HeatingPower_UnitSel",
   "description": "Heating power",
   "units": "W, kW, MW, BTU/h, kBTU/h or ton (MV 124)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 47,
   "name": "CoolingEnergy_UnitSel",
   "description": "Cooling energy meter",
   "units": "J, kJ, MJ, GJ, Wh, kWh, MWh, BTU, kBTU or ton-h (MV 125)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 48,
   "name": "HeatingEnergy_UnitSel",
   "description": "Heating energy meter",
   "units": "J, kJ, MJ, GJ, Wh, kWh, MWh, BTU, kBTU or ton-h (MV 125)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 52,
   "name": "Volume_UnitSel",
   "description": "Accumulated volume",
   "units": "m³, l, gal or cf (MV 126)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 55,
   "name": "AbsDiffPressure",
   "description": "Measured differential water pressure",
   "units": "Pa, bar, psi, mbar or kPa (MV 131)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 56,
   "name": "RelDiffPressure",
   "description": "Differential pressure relative to max dp setpoint",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 60,
   "name": "GlycolConcentration",
   "description": "Glycol concentration, measured or override value",
   "units": "%",
   "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": "AV",
   "instance": 110,
   "name": "Pmax",
   "description": "Maximum power limit",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 113,
   "name": "Pmax_UnitSel",
   "description": "Maximum power limit",
   "units": "W, kW, MW, BTU/h, kBTU/h or ton (MV 124)",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 116,
   "name": "Pnom_UnitSel",
   "description": "Nominal power",
   "units": "W, kW, MW, BTU/h, kBTU/h or ton (MV 124)",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 120,
   "name": "SpDeltaT_UnitSel",
   "description": "Delta T setpoint for dT-Manager",
   "units": "°C, K or °F (MV 128)",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 127,
   "name": "SpAbsFlowDeltaT_UnitSel",
   "description": "Flow setpoint at delta T",
   "units": "m³/s, m³/h, l/s, l/min, l/h, gpm or cfm (MV 123)",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 130,
   "name": "BusWatchdog",
   "description": "Bus watchdog timeout (5-3600, default 120)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 135,
   "name": "AbsDiffPressure",
   "description": "Differential water pressure setpoint",
   "units": "Pa, bar, psi, mbar or kPa (MV 131)",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 136,
   "name": "NomDiffPressure",
   "description": "Nominal differential pressure setpoint",
   "units": "Pa, bar, psi, mbar or kPa (MV 131)",
   "access": "R",
   "states": ""
  },
  {
   "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, 8=Remote temperature error, 9=Flowbody temperature error, 10=Communication to sensor interrupted, 11=Freeze warning, 12=Glycol detected, 13=Power setpoint not reached, 14=Device end of life reached, 15=Bus watchdog triggered, 16=No differential pressure detected, 17=Differential pressure setpoint can not be reached, 18=Minimum position applied"
  },
  {
   "type": "BI",
   "instance": 20,
   "name": "Sens1Switch",
   "description": "Sensor 1 as switch input",
   "units": "",
   "access": "R",
   "states": "0=Inactive, 1=Active"
  },
  {
   "type": "BV",
   "instance": 99,
   "name": "BusTermination",
   "description": "120 Ω bus termination enabled",
   "units": "",
   "access": "R",
   "states": "0=Disabled, 1=Enabled"
  },
  {
   "type": "MV",
   "instance": 1,
   "name": "Override",
   "description": "Override control of the setpoint",
   "units": "",
   "access": "C",
   "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": 99,
   "name": "SummaryStatus",
   "description": "Summary of all status objects",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=Warning, 3=Not OK"
  },
  {
   "type": "MV",
   "instance": 100,
   "name": "ControlMode",
   "description": "How the setpoint is interpreted",
   "units": "",
   "access": "W",
   "states": "1=Position control, 2=Flow control, 3=Power control, 4=Differential pressure control"
  },
  {
   "type": "MV",
   "instance": 101,
   "name": "DeltaT_Limitation",
   "description": "Delta T manager mode",
   "units": "",
   "access": "W",
   "states": "1=Disabled, 2=dT-Manager, 3=dT-Manager scaling"
  },
  {
   "type": "MV",
   "instance": 102,
   "name": "StatusDeltaTMgr",
   "description": "Delta T manager status",
   "units": "",
   "access": "R",
   "states": "1=Not selected, 2=Standby, 3=Active, 4=Scaling standby, 5=Scaling active"
  },
  {
   "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=Remote temperature not OK, 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": "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": "MV",
   "instance": 107,
   "name": "StatusPower",
   "description": "Power control status",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=Power not reached"
  },
  {
   "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": 122,
   "name": "SpSource",
   "description": "Setpoint source: analog wire 3 or bus AO 1",
   "units": "",
   "access": "W",
   "states": "1=Analog, 2=Bus"
  },
  {
   "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": "MV",
   "instance": 124,
   "name": "UnitSelPower",
   "description": "Engineering unit for power objects",
   "units": "",
   "access": "W",
   "states": "1=W, 2=kW, 3=MW, 4=BTU/h, 5=kBTU/h, 6=ton"
  },
  {
   "type": "MV",
   "instance": 125,
   "name": "UnitSelEnergy",
   "description": "Engineering unit for energy objects",
   "units": "",
   "access": "W",
   "states": "1=J, 2=kJ, 3=MJ, 4=GJ, 5=Wh, 6=kWh, 7=MWh, 8=BTU, 9=kBTU, 10=tonh"
  },
  {
   "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": 127,
   "name": "UnitSelTemperature",
   "description": "Engineering unit for temperature sensors",
   "units": "",
   "access": "W",
   "states": "1=°C, 2=K, 3=°F"
  },
  {
   "type": "MV",
   "instance": 128,
   "name": "UnitSelDeltaT",
   "description": "Engineering unit for delta T",
   "units": "",
   "access": "W",
   "states": "1=°C, 2=K, 3=°F"
  },
  {
   "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": "MV",
   "instance": 131,
   "name": "UnitSelPressureDifference",
   "description": "Engineering unit for differential pressure",
   "units": "",
   "access": "W",
   "states": "1=Pa, 2=bar, 3=psi, 4=mbar, 5=kPa"
  },
  {
   "type": "MV",
   "instance": 140,
   "name": "DiffPressureSensorStatus",
   "description": "Differential pressure sensor status",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=Differential pressure not detected"
  },
  {
   "type": "MV",
   "instance": 141,
   "name": "DiffPressureControlStatus",
   "description": "Differential pressure control status",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=Differential pressure setpoint cannot be reached, 3=Minimum position applied"
  },
  {
   "type": "MV",
   "instance": 200,
   "name": "SelectMeterRegisters",
   "description": "Certified (MID) or lifetime meter register",
   "units": "",
   "access": "W",
   "states": "1=Certified meter register, 2=Lifetime meter register"
  },
  {
   "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=Passive, 5=Switch"
  },
  {
   "type": "MV",
   "instance": 221,
   "name": "Sens1TempType",
   "description": "Sensor 1 passive element type",
   "units": "",
   "access": "W",
   "states": "1=None, 2=PT1000, 3=Ni1000EU, 4=–, 5=–, 6=–, 7=–, 8=NTC10k2, 9=NTC10k3"
  },
  {
   "type": "PIV",
   "instance": 31,
   "name": "CoolingEnergyPIV_UnitSel",
   "description": "Cooling energy meter as integer",
   "units": "MV 125 unit",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 32,
   "name": "HeatingEnergyPIV_UnitSel",
   "description": "Heating energy meter as integer",
   "units": "MV 125 unit",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 50,
   "name": "VolumePIV_UnitSel",
   "description": "Accumulated volume as integer",
   "units": "MV 126 unit",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 201,
   "name": "MeterSerialNo_Part1",
   "description": "Energy meter serial number, first digits",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 202,
   "name": "MeterSerialNo_Part2",
   "description": "Energy meter serial number, last digits",
   "units": "",
   "access": "R",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/belimo/energy-valve-v4",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
