update_device_value
Update a sensor or device value in Domoticz by specifying its IDX or name, along with integer and string values.
Instructions
Update a sensor/device value manually. nvalue is integer value, svalue is string value. Provide IDX or Name.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| idx | No | ||
| name | No | ||
| nvalue | No | ||
| svalue | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- src/domoticz_mcp/server.py:1015-1025 (handler)The handler/tool function for 'update_device_value'. It resolves the device by idx or name, then updates the device value via Domoticz API (udevice command) with nvalue (integer) and svalue (string) parameters.
@mcp.tool() async def update_device_value(idx: int | None = None, name: str | None = None, nvalue: int = 0, svalue: str = "") -> str: """Update a sensor/device value manually. nvalue is integer value, svalue is string value. Provide IDX or 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=udevice&idx={resolved_idx}&nvalue={nvalue}&svalue={urllib.parse.quote(svalue)}") return response.text - src/domoticz_mcp/server.py:1015-1016 (registration)Registration of the tool via the @mcp.tool() decorator on FastMCP instance, which registers it as an MCP tool named 'update_device_value'.
@mcp.tool() async def update_device_value(idx: int | None = None, name: str | None = None, nvalue: int = 0, svalue: str = "") -> str: - src/domoticz_mcp/server.py:1016-1016 (schema)Input schema/parameters for the tool: idx (optional device index), name (optional device name), nvalue (integer value, default 0), svalue (string value, default empty). At least one of idx or name must be provided.
async def update_device_value(idx: int | None = None, name: str | None = None, nvalue: int = 0, svalue: str = "") -> str: - src/domoticz_mcp/server.py:373-375 (helper)Helper function used by the handler to resolve a device idx from either an explicit idx or a device name lookup.
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")