{
 "manufacturer": "Nilan",
 "manufacturer_slug": "nilan",
 "model": "CTS602 with HMI350T - BACnet (spaceLYnk gateway)",
 "model_slug": "cts602-hmi350t-bacnet",
 "aliases": [
  "CTS602",
  "CTS602i",
  "HMI350T",
  "CTS602_w_HMI350T_BACnet",
  "spaceLYnk",
  "Comfort 1200",
  "Comfort 5000",
  "VPR 120",
  "VPR 240",
  "VPR 360",
  "VPR 480",
  "VPR 560",
  "VPM 120",
  "VPM 240",
  "VPM 360",
  "VPM 480",
  "VPM 560",
  "VPM 600",
  "VPM 700",
  "VPM 800",
  "VPM 1000",
  "VPM 1200",
  "VPM 1500",
  "VPM 2200"
 ],
 "equipment_type": "Air handling / energy recovery ventilation unit controller",
 "applies_to": "Nilan Comfort 1200/5000, VPR and VPM commercial ventilation units (including VPM Cleanroom) with the CTS602 controller, HMI350T panel and the built-in Modbus-to-BACnet gateway.",
 "summary": "Nilan's CTS602 controller speaks Modbus; on these commercial units a built-in Schneider spaceLYnk gateway serves a selected set of registers as a BACnet IP server. The BMS can switch the unit on and off, choose the operating mode and ventilation step, write the room temperature setpoint and cooling, supply-air limit, humidity and CO2 settings, reset alarms and edit the week program. It reads temperatures, pressures, humidity, CO2, fan speeds, relay outputs, digital inputs and the three most recent alarms.",
 "bacnet_transport": [
  "BACnet IP"
 ],
 "firmware": "CTS602 software 1.6.21.0 (Modbus list version 22)",
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "The object instance is the number in the '#' column (2305-2582); the manual gives the BACnet type as '2 (AV)' or '5 (BV)'.",
  "Square brackets list the unit families marked for a point when it does not apply to all of Comfort, VPR and VPM; T2_Inlet has no family marked.",
  "Alarm dates and times are 16-bit words packed in DOS date/time format.",
  "Control.ModeSet value 4 (Service) is read-only; the manual says to write Modbus register 1005 instead.",
  "Disable the spaceLYnk KNX connection and always answer No to its KNX error box, or several gateways can overwrite each other's setup.",
  "Source: Register layout, sections 4.1-4.13, pages 9-16 (121 objects)."
 ],
 "source": {
  "title": "Nilan CTS602 w. HMI350T BACnet - BACnet Protocol, Version 2",
  "doc_number": "CTS602_w_HMI350T_BACnet Version 2",
  "revision_date": "2024-11-07",
  "url": "https://www.en.nilan.dk/Files/Files/Engelsk/Downloads/7.%20Modbus%20-%20BACnet/2024-11-07%20CTS602_w_HMI350T_BACnet_Version%202.pdf"
 },
 "points": [
  {
   "type": "AV",
   "instance": 2305,
   "name": "Bus.Version",
   "description": "Protocol version number",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2306,
   "name": "App.VersionMajor",
   "description": "Software version – major (2 character ascii text)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2307,
   "name": "App.VersionMinor",
   "description": "Software version - minor (2 character ascii text)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2308,
   "name": "App.VersionRelease",
   "description": "Software version - release (2 character ascii text)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2311,
   "name": "Input.UserFunc",
   "description": "User function",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2312,
   "name": "Input.AirFilter",
   "description": "Air filter alarm",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2313,
   "name": "Input.DoorOpen",
   "description": "Door contact [Comfort, VPM]",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2314,
   "name": "Input.Smoke",
   "description": "Smoke alarm",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2315,
   "name": "Input.MotorThermo",
   "description": "Motor thermo fuse [Comfort, VPR]",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2316,
   "name": "Input.Frost_Overht",
   "description": "Heating surface frost / overheat",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2317,
   "name": "Input.AirFlow",
   "description": "Airflow monitor [Comfort]",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2318,
   "name": "Input.P_HI",
   "description": "High pressure switch [VPR, VPM]",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2319,
   "name": "Input.P_LO",
   "description": "Low pressure switch [VPR, VPM]",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2323,
   "name": "Input.Defrost",
   "description": "Defrost thermostat [VPR, VPM]",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2325,
   "name": "Input.DamperClosed",
   "description": "Air damper closed position switch",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2326,
   "name": "Input.DamperOpened",
   "description": "Air damper opened position switch",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2327,
   "name": "Input.FCorThermoAl",
   "description": "Combined FC and thermo alarm [VPM]",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2329,
   "name": "Input.T1_Intake",
   "description": "Fresh air intake temperature [VPR, VPM]",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2330,
   "name": "Input.T2_Inlet",
   "description": "Inlet temperature (before heater) [none marked]",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2331,
   "name": "Input.T3_Exhaust",
   "description": "Room exhaust temperature [Comfort]",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2332,
   "name": "Input.T4_Outlet",
   "description": "Outlet temperature [Comfort]",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2333,
   "name": "Input.T5_Cond",
   "description": "Condenser temperature [VPR, VPM]",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2334,
   "name": "Input.T6_Evap",
   "description": "Evaporator temperature [VPR, VPM]",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2335,
   "name": "Input.T7_Inlet",
   "description": "Inlet temperature (after heater)",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2336,
   "name": "Input.T8_Outdoor",
   "description": "Outdoor temperature [Comfort]",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2337,
   "name": "Input.T9_Heater",
   "description": "Heating surface temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2338,
   "name": "Input.T10_Extern",
   "description": "External room temperature",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2346,
   "name": "Input.T18_PresPibe (T35)",
   "description": "Pressure pibe temperature [VPR, VPM]",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2347,
   "name": "Input.pSuc",
   "description": "Suction pressure [VPR, VPM]",
   "units": "bar",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2348,
   "name": "Input.pDis",
   "description": "Dischage pressure [VPR, VPM]",
   "units": "bar",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2349,
   "name": "AirQual.RH",
   "description": "Humidity sensor value",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2350,
   "name": "AirQual.CO2",
   "description": "Carbon dioxide sensor value",
   "units": "ppm",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2425,
   "name": "Output.AirFlap",
   "description": "Air flap",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2426,
   "name": "Output.SmokeFlap",
   "description": "Smoke flap",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2427,
   "name": "Output.BypassOpen",
   "description": "Bypass flap open [Comfort]",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2428,
   "name": "Output.BypassClose",
   "description": "Bypass flap close [Comfort]",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2429,
   "name": "Output.AirCircPump",
   "description": "Air heat circulation pump",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2430,
   "name": "Output.AirHeatAllow",
   "description": "Air heating selected",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2431,
   "name": "Output.AirHeat_1",
   "description": "Air heater relay 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2432,
   "name": "Output.AirHeat_2",
   "description": "Air heater relay 2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2433,
   "name": "Output.AirHeat_3",
   "description": "Air heater relay 3",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2434,
   "name": "Output.Compressor",
   "description": "Compressor [VPR, VPM]",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2435,
   "name": "Output.Compressor_2",
   "description": "Compressor 2 [VPM]",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2436,
   "name": "Output.4WayCool",
   "description": "4-way valve [VPR, VPM]",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2437,
   "name": "Output.HotgasHeat",
   "description": "Hotgas valve - heat [VPM]",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2438,
   "name": "Output.HotgasCool",
   "description": "Hotgas valve - cool [VPM]",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2451,
   "name": "Output.AlarmRelay",
   "description": "Alarm relay state",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2453,
   "name": "Output.ExhaustSpeed",
   "description": "Exhaust fan speed",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2454,
   "name": "Output.InletSpeed",
   "description": "Inlet fan speed",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2455,
   "name": "Output.AirHeatCap",
   "description": "Air heater capacity",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2457,
   "name": "Output.CprCap",
   "description": "Compresor capacity [VPR, VPM]",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2351,
   "name": "Alarm.Status",
   "description": "Alarm state bit mask",
   "units": "",
   "access": "R",
   "states": "0x80 : Active alarm(s) are present 0x03 : Number of alarms listed"
  },
  {
   "type": "AV",
   "instance": 2352,
   "name": "Alarm.List_1_ID",
   "description": "Alarm 1 - Code",
   "units": "",
   "access": "R",
   "states": "0x80 : (reserved future use) 0x7F : Display code 1..99"
  },
  {
   "type": "AV",
   "instance": 2353,
   "name": "Alarm.List_1_Date",
   "description": "Alarm 1 - Date (DOS-packed date)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2354,
   "name": "Alarm.List_1_Time",
   "description": "Alarm 1 - Time (DOS-packed time)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2355,
   "name": "Alarm.List_2_ID",
   "description": "Alarm 2 - Code",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2356,
   "name": "Alarm.List_2_Date",
   "description": "Alarm 2 - Date",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2357,
   "name": "Alarm.List_2_Time",
   "description": "Alarm 2 - Time",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2358,
   "name": "Alarm.List_3_ID",
   "description": "Alarm 3 - Code",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2359,
   "name": "Alarm.List_3_Date",
   "description": "Alarm 3 - Date",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2360,
   "name": "Alarm.List_3_Time",
   "description": "Alarm 3 - Time",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2465,
   "name": "Alarm.Reset",
   "description": "Clear one specific alarm code or all",
   "units": "",
   "access": "W",
   "states": "0 : No command 1..99 : (reserved internal commands) 101..199 : Clear alarm display code 1..99 255 : Clear all alarms"
  },
  {
   "type": "BV",
   "instance": 2361,
   "name": "Control.RunAct",
   "description": "Actual on/off state",
   "units": "",
   "access": "R",
   "states": "0 : Off 1 : On"
  },
  {
   "type": "AV",
   "instance": 2362,
   "name": "Control.ModeAct",
   "description": "Actual operation mode",
   "units": "",
   "access": "R",
   "states": "0 : Off 1 : Heat 2 : Cool 3 : Auto 4 : Service"
  },
  {
   "type": "AV",
   "instance": 2363,
   "name": "Control.StateDisplay",
   "description": "Actual control state",
   "units": "",
   "access": "R",
   "states": "0 : Off 1 : Shift 2 : Stop 3 : Start 4 : Standby 5 : Ventilation stop 6 : Ventilation 7 : Heating 8 : Cooling 9 : Hot water 12: Central heating 13: Defrost 14: Frost sequre 15: Service 16: Alarm"
  },
  {
   "type": "AV",
   "instance": 2364,
   "name": "Control.SecInState",
   "description": "Actual time in state",
   "units": "s",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2481,
   "name": "Control.RunSet",
   "description": "User on / off select (equal to ON/OFF keys)",
   "units": "",
   "access": "W",
   "states": "0 : Off (user input functions can still activate operation) 1 : On"
  },
  {
   "type": "AV",
   "instance": 2482,
   "name": "Control.ModeSet",
   "description": "User operation mode select",
   "units": "",
   "access": "W",
   "states": "0 : Off 1 : Heat (no cooling active) 2 : Cool (no heating active) 3 : Auto 4: Service (readonly - write to register 1005)"
  },
  {
   "type": "AV",
   "instance": 2483,
   "name": "Control.VentSet",
   "description": "User ventilation step select",
   "units": "step",
   "access": "W",
   "states": "0 : Off 1..4 : Step number"
  },
  {
   "type": "AV",
   "instance": 2484,
   "name": "Control.TempSet",
   "description": "User temperature setpoint",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2365,
   "name": "AirFlow.VentSet",
   "description": "Actual ventilation step set point",
   "units": "step",
   "access": "R",
   "states": "0 : Off 1..4 : Step number"
  },
  {
   "type": "AV",
   "instance": 2366,
   "name": "AirFlow.InletAct",
   "description": "Actual inlet fan speed step",
   "units": "step",
   "access": "R",
   "states": "0 : Off 1..4 : Step number"
  },
  {
   "type": "AV",
   "instance": 2367,
   "name": "AirFlow.ExhaustAct",
   "description": "Actual exhaust fan speed step",
   "units": "step",
   "access": "R",
   "states": "0 : Off 1..4 : Step number"
  },
  {
   "type": "AV",
   "instance": 2489,
   "name": "AirFlow.CoolVent",
   "description": "Cooling high ventilation step",
   "units": "step",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2368,
   "name": "AirFlow.SinceFiltDay",
   "description": "Days since last filter change alarm (24 h of run time = 1 day)",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2369,
   "name": "AirFlow.ToFiltDay",
   "description": "Days to next filter change alarm (24 h of run time = 1 day)",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2370,
   "name": "AirTemp.IsSummer",
   "description": "Summer state",
   "units": "",
   "access": "R",
   "states": "0 : Off 1: On"
  },
  {
   "type": "AV",
   "instance": 2371,
   "name": "AirTemp.TempInletSet",
   "description": "Inlet temperature request (T7 setpoint)",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2386,
   "name": "Output.AirHeatCap",
   "description": "After heating element 0.00 – 100.00%",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2393,
   "name": "AirTemp.TempSet",
   "description": "Actual resulting set-point for room temperature 5.00°C - 50.00°C",
   "units": "°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2494,
   "name": "AirTemp.CoolSet",
   "description": "Cooling temperature setpoint select",
   "units": "",
   "access": "W",
   "states": "0 : Off (No cooling allowed) 1 : Set + 0 °C (User setpoint plus 0 degrees) 2 : Set + 1 °C 3 : Set + 2 °C 4 : Set + 3 °C 5 : Set + 4 °C 6 : Set + 5 °C 7 : Set + 7 °C : Set + 10 °C"
  },
  {
   "type": "AV",
   "instance": 2495,
   "name": "AirTemp.TempMinSum",
   "description": "Summer minimum supply air temperature MinSum: 5.00-14.00",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2496,
   "name": "AirTemp.TempMinWin",
   "description": "Winter minimum supply air temperature MinWin: 5.00-16.00",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2497,
   "name": "AirTemp.TempMaxSum",
   "description": "Summer maximum supply air temperature MaxSum: 5.00-25.00",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2498,
   "name": "AirTemp.TempMaxWin",
   "description": "Winter maximum supply air temperature MaxWin: 5.00-35.00",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2499,
   "name": "AirTemp.TempSummer",
   "description": "Summer/winter limit",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2500,
   "name": "AirTemp.NightDayLim",
   "description": "Outdoor day temperature for night cooling activation",
   "units": "°C",
   "access": "W",
   "states": "[0:Off, 20..40]"
  },
  {
   "type": "AV",
   "instance": 2501,
   "name": "AirTemp.NightSet",
   "description": "Free energy night cooling room setpoint [10..30]",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2502,
   "name": "AirTemp.SensorSelect",
   "description": "Control temperature sensor select",
   "units": "",
   "access": "W",
   "states": "0: User panel 1: External sensor 2: Inlet channel 3: Exhaust channel"
  },
  {
   "type": "AV",
   "instance": 2503,
   "name": "AirTemp.HeatSelect",
   "description": "Heat source select",
   "units": "",
   "access": "W",
   "states": "0=No heating active, 1=Heatpump only, 2=HP+afterheat, 3=Afterheat only, 4=Afterheat+HP"
  },
  {
   "type": "AV",
   "instance": 2546,
   "name": "AirTemp.RoomNZ",
   "description": "Room temperature regulation deadband 0.20 – 10.00",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2548,
   "name": "AirHeat.SelectSet",
   "description": "After heating activation",
   "units": "",
   "access": "W",
   "states": "0: Off 1: On (No effect is AirHeat.Type (H4005) is 0.)"
  },
  {
   "type": "AV",
   "instance": 2541,
   "name": "AirHeat.Delay",
   "description": "Delay timer for after-heat activation 0- 60 min.",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2385,
   "name": "AirBypass.IsOpen",
   "description": "Bypass damper [Comfort]",
   "units": "",
   "access": "R",
   "states": "0: Closed 1: Open"
  },
  {
   "type": "BV",
   "instance": 2388,
   "name": "AirQual.CO2_Enable",
   "description": "CO2 sensor present in the system or not",
   "units": "",
   "access": "R",
   "states": "0: Off 1: On"
  },
  {
   "type": "AV",
   "instance": 2421,
   "name": "AirQual.RH_Avg",
   "description": "Humidity average value. Range: 0..100.00",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2524,
   "name": "AirQual.RH_VentLo",
   "description": "Humidity low winter step select",
   "units": "step",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2525,
   "name": "AirQual.RH_VentHi",
   "description": "Humidity high step select",
   "units": "step",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2526,
   "name": "AirQual.RH_LimLo",
   "description": "Humidity limit for low ventilation",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2527,
   "name": "AirQual.RH_TimeOut",
   "description": "Humidity max. time on high ventilation",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2528,
   "name": "AirQual.CO2_VentHi",
   "description": "CO2 high step select",
   "units": "step",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2529,
   "name": "AirQual.CO2_LimLo",
   "description": "CO2 limit for normal ventilation",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2530,
   "name": "AirQual.CO2_LimHi",
   "description": "CO2 limit for high ventilation",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2582,
   "name": "AirQual.Type",
   "description": "Enable Indoor Air Quality (IAQ) control function Range: 0..2",
   "units": "",
   "access": "W",
   "states": "0: OFF, 1: HUMIDITY, 2: HUM+CO2"
  },
  {
   "type": "AV",
   "instance": 2467,
   "name": "Program.UserFuncAct",
   "description": "User function active (See “UserFuncSet”)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2490,
   "name": "AirFlow.TestSelect",
   "description": "Weekday for weekly damper self-test at 10:00; cannot be undone once set",
   "units": "",
   "access": "W",
   "states": "0: Off 1: Monday 2: Tuesday 3: Wednesday 4: Thursday 5: Friday 6: Saturday 7: Sunday"
  },
  {
   "type": "AV",
   "instance": 2491,
   "name": "AirFlow.LastTestDay",
   "description": "Date of last air damper position test (DOS-packed date)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2459,
   "name": "Time.Second",
   "description": "Second",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2460,
   "name": "Time.Minute",
   "description": "Minute",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2461,
   "name": "Time.Hour",
   "description": "Hour",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2462,
   "name": "Time.Day",
   "description": "Day",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2463,
   "name": "Time.Month",
   "description": "Month",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2464,
   "name": "Time.Year",
   "description": "Year",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2466,
   "name": "Program.Select",
   "description": "Week program nb. select",
   "units": "",
   "access": "W",
   "states": "0 : None 1 : Program 1 2 : Program 2 3 : Program 3 4 : Erase"
  },
  {
   "type": "AV",
   "instance": 2562,
   "name": "Program.EditIndex",
   "description": "Week program Index: 0-41 (7 days multiply by 6 functions each day)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2563,
   "name": "Program.EditPeriod",
   "description": "Week program Day index: 0-6 (0=Monday..)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2564,
   "name": "Program.EditPeriodNx",
   "description": "Week program Next day index: 0-6 (0=Monday..)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2565,
   "name": "Program.EditFunc",
   "description": "Week program Day function 0-5.",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2566,
   "name": "Program.EditTimeStar",
   "description": "Week program Start time: 0000 – 2345: 0800 = 8:00, 1215 = 12:15",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2567,
   "name": "Program.EditVent",
   "description": "Week program Fan settings: 0-4",
   "units": "",
   "access": "W",
   "states": "0=Off, 1-4 Level"
  },
  {
   "type": "AV",
   "instance": 2568,
   "name": "Program.EditTemp",
   "description": "Week program Temperature: 5°C - 50°C",
   "units": "°C",
   "access": "W",
   "states": ""
  }
 ],
 "integration": {
  "summary": "Connect the spaceLYnk gateway to the BACnet IP network, set its IP address and a unique Device ID and enable its BACnet server. Run the unit with Control.RunSet (BV 2481), set Control.ModeSet, Control.VentSet and Control.TempSet, and read back the actual state, temperatures and the alarm status and codes.",
  "minimum_points": [
   {
    "ref": "BV 2481",
    "name": "Control.RunSet",
    "why": "Unit on/off (same as the ON/OFF keys)"
   },
   {
    "ref": "AV 2482",
    "name": "Control.ModeSet",
    "why": "Mode: 0 off, 1 heat, 2 cool, 3 auto"
   },
   {
    "ref": "AV 2483",
    "name": "Control.VentSet",
    "why": "Ventilation step: 0 off, 1-4"
   },
   {
    "ref": "AV 2484",
    "name": "Control.TempSet",
    "why": "Room temperature setpoint, °C"
   },
   {
    "ref": "AV 2465",
    "name": "Alarm.Reset",
    "why": "255 clears all alarms; 101-199 clears one code"
   },
   {
    "ref": "BV 2361",
    "name": "Control.RunAct",
    "why": "Actual on/off state"
   },
   {
    "ref": "AV 2363",
    "name": "Control.StateDisplay",
    "why": "Actual control state code"
   },
   {
    "ref": "AV 2335",
    "name": "Input.T7_Inlet",
    "why": "Supply (inlet) air temperature after heater"
   },
   {
    "ref": "AV 2351",
    "name": "Alarm.Status",
    "why": "Alarm bit mask: 0x80 = alarm(s) active"
   },
   {
    "ref": "AV 2352",
    "name": "Alarm.List_1_ID",
    "why": "First active alarm display code"
   }
  ],
  "enable": "Control.RunSet (BV 2481) works like the panel ON/OFF keys; with it off, user input functions can still start the unit.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "spaceLYnk default IP 192.168.0.10/24; web login on that address (credentials in the manual).",
   "BACnet server, Device ID, write priority, port (default 47808) and BBMD are set under Configurator > Utilities > System > Network > BACnet settings.",
   "IP settings are under Configurator > Utilities > System > Network > Interfaces; the gateway reboots after Apply Changes.",
   "Disable the KNX connection under Network > KNX connection."
  ],
  "gotchas": [
   "The spaceLYnk takes the Relinquish Default from the first read of each object; it cannot be changed later.",
   "Only a selected subset of the CTS602 Modbus list is published as BACnet objects.",
   "Once a weekly damper self-test day is set (AV 2490) it cannot be switched off.",
   "Some points apply only to Comfort, VPR or VPM models (see brackets)."
  ]
 },
 "page": "https://easybacnet.com/bacnet-points-lists/nilan/cts602-hmi350t-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"
}
