{
 "manufacturer": "CoolAutomation",
 "manufacturer_slug": "coolautomation",
 "model": "CoolMasterNet BACnet (indoor unit objects)",
 "model_slug": "coolmasternet-bacnet",
 "aliases": [
  "CoolMasterNet",
  "CooLinkNet",
  "CooLinkHub",
  "CooLinkBridge",
  "CoolAutomation BACnet",
  "LG VRF BACnet gateway",
  "Daikin VRV BACnet gateway",
  "Mitsubishi Electric BACnet gateway",
  "Samsung BACnet gateway",
  "Gree GMV BACnet gateway"
 ],
 "equipment_type": "Multi-brand VRF / split AC BACnet gateway",
 "applies_to": "Indoor units of VRF and split systems connected to a CoolMasterNet or CooLink gateway (Daikin, Mitsubishi Electric, LG, Samsung, Gree and other supported brands).",
 "summary": "CoolMasterNet and the CooLink family connect to the AC manufacturer's indoor-unit bus and serve every indoor unit as the same 16 BACnet objects, over BACnet MS/TP and/or BACnet IP. Instance numbers are built from the unit's virtual address (VA): instance = VA x 256 + object index. Configuration is done with text commands on the gateway's ASCII interface.",
 "bacnet_transport": [
  "BACnet IP",
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": 64,
 "access_inferred": false,
 "notes": [
  "Points shown for virtual address VA 1 (instances 256-258); add 256 for each further VA.",
  "The object identifier's instance field is VA in bits 21-8 and object index in bits 7-0.",
  "Access follows the guide's object-type table: BV, AV, MV and PIV read/write; BI, AI and CSV read-only.",
  "Object names are not printed in the guide; the object descriptions are used as names.",
  "Fan speed, mode and louver states that a given unit does not support are simply not used.",
  "Operation Mode state 8 is not printed in the guide."
 ],
 "source": {
  "title": "BACnet Integration Guidelines - CoolMasterNet, CooLinkNet, CooLinkHub, CooLinkBridge",
  "doc_number": null,
  "revision_date": "Rev 0.5, 2019-04-29",
  "url": "https://coolautomation.com/Lib/doc/CoolMasterNet/manual/CoolMasterNet-BACnet-guidelines.pdf"
 },
 "integration": {
  "summary": "Enable BACnet MS/TP on line L3 and/or BACnet IP, run 'va auto' so each indoor unit gets a virtual address, then map each unit's block of objects at VA x 256. Command BV ON/OFF, MV Operation Mode, AV Set Temperature and MV Fan Speed, and read AI Room Temperature and BI HVAC Failure Indication.",
  "minimum_points": [
   {
    "ref": "BV 256",
    "name": "ON/OFF",
    "why": "Start/stop the indoor unit"
   },
   {
    "ref": "MV 257",
    "name": "Operation Mode",
    "why": "Cool/heat/auto/dry/fan mode command"
   },
   {
    "ref": "AV 256",
    "name": "Set Temperature",
    "why": "Indoor unit setpoint, °C"
   },
   {
    "ref": "MV 256",
    "name": "Fan Speed",
    "why": "Fan speed command (low/medium/high/auto)"
   },
   {
    "ref": "AI 256",
    "name": "Room Temperature",
    "why": "Room temp reported by the indoor unit, °C"
   },
   {
    "ref": "BI 256",
    "name": "HVAC Failure Indication",
    "why": "Unit alarm (code in Active_Text)"
   }
  ],
  "enable": "BACnet must be enabled on the gateway ('line type L3 BAC' for MS/TP, 'bacnet IP enable' for IP); no BMS enable object is documented.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "BACnet MS/TP: activate on line L3 with 'line type L3 BAC' (L4-L7 also possible on CoolMasterNet); default frame 9600 8N1, change with 'line baud L3 <rate>_8N1'; MAC (TS) default 0x40 = 64, change with 'line myid L3 <hex>'. Reboot after each change.",
   "BACnet IP: enable with 'bacnet IP enable'; UDP port 47808 by default ('bacnet port <n>'). The server starts only once Ethernet is up with an IP address.",
   "Default device instance 64 (0x40); change with 'bacnet instance <n>'.",
   "Allocate virtual addresses with 'va auto' (one VA per detected indoor unit) or 'va + L1.102 0004'; list them with 'va'.",
   "One MS/TP and one BACnet IP connection can run at the same time."
  ],
  "gotchas": [
   "Running 'va auto' again deletes and re-allocates all VAs, which renumbers every object; only run it once all indoor units are connected.",
   "Every configuration command needs a reboot to take effect.",
   "Additional MS/TP connections are not supported even if more RS-485 lines exist.",
   "The guide's MS/TP example output shows TS 64 and device instance 64 by default; set unique values for each gateway."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 256,
   "name": "Room Temperature",
   "description": "Room temperature reported by the indoor unit",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 256,
   "name": "Set Temperature",
   "description": "Indoor unit setpoint",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 256,
   "name": "HVAC Failure Indication",
   "description": "Unit failure; Active_Text carries the failure code",
   "units": "",
   "access": "R",
   "states": "0=No Failure, 1=Failure"
  },
  {
   "type": "BI",
   "instance": 257,
   "name": "Demand State (Therm_ON)",
   "description": "Thermostat demand (thermo-on)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 258,
   "name": "External Terminals Status",
   "description": "State of the unit external terminals input",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 256,
   "name": "ON/OFF",
   "description": "Start/stop the indoor unit",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 257,
   "name": "Filter Sign",
   "description": "Filter-clean indication",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 258,
   "name": "Lock (prohibit) ON/OFF change from WRC",
   "description": "Block on/off changes from the wired remote",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 259,
   "name": "Lock (prohibit) Operation Mode change from WRC",
   "description": "Block mode changes from the wired remote",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 260,
   "name": "Lock (prohibit) Set Temperature change from WRC",
   "description": "Block setpoint changes from the wired remote",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 261,
   "name": "Global Lock (prohibit)",
   "description": "Block all wired-remote operation",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 256,
   "name": "Fan Speed",
   "description": "Fan speed",
   "units": "",
   "access": "W",
   "states": "1=Low, 2=Medium, 3=High, 4=Auto, 5=Top, 6=Very Low, 7=Super High, 8=HRV Super High, 9=HRV Low FreshUp, 10=HRV High FreshUP"
  },
  {
   "type": "MV",
   "instance": 257,
   "name": "Operation Mode",
   "description": "Operating mode",
   "units": "",
   "access": "W",
   "states": "1=Cool, 2=Heat, 3=Auto, 4=Dry, 5=HAUX, 6=Fan, 7=Heat+HAUX, 9=HRV Auto, 10=HRV Bypass, 11=HRV Heat Exchange, 12=HRV Normal"
  },
  {
   "type": "MV",
   "instance": 258,
   "name": "Louver",
   "description": "Louver position",
   "units": "",
   "access": "W",
   "states": "1=Vertical, 2=30 deg, 3=45 deg, 4=60 deg, 5=Horizontal, 6=Auto (Swing), 7=Off, 8=No Louver Control"
  },
  {
   "type": "PIV",
   "instance": 256,
   "name": "Set Temperature low limit",
   "description": "Lowest setpoint allowed",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "PIV",
   "instance": 257,
   "name": "Set Temperature high limit",
   "description": "Highest setpoint allowed",
   "units": "°C",
   "access": "W",
   "states": ""
  }
 ],
 "covers_brands": [
  "LG",
  "Daikin",
  "Mitsubishi Electric",
  "Samsung",
  "Gree",
  "Toshiba",
  "Hitachi",
  "Panasonic",
  "Fujitsu"
 ],
 "short_model": "CoolMasterNet BACnet, Indoor Units",
 "page": "https://easybacnet.com/bacnet-points-lists/coolautomation/coolmasternet-bacnet",
 "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"
}
