update_event
Modify an existing Domoticz event script. Specify event ID, name, interpreter language, trigger type, source code, and enable/disable status.
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:861-885 (handler)The update_event tool handler: an async function decorated with @mcp.tool() that sends a POST request to the Domoticz API with evparam='create', eventid, name, interpreter, xmlstatement, eventtype and logicarray 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:861-862 (registration)The update_event tool is registered with MCP via the @mcp.tool() decorator on line 861, using the FastMCP instance created on line 70.
@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:862-872 (schema)Input schema defined in the docstring/type hints: event_id (int), name (str), interpreter (str), event_type (str), xmlstatement (str), eventstatus (str, default '1'). The function returns a JSON string response.
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. """ - src/domoticz_mcp/server.py:873-885 (helper)Uses the helper DomoticzClient (create_client) and _do_request to make the HTTP POST request to the Domoticz JSON API endpoint for updating events.
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