{
 "manufacturer": "Armstrong International",
 "manufacturer_slug": "armstrong-international",
 "model": "HumidiClean HC-6000 series (HC-6100/6300/6500/6700)",
 "model_slug": "humidiclean-hc-6000",
 "aliases": [
  "HumidiClean",
  "HC-6000",
  "HC-6100",
  "HC-6300",
  "HC-6500",
  "HC-6700",
  "Armstrong HumidiClean",
  "539D-EN",
  "ionic bed humidifier"
 ],
 "equipment_type": "Electric steam humidifier (ionic bed)",
 "applies_to": "Armstrong HumidiClean HC-6100, HC-6300, HC-6500 and HC-6700 ionic bed electric steam humidifiers with the FieldServer ProtoNode BACnet gateway.",
 "summary": "The HumidiClean HC-6000 speaks Modbus RTU natively; BACnet IP or BACnet MS/TP comes through a FieldServer ProtoNode gateway set up with the HC6000 profile. The BACnet list has binary inputs for valves and contactors, binary values for sensor options, analog inputs for status, run timers and temperatures, and analog values for set points, timers, run mode and network control level.",
 "bacnet_transport": [
  "BACnet IP",
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "Source: Table 49-1 'BACnet Variant List', manual page 50 (59 objects). The table gives only a description per object, not a BACnet object name, so the description is used as the name here. Object names on a real ProtoNode gateway may differ; match points by type and instance.",
  "AV 21-26 are marked debug only in the manual.",
  "Times are split across two objects (hours part and minutes part), e.g. AI 5/6 bed life and AI 7/8 run time.",
  "Temperatures are listed in °C.",
  "The ProtoNode gateway's default IP is 192.168.1.24; its DIP switches select the profile (PSP or Modbus RTU to BACnet IP/MS/TP HC6000).",
  "The manual prints no revision date; 2023-04 is inferred from the '539D-EN V2.1 4-23' code on the back cover."
 ],
 "source": {
  "title": "HumidiClean Humidifiers Series HC-6100/6300/6500/6700 - Installation, Operation and Maintenance Instructions",
  "doc_number": "539D-EN V2.1",
  "revision_date": "2023-04",
  "url": "https://armstronginternational.com/wp-content/uploads/IOM_HC6000_Humidiclean_539_EN.pdf"
 },
 "integration": {
  "summary": "Connect the ProtoNode gateway, pick the HC6000 BACnet profile in its web configurator and give it the humidifier's Modbus node ID. On the humidifier set Network Control to the level the BMS needs. To run the unit from a BMS demand, enable the network, set Sensor Select (BV 2) to humidistat and write 0-100 % demand. Monitor run status, steam output, water level and the failure code.",
  "minimum_points": [
   {
    "ref": "AV 7",
    "name": "Run mode",
    "why": "Run mode: 0 steam gen, 3 unit stop"
   },
   {
    "ref": "AV 28",
    "name": "NETWORK CONTROL",
    "why": "Network control level (monitor ... full control)"
   },
   {
    "ref": "AV 2",
    "name": "Set RH / Demand",
    "why": "Humidity set point or % demand from the BMS"
   },
   {
    "ref": "BV 2",
    "name": "Sensor select",
    "why": "0 = humidistat (demand) input, 1 = RH sensor"
   },
   {
    "ref": "AI 4",
    "name": "Run status",
    "why": "Operating state code"
   },
   {
    "ref": "AI 2",
    "name": "Steam Output",
    "why": "Steam output, kg/h"
   },
   {
    "ref": "AI 1",
    "name": "Desired RH / Demand",
    "why": "Set point or demand in use"
   },
   {
    "ref": "AI 3",
    "name": "Water level",
    "why": "Water level state"
   },
   {
    "ref": "AI 18",
    "name": "Failure",
    "why": "Active failure code"
   }
  ],
  "enable": "In the humidifier Setup menu set Network Control to Monitor, Hstat (local humidistat), Sensor (local sensors) or Full; only Full lets the network make all control changes. For BMS demand control the manual says to verify the network is enabled and Sensor Select is humidistat, then write the 0-100 % demand.",
  "heartbeat": null,
  "remote_sensors": "The BMS can send a 0-100 % demand instead of a local humidistat or RH sensor. The manual says to write it to a BACnet analog output; the BACnet table itself has no AO, and the matching Modbus register (40002) is 'Set RH / Demand', which is AV 2 here.",
  "setup": [
   "ProtoNode gateway default IP 192.168.1.24/24; configure through its web configurator (Protocol Selector, then add the HC6000 profile with the humidifier's node ID).",
   "Humidifier Modbus side: Comm Address default 1, 9600 baud, even parity, Network Mode = Modbus.",
   "Set 'BACnet Virtual Server Nodes' to Yes only when several humidifiers share one ProtoNode."
  ],
  "gotchas": [
   "The table lists failure codes 1-10 for AI 18 but prints no code for the no-failure state.",
   "AV 21-26 are debug/test timers; don't write them in normal operation.",
   "Timer values come as hour and minute pairs (e.g. AI 7 + AI 8); combine them for a total time."
  ]
 },
 "points": [
  {
   "type": "BI",
   "instance": 1,
   "name": "Fill valve status",
   "description": "Fill valve status",
   "units": "",
   "access": "R",
   "states": "0=off, 1=on"
  },
  {
   "type": "BI",
   "instance": 2,
   "name": "Drain valve status",
   "description": "Drain valve status",
   "units": "",
   "access": "R",
   "states": "0=off, 1=on"
  },
  {
   "type": "BI",
   "instance": 3,
   "name": "contactor 1 status",
   "description": "Contactor 1 status",
   "units": "",
   "access": "R",
   "states": "0=off, 1=on"
  },
  {
   "type": "BI",
   "instance": 4,
   "name": "contactor 2 status",
   "description": "Contactor 2 status",
   "units": "",
   "access": "R",
   "states": "0=off, 1=on"
  },
  {
   "type": "BI",
   "instance": 5,
   "name": "contactor 3 status",
   "description": "Contactor 3 status",
   "units": "",
   "access": "R",
   "states": "0=off, 1=on"
  },
  {
   "type": "BI",
   "instance": 6,
   "name": "contactor 4 status",
   "description": "Contactor 4 status",
   "units": "",
   "access": "R",
   "states": "0=off, 1=on"
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "comm type",
   "description": "Communication type",
   "units": "",
   "access": "W",
   "states": "0=485, 1=PSP"
  },
  {
   "type": "BV",
   "instance": 2,
   "name": "Sensor select",
   "description": "Control input select",
   "units": "",
   "access": "W",
   "states": "0=Humidistat, 1=RH sensor or On/Off"
  },
  {
   "type": "BV",
   "instance": 3,
   "name": "High limit sensor select",
   "description": "High limit sensor in use",
   "units": "",
   "access": "W",
   "states": "0=not use, 1=use"
  },
  {
   "type": "BV",
   "instance": 4,
   "name": "Outside temperature",
   "description": "Outside temperature sensor in use",
   "units": "",
   "access": "W",
   "states": "0=not use, 1=use"
  },
  {
   "type": "BV",
   "instance": 5,
   "name": "Modulating Fill enable",
   "description": "Modulating fill enable",
   "units": "",
   "access": "W",
   "states": "0=enable, 1=disable"
  },
  {
   "type": "AI",
   "instance": 1,
   "name": "Desired RH / Demand",
   "description": "Humidity set point or demand in use",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Steam Output",
   "description": "Steam output",
   "units": "kg/h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "Water level",
   "description": "Water level state",
   "units": "",
   "access": "R",
   "states": "0=low, 1=normal, 2=high, 3=exception"
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "Run status",
   "description": "Run status",
   "units": "",
   "access": "R",
   "states": "0=idle, 1=steam gen., 2=cycle drain, 3=end of season drain, 4=bed drying, 5=failure, 6=drain, 7=heat, 8=manual drain, 9=fill, 10=test, 11=manual stop, 12=empty drain"
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "Bed life",
   "description": "Bed life used, hours part",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "Bed life",
   "description": "Bed life used, minutes part",
   "units": "min",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "Run Time",
   "description": "Run time, hours part",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "Run Time",
   "description": "Run time, minutes part",
   "units": "min",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "Drain Freq",
   "description": "Time to next drain cycle, hours part",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "Drain Freq",
   "description": "Time to next drain cycle, minutes part",
   "units": "min",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "Idle Time",
   "description": "Idle time, hours part",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "Idle Time",
   "description": "Idle time, minutes part",
   "units": "min",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "RH / Demand (Analog input)",
   "description": "RH or demand from the analog input",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 14,
   "name": "Duct value",
   "description": "Duct high limit humidity reading",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 15,
   "name": "Outside temperature",
   "description": "Outside temperature reading",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 16,
   "name": "Water temperature",
   "description": "Water temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 17,
   "name": "Heat temperature",
   "description": "Heater temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 18,
   "name": "Failure",
   "description": "Active failure code",
   "units": "",
   "access": "R",
   "states": "1=over temperature, 2=high humidity/sail switch circuit open, 3=illegal level switch state, 4=100% of bed life reached, 5=fill time-out to low level, 6=water level dropped below level during normal run, 7=fill time-out from low to high level, 8=water level above high level time-out, 9=water level not below low level during empty drain, 10=end of bed drying"
  },
  {
   "type": "AI",
   "instance": 19,
   "name": "Contactor number",
   "description": "Number of contactors",
   "units": "",
   "access": "R",
   "states": "1, 2, 3, 4"
  },
  {
   "type": "AI",
   "instance": 20,
   "name": "Heating Element Power",
   "description": "Heating element power",
   "units": "",
   "access": "R",
   "states": "0=1000 W, 1=3000 W, 2=5000 W, 3=6650 W, 4=8000 W"
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "Language Select",
   "description": "Display language",
   "units": "",
   "access": "W",
   "states": "0=English, 1=Chinese"
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "Set RH / Demand",
   "description": "Humidity set point or demand",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "Duct High Limit set point",
   "description": "Duct high limit set point",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "Outside temp. high set point",
   "description": "Outside temperature high set point",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "Outside temp. low set point",
   "description": "Outside temperature low set point",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "Outside RH low set point",
   "description": "Outside RH low set point",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "Run mode",
   "description": "Run mode command",
   "units": "",
   "access": "W",
   "states": "0=steam gen, 1=manual drain, 2=manual fill, 3=unit stop"
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "AQUASTAT",
   "description": "Aquastat set point",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "Bed Life",
   "description": "Bed life setting",
   "units": "",
   "access": "W",
   "states": "0=disabled, 1=250 h, 2=500 h, 3=750 h, 4=1000 h, 5=1250 h, 6=1500 h, 7=1750 h, 8=2000 h, 9=2250 h, 10=2500 h, 11=2750 h, 12=3000 h"
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "Drain Cycle",
   "description": "Drain cycle interval",
   "units": "",
   "access": "W",
   "states": "0=6 h, 1=12 h, 2=24 h, 3=48 h, 4=96 h, 5=real time drain"
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "Drain duration",
   "description": "Drain duration",
   "units": "",
   "access": "W",
   "states": "0=1 min, 1=5 min, 2=10 min"
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "Signal type",
   "description": "Control signal type",
   "units": "",
   "access": "W",
   "states": "0=0-10 V, 1=0-5 V, 2=1.9-3.9 V, 3=4-20 mA"
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "PID_DIV",
   "description": "PID divisor",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "PID_PB",
   "description": "PID proportional band",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "PID_SI",
   "description": "PID integral time",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "PID_DG",
   "description": "PID derivative",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "Modulating Fill Cycle",
   "description": "Modulating fill cycle time",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "Modulating Fill duration",
   "description": "Modulating fill duration",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "Water temp. compensate",
   "description": "Water temperature compensation",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 20,
   "name": "Themocouple compensate",
   "description": "Thermocouple compensation",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 21,
   "name": "First run",
   "description": "First run (debug only)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 22,
   "name": "Idle time",
   "description": "Idle time test for end-of-season drain (debug only)",
   "units": "h",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "Drain time",
   "description": "Drain time test for cycle drain (debug only)",
   "units": "h",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 24,
   "name": "Bed life",
   "description": "Bed life test for end of life (debug only)",
   "units": "h",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 25,
   "name": "Bed drying time",
   "description": "Bed drying cycles test, 96 h max (debug only)",
   "units": "h",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 26,
   "name": "Bed drying time",
   "description": "One bed drying cycle test, 30 min max (debug only)",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 27,
   "name": "CAPACITY ADJUSTMENT",
   "description": "Capacity adjustment, 50-100 %",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 28,
   "name": "NETWORK CONTROL",
   "description": "Network control level",
   "units": "",
   "access": "W",
   "states": "Four levels: NETWORK - MONITORING, NETWORK - LOCAL STAT, NETWORK - LOCAL SENSOR, NETWORK - FULL CONTROL (numeric codes not printed)"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/armstrong-international/humidiclean-hc-6000",
 "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"
}
