{
 "manufacturer": "ISOIL",
 "manufacturer_slug": "isoil",
 "model": "MV311 thermal energy / flow converter (BACnet MS/TP)",
 "model_slug": "mv311",
 "aliases": [
  "MV311",
  "MV 311",
  "MV311-ISONRG",
  "ISOIL MV311"
 ],
 "equipment_type": "Thermal energy meter (flow converter)",
 "applies_to": "ISOIL MV311 (MV311-ISONRG) thermal energy converters for water and water/glycol heating and cooling systems, firmware 1.0.4.",
 "summary": "The MV311 is a thermal energy converter that pairs with a flow sensor and two temperature probes to measure heating and cooling energy. On BACnet MS/TP it gives the energy and volume totals both as integer counters (Positive Integer Values) and as real numbers (Analog Values), live power, flow and temperatures as Analog Inputs, alarm states as Multistate Values and error bit strings.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": "1.0.4 (application 1.05.0004)",
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "Counters exist twice: PIV 0-11 (integer) and AV 0-11 (real) with matching names ending _C and _V.",
  "Units follow the converter's unit settings; all energy counters share one unit and all volume counters another. Object descriptions change with the selected units.",
  "The four error objects are BitString Value objects (listed as type Other). Bit texts for RTD_ERROR and SUPP_ERROR are not clearly printed.",
  "P_TYPE_SEL is writable only if the local settings allow it; RST_SEL_CNT is write-only (write Active to reset, reads Inactive).",
  "Aux input counters (instance 10-11) can be volume, gas volume or electrical energy depending on the aux input setup."
 ],
 "source": {
  "title": "MV311 BACnet Protocol Implementation Conformance Statement (MV311_FW_1_0_4 BACnet PICS)",
  "doc_number": null,
  "revision_date": "22/09/2023",
  "url": "https://www.bacnetinternational.net/catalog/manu/isoil%20industria%20spa/MV311_FW_1_0_4%20BACnet%20PICS.pdf",
  "unofficial": true,
  "host": "BACnet International"
 },
 "integration": {
  "summary": "Read the heating and cooling energy totals, thermal power, flow and the two temperatures, plus the global alarm. Writing is only needed to reset the partial counters or to select heating/cooling if the meter is set for remote plant-type control.",
  "minimum_points": [
   {
    "ref": "AV 0",
    "name": "TOT_HEAT_NRG_V",
    "why": "Total heating energy"
   },
   {
    "ref": "AV 2",
    "name": "TOT_COOL_NRG_V",
    "why": "Total cooling energy"
   },
   {
    "ref": "AI 0",
    "name": "TH_POWER",
    "why": "Thermal power"
   },
   {
    "ref": "AI 1",
    "name": "FLOW_RATE",
    "why": "Flow rate"
   },
   {
    "ref": "AI 2",
    "name": "T1_TEMP",
    "why": "T1 flow temperature"
   },
   {
    "ref": "AI 3",
    "name": "T2_TEMP",
    "why": "T2 return temperature"
   },
   {
    "ref": "BV 0",
    "name": "P_TYPE_DET",
    "why": "Detected plant type: heating or cooling"
   },
   {
    "ref": "MV 0",
    "name": "GLOBAL_ALARM",
    "why": "Global alarm: 1 none, 2 main, 3 secondary, 4 both"
   }
  ],
  "enable": null,
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "BACnet MS/TP master or slave, 9600-115200 baud.",
   "Device object instance and name are writable."
  ],
  "gotchas": [
   "Energy and volume units depend on the meter settings; check the units property, not a fixed value.",
   "Writing RST_SEL_CNT resets the selected (partial) counters."
  ]
 },
 "points": [
  {
   "type": "PIV",
   "instance": 0,
   "name": "TOT_HEAT_NRG_C",
   "description": "Tot. Heat. Thermal Energy [] (counter, integer)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 1,
   "name": "PAR_HEAT_NRG_C",
   "description": "Par. Heat. Thermal Energy [] (counter, integer)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 2,
   "name": "TOT_COOL_NRG_C",
   "description": "Tot. Cool. Thermal Energy [] (counter, integer)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 3,
   "name": "PAR_COOL_NRG_C",
   "description": "Par. Cool. Thermal Energy [] (counter, integer)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 4,
   "name": "TOT_VF_VOL_C",
   "description": "Tot. Volume Conveying Liquid [] (counter, integer)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 5,
   "name": "PAR_VF_VOL_C",
   "description": "Par. Volume Conveying Liquid [] (counter, integer)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 6,
   "name": "TOT_HW_VOL_C",
   "description": "Tot. Volume Hot Water [] (counter, integer)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 7,
   "name": "PAR_HW_VOL_C",
   "description": "Par. Volume Hot Water [] (counter, integer)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 8,
   "name": "TOT_CW_VOL_C",
   "description": "Tot. Volume Cold Water [] (counter, integer)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 9,
   "name": "PAR_CW_VOL_C",
   "description": "Par. Volume Cold Water [] (counter, integer)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 10,
   "name": "TOT_AUX_IN_C",
   "description": "Tot. Volume Aux Input (counter, integer)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 11,
   "name": "PAR_AUX_IN_C",
   "description": "Par. Volume Aux Input (counter, integer)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 0,
   "name": "TOT_HEAT_NRG_V",
   "description": "Tot. Heat. Thermal Energy [] (counter, real)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "PAR_HEAT_NRG_V",
   "description": "Par. Heat. Thermal Energy [] (counter, real)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "TOT_COOL_NRG_V",
   "description": "Tot. Cool. Thermal Energy [] (counter, real)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "PAR_COOL_NRG_V",
   "description": "Par. Cool. Thermal Energy [] (counter, real)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "TOT_VF_VOL_V",
   "description": "Tot. Volume Conveying Liquid [] (counter, real)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "PAR_VF_VOL_V",
   "description": "Par. Volume Conveying Liquid [] (counter, real)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "TOT_HW_VOL_V",
   "description": "Tot. Volume Hot Water [] (counter, real)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "PAR_HW_VOL_V",
   "description": "Par. Volume Hot Water [] (counter, real)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "TOT_CW_VOL_V",
   "description": "Tot. Volume Cold Water [] (counter, real)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "PAR_CW_VOL_V",
   "description": "Par. Volume Cold Water [] (counter, real)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "TOT_AUX_IN_V",
   "description": "Tot. Volume Aux Input (counter, real)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "PAR_AUX_IN_V",
   "description": "Par. Volume Aux Input (counter, real)",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 0,
   "name": "TH_POWER",
   "description": "Thermal Power []",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1,
   "name": "FLOW_RATE",
   "description": "V.F. Flow Rate []",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "T1_TEMP",
   "description": "T1 Flow Temperature []",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "T2_TEMP",
   "description": "T2 Return Temperature []",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "TD_TEMP",
   "description": "Delta Temperature []",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "BRD_TEMP",
   "description": "Board Temperature []",
   "units": "Per unit setting",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "BATT_CHARGE",
   "description": "Battery Charge",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 0,
   "name": "GLOBAL_ALARM",
   "description": "Global alarm",
   "units": "",
   "access": "R",
   "states": "1=No Alarm, 2=Main Alarm, 3=Secondary Alarm, 4=Main and Secondary Alarm"
  },
  {
   "type": "MV",
   "instance": 1,
   "name": "TH_PWR_ALARM",
   "description": "Thermal Power alarm",
   "units": "",
   "access": "R",
   "states": "1=No Alarm, 2=Min Value Alarm, 3=Max Value Alarm"
  },
  {
   "type": "MV",
   "instance": 2,
   "name": "FL_RATE_ALARM",
   "description": "V.F. Flow rate alarm",
   "units": "",
   "access": "R",
   "states": "1=No Alarm, 2=Min Value Alarm, 3=Max Value Alarm"
  },
  {
   "type": "MV",
   "instance": 3,
   "name": "T1_ALARM",
   "description": "Temperature T1 alarm",
   "units": "",
   "access": "R",
   "states": "1=No Alarm, 2=Min Value Alarm, 3=Max Value Alarm"
  },
  {
   "type": "MV",
   "instance": 4,
   "name": "T2_ALARM",
   "description": "Temperature T2 alarm",
   "units": "",
   "access": "R",
   "states": "1=No Alarm, 2=Min Value Alarm, 3=Max Value Alarm"
  },
  {
   "type": "MV",
   "instance": 5,
   "name": "TD_ALARM",
   "description": "Temperature Delta alarm",
   "units": "",
   "access": "R",
   "states": "1=No Alarm, 2=Min Value Alarm, 3=Max Value Alarm"
  },
  {
   "type": "MV",
   "instance": 6,
   "name": "AIN_STATE",
   "description": "Analog input status",
   "units": "",
   "access": "R",
   "states": "1=AIN_OK, 2=No Current (disconnected), 3=Current Over Range"
  },
  {
   "type": "MV",
   "instance": 7,
   "name": "BATT_STATE",
   "description": "Battery status",
   "units": "",
   "access": "R",
   "states": "1=Battery OK (if enabled), 2=Battery Low, 3=Battery Empty, 4=Battery Fault"
  },
  {
   "type": "MV",
   "instance": 8,
   "name": "P_TYPE_CTRL",
   "description": "Plant Type Control",
   "units": "",
   "access": "R",
   "states": "1=Auto (by Power), 2=Local (by IN4), 3=Remote (by Com. Protocol)"
  },
  {
   "type": "Other",
   "instance": 0,
   "name": "MEA_ERROR",
   "description": "BitString Value: Measure error",
   "units": "",
   "access": "R",
   "states": "Bits 1-5: power measure, vector fluid, T1, T2, delta T overflow"
  },
  {
   "type": "Other",
   "instance": 1,
   "name": "PLS_ERROR",
   "description": "BitString Value: Pulse error",
   "units": "",
   "access": "R",
   "states": "Bits 1-4: pulse in 1-4 overflow"
  },
  {
   "type": "Other",
   "instance": 2,
   "name": "RTD_ERROR",
   "description": "BitString Value: RTD error",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "Other",
   "instance": 3,
   "name": "SUPP_ERROR",
   "description": "BitString Value: Supply error",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 0,
   "name": "P_TYPE_DET",
   "description": "Plant Type Detected",
   "units": "",
   "access": "R",
   "states": "Inactive=Heating, Active=Cooling"
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "P_TYPE_SEL",
   "description": "Plant Type Selected",
   "units": "",
   "access": "W",
   "states": "Inactive=Heating, Active=Cooling"
  },
  {
   "type": "BV",
   "instance": 2,
   "name": "RST_SEL_CNT",
   "description": "Reset Selected Counters (Active=Reset)",
   "units": "",
   "access": "W",
   "states": "Inactive=No Command, Active=Reset Command"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/isoil/mv311",
 "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"
}
