{
 "manufacturer": "Badger Meter",
 "manufacturer_slug": "badger-meter",
 "model": "Dynasonics TFX Ultra transit-time flow / energy meter (BACnet IP Ethernet module)",
 "model_slug": "tfx-ultra-bacnet-ip",
 "short_model": "TFX Ultra BACnet IP",
 "aliases": [
  "TFX Ultra",
  "TFX Ultra BACnet IP",
  "Dynasonics TFX Ultra",
  "TFX Ultra Ethernet",
  "TTM-UM-00136"
 ],
 "equipment_type": "Ultrasonic flow / energy meter",
 "applies_to": "Dynasonics TFX Ultra clamp-on flow and energy transmitters ordered with the Ethernet module, set to BACnet IP.",
 "summary": "The TFX Ultra is a clamp-on transit-time ultrasonic flow meter; energy models add two temperature inputs. With the Ethernet module set to BACnet IP it serves 25 analog inputs (signal strength, rate, totalizers, temperatures in °C and °F, flow in fixed units and the unit codes) and one binary output that resets the totalizers.",
 "bacnet_transport": [
  "BACnet IP"
 ],
 "firmware": null,
 "default_device_instance": null,
 "access_inferred": true,
 "notes": [
  "The table gives a description and object ID only, with no Object_Name column; the description is used as the name here.",
  "AI 2 carries flow rate on flow models and energy rate on energy (BTU) models, in the units chosen in the meter; AI 22-25 report which units.",
  "AI 16-21 give the same flow rate in fixed units (GPM, LPM, CFH, CMH) and velocity (FPS, MPS).",
  "Access is not printed per object; inputs are shown read-only and BO 1 writable as the notes describe.",
  "The BACnet MS/TP version serves a shorter list (AI 1-7, 11, 12, 16, 17 and BO 1).",
  "Source: Table 17 'BACnet IP object mappings', page 75 (26 objects)."
 ],
 "source": {
  "title": "TFX Ultra Flow and Energy Meters User Manual",
  "doc_number": "TTM-UM-00136-EN-08",
  "revision_date": "2018-03",
  "url": "https://core.instrumart.com/assets/Dynasonics-TFX-Ultra-manual.pdf",
  "unofficial": true,
  "host": "Instrumart"
 },
 "integration": {
  "summary": "Order the meter with the Ethernet module, set the IP address and BACnet device ID on its web page, then read the rate, the totalizers and (energy models) the temperatures. Check AI 22-25 once to know the units of AI 2-5.",
  "minimum_points": [
   {
    "ref": "BO 1",
    "name": "Reset Totalizers",
    "why": "Write 1 to reset all totalizers"
   },
   {
    "ref": "AI 2",
    "name": "Flow Rate (Flow model) / Energy Rate (BTU model)",
    "why": "Flow rate (flow models) or energy rate (BTU models)"
   },
   {
    "ref": "AI 3",
    "name": "Net Totalizer",
    "why": "Net total, units per AI 23/24"
   },
   {
    "ref": "AI 16",
    "name": "Flow Rate",
    "why": "Flow rate, GPM"
   },
   {
    "ref": "AI 11",
    "name": "Temperature 1",
    "why": "Temperature 1, °F (energy models)"
   },
   {
    "ref": "AI 12",
    "name": "Temperature 2",
    "why": "Temperature 2, °F (energy models)"
   },
   {
    "ref": "AI 1",
    "name": "Signal Strength",
    "why": "Signal strength; low means poor coupling"
   }
  ],
  "enable": null,
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "IP address, subnet, gateway and BACnet device ID are set on the Ethernet module's web page, not from the meter keypad.",
   "Web page default address 192.168.0.100, reached with a crossover cable; it asks for a user name and password.",
   "UDP port 0xBAC0 (47808). Device object identifier is settable 1-9999 on the web page."
  ],
  "gotchas": [
   "The Ethernet module and the totalizer pulse output option cannot both be fitted on energy models.",
   "BO 1 returns to inactive by itself after the reset."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "Signal Strength",
   "description": "Ultrasonic signal strength",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Flow Rate (Flow model) / Energy Rate (BTU model)",
   "description": "Flow rate, or energy rate on energy models",
   "units": "Gallons, Liters, MGallons, Cubic Feet, Cubic Meters, Acre Feet, Oil Barrel, Liquid Barrel, Feet, Meters, Lb, Kg, BTU, MBTU, MMBTU, TON per Second, Minute, Hour, Day",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "Net Totalizer",
   "description": "Net total",
   "units": "Gallons, Liters, MGallons, Cubic Feet, Cubic Meters, Acre Feet, Oil Barrel, Liquid Barrel, Feet, Meters, Lb, Kg, BTU, MBTU, MMBTU, TON",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "Positive Totalizer",
   "description": "Forward total",
   "units": "Gallons, Liters, MGallons, Cubic Feet, Cubic Meters, Acre Feet, Oil Barrel, Liquid Barrel, Feet, Meters, Lb, Kg, BTU, MBTU, MMBTU, TON",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "Negative Totalizer",
   "description": "Reverse total",
   "units": "Gallons, Liters, MGallons, Cubic Feet, Cubic Meters, Acre Feet, Oil Barrel, Liquid Barrel, Feet, Meters, Lb, Kg, BTU, MBTU, MMBTU, TON",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "Temperature 1",
   "description": "Temperature sensor 1",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "Temperature 2",
   "description": "Temperature sensor 2",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "Diff Temp (1-2)",
   "description": "Temperature 1 minus 2",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "Diff Temp (2-1)",
   "description": "Temperature 2 minus 1",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "Abs Diff Temp",
   "description": "Absolute temperature difference",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "Temperature 1",
   "description": "Temperature sensor 1",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "Temperature 2",
   "description": "Temperature sensor 2",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "Diff Temp (1-2)",
   "description": "Temperature 1 minus 2",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 14,
   "name": "Diff Temp (2-1)",
   "description": "Temperature 2 minus 1",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 15,
   "name": "Abs Diff Temp",
   "description": "Absolute temperature difference",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 16,
   "name": "Flow Rate",
   "description": "Flow rate in GPM",
   "units": "GPM",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 17,
   "name": "Flow Rate",
   "description": "Flow rate in LPM",
   "units": "LPM",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 18,
   "name": "Flow Rate",
   "description": "Flow rate in CFH",
   "units": "CFH",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 19,
   "name": "Flow Rate",
   "description": "Flow rate in CMH",
   "units": "CMH",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 20,
   "name": "Flow Rate",
   "description": "Flow velocity in FPS",
   "units": "FPS",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 21,
   "name": "Flow Rate",
   "description": "Flow velocity in MPS",
   "units": "MPS",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 22,
   "name": "Flow Unit Code",
   "description": "Volume/energy unit of the rate (AI 2)",
   "units": "",
   "access": "R",
   "states": "1=Gallons, 2=Liters, 3=MGallons, 4=Cubic Feet, 5=Cubic Meter, 6=Acre Feet, 7=Oil Barrel, 8=Liq Barrel, 9=Feet, 10=Meters, 11=LB, 12=Kg, 13=BTU, 14=MBTU, 15=MMBTU, 16=Ton, 17=KJ, 18=kWh, 19=MWh"
  },
  {
   "type": "AI",
   "instance": 23,
   "name": "Total Unit Code",
   "description": "Unit of the totalizers",
   "units": "",
   "access": "R",
   "states": "1=Gallons, 2=Liters, 3=MGallons, 4=Cubic Feet, 5=Cubic Meter, 6=Acre Feet, 7=Oil Barrel, 8=Liq Barrel, 9=Feet, 10=Meters, 11=LB, 12=Kg, 13=BTU, 14=MBTU, 15=MMBTU, 16=Ton, 17=KJ, 18=kWh, 19=MWh"
  },
  {
   "type": "AI",
   "instance": 24,
   "name": "Total Exponent Unit Code",
   "description": "Totalizer multiplier",
   "units": "",
   "access": "R",
   "states": "1=E-1, 2=E0, 3=E1, 4=E2, 5=E3, 6=E4, 7=E5, 8=E6"
  },
  {
   "type": "AI",
   "instance": 25,
   "name": "Time Unit Code",
   "description": "Time base of the rate",
   "units": "",
   "access": "R",
   "states": "1=Second, 2=Minute, 3=Hour, 4=Day, 5=msec, 6=usec, 7=nsec, 8=psec"
  },
  {
   "type": "BO",
   "instance": 1,
   "name": "Reset Totalizers",
   "description": "Write 1 to reset all totalizers; returns to 0",
   "units": "",
   "access": "W",
   "states": "0=Inactive, 1=Active (reset)"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/badger-meter/tfx-ultra-bacnet-ip",
 "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"
}
