update_event
Update an existing Domoticz event script by specifying its ID, name, language, trigger type, source code, and enabled state.
Instructions
Update an existing event script in Domoticz.
Args: event_id: The ID of the event to update. name: Name of the event script. interpreter: The language (e.g., 'Lua', 'Blockly', 'dzVents', 'Python'). event_type: Trigger type (e.g., 'All', 'Device', 'Security', 'Time', 'UserVariable'). xmlstatement: The source code (or XML for Blockly) of the script. eventstatus: '1' for enabled, '0' for disabled.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | ||
| name | Yes | ||
| interpreter | Yes | ||
| event_type | Yes | ||
| xmlstatement | Yes | ||
| eventstatus | No | 1 |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- src/domoticz_mcp/server.py:853-877 (handler)The main handler function for the 'update_event' tool. It is an async function decorated with @mcp.tool(), which takes event_id, name, interpreter, event_type, xmlstatement, and eventstatus parameters. It sends a POST request to the Domoticz API to update an existing event script.
@mcp.tool() async def update_event(event_id: int, name: str, interpreter: str, event_type: str, xmlstatement: str, eventstatus: str = "1") -> str: """Update an existing event script in Domoticz. Args: event_id: The ID of the event to update. name: Name of the event script. interpreter: The language (e.g., 'Lua', 'Blockly', 'dzVents', 'Python'). event_type: Trigger type (e.g., 'All', 'Device', 'Security', 'Time', 'UserVariable'). xmlstatement: The source code (or XML for Blockly) of the script. eventstatus: '1' for enabled, '0' for disabled. """ async with create_client() as client: data = { "evparam": "create", "eventid": str(event_id), "name": name, "eventstatus": eventstatus, "interpreter": interpreter, "xml": xmlstatement, "eventtype": event_type, "logicarray": "" } response = await _do_request(client, "POST", f"{DOMOTICZ_API_URL}?type=command¶m=events", data=data) return response.text - src/domoticz_mcp/server.py:853-854 (registration)The @mcp.tool() decorator on line 853 registers 'update_event' as a tool with the FastMCP server, making it available for use via the MCP protocol.
@mcp.tool() async def update_event(event_id: int, name: str, interpreter: str, event_type: str, xmlstatement: str, eventstatus: str = "1") -> str: - src/domoticz_mcp/server.py:854-864 (schema)The docstring serves as the schema/input specification for the update_event tool, defining parameters: event_id (int), name (str), interpreter (str), event_type (str), xmlstatement (str), and eventstatus (str with default '1').
async def update_event(event_id: int, name: str, interpreter: str, event_type: str, xmlstatement: str, eventstatus: str = "1") -> str: """Update an existing event script in Domoticz. Args: event_id: The ID of the event to update. name: Name of the event script. interpreter: The language (e.g., 'Lua', 'Blockly', 'dzVents', 'Python'). event_type: Trigger type (e.g., 'All', 'Device', 'Security', 'Time', 'UserVariable'). xmlstatement: The source code (or XML for Blockly) of the script. eventstatus: '1' for enabled, '0' for disabled. """