{
 "manufacturer": "Bosch",
 "manufacturer_slug": "bosch",
 "model": "Heatronic 4000 boiler plant control",
 "model_slug": "heatronic-4000",
 "aliases": [
  "Heatronic 4000",
  "Bosch 4000",
  "Heatronic",
  "J1229A"
 ],
 "equipment_type": "Boiler plant (multi-boiler) controller",
 "applies_to": "Bosch Heatronic 4000 control that runs up to four boilers for heating and DHW loads (product now discontinued).",
 "summary": "The Heatronic 4000 controls up to four boilers and talks native BACnet IP (or Modbus RS-485). It exposes 72 objects: primary and DHW temperatures, flow, energy, pressure, pump run times, the error code and per-boiler type, outlet temperature, modulation, run time, cycles and pump time, plus BMS-writable setpoint, room and design temperatures, outdoor temperature, heat call, pump requests and per-boiler enable.",
 "bacnet_transport": [
  "BACnet IP"
 ],
 "firmware": "Application software J1229A, firmware revision 33 (PICS)",
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "Native BACnet IP, vendor ID 744, BACnet protocol revision 10, device profile B-ASC.",
  "Per-boiler objects are printed with (n) = boiler 1-4 and explicit IDs; they are listed here for all four boilers.",
  "What the BMS can command depends on the Application Mode: full control only in BAS mode, monitoring and selected settings in the other modes with BAS Monitor ON.",
  "Error codes (0 = no error, sensor and tN4 bus errors, etc.) are listed on page 12 of the manual.",
  "The object list closely matches the tekmar Boiler Control 284 BAS manual (watts/tekmar-boiler-control-284); the two appear to share the same control platform, with small differences in object names."
 ],
 "integration": {
  "summary": "For control, set Application Mode to BAS: the BMS then writes BAS Heat Call, the setpoint and the pump requests, and can enable or disable each boiler. In the other modes (RSET, SETP, DDHW, EMS) turn BAS Monitor ON to read values and adjust selected settings. Read primary target and supply temperature, boiler modulation, the alert relay and the error code.",
  "minimum_points": [
   {
    "ref": "BV 0",
    "name": "BAS HEAT CALL",
    "why": "Heat call from the BMS (APP MODE = BAS)"
   },
   {
    "ref": "AV 0",
    "name": "SETPOINT",
    "why": "Primary setpoint from the BMS, 60-225 °F"
   },
   {
    "ref": "BV 1",
    "name": "BAS PRIM PMP REQ",
    "why": "Primary pump request from the BMS"
   },
   {
    "ref": "BO 0",
    "name": "DHW PUMP",
    "why": "DHW tank pump request from the BMS"
   },
   {
    "ref": "AI 0",
    "name": "PRIM TARG",
    "why": "Primary target temperature in use"
   },
   {
    "ref": "AI 3",
    "name": "PRIM SUP",
    "why": "Primary supply water temperature"
   },
   {
    "ref": "AI 18",
    "name": "Boil 1 MOD",
    "why": "Boiler 1 modulation, % (repeat per boiler)"
   },
   {
    "ref": "BI 0",
    "name": "PRIM P1",
    "why": "Primary pump 1 running"
   },
   {
    "ref": "BI 5",
    "name": "ALERT RLY",
    "why": "Alert dry relay energized"
   },
   {
    "ref": "AI 15",
    "name": "ERROR",
    "why": "Active error code; see the error list"
   }
  ],
  "enable": "Set the Heatronic 4000 Application Mode to BAS for BMS control: the BAS then sends the setpoint (AV 0) and heat call (BV 0), plus primary pump (BV 1) and DHW pump (BO 0) requests. BV 2-5 enable (0) or disable (1) boilers 1-4. In RSET, SETP, DDHW or EMS mode, set BAS Monitor = ON for monitoring and adjusting selected settings only.",
  "heartbeat": null,
  "remote_sensors": "AV 5 BAS Outdoor Air Temperature takes an outdoor temperature from the BMS (-85 to 149 °F); -85 °F means invalid / no BAS sensor.",
  "setup": [
   "BAS Type must be BACn (BACnet IP over the RJ45 port); MODB selects Modbus RS-485 instead.",
   "Device ID is entered at the control as four number sets (0-4, 0-99, 0-99, 0-99), default 0,0,0,0.",
   "UDP port default 0xBAC0 (47808); DHCP is ON by default, static default 192.168.0.200 with gateway 192.168.0.1.",
   "Foreign device registration: set BBMD TIME (30-65535 s), BBMD IP and BBMD port.",
   "The BAS menu items need the Advanced access level (unlock switch beside the display)."
  ],
  "gotchas": [
   "ENABLE B1-B4 use 0 = Enable, 1 = Disable.",
   "Only BACnet IP is supported (no MS/TP); Modbus uses RS-485.",
   "DeviceCommunicationControl password is \"Bosch\" (from the PICS)."
  ]
 },
 "source": {
  "title": "Heatronic 4000 BAS Integration Manual",
  "doc_number": "BTC 461501103 B (6720810375)",
  "revision_date": "2018-03",
  "url": "https://www.bosch-homecomfort.com/us/media/country_pool/service/technical_guides/bosch_heatronic_4000_bas_integration_manual_en_03.2018.pdf"
 },
 "points": [
  {
   "type": "AI",
   "instance": 0,
   "name": "PRIM TARG",
   "description": "Primary Target Temperature; range -22 to 266°F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1,
   "name": "PRIM MIN",
   "description": "Minimum Primary Target Temperature; range 60 to 180°F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "PRIM MAX",
   "description": "Maximum Primary Target Temperature; range 90 to 225°F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "PRIM SUP",
   "description": "Primary Supply Temperature; range -22 to 266°F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "PRIM RET",
   "description": "Primary Return Temperature; range -22 to 266°F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "OUTDOOR",
   "description": "Outdoor Air Temperature; range -76 to 149°F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "DHW",
   "description": "DHW Tank Temperature; range -22 to 266°F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "FLUE",
   "description": "Common Flue Temperature; range -22 to 266°F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "Boil INLET",
   "description": "Boiler Inlet Temperature; range -40 to 500°F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "FLOW RATE",
   "description": "Flow Rate; range 0 to 65535 gpm",
   "units": "gpm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "ENERGY",
   "description": "Energy Usage; range 0 to 65535 Therms",
   "units": "therms",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "PRESSURE",
   "description": "System Pressure; range 0 to 65535 psi",
   "units": "psi",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "PRIM P1 RT",
   "description": "Primary Pump 1 Running Time; range 0 to 65535 Hours",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "PRIM P2 RT",
   "description": "Primary Pump 2 Running Time; range 0 to 65535 Hours",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 14,
   "name": "DHW P RT",
   "description": "DHW Pump Running Time; range 0 to 65535 Hours",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 15,
   "name": "ERROR",
   "description": "Current Error; code from the error list in the manual",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 16,
   "name": "Boil 1 TYPE",
   "description": "Boiler 1 Type",
   "units": "",
   "access": "R",
   "states": "0=MOD, 1=1STG, 2=2STG, 3=EMS"
  },
  {
   "type": "AI",
   "instance": 22,
   "name": "Boil 2 TYPE",
   "description": "Boiler 2 Type",
   "units": "",
   "access": "R",
   "states": "0=MOD, 1=1STG, 2=2STG, 3=EMS"
  },
  {
   "type": "AI",
   "instance": 28,
   "name": "Boil 3 TYPE",
   "description": "Boiler 3 Type",
   "units": "",
   "access": "R",
   "states": "0=MOD, 1=1STG, 2=2STG, 3=EMS"
  },
  {
   "type": "AI",
   "instance": 34,
   "name": "Boil 4 TYPE",
   "description": "Boiler 4 Type",
   "units": "",
   "access": "R",
   "states": "0=MOD, 1=1STG, 2=2STG, 3=EMS"
  },
  {
   "type": "AI",
   "instance": 17,
   "name": "Boil 1 OUT",
   "description": "Boiler 1 Outlet Temperature; range -22 to 266°F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 23,
   "name": "Boil 2 OUT",
   "description": "Boiler 2 Outlet Temperature; range -22 to 266°F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 29,
   "name": "Boil 3 OUT",
   "description": "Boiler 3 Outlet Temperature; range -22 to 266°F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 35,
   "name": "Boil 4 OUT",
   "description": "Boiler 4 Outlet Temperature; range -22 to 266°F",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 18,
   "name": "Boil 1 MOD",
   "description": "Boiler 1 Modulating Output; range 0 to 100%",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 24,
   "name": "Boil 2 MOD",
   "description": "Boiler 2 Modulating Output; range 0 to 100%",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 30,
   "name": "Boil 3 MOD",
   "description": "Boiler 3 Modulating Output; range 0 to 100%",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 36,
   "name": "Boil 4 MOD",
   "description": "Boiler 4 Modulating Output; range 0 to 100%",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 19,
   "name": "BURNER 1",
   "description": "Boiler 1 Running Time; range 0 to 65535 Hours",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 25,
   "name": "BURNER 2",
   "description": "Boiler 2 Running Time; range 0 to 65535 Hours",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 31,
   "name": "BURNER 3",
   "description": "Boiler 3 Running Time; range 0 to 65535 Hours",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 37,
   "name": "BURNER 4",
   "description": "Boiler 4 Running Time; range 0 to 65535 Hours",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 20,
   "name": "CYCLES 1",
   "description": "Boiler 1 Cycles; range 0 to 65535",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 26,
   "name": "CYCLES 2",
   "description": "Boiler 2 Cycles; range 0 to 65535",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 32,
   "name": "CYCLES 3",
   "description": "Boiler 3 Cycles; range 0 to 65535",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 38,
   "name": "CYCLES 4",
   "description": "Boiler 4 Cycles; range 0 to 65535",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 21,
   "name": "PUMP 1 RT",
   "description": "Boiler 1 Pump Running Time; range 0 to 65535 Hours",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 27,
   "name": "PUMP 2 RT",
   "description": "Boiler 2 Pump Running Time; range 0 to 65535 Hours",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 33,
   "name": "PUMP 3 RT",
   "description": "Boiler 3 Pump Running Time; range 0 to 65535 Hours",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 39,
   "name": "PUMP 4 RT",
   "description": "Boiler 4 Pump Running Time; range 0 to 65535 Hours",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 0,
   "name": "SETPOINT",
   "description": "BAS Setpoint Temperature; range 60 to 225°F",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "ROOM Occ",
   "description": "Room Occupied Temperature; range 35 to 100°F",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "ROOM UnOcc",
   "description": "Room UnOccupied Temperature; range 35 to 100°F",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "OUT DSGN",
   "description": "Outdoor Design Temperature; range -60 to 45°F",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "TERMINAL",
   "description": "Terminal Unit Type",
   "units": "",
   "access": "W",
   "states": "0=HRF1, 1=HRF2, 2=CONV, 3=COIL, 4=RAD, 5=BASE"
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "OUTDOOR",
   "description": "BAS Outdoor Air Temperature; range -85 to 149 °F; -85 = invalid / no BAS sensor",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 0,
   "name": "PRIM P1",
   "description": "Primary Pump 1 Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 1,
   "name": "PRIM P2",
   "description": "Primary Pump 2 Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 2,
   "name": "DHW PUMP",
   "description": "DHW Pump Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 3,
   "name": "SETBACK",
   "description": "Setback Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 4,
   "name": "AUX RLY",
   "description": "Auxiliary Relay Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 5,
   "name": "ALERT RLY",
   "description": "Alert Dry Relay Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 6,
   "name": "HEAT CALL",
   "description": "Central Heat Call Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 7,
   "name": "DHW CALL",
   "description": "DHW Call Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 8,
   "name": "FUEL SWITCH",
   "description": "Fuel Switch Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 9,
   "name": "FLOW PROOF",
   "description": "Primary Pump Flow Proof Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 10,
   "name": "CA PROOF",
   "description": "Combustion Air Proof Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 11,
   "name": "CONDENSE 1",
   "description": "Boiler 1 Condensing",
   "units": "",
   "access": "R",
   "states": "0=No, 1=Yes"
  },
  {
   "type": "BI",
   "instance": 13,
   "name": "CONDENSE 2",
   "description": "Boiler 2 Condensing",
   "units": "",
   "access": "R",
   "states": "0=No, 1=Yes"
  },
  {
   "type": "BI",
   "instance": 15,
   "name": "CONDENSE 3",
   "description": "Boiler 3 Condensing",
   "units": "",
   "access": "R",
   "states": "0=No, 1=Yes"
  },
  {
   "type": "BI",
   "instance": 17,
   "name": "CONDENSE 4",
   "description": "Boiler 4 Condensing",
   "units": "",
   "access": "R",
   "states": "0=No, 1=Yes"
  },
  {
   "type": "BI",
   "instance": 12,
   "name": "B1 PUMP",
   "description": "Boiler 1 Pump Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 14,
   "name": "B2 PUMP",
   "description": "Boiler 2 Pump Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 16,
   "name": "B3 PUMP",
   "description": "Boiler 3 Pump Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 18,
   "name": "B4 PUMP",
   "description": "Boiler 4 Pump Status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BO",
   "instance": 0,
   "name": "DHW PUMP",
   "description": "BAS DHW Tank Pump Request",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 0,
   "name": "BAS HEAT CALL",
   "description": "BAS Heat Call",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "BAS PRIM PMP REQ",
   "description": "BAS Primary Pump Request",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 2,
   "name": "ENABLE B1",
   "description": "Enable / Disable Boiler 1",
   "units": "",
   "access": "W",
   "states": "0=Enable, 1=Disable"
  },
  {
   "type": "BV",
   "instance": 3,
   "name": "ENABLE B2",
   "description": "Enable / Disable Boiler 2",
   "units": "",
   "access": "W",
   "states": "0=Enable, 1=Disable"
  },
  {
   "type": "BV",
   "instance": 4,
   "name": "ENABLE B3",
   "description": "Enable / Disable Boiler 3",
   "units": "",
   "access": "W",
   "states": "0=Enable, 1=Disable"
  },
  {
   "type": "BV",
   "instance": 5,
   "name": "ENABLE B4",
   "description": "Enable / Disable Boiler 4",
   "units": "",
   "access": "W",
   "states": "0=Enable, 1=Disable"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/bosch/heatronic-4000",
 "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"
}
