{
 "manufacturer": "Intesis",
 "manufacturer_slug": "intesis",
 "model": "INBACMID001I100 (Midea VRF gateway)",
 "model_slug": "inbacmid001i100",
 "aliases": [
  "Midea BACnet gateway",
  "Midea VRF BACnet",
  "Midea BACnet points list",
  "Midea BACnet MS/TP",
  "Intesis Midea"
 ],
 "equipment_type": "Air conditioner BACnet gateway (1 indoor unit)",
 "applies_to": "Midea commercial and VRF indoor units (V4, V6 on XYE; V8 on D1D2).",
 "summary": "A one-unit Intesis BACnet MS/TP interface wired to the XYE (or D1D2 on V8) terminals of a Midea indoor unit, where it acts as a central controller. It exposes 30 fixed objects for on/off, mode, setpoint, fan, swing, room temperature, errors, occupancy logic and remote-controller lock, plus diagnostic objects for its DIP switches and the Midea protocol version.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": 246000,
 "access_inferred": false,
 "notes": [
  "The gateway needs an external 12 V DC/AC supply (min. 200 mA).",
  "Because it acts as the Midea central controller, a second central controller needs an XYE extension kit.",
  "AC_IU_address (MV 1) selects the indoor unit address: Present_Value 1-64 = address 0-63.",
  "Units shown as °C follow the °C/°F DIP switch.",
  "The cover date is printed as 3/2027 (v2.8)."
 ],
 "source": {
  "title": "Intesis BACnet MS/TP - Midea AC User Manual (INBACMID001I100)",
  "doc_number": null,
  "revision_date": "3/2027 v2.8 (as printed)",
  "url": "https://www.hms-networks.com/docs/default-source/products/intesis/manuals-and-guides---manuals/inbacmid001i100-user-manual-en-r1-0.pdf"
 },
 "integration": {
  "summary": "Connect the gateway to the indoor unit (XYE terminals on V4/V6, D1D2 on V8; 12 V external power), set the BACnet network on its DIP switches, then write the _command objects (on/off, mode, setpoint, fan) and read back the matching _status objects. One gateway serves one indoor unit (or one remote-controller group), so give each gateway its own MAC address and device instance.",
  "minimum_points": [
   {
    "ref": "BO 0",
    "name": "OnOff_command",
    "why": "Start/stop the indoor unit"
   },
   {
    "ref": "MO 0",
    "name": "Mode_command",
    "why": "Heat/cool/fan/dry/auto selection"
   },
   {
    "ref": "AO 0",
    "name": "SetPoint_command",
    "why": "Temperature setpoint from the BMS"
   },
   {
    "ref": "MO 1",
    "name": "FanSpeed_command",
    "why": "Fan speed selection"
   },
   {
    "ref": "BI 0",
    "name": "OnOff_status",
    "why": "Confirm the unit is running"
   },
   {
    "ref": "AI 0",
    "name": "SetPoint_status",
    "why": "Setpoint the unit is really using"
   },
   {
    "ref": "AI 1",
    "name": "RoomTemperature_status",
    "why": "Room/return temperature for trending"
   },
   {
    "ref": "BI 1",
    "name": "ErrorActive",
    "why": "Unit alarm"
   },
   {
    "ref": "AI 2",
    "name": "ErrorCode",
    "why": "Which fault is active"
   }
  ],
  "enable": "No enable point or BMS/local switch is documented; the gateway accepts BACnet commands as soon as it is communicating with the unit. A wired remote controller can still be used in parallel; MO 5 RemoteControllerProhibit_command locks it.",
  "heartbeat": null,
  "remote_sensors": "Write the BMS room temperature to AO 1 RoomTemperature_command and keep using AO 0 SetPoint_command for the user setpoint. The gateway then runs its Virtual Temperature function: it offsets the setpoint it sends to the unit by the difference between the BMS temperature and the unit's own return temperature, so AI 0 SetPoint_status can differ from what you wrote. Until a first value is written, AO 1 shows Reliability = UNRELIABLE_OTHER and the function stays off.",
  "setup": [
   "BACnet MS/TP only; the EIA-485 port has DIP switches for the 120-ohm terminator and bus biasing.",
   "MS/TP MAC address 0-127 is set on DIP switches; baud rate is DIP-selectable (9600-115200) with autobaud as the default, which matches the baud rate of another MS/TP device running a fixed rate.",
   "Default device instance 246000. In automatic mode the instance is 246000 + the MAC address; writing Object_Identifier from BACnet switches to manual mode until a factory reset.",
   "SW1 forces Midea V4 or V6 protocol (default auto-detect) and a low-power mode; MI 11 shows the detected setting."
  ],
  "gotchas": [
   "Every function has a separate _command (AO/BO/MO, commandable) and _status (AI/BI/MI) object; write the command, read the status.",
   "Temperatures follow the Celsius/Fahrenheit DIP switch; the BACnet Units property changes with it.",
   "The Occupancy MV and its four AVs drive built-in logic that sets mode, setpoint and on/off; leave Occupancy at 3 (Disabled) unless you use it, and any manual on/off, mode or setpoint change cancels it.",
   "A wired remote on X1X2 can stay connected as header or follower; use MO 5 RemoteControllerProhibit_command to lock it."
  ]
 },
 "points": [
  {
   "type": "BI",
   "instance": 0,
   "name": "OnOff_status",
   "description": "Unit on/off status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BO",
   "instance": 0,
   "name": "OnOff_command",
   "description": "Start/stop command for the indoor unit",
   "units": "",
   "access": "C",
   "states": "0=Off, 1=On"
  },
  {
   "type": "MI",
   "instance": 0,
   "name": "Mode_status",
   "description": "Operating mode currently active",
   "units": "",
   "access": "R",
   "states": "1=Heat, 2=Cool, 3=Fan, 4=Dry, 5=Auto"
  },
  {
   "type": "MO",
   "instance": 0,
   "name": "Mode_command",
   "description": "Operating mode command",
   "units": "",
   "access": "C",
   "states": "1=Heat, 2=Cool, 3=Fan, 4=Dry, 5=Auto"
  },
  {
   "type": "AI",
   "instance": 0,
   "name": "SetPoint_status",
   "description": "Setpoint the indoor unit is actually using",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 0,
   "name": "SetPoint_command",
   "description": "Temperature setpoint command from the BMS",
   "units": "°C",
   "access": "C",
   "states": ""
  },
  {
   "type": "MI",
   "instance": 1,
   "name": "FanSpeed_status",
   "description": "Current fan speed",
   "units": "",
   "access": "R",
   "states": "1=Auto, 2=Fan Speed 1, 3=Fan Speed 2, 4=Fan Speed 3"
  },
  {
   "type": "MO",
   "instance": 1,
   "name": "FanSpeed_command",
   "description": "Fan speed command",
   "units": "",
   "access": "C",
   "states": "1=Auto, 2=Fan Speed 1, 3=Fan Speed 2, 4=Fan Speed 3"
  },
  {
   "type": "MI",
   "instance": 2,
   "name": "AirDirectionUD_status",
   "description": "Vertical (up/down) vane position",
   "units": "",
   "access": "R",
   "states": "1=Stop, 2=Swing"
  },
  {
   "type": "MO",
   "instance": 2,
   "name": "AirDirectionUD_command",
   "description": "Vertical (up/down) vane command",
   "units": "",
   "access": "C",
   "states": "1=Stop, 2=Swing"
  },
  {
   "type": "AI",
   "instance": 1,
   "name": "RoomTemperature_status",
   "description": "Room temperature used by the indoor unit",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 1,
   "name": "RoomTemperature_command",
   "description": "Room temperature written by the BMS (external sensor)",
   "units": "°C",
   "access": "C",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "ErrorCode",
   "description": "Active error code as a number",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "MI",
   "instance": 4,
   "name": "ErrorCodeM",
   "description": "Active error code as a multistate value",
   "units": "",
   "access": "R",
   "states": "1=-, 2=CommError, 3=E0, 4=E1, 5=E2, 6=E3, 7=E4, 8=E5, 9=E6, 10=E7, 11=E8, 12=E9, 13=EA, 14=EB, 15=EC, 16=ED, 17=EE, 18=EF, 19=P1, 20=P2, 21=P3, 22=P4, 23=P5, 24=P6, 25=P7, 26=P8, 27=P9, 28=PA, 29=PB, 30=PC, 31=PD, 32=PE, 33=PF"
  },
  {
   "type": "BI",
   "instance": 1,
   "name": "ErrorActive",
   "description": "An error is active on the indoor unit",
   "units": "",
   "access": "R",
   "states": "0=No, 1=Error"
  },
  {
   "type": "AV",
   "instance": 0,
   "name": "OnTimeCounter",
   "description": "Accumulated run time of the unit",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 0,
   "name": "Occupancy",
   "description": "Occupancy input for the built-in occupancy logic",
   "units": "",
   "access": "W",
   "states": "1=Occupied, 2=Unoccupied, 3=Disabled"
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "OccupiedCoolSetPoint",
   "description": "Cooling setpoint used while occupied",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "OccupiedHeatSetPoint",
   "description": "Heating setpoint used while occupied",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "UnoccupiedCoolSetPoint",
   "description": "Cooling setpoint used while unoccupied",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "UnoccupiedHeatSetPoint",
   "description": "Heating setpoint used while unoccupied",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 0,
   "name": "OccupancyContinuousCheck",
   "description": "Re-run occupancy logic on every temperature change",
   "units": "",
   "access": "W",
   "states": "0=Disabled, 1=Enabled"
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "UnoccupiedDeadbandAction",
   "description": "Off or stay on when unoccupied inside the deadband",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=CurrentMode"
  },
  {
   "type": "MI",
   "instance": 6,
   "name": "RemoteControllerProhibit_status",
   "description": "Remote controller lock status",
   "units": "",
   "access": "R",
   "states": "1=Unlocked, 2=Locked"
  },
  {
   "type": "MO",
   "instance": 5,
   "name": "RemoteControllerProhibit_command",
   "description": "Remote controller lock command",
   "units": "",
   "access": "C",
   "states": "1=Unlocked, 2=Locked"
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "DIP_SW_S1_status",
   "description": "DIP switch SW1 position (decimal), read at boot",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "DIP_SW_S2_status",
   "description": "DIP switch SW2 position (decimal), read at boot",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "SerialNumber",
   "description": "Gateway serial number",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 1,
   "name": "AC_IU_address",
   "description": "The address of the indoor unit in the Midea system",
   "units": "",
   "access": "W",
   "states": "1=0, 2=1, 3=2, ..., 64=63"
  },
  {
   "type": "MI",
   "instance": 11,
   "name": "Midea_setting",
   "description": "Midea V4/V6 protocol detection setting",
   "units": "",
   "access": "R",
   "states": "1=Auto (detecting), 2=Auto V4, 3=Auto V6, 4=V4, 5=V6"
  }
 ],
 "covers_brands": [
  "Midea"
 ],
 "short_model": "Midea Gateway INBACMID001I100",
 "page": "https://easybacnet.com/bacnet-points-lists/intesis/inbacmid001i100",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
