{
 "manufacturer": "Neptronic",
 "manufacturer_slug": "neptronic",
 "model": "TROB24 thermostat controller",
 "model_slug": "trob24-thermostat",
 "aliases": [
  "TROB24",
  "TROB",
  "TROB24T4",
  "Neptronic TROB"
 ],
 "equipment_type": "Zone thermostat controller (VAV / fan coil)",
 "applies_to": "Neptronic TROB24 communicating thermostats with universal inputs, analog outputs and triac (on/off, pulsing or floating) outputs.",
 "summary": "TROB24 is a room thermostat-controller with a BACnet MS/TP communication module. The user guide lists 90 objects: temperatures, demands, day/night setpoints and PI settings, control and user modes, night setback, input functions and output sources/modes, and airflow balancing objects.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": "153000 + MAC address",
 "access_inferred": false,
 "notes": [
  "The guide prints footnote numbers right after some object names (for example UserControlOffMode13); they are removed here.",
  "Present_Value is writable for every AV except AV.1-3, AV.42, AV.46, AV.49, AV.68, AV.69; every BV except BV.7; every MSV except MSV.9.",
  "MSV state numbers and texts can change with the set-up; read State_Text from the device.",
  "The guide has no description column, so descriptions are empty."
 ],
 "source": {
  "title": "TROB24 BACnet Communication Module User Guide",
  "doc_number": "TROB24-BACnet-211026-EUL",
  "revision_date": "2021-10-26",
  "url": "https://www.neptronic.com/controls/PDF/TROB24-BACnet-211026-EUL.pdf"
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "InternTemp",
   "description": "",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "ExternTemp",
   "description": "",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "ChangeOverTemp",
   "description": "",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "PressureSensor",
   "description": "",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "ControlTemp",
   "description": "",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "HeatingDemand1",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "CoolingDemand1",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "InternTempOffset",
   "description": "",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "ExternTempOffset",
   "description": "",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "TempSetPointDay",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "MinSetPointDay",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "MaxSetPointDay",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "TempSetPointCoolNight",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "TempSetPointHeatNight",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "CoolingPropBand1",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "HeatingPropBand1",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "CoolingDeadBand1",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "HeatingDeadBand1",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "ChangeOverSetPoint",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 24,
   "name": "NightSetBackDelay",
   "description": "",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 26,
   "name": "IntTimeFactor",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 27,
   "name": "CoolingAntiCycleDelay",
   "description": "",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 31,
   "name": "FloatingMotorTiming1",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 42,
   "name": "CoolingDemand2",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 43,
   "name": "CoolingPropBand2",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 44,
   "name": "CoolingDeadBand2",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 46,
   "name": "HeatingDemand2",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 47,
   "name": "HeatingPropBand2",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 48,
   "name": "HeatingDeadBand2",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 49,
   "name": "ChangeOverDemand",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 50,
   "name": "ChangeOverPropBand",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 51,
   "name": "ChangeOverDeadBand",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 52,
   "name": "AnalogOutput1Min",
   "description": "",
   "units": "V",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 53,
   "name": "AnalogOutput2Min",
   "description": "",
   "units": "V",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 54,
   "name": "AnalogOutput1Max",
   "description": "",
   "units": "V",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 55,
   "name": "AnalogOutput2Max",
   "description": "",
   "units": "V",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 56,
   "name": "AnalogOutput1MinPos",
   "description": "",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 57,
   "name": "AnalogOutput2MinPos",
   "description": "",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 58,
   "name": "FloatingMotorTiming2",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 61,
   "name": "PressureNumFilter",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 62,
   "name": "AirFlowVnomOrKFactor",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 63,
   "name": "AirFlowCoolMin",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 64,
   "name": "AirFlowCoolMax",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 65,
   "name": "AirFlowHeatMin",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 66,
   "name": "AirFlowHeatMax",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 67,
   "name": "AirFlowIntFactor",
   "description": "",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 68,
   "name": "ActualAirFlow",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 69,
   "name": "AirFlowSetPoint",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 71,
   "name": "AdjustAirFlowKFactor",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 72,
   "name": "AnalogOutput1",
   "description": "Writable when MSV.16 is Off (output not used internally)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 73,
   "name": "AnalogOutput2",
   "description": "Writable when MSV.17 is Off (output not used internally)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 160,
   "name": "AirFlowOffset",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 1,
   "name": "UIxContactInput",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Open, 1=Close"
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "TempUnit",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Celsius, 1=Fahrenheit"
  },
  {
   "type": "BV",
   "instance": 2,
   "name": "TempSetPointLock",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "BV",
   "instance": 3,
   "name": "UserControlOffMode",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Enable, 1=Disable"
  },
  {
   "type": "BV",
   "instance": 6,
   "name": "ControlTempSource",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Intern.Sensor, 1=Extern.Sensor"
  },
  {
   "type": "BV",
   "instance": 7,
   "name": "ChangeOverMode",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Cooling, 1=Heating"
  },
  {
   "type": "BV",
   "instance": 14,
   "name": "AirFlowBalancing",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "BV",
   "instance": 15,
   "name": "AirFlowBalMode",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Minimum, 1=Maximum"
  },
  {
   "type": "BV",
   "instance": 16,
   "name": "AntiFreezeProtection",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 17,
   "name": "FloatingMotor1Direction",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Direct, 1=Reverse"
  },
  {
   "type": "BV",
   "instance": 18,
   "name": "FloatingMotor2Direction",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Direct, 1=Reverse"
  },
  {
   "type": "BV",
   "instance": 29,
   "name": "OnOffOutput1",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 30,
   "name": "OnOffOutput2",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 31,
   "name": "OnOffOutput3",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 32,
   "name": "OnOffOutput4",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "MV",
   "instance": 1,
   "name": "UniversalInput1Function",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=Off, 2=Extern.Sensor, 3=ChangeOverSensor, 4=Ch.Ov.ContactNorm.Cool, 5=Ch.Ov.ContactNorm.Heat, 6=NightSetBack, 7=Pressure0-10V, 8=AirFlow0-10V"
  },
  {
   "type": "MV",
   "instance": 3,
   "name": "UserControlMode",
   "description": "",
   "units": "",
   "access": "W",
   "states": "States available if MSV.4 is set to \"Auto\" 1= Auto, 2= Heating 3= Cooling 4= Off (only if BV.3 is set to \"Enable\") States available if MSV.4 is set to \"Cool\" 1= Cooling 2= Off (only if BV.3 is set to \"Enable\") States..."
  },
  {
   "type": "MV",
   "instance": 4,
   "name": "ControlMode",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=Auto, 2=Heating, 3=Cooling, 4=HeatingOrCooling"
  },
  {
   "type": "MV",
   "instance": 9,
   "name": "NightSetBack",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Day, 2=Night, 3=Override"
  },
  {
   "type": "MV",
   "instance": 12,
   "name": "UniversalInput2Function",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=Off, 2=Extern.Sensor, 3=ChangeOverSensor, 4=Ch.Ov.ContactNorm.Cool, 5=Ch.Ov.ContactNorm.Heat, 6=NightSetBack, 7=Pressure0-10V, 8=AirFlow0-10V"
  },
  {
   "type": "MV",
   "instance": 13,
   "name": "NightSetBackMode",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=Locally, 2=Day, 3=Night"
  },
  {
   "type": "MV",
   "instance": 15,
   "name": "UniversalInput3Function",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=Off, 2=Extern.Sensor, 3=ChangeOverSensor, 4=Ch.Ov.ContactNorm.Cool, 5=Ch.Ov.ContactNorm.Heat, 6=NightSetBack, 7=Pressure0-10V, 8=AirFlow0-10V"
  },
  {
   "type": "MV",
   "instance": 16,
   "name": "AnalogOutput1Source",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=Off, 2=ChangeOverDemand, 3=CoolingDemand1, 4=CoolingDemand2, 5=HeatingDemand1, 6=HeatingDemand2"
  },
  {
   "type": "MV",
   "instance": 17,
   "name": "AnalogOutput2Source",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=Off, 2=ChangeOverDemand, 3=CoolingDemand1, 4=CoolingDemand2, 5=HeatingDemand1, 6=HeatingDemand2"
  },
  {
   "type": "MV",
   "instance": 18,
   "name": "TO1Source",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1= Off 2= ChangeOverDemand 3= CoolingDemand1 4= CoolingDemand2 5= HeatingDemand1 6= HeatingDemand2 States available if MSV.22 is set to \"Pulsing\": 1= HeatingDemand1 2= HeatingDemand2"
  },
  {
   "type": "MV",
   "instance": 19,
   "name": "TO2Source",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1= Off 2= ChangeOverDemand 3= CoolingDemand1 4= CoolingDemand2 5= HeatingDemand1 6= HeatingDemand2 States available if MSV.23 is set to \"Pulsing\": 1= HeatingDemand1 2= HeatingDemand2"
  },
  {
   "type": "MV",
   "instance": 20,
   "name": "TO3Source",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1= Off 2= ChangeOverDemand 3= CoolingDemand1 4= CoolingDemand2 5= HeatingDemand1 6= HeatingDemand2 States available if MSV.24 is set to \"Pulsing\": 1= HeatingDemand1 2= HeatingDemand2"
  },
  {
   "type": "MV",
   "instance": 21,
   "name": "TO4Source",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1= Off 2= ChangeOverDemand 3= CoolingDemand1 4= CoolingDemand2 5= HeatingDemand1 6= HeatingDemand2 States available if MSV.25 is set to \"Pulsing\": 1= HeatingDemand1 2= HeatingDemand2"
  },
  {
   "type": "MV",
   "instance": 22,
   "name": "TO1Mode",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=On_Off, 2=Pulsing, 3=Floating"
  },
  {
   "type": "MV",
   "instance": 23,
   "name": "TO2Mode",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1= On_Off 2= Pulsing States available if MSV 22 is set to \"Floating\" 1= Floating"
  },
  {
   "type": "MV",
   "instance": 24,
   "name": "TO3Mode",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=On_Off, 2=Pulsing, 3=Floating"
  },
  {
   "type": "MV",
   "instance": 25,
   "name": "TO4Mode",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1= On_Off 2= Pulsing States available if MSV 24 is set to \"Floating\" 1= Floating"
  },
  {
   "type": "MV",
   "instance": 26,
   "name": "TO1ClosePos",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=20%, 2=40%, 3=60%, 4=80%"
  },
  {
   "type": "MV",
   "instance": 27,
   "name": "TO2ClosePos",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=20%, 2=40%, 3=60%, 4=80%"
  },
  {
   "type": "MV",
   "instance": 28,
   "name": "TO3ClosePos",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=20%, 2=40%, 3=60%, 4=80%"
  },
  {
   "type": "MV",
   "instance": 29,
   "name": "TO4ClosePos",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=20%, 2=40%, 3=60%, 4=80%"
  },
  {
   "type": "MV",
   "instance": 31,
   "name": "PressureIndOutput",
   "description": "",
   "units": "",
   "access": "W",
   "states": "if MSV.22 and MSV.24 are set to \"Floating\" 1= Floating1 2= AnalogOutput1 3= AnalogOutput2 4= Floating2 if MSV.22 is set to \"Floating\" 1= Floating1 2= AnalogOutput1 3= AnalogOutput2 if MSV.24 is set to \"Floating\" 1=..."
  },
  {
   "type": "MV",
   "instance": 33,
   "name": "ChangeOverControlMode",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=Locally, 2=Cooling, 3=Heating"
  }
 ],
 "integration": {
  "summary": "Set the day/night state with MSV.13 NightSetBackMode, the user mode with MSV.3 and write the day setpoint AV.7. Read AV.1 ControlTemp, MSV.9 NightSetBack and the heating/cooling demands AV.2/AV.3.",
  "minimum_points": [
   {
    "ref": "MV 13",
    "name": "NightSetBackMode",
    "why": "Day/night command: locally, day, night"
   },
   {
    "ref": "MV 3",
    "name": "UserControlMode",
    "why": "User mode: auto, heating, cooling, off"
   },
   {
    "ref": "AV 7",
    "name": "TempSetPointDay",
    "why": "Day temperature setpoint"
   },
   {
    "ref": "MV 9",
    "name": "NightSetBack",
    "why": "Actual state: day, night, override"
   },
   {
    "ref": "AV 1",
    "name": "ControlTemp",
    "why": "Temperature used for control"
   },
   {
    "ref": "AV 2",
    "name": "HeatingDemand1",
    "why": "Heating demand 1, %"
   },
   {
    "ref": "AV 3",
    "name": "CoolingDemand1",
    "why": "Cooling demand 1, %"
   }
  ],
  "enable": "MSV.13 NightSetBackMode: Locally lets the thermostat manage day/night; Day and Night force the state from the BMS.",
  "heartbeat": null,
  "remote_sensors": "BV.6 ControlTempSource selects the internal or external sensor; no network temperature object is listed.",
  "setup": [
   "BV.1 TempUnit selects Celsius or Fahrenheit."
  ],
  "gotchas": [
   "Out_of_Service is writable only for objects whose Present_Value is not, and returns to normal automatically."
  ]
 },
 "page": "https://easybacnet.com/bacnet-points-lists/neptronic/trob24-thermostat",
 "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"
}
