bulc_set_fds_detector
Configure furniture as fire detection sensors for smoke or heat monitoring in building simulations, specifying parameters like activation temperature and obscuration thresholds.
Instructions
Configure a furniture item as an FDS detector (heat or smoke). Heat detectors use RTI and activation temperature. Smoke detectors use optical obscuration threshold.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| furnitureId | Yes | Furniture ID to configure as detector | |
| type | No | Detector type: 'heat' or 'smoke'. Default: heat | |
| rti | No | Response Time Index in (m·s)^0.5. Default: 50 for heat, 1.0 for smoke | |
| activationTemperature | No | Activation temperature in Celsius (heat detector). Default: 57 | |
| alphaE | No | Alpha_E parameter for smoke detector. Default: 1.8 | |
| betaE | No | Beta_E parameter for smoke detector. Default: -1.1 | |
| obscurationThreshold | No | Obscuration threshold in %/m (smoke detector). Default: 3.28 | |
| deviceId | No | Custom device ID. Default: auto-generated |
Implementation Reference
- src/tools/fds-data.ts:375-382 (handler)Handler logic for 'bulc_set_fds_detector' tool: validates input using SetDetectorSchema and sends 'set_fds_detector' command to BULC client via getBulcClient().case "bulc_set_fds_detector": { const validated = SetDetectorSchema.parse(args); result = await client.sendCommand({ action: "set_fds_detector", params: validated, }); break; }
- src/tools/fds-data.ts:76-127 (schema)Tool definition and input schema for 'bulc_set_fds_detector', including description, parameters for heat/smoke detectors, and annotations.{ name: "bulc_set_fds_detector", description: "Configure a furniture item as an FDS detector (heat or smoke). " + "Heat detectors use RTI and activation temperature. " + "Smoke detectors use optical obscuration threshold.", inputSchema: { type: "object" as const, properties: { furnitureId: { type: "string", description: "Furniture ID to configure as detector", }, type: { type: "string", description: "Detector type: 'heat' or 'smoke'. Default: heat", enum: ["heat", "smoke"], }, // Heat detector params rti: { type: "number", description: "Response Time Index in (m·s)^0.5. Default: 50 for heat, 1.0 for smoke", }, activationTemperature: { type: "number", description: "Activation temperature in Celsius (heat detector). Default: 57", }, // Smoke detector params alphaE: { type: "number", description: "Alpha_E parameter for smoke detector. Default: 1.8", }, betaE: { type: "number", description: "Beta_E parameter for smoke detector. Default: -1.1", }, obscurationThreshold: { type: "number", description: "Obscuration threshold in %/m (smoke detector). Default: 3.28", }, deviceId: { type: "string", description: "Custom device ID. Default: auto-generated", }, }, required: ["furnitureId"], }, annotations: { readOnlyHint: false, destructiveHint: true, }, },
- src/tools/fds-data.ts:297-306 (schema)Zod runtime validation schema SetDetectorSchema used to parse and validate arguments in the handler.const SetDetectorSchema = z.object({ furnitureId: z.string(), type: z.enum(["heat", "smoke"]).optional(), rti: z.number().positive().optional(), activationTemperature: z.number().optional(), alphaE: z.number().optional(), betaE: z.number().optional(), obscurationThreshold: z.number().positive().optional(), deviceId: z.string().optional(), });
- src/index.ts:84-94 (registration)Tool registration routing in main server handler: matches 'bulc_set_fds_detector' name and dispatches to handleFdsDataTool.if ( name === "bulc_get_fds_data" || name === "bulc_set_fds_fire_source" || name === "bulc_set_fds_detector" || name === "bulc_set_fds_sprinkler" || name === "bulc_set_fds_hvac" || name === "bulc_set_fds_thermocouple" || name === "bulc_clear_fds_data" ) { return await handleFdsDataTool(name, safeArgs); }
- src/index.ts:40-51 (registration)Includes fdsDataTools (containing 'bulc_set_fds_detector' schema) in the full list of tools advertised via ListToolsRequest.const allTools = [ ...contextTools, // 8 tools: spatial context, home info, levels, undo/redo, save ...roomTools, // 5 tools: create, create_polygon, list, modify, delete ...wallTools, // 5 tools: create, create_rectangle, list, modify, delete ...furnitureTools, // 5 tools: catalog, place, list, modify, delete ...fdsDataTools, // 7 tools: get, fire_source, detector, sprinkler, hvac, thermocouple, clear ...meshTools, // 5 tools: list, create, auto, modify, delete ...simulationTools, // 4 tools: get_settings, time, output, ambient ...fdsRunTools, // 6 tools: preview, validate, export, run, status, stop ...resultTools, // 5 tools: open_viewer, list_datasets, point_data, aset, report ...evacTools, // 25 tools: setup, stairs, agents, run, results, advanced features ];