{
 "manufacturer": "Belimo",
 "manufacturer_slug": "belimo",
 "model": "22PF Flow Sensor",
 "model_slug": "22pf-flow-sensor",
 "aliases": [
  "22PF",
  "22PF-..",
  "Belimo ultrasonic flow sensor",
  "Flow Sensor 22PF"
 ],
 "equipment_type": "Ultrasonic liquid flow sensor",
 "applies_to": "Belimo 22PF-.. ultrasonic flow sensors for water and glycol pipes, interface version 4.3.0.",
 "summary": "The 22PF is an ultrasonic flow meter for hydronic pipes with a built-in flow-body temperature sensor and glycol detection. On BACnet MS/TP it reports absolute and relative flow, accumulated volume, temperature, glycol concentration and status, plus an extra sensor input. It has no setpoint or control objects; it is a monitoring device.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": "FM 4.3.0, firmware 02.00.0003",
 "default_device_instance": 1,
 "access_inferred": false,
 "notes": [
  "The document prints access as R / W; those objects are listed here as writable (W).",
  "The Network Port object (instance 101) holds the MS/TP MAC address, baud rate and max master as writable properties.",
  "Flow, volume and temperature units follow MV 123, MV 126 and MV 127.",
  "Measuring range depends on pipe size (DN); see the product datasheet.",
  "Sensor 1 objects (AI 20, BI 20) are out of service unless MV 220 selects the matching sensor type."
 ],
 "integration": {
  "summary": "Pure monitoring device: set the engineering units once (MV 123, MV 126, MV 127), then poll or COV-subscribe flow, volume and temperature. Use MV 99 SummaryStatus and AV 140 ErrorState for alarms.",
  "minimum_points": [
   {
    "ref": "AV 19",
    "name": "AbsFlow_UnitSel",
    "why": "Measured flow"
   },
   {
    "ref": "AI 23",
    "name": "T_UnitSel",
    "why": "Water temperature at the flow body"
   },
   {
    "ref": "AV 52",
    "name": "Volume_UnitSel",
    "why": "Totalized volume"
   },
   {
    "ref": "AV 60",
    "name": "GlycolConcentration",
    "why": "Glycol content of the medium"
   },
   {
    "ref": "MV 99",
    "name": "SummaryStatus",
    "why": "Overall OK / warning / not OK"
   },
   {
    "ref": "AV 140",
    "name": "ErrorState",
    "why": "Bit-coded fault and warning flags"
   }
  ],
  "enable": null,
  "heartbeat": null,
  "remote_sensors": "Sensor 1 on Y3 can be read over BACnet as a voltage (AI 20) or switch (BI 20) once MV 220 is set to that type.",
  "setup": [
   "MS/TP: baud 9600-115200, default 38400; MAC address 0-127, default 1; max 32 nodes without repeater.",
   "Default device instance 1.",
   "MS/TP MAC and baud can also be changed through the Network Port object (NPO 101).",
   "Configure with Belimo Assistant 2; bus termination is set there and shown in BV 99."
  ],
  "gotchas": [
   "Writable persistent objects must not be written on a regular basis.",
   "Changing unit-select MVs changes the units of the flow, volume and temperature objects; update BMS scaling.",
   "Max 5 active COV subscriptions."
  ]
 },
 "source": {
  "title": "BACnet Interface Description, Flow Sensor 22PF-.. / V4.3.0",
  "doc_number": null,
  "revision_date": "2026-07",
  "url": "https://www.belimo.com/mam/general-documents/system_integration/BACnet/belimo_BACnet_Interface-description_22PF_V4_3_0_en-gb.pdf"
 },
 "points": [
  {
   "type": "Other",
   "instance": 101,
   "name": "Network Port Object",
   "description": "MS/TP network port (MAC, baud, max master)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 99,
   "name": "BusTermination",
   "description": "120 Ω bus termination enabled",
   "units": "",
   "access": "R",
   "states": "0=Disabled, 1=Enabled"
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "RelFlow",
   "description": "Flow relative to full scale (AV 100)",
   "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": 100,
   "name": "FS_UnitSel",
   "description": "Full-scale (nominal) flow",
   "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 (cannot be reset)",
   "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=–, 4=–, 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": "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=Degree C, 2=K, 3=Degree F"
  },
  {
   "type": "MV",
   "instance": 220,
   "name": "Sens1Type",
   "description": "Sensor 1 input type",
   "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 3=Reverse flow, 6=Flow actual exceeds flow nominal, 7=Flow measurement error, 9=Flowbody temperature error, 11=Freeze warning, 12=Glycol detected"
  },
  {
   "type": "MV",
   "instance": 99,
   "name": "SummaryStatus",
   "description": "Summary of MV 103-105",
   "units": "",
   "access": "R",
   "states": "1=OK, 2=Warning, 3=Not OK"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/belimo/22pf-flow-sensor",
 "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"
}
