{
 "manufacturer": "Kamstrup",
 "manufacturer_slug": "kamstrup",
 "model": "MULTICAL 602 / 601 / 801 BACnet MS/TP module (670066)",
 "model_slug": "multical-602-bacnet-mstp",
 "aliases": [
  "MULTICAL 602 BACnet",
  "MULTICAL 601 BACnet",
  "MULTICAL 801 BACnet",
  "MULTICAL 62 BACnet",
  "MULTICAL 6L2",
  "MULTICAL 6M2",
  "670066",
  "Kamstrup BACnet base module"
 ],
 "equipment_type": "Heat and cooling energy meter (BACnet MS/TP module)",
 "applies_to": "Kamstrup MULTICAL 62, 601, 602, 6L2, 6M2 and 801 meters fitted with the 670066 BACnet MS/TP base module.",
 "summary": "The 670066 base module is the BACnet MS/TP option for the older MULTICAL 62/601/602/6L2/6M2/801 meters. It serves 12 read-only Analog Inputs: meter number, heat and cooling energy, volume, flow, power, two pulse inputs, the info code and the flow, return and difference temperatures. MULTICAL 403/603 meters use a different module (HC-003-66) with a larger object list.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": "F2 (application software 1.0)",
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "The device instance defaults to the last 5 digits of the meter number.",
  "Units are the ones the meter is configured for; the PICS lists the possible units.",
  "Every object is read-only in the object table.",
  "PICS dated 2014-12-10, document 5512-1160_D1_GB_07.2015."
 ],
 "source": {
  "title": "BACnet Protocol Implementation Conformance Statement (PICS) MULTICAL 62/601/602/6L2/6M2/801",
  "doc_number": "5512-1160_D1_GB",
  "revision_date": "2015-07",
  "url": "https://www.bacnetinternational.net/catalog/manu/kamstrup%20as/55121160_E1_GB.pdf"
 },
 "integration": {
  "summary": "Set a unique MS/TP address and device instance, then read heat energy (AI 1), cooling energy (AI 2), power (AI 5), flow (AI 4) and the flow and return temperatures (AI 10, AI 11). The info code (AI 8) shows meter events. Nothing needs to be written.",
  "minimum_points": [
   {
    "ref": "AI 1",
    "name": "Accumulated heat energy (E1)",
    "why": "Heat energy total"
   },
   {
    "ref": "AI 2",
    "name": "Accumulated cooling energy (E3)",
    "why": "Cooling energy total"
   },
   {
    "ref": "AI 5",
    "name": "Actual power",
    "why": "Current thermal power"
   },
   {
    "ref": "AI 4",
    "name": "Actual flow",
    "why": "Current flow rate"
   },
   {
    "ref": "AI 10",
    "name": "Flow temperature",
    "why": "Supply side temperature, °C"
   },
   {
    "ref": "AI 11",
    "name": "Return temperature",
    "why": "Return side temperature, °C"
   },
   {
    "ref": "AI 3",
    "name": "Accumulated volume (V1)",
    "why": "Volume total"
   },
   {
    "ref": "AI 8",
    "name": "Info code",
    "why": "Meter status/error code"
   }
  ],
  "enable": null,
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "BACnet MS/TP over RS-485, as master or slave; 9600, 19200, 38400 or 76800 baud.",
   "Device instance defaults to the last 5 digits of the meter number; Object_Identifier and Object_Name are writable.",
   "Max_Master defaults to 127 and Max_Info_Frames to 2; both are writable.",
   "No segmentation; max APDU 206 bytes. COV is not listed for this module."
  ],
  "gotchas": [
   "Small max APDU (206 bytes): keep ReadPropertyMultiple requests short.",
   "Energy and volume units follow the meter configuration; check the units property."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 0,
   "name": "Meter serial number",
   "description": "Meter serial number",
   "units": "Dimensionless",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1,
   "name": "Accumulated heat energy (E1)",
   "description": "Heat energy total (E1)",
   "units": "kWh, MWh",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Accumulated cooling energy (E3)",
   "description": "Cooling energy total (E3)",
   "units": "kWh, MWh",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "Accumulated volume (V1)",
   "description": "Volume total (V1)",
   "units": "l, m3",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "Actual flow",
   "description": "Current flow rate",
   "units": "l/h, m3/h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "Actual power",
   "description": "Current thermal power",
   "units": "W, kW, MW",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "Pulse input A accumulated",
   "description": "Pulse input A total",
   "units": "l, m3, kWh, MWh",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "Pulse input B accumulated",
   "description": "Pulse input B total",
   "units": "l, m3, kWh, MWh",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "Info code",
   "description": "Meter info (status/error) code",
   "units": "Dimensionless",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "Differential temperature",
   "description": "Flow minus return temperature",
   "units": "K",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "Flow temperature",
   "description": "Flow (inlet) temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "Return temperature",
   "description": "Return (outlet) temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/kamstrup/multical-602-bacnet-mstp",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
