{
 "manufacturer": "Melink",
 "manufacturer_slug": "melink",
 "model": "Intelli-Hood IH4 System Controller",
 "model_slug": "intelli-hood-ih4-system-controller",
 "aliases": [
  "Intelli-Hood",
  "IH4",
  "IH4-SC",
  "Melink IH4",
  "Intelli-Hood 4"
 ],
 "equipment_type": "Kitchen hood demand ventilation controller (exhaust and make-up air fans)",
 "applies_to": "The main BACnet device of a Melink Intelli-Hood 4 (IH4-SC) kitchen demand-control ventilation system.",
 "summary": "The Intelli-Hood IH4 System Controller runs kitchen exhaust and make-up air fan VFDs from hood temperature and smoke (optic) sensors. On BACnet IP it is the main device and a virtual router: each exhaust fan, auxiliary airflow, hood controller and virtual I/O module shows up as its own device behind it. The System Controller device itself only reports the state of its physical I/O, all read-only.",
 "bacnet_transport": [
  "BACnet IP",
  "BACnet IPv6"
 ],
 "firmware": "Application 4.0, firmware 1.0.0",
 "default_device_instance": 654000,
 "access_inferred": false,
 "notes": [
  "Every object is a Binary Value or Analog Value; there are no AI/AO/BI/BO objects.",
  "Fan run status, speed, faults and energy are on the separate Exhaust Fan / Auxiliary Airflow devices, not here.",
  "What each digital input or output does is set in the Intelli-Hood configuration (e.g. Remote On/Off, Remote Enable/Disable, Fan On, System Fault, MUA Damper); the BACnet objects only show the contact state.",
  "The PICS object table lists four analog inputs and four analog outputs, while the description says the controller has one physical analog input and one analog output.",
  "Supported services: ReadProperty, ReadPropertyMultiple, WriteProperty, DeviceCommunicationControl, UTC TimeSynchronization and ReinitializeDevice; B-ASC profile, no segmentation."
 ],
 "source": {
  "title": "Intelli-Hood BACnet Protocol Implementation Conformance Statement (PICS)",
  "doc_number": null,
  "revision_date": "Revision 250723 (PICS dated 07-18-2025)",
  "url": "https://melinkcorp.com/wp-content/uploads/2021/10/IH4_BACnet_PICS.pdf"
 },
 "integration": {
  "summary": "Discover the System Controller (default Device ID 654000), then discover the fan and hood devices through its virtual router. The System Controller only gives the state of its physical inputs and outputs. Map the outputs configured as Fan On or System Fault, and the inputs wired for remote on/off or enable.",
  "minimum_points": [
   {
    "ref": "BV 0",
    "name": "Digital Input 1 Status",
    "why": "Physical input 1; function set in IH4 config"
   },
   {
    "ref": "BV 1",
    "name": "Digital Input 2 Status",
    "why": "Physical input 2; function set in IH4 config"
   },
   {
    "ref": "BV 4",
    "name": "Digital Output 1 Status",
    "why": "Relay 1; e.g. Fan On or System Fault per config"
   },
   {
    "ref": "BV 5",
    "name": "Digital Output 2 Status",
    "why": "Relay 2; function set in IH4 config"
   },
   {
    "ref": "BV 6",
    "name": "Digital Output 3 Status",
    "why": "Relay 3; function set in IH4 config"
   },
   {
    "ref": "BV 7",
    "name": "Digital Output 4 Status",
    "why": "Relay 4; function set in IH4 config"
   },
   {
    "ref": "AV 0",
    "name": "Analog Input 1 Status",
    "why": "Analog input value, 0-100 %"
   },
   {
    "ref": "AV 4",
    "name": "Analog Output 1 Status",
    "why": "Analog output to auxiliary airflows, 0-100 %"
   }
  ],
  "enable": "No BACnet enable or start/stop object on this device. Fans are started from the Touchpad, schedules or digital inputs (physical, or the Virtual Input Module over BACnet).",
  "heartbeat": "The BACnet Watchdog (0-600 s, default 300 s, 0 = off) is set on the System Controller. It resets the Virtual Input Module inputs when no BACnet traffic addressed to the Intelli-Hood arrives in time; it does not affect this device's objects.",
  "remote_sensors": null,
  "setup": [
   "The System Controller is the main BACnet IP device (default Device ID 654000) and a virtual router (default DNET 654) for the fan, hood controller and virtual module devices; UDP port 47808.",
   "With BACnet Auto Number on (default), the virtual devices are numbered from 654001: exhaust fans and auxiliary airflows (sorted by name), then hood controllers, virtual output modules, virtual input modules.",
   "IP defaults to DHCP. BACnet runs on IPv4 or IPv6, not both; for IPv6 set IP Type to 'IPv4 & IPv6' and BACnet IP Type to IPv6 (multicast scope default ff05).",
   "Settings are on the Touchpad (System Controller configuration) or the web configurator at http://<controller IP>/ih4-configurator.",
   "Set the clock from the BMS with UTC TimeSynchronization (about once a day) if NTP is not reachable; the time zone is a separate setting."
  ],
  "gotchas": [
   "Front ends that send Who-Is without routing only find the System Controller; run a network/router discovery, select the router with the Intelli-Hood DNET, then discover devices again.",
   "The DNET must be unique; another router or BBMD using 654 breaks access to the virtual devices.",
   "All objects here are read-only status; the BMS cannot command fans from the System Controller device."
  ]
 },
 "points": [
  {
   "type": "BV",
   "instance": 0,
   "name": "Digital Input 1 Status",
   "description": "Physical digital input 1 on the System Controller",
   "units": "",
   "access": "R",
   "states": "Inactive = Open, Active = Closed"
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "Digital Input 2 Status",
   "description": "Physical digital input 2 on the System Controller",
   "units": "",
   "access": "R",
   "states": "Inactive = Open, Active = Closed"
  },
  {
   "type": "BV",
   "instance": 2,
   "name": "Digital Input 3 Status",
   "description": "Physical digital input 3 on the System Controller",
   "units": "",
   "access": "R",
   "states": "Inactive = Open, Active = Closed"
  },
  {
   "type": "BV",
   "instance": 3,
   "name": "Digital Input 4 Status",
   "description": "Physical digital input 4 on the System Controller",
   "units": "",
   "access": "R",
   "states": "Inactive = Open, Active = Closed"
  },
  {
   "type": "BV",
   "instance": 4,
   "name": "Digital Output 1 Status",
   "description": "Dry-contact digital output 1",
   "units": "",
   "access": "R",
   "states": "Inactive = De-Energized, Active = Energized"
  },
  {
   "type": "BV",
   "instance": 5,
   "name": "Digital Output 2 Status",
   "description": "Dry-contact digital output 2",
   "units": "",
   "access": "R",
   "states": "Inactive = De-Energized, Active = Energized"
  },
  {
   "type": "BV",
   "instance": 6,
   "name": "Digital Output 3 Status",
   "description": "Dry-contact digital output 3",
   "units": "",
   "access": "R",
   "states": "Inactive = De-Energized, Active = Energized"
  },
  {
   "type": "BV",
   "instance": 7,
   "name": "Digital Output 4 Status",
   "description": "Dry-contact digital output 4",
   "units": "",
   "access": "R",
   "states": "Inactive = De-Energized, Active = Energized"
  },
  {
   "type": "BV",
   "instance": 8,
   "name": "24VDC Out 1 Status",
   "description": "24 VDC output 1",
   "units": "",
   "access": "R",
   "states": "Inactive = De-Energized, Active = Energized"
  },
  {
   "type": "BV",
   "instance": 9,
   "name": "24VDC Out 2 Status",
   "description": "24 VDC output 2",
   "units": "",
   "access": "R",
   "states": "Inactive = De-Energized, Active = Energized"
  },
  {
   "type": "BV",
   "instance": 10,
   "name": "24VDC Out 3 Status",
   "description": "24 VDC output 3",
   "units": "",
   "access": "R",
   "states": "Inactive = De-Energized, Active = Energized"
  },
  {
   "type": "BV",
   "instance": 11,
   "name": "24VDC Out 4 Status",
   "description": "24 VDC output 4",
   "units": "",
   "access": "R",
   "states": "Inactive = De-Energized, Active = Energized"
  },
  {
   "type": "AV",
   "instance": 0,
   "name": "Analog Input 1 Status",
   "description": "Analog input 1 value, 0-100 %",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "Analog Input 2 Status",
   "description": "Analog input 2 value, 0-100 %",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "Analog Input 3 Status",
   "description": "Analog input 3 value, 0-100 %",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "Analog Input 4 Status",
   "description": "Analog input 4 value, 0-100 %",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "Analog Output 1 Status",
   "description": "Analog output 1 value, 0-100 %",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "Analog Output 2 Status",
   "description": "Analog output 2 value, 0-100 %",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "Analog Output 3 Status",
   "description": "Analog output 3 value, 0-100 %",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "Analog Output 4 Status",
   "description": "Analog output 4 value, 0-100 %",
   "units": "%",
   "access": "R",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/melink/intelli-hood-ih4-system-controller",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
