{
 "manufacturer": "Nailor",
 "manufacturer_slug": "nailor",
 "model": "EZstat Fan Coil Controller (EC-EZstat)",
 "model_slug": "ezstat-fan-coil-controller",
 "aliases": [
  "EZstat",
  "EC-EZstat",
  "Engineered Comfort EZstat"
 ],
 "equipment_type": "Fan coil unit thermostat-controller",
 "applies_to": "Engineered Comfort / Nailor EZstat wall controllers for two-pipe and four-pipe fan coil units with staged or modulating (EC) fans.",
 "summary": "The EZstat is a BACnet MS/TP application-specific controller (built on a KMC platform) that runs fan coil sequences either stand-alone or networked. The manual lists the objects most useful for monitoring: inputs, outputs, setpoint and status values, a schedule object and four PID loops. Output object names change between the two-pipe and four-pipe applications, and not every input object is present in every model.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": null,
 "access_inferred": true,
 "notes": [
  "The manual lists the objects likely needed for monitoring, not necessarily every object in the device.",
  "Output names differ by application: two-pipe names are shown, with the four-pipe name in each description.",
  "Access is inferred from object type; the manual has no read/write column.",
  "Not all input objects are present in every model; only inputs 1-3 are wired externally."
 ],
 "source": {
  "title": "Fan Coil Controller EZstat Installation and Operation Manual",
  "doc_number": "EC-EZstat",
  "revision_date": "2020-11",
  "url": "https://nailor.com/sites/default/files/documents/EC-EZSTATINST.pdf"
 },
 "integration": {
  "summary": "Set device instance, MAC and baud from the COMM menu, then map space temperature, the occupied setpoints, system and occupied modes and the fan points. Occupancy normally follows the internal BACnet schedule (SCHED_1 writing BV5), which a workstation can edit, or another BACnet device can command occupancy directly.",
  "minimum_points": [
   {
    "ref": "MV 2",
    "name": "SYSTEM_MODE",
    "why": "Heat / cool / auto / off"
   },
   {
    "ref": "BV 5",
    "name": "OCC_SCHEDULE",
    "why": "Occupancy command; the internal schedule also writes it"
   },
   {
    "ref": "MV 1",
    "name": "OCCUPIED_MODE",
    "why": "Occupied mode"
   },
   {
    "ref": "AV 5",
    "name": "OCC_CL_STPT",
    "why": "Occupied cooling setpoint"
   },
   {
    "ref": "AV 6",
    "name": "OCC_HT_STPT",
    "why": "Occupied heating setpoint"
   },
   {
    "ref": "AV 34",
    "name": "FAN_SPEED",
    "why": "Fan speed, %"
   },
   {
    "ref": "BV 14",
    "name": "FAN_STATUS",
    "why": "Fan proof status"
   },
   {
    "ref": "AV 1",
    "name": "SPACE_TEMP",
    "why": "Space temperature used for control"
   }
  ],
  "enable": "The EZstat runs stand-alone; occupancy comes from its internal schedule (SCH 1 writing BV5 OCC_SCHEDULE) and can also be commanded by another BACnet device or workstation. Without the schedule enabled it starts occupied.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "Set DEVICE ID (1-4,194,302), MAC (1-127) and BAUD (Auto, 9600, 19200, 38400, 76800) in the COMM menu after entering Password 2; the controller resets after a change.",
   "Time and date sync automatically from a BACnet time master on the network.",
   "Up to 128 addressable devices per MS/TP trunk, but the manual recommends no more than 60 controllers."
  ],
  "gotchas": [
   "The manufacturer warns that changing object configuration can cause unpredictable operation; limit BMS writes to setpoints and modes.",
   "Changing a setpoint inside the minimum differential (AV11) makes the controller move the opposite setpoint to keep the gap.",
   "Selecting a manual fan speed overrides auto; AUTO_FAN_RESET (BV16) with the local override timer (AV38, default 60 min) returns it to auto.",
   "Output object names change between two-pipe and four-pipe configurations."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "REMOTE_SENSOR",
   "description": "Remote room sensor input (KMC 10K Type II)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "WATER_TEMP",
   "description": "Water temperature input (KMC 10K Type III)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "DAT",
   "description": "Discharge air temperature input (KMC 10K Type II)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "LOCAL_SENSOR",
   "description": "Built-in space temperature sensor",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 6,
   "name": "ANALOG VALVE",
   "description": "Analog valve output, 0-10 V (4-pipe: ANALOG_COOLING)",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 7,
   "name": "ANALOG AUX HEAT",
   "description": "Auxiliary heat output, 0-10 V (4-pipe: ANALOG_HEATING)",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 8,
   "name": "ANALOG FAN",
   "description": "Fan speed control, 0-10 V (4-pipe: ANALOG_FAN)",
   "units": "%",
   "access": "C",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 1,
   "name": "LOW",
   "description": "Fan low speed",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 2,
   "name": "MEDIUM",
   "description": "Fan medium speed",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 3,
   "name": "HIGH",
   "description": "Fan high speed",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 4,
   "name": "STAGE_2_HEAT",
   "description": "Stage 2 heat (4-pipe: BINARY_COOLING, cooling valve)",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 5,
   "name": "STAGE_1_HEAT",
   "description": "Stage 1 heat (4-pipe: BINARY_HEATING, heating valve)",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "ACT_COOL_STPT",
   "description": "Active cooling setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "ACT_HEAT_STPT",
   "description": "Active heating setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "OCC_CL_STPT",
   "description": "Occupied cooling setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "OCC_HT_STPT",
   "description": "Occupied heating setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "UNOCC_CL_STPT",
   "description": "Unoccupied cooling setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "UNOCC_HT_STPT",
   "description": "Unoccupied heating setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "MAX_CL_STPT",
   "description": "Cooling setpoint limit (listed as Minimum Cooling Setpoint)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "MAX_HT_STPT",
   "description": "Maximum heating setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "MIN_STPT_DIFF",
   "description": "Minimum heating/cooling setpoint differential",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "STBY_OFFSET",
   "description": "Standby offset",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 25,
   "name": "FAN_OFF_DELAY",
   "description": "Fan off delay",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 31,
   "name": "Max_VLV_LOW",
   "description": "Maximum valve at low fan speed",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 32,
   "name": "Max_VLV_MED",
   "description": "Maximum valve at medium fan speed",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 33,
   "name": "Max_VLV_HIGH",
   "description": "Maximum valve at high fan speed",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 34,
   "name": "FAN_SPEED",
   "description": "Fan speed",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 35,
   "name": "FAN_COOL_MAX",
   "description": "Fan cooling maximum speed",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 36,
   "name": "FAN_MINIMUM",
   "description": "Fan minimum speed",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 37,
   "name": "FAN_HEAT_MAX",
   "description": "Fan heating maximum speed",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 38,
   "name": "OVRD_TIME",
   "description": "Local override timer",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "SPACE_TEMP",
   "description": "Space temperature used for control",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "WATER_TEMP",
   "description": "Water temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 20,
   "name": "DISCHARGE_TEMP",
   "description": "Discharge air temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 5,
   "name": "OCC_SCHEDULE",
   "description": "Occupancy from schedule (schedule reference)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 6,
   "name": "DAT_ENABLE",
   "description": "Discharge air temperature control enable",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 7,
   "name": "DAT_SENSOR",
   "description": "Discharge air sensor present",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 9,
   "name": "FAN_NEED",
   "description": "Call for fan",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 10,
   "name": "COOL_HEAT_NEED",
   "description": "Cooling or heating needed",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 11,
   "name": "SPEED_UP",
   "description": "Speed up timers x15",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 13,
   "name": "OCCUPIED_FAN",
   "description": "Fan on during occupied mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 14,
   "name": "FAN_STATUS",
   "description": "Fan proof",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 15,
   "name": "MOD_FAN_ACTION",
   "description": "Modulating or stepped fan action",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 16,
   "name": "AUTO_FAN_RESET",
   "description": "Reset fan back to auto",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 18,
   "name": "CL_VLV_ACTION",
   "description": "Cooling valve normally closed/open",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 19,
   "name": "HT_VLV_ACTION",
   "description": "Heating valve normally closed/open",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 20,
   "name": "COOL_STG_1",
   "description": "Cooling stage 1",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 22,
   "name": "HEAT_STG_1",
   "description": "Heating stage 1",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 28,
   "name": "LOCAL_OVRD",
   "description": "Local override mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 36,
   "name": "STPT_HOLD",
   "description": "Hold temperature setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 1,
   "name": "OCCUPIED_MODE",
   "description": "Occupied mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 2,
   "name": "SYSTEM_MODE",
   "description": "Control (system) mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 3,
   "name": "FAN_MODE",
   "description": "Fan auto/manual mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 4,
   "name": "AVAILABLE_SPEEDS",
   "description": "Number of fan speeds available",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "SCH",
   "instance": 1,
   "name": "SCHED_1",
   "description": "Occupancy schedule #1, writes BV5",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "LO",
   "instance": 1,
   "name": "CL LOOP",
   "description": "Cooling loop (fan, on room temperature)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "LO",
   "instance": 2,
   "name": "HT LOOP",
   "description": "Heating loop (fan, on room temperature)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "LO",
   "instance": 3,
   "name": "CL_DAT LOOP",
   "description": "Cooling loop on DAT setpoint (valves)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "LO",
   "instance": 4,
   "name": "HT_DAT LOOP",
   "description": "Heating loop on DAT setpoint (valves)",
   "units": "",
   "access": "W",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/nailor/ezstat-fan-coil-controller",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
