{
 "manufacturer": "Delta Controls",
 "manufacturer_slug": "delta-controls",
 "model": "O3 Sensor Hub",
 "model_slug": "o3-sensor-hub",
 "aliases": [
  "O3",
  "Delta O3",
  "O3 sensor hub"
 ],
 "equipment_type": "Multi-sensor room sensor hub",
 "applies_to": "Delta Controls O3 ceiling sensor hubs (firmware 2.0 and later; some objects need newer firmware).",
 "summary": "The O3 is a ceiling-mounted room sensor hub that reports temperature, humidity, occupancy (motion plus sound), light level and color, and sound level as BACnet objects. It also has a light ring, speaker, IR blaster and two universal I/O points. Most objects are readings; the AVs set sensitivities, timers and the light ring or sound behaviour.",
 "bacnet_transport": [
  "BACnet IP"
 ],
 "firmware": "2.0 or later (objects note their own minimum version)",
 "default_device_instance": null,
 "access_inferred": true,
 "notes": [
  "The article has no read/write column: access is inferred from object type and the descriptions.",
  "Temperature and light units follow the unit objects (AIC1 Celsius / AIC2 Fahrenheit, AIC3 Lux / AIC4 Footcandles), so no unit is shown for those values.",
  "Delta-specific objects are left out: AIC1-AIC7, MIC1-MIC3, the Network Port objects NP10 (Bluetooth) and NP13 (MQTT), and the proprietary SUA, OS, ORS and BDE objects.",
  "Only one object can exist per universal I/O point: xP1 / xP2 are created as AI, BI, AO or BO, not all four.",
  "Legacy objects left out: BV 31 and BV 48 (replaced by NP10 / NP13 in 4.16), CSV 41 (unused since 2.0), BV 42 (removed in 2.4) and the objects the article lists as removed.",
  "The objects article does not name the transport; Delta's O3 provisioning and FAQ articles say it speaks BACnet/Ethernet (the default) or BACnet IP, plus BACnet/SC, and not BACnet MS/TP.",
  "Newer objects: AV 40 needs 2.4, AV 251-253 need 2.3, AV 41 needs 2.6, AV 52 needs 4.18."
 ],
 "source": {
  "title": "BACnet Objects in the O3 (Delta Controls O3 support article)",
  "doc_number": "4427505298963",
  "revision_date": "2025-04-10",
  "url": "https://delta-o3.zendesk.com/hc/en-us/articles/4427505298963-BACnet-Objects-in-the-O3"
 },
 "integration": {
  "summary": "Enable BACnet IP on the O3 (it ships on BACnet/Ethernet), discover it, and read the occupant-height temperature and humidity, the combined occupancy signal and light level. Tune occupancy with AV 23-26 if the space needs it.",
  "minimum_points": [
   {
    "ref": "AI 3",
    "name": "Occupant Temperature",
    "why": "Room temperature at occupant height"
   },
   {
    "ref": "AI 6",
    "name": "Occupant Humidity",
    "why": "Room humidity at occupant height, %"
   },
   {
    "ref": "BI 8",
    "name": "Occupancy",
    "why": "Occupied: motion plus sound"
   },
   {
    "ref": "AV 40",
    "name": "Occupancy Estimation",
    "why": "Estimated number of people"
   },
   {
    "ref": "AI 12",
    "name": "Light Level",
    "why": "Ambient light level"
   },
   {
    "ref": "AI 17",
    "name": "Sound Level",
    "why": "Ambient sound level, dB"
   }
  ],
  "enable": null,
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "BACnet/Ethernet is the default; BACnet IP (UDP 47808 by default) must be enabled, e.g. in Network Port object NP6 or with the Proviso app.",
   "Firmware 4.16+ moves Bluetooth and MQTT settings into Network Port objects NP10 and NP13.",
   "Proprietary objects (SUA, OS, ORS, BDE) need enteliWEB to create or edit."
  ],
  "gotchas": [
   "AI 3 occupant temperature is a composite of the internal and IR sensors; AI 5 is the ceiling-height reading.",
   "BI 8 stays active for AV 26 (default 300 s) after the last motion or sound; AV 25 sets how long sound alone keeps it occupied."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "Universal IO Channel 1 AI",
   "description": "Analog input on I/O point xP1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Universal IO Channel 2 AI",
   "description": "Analog input on I/O point xP2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "Occupant Temperature",
   "description": "Temperature at 1 m above floor (composite)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "IR Temperature",
   "description": "Average surface temperature in view",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "Internal Temperature",
   "description": "Temperature at ceiling height",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "Occupant Humidity",
   "description": "Humidity at 1 m above floor (calculated)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "Internal Humidity",
   "description": "Humidity at ceiling height",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "Acoustic Activity Level",
   "description": "Filtered audio level",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "Light Level",
   "description": "Ambient light level (lx or fc)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "Color Temperature",
   "description": "Color temperature of ambient light",
   "units": "K",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 14,
   "name": "Light Sensor Red Component",
   "description": "Red light component, 0-65535",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 15,
   "name": "Light Sensor Green Component",
   "description": "Green light component, 0-65535",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 16,
   "name": "Light Sensor Blue Component",
   "description": "Blue light component, 0-65535",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 17,
   "name": "Sound Level",
   "description": "Unfiltered ambient noise level",
   "units": "dB",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 1,
   "name": "Universal IO Channel 1 AO",
   "description": "Analog output on I/O point xP1",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 2,
   "name": "Universal IO Channel 2 AO",
   "description": "Analog output on I/O point xP2",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "Light Ring Pattern Repeats",
   "description": "Times the light ring pattern repeats",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "Light Ring Custom Color Red",
   "description": "Custom ring color red (BV 7 on)",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "Light Ring Custom Color Green",
   "description": "Custom ring color green (BV 7 on)",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "Light Ring Custom Color Blue",
   "description": "Custom ring color blue (BV 7 on)",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "Light Ring Brightness",
   "description": "Light ring brightness (default 50 %)",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "IR Code Repeats",
   "description": "Times each IR code is sent",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "Motion Sensitivity",
   "description": "PIR sensitivity",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 24,
   "name": "Occupancy Audio Sensitivity",
   "description": "Acoustic occupancy sensitivity",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 25,
   "name": "Occupancy Audio Retrigger Period",
   "description": "Sound keeps occupied state after motion (default 1200)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 26,
   "name": "Occupancy Inactivity Period",
   "description": "Time to unoccupied with no motion or sound (default 300)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 29,
   "name": "Sound Repeats",
   "description": "Times a sound is played",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 30,
   "name": "Sound Volume",
   "description": "Speaker volume (default 75 %)",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 33,
   "name": "Temperature Setpoint",
   "description": "User-entered temperature from the mobile app",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 34,
   "name": "Light Level Setpoint",
   "description": "User-entered light level from the mobile app",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 39,
   "name": "Occupancy Remaining Latch Time",
   "description": "Time left before BI 8 goes inactive",
   "units": "s",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 40,
   "name": "Occupancy Estimation",
   "description": "Estimated number of occupants",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 41,
   "name": "Sound Level Rollup",
   "description": "10 s filtered average sound level",
   "units": "dB",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 52,
   "name": "Adjustment Variable",
   "description": "PIR latch time adjustment, 1-10 s",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 251,
   "name": "Occupancy Estimation - Mean",
   "description": "Occupancy estimation mean",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 252,
   "name": "Occupancy Estimation - Min",
   "description": "Occupancy estimation minimum",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 253,
   "name": "Occupancy Estimation - Max",
   "description": "Occupancy estimation maximum",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 1,
   "name": "Universal IO Channel 1 BI",
   "description": "Binary input on I/O point xP1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 2,
   "name": "Universal IO Channel 2 BI",
   "description": "Binary input on I/O point xP2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 8,
   "name": "Occupancy",
   "description": "Combined motion and sound occupancy",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 9,
   "name": "Motion Sensor",
   "description": "Motion occupancy",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 11,
   "name": "Acoustic Occupancy",
   "description": "Sound level above the acoustic threshold",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 1,
   "name": "Universal IO Channel 1 BO",
   "description": "Binary output on I/O point xP1",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 2,
   "name": "Universal IO Channel 2 BO",
   "description": "Binary output on I/O point xP2",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 7,
   "name": "Light Ring Activate Custom Colors",
   "description": "Use AV 3-5 custom color, overrides MV 1",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 8,
   "name": "Power On Self Test Enable",
   "description": "Run power-on self test",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 44,
   "name": "Startup Sound Enable",
   "description": "Play a sound at restart (default off)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 1,
   "name": "Play Light Ring Pattern",
   "description": "Light ring pattern 1-13 (1 = Off)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 9,
   "name": "Send IR Code",
   "description": "Send IR code 1-12 (default 1)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 28,
   "name": "Play Sound",
   "description": "Play one of the default or custom sounds",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 11,
   "name": "IR Code 1",
   "description": "IR code, Pronto hex",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 12,
   "name": "IR Code 2",
   "description": "IR code, Pronto hex",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 13,
   "name": "IR Code 3",
   "description": "IR code, Pronto hex",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 14,
   "name": "IR Code 4",
   "description": "IR code, Pronto hex",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 15,
   "name": "IR Code 5",
   "description": "IR code, Pronto hex",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 16,
   "name": "IR Code 6",
   "description": "IR code, Pronto hex",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 17,
   "name": "IR Code 7",
   "description": "IR code, Pronto hex",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 18,
   "name": "IR Code 8",
   "description": "IR code, Pronto hex",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 19,
   "name": "IR Code 9",
   "description": "IR code, Pronto hex",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 20,
   "name": "IR Code 10",
   "description": "IR code, Pronto hex",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 21,
   "name": "IR Code 11",
   "description": "IR code, Pronto hex",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 22,
   "name": "IR Code 12",
   "description": "IR code, Pronto hex",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 32,
   "name": "Bluetooth Beacon MAC Address",
   "description": "BLE beacon MAC address",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 43,
   "name": "Firmware Upgrade",
   "description": "Starts a firmware upgrade",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 45,
   "name": "BLE PIN",
   "description": "6-digit Bluetooth access code (default 000000)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "CSV",
   "instance": 46,
   "name": "MQTT Password",
   "description": "Internal MQTT broker password",
   "units": "",
   "access": "W",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/delta-controls/o3-sensor-hub",
 "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"
}
