set_temperature_setpoint
Set the temperature setpoint for a thermostat by entering a target Celsius value and device index or name.
Instructions
Set the temperature setpoint for a thermostat.
Args: setpoint: Target temperature in Celsius (e.g., 21.5). idx: Device index. name: Device name.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| setpoint | Yes | ||
| idx | No | ||
| name | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- src/domoticz_mcp/server.py:620-636 (handler)The actual tool handler for set_temperature_setpoint. It is decorated with @mcp.tool(), resolves the device idx by name or direct idx, then calls the Domoticz API 'setsetpoint' command.
@mcp.tool() async def set_temperature_setpoint(setpoint: float, idx: int | None = None, name: str | None = None) -> str: """Set the temperature setpoint for a thermostat. Args: setpoint: Target temperature in Celsius (e.g., 21.5). idx: Device index. name: Device name. """ if idx is None and name is None: return '{"status": "error", "message": "Must provide either idx or name"}' async with create_client() as client: resolved_idx = await _resolve_device_idx(client, idx, name) if resolved_idx is None: return '{"status": "error", "message": "Device not found"}' response = await _do_request(client, "GET", f"{DOMOTICZ_API_URL}?type=command¶m=setsetpoint&idx={resolved_idx}&setpoint={setpoint}") return response.text - src/domoticz_mcp/server.py:620-620 (registration)Registration of set_temperature_setpoint as an MCP tool via the @mcp.tool() decorator on the FastMCP instance.
@mcp.tool() - src/domoticz_mcp/server.py:621-628 (schema)Input parameters: setpoint (float, required), idx (optional int), name (optional str). The docstring documents setpoint as Celsius temperature target.
async def set_temperature_setpoint(setpoint: float, idx: int | None = None, name: str | None = None) -> str: """Set the temperature setpoint for a thermostat. Args: setpoint: Target temperature in Celsius (e.g., 21.5). idx: Device index. name: Device name. """ - src/domoticz_mcp/server.py:373-375 (helper)Helper function used by set_temperature_setpoint to resolve a device name or idx to a numeric idx for the API call.
async def _resolve_device_idx(client: "httpx.AsyncClient", idx: Optional[int] = None, name: Optional[str] = None) -> Optional[int]: """Resolve a device to its idx.""" return await _resolve_idx(client, idx, name, _device_cache, f"{DOMOTICZ_API_URL}?type=command¶m=getdevices&filter=all&used=true")