You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add include_knx_project to ha_get_integration for KNX group addresses
Adds an opt-in `include_knx_project` flag to `ha_get_integration` that attaches the parsed ETS project (group-address table, group-range hierarchy, project metadata) for a KNX config entry, read via the `knx/get_knx_project` WebSocket command. Per-entity GA assignments remain available via `include_diagnostics`.
Copy file name to clipboardExpand all lines: site/src/data/tools.json
+5-1Lines changed: 5 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1913,7 +1913,7 @@
1913
1913
{
1914
1914
"name": "ha_get_integration",
1915
1915
"title": "Get Integration",
1916
-
"description": "Get integration (config entry) information with pagination.\n\nWithout an entry_id: Lists all configured integrations with optional filters.\nWith an entry_id: Returns detailed information including full options/configuration.\n\nEXAMPLES:\n- List all integrations: ha_get_integration()\n- Paginate: ha_get_integration(offset=50)\n- Search: ha_get_integration(query=\"zigbee\")\n- Get specific entry: ha_get_integration(entry_id=\"abc123\")\n- Get entry with editable fields: ha_get_integration(entry_id=\"abc123\", include_schema=True)\n- Get entry with diagnostics dump: ha_get_integration(entry_id=\"abc123\", include_diagnostics=True)\n- Get device-scoped diagnostics: ha_get_integration(entry_id=\"abc123\", include_diagnostics=True, device_id=\"dev123\")\n- Walk a sub-tree: ha_get_integration(entry_id=\"abc123\", include_diagnostics=True, diagnostics_data_path=\"<dotted-path>\")\n- Paginate a large list: ha_get_integration(entry_id=\"abc123\", include_diagnostics=True, diagnostics_data_path=\"<list-valued path>\", diagnostics_data_limit=10, diagnostics_data_offset=20)\n- List config subentries: ha_get_integration(entry_id=\"abc123\", include_subentries=True)\n- Inspect subentry create schema: ha_get_integration(entry_id=\"abc123\", include_subentry_schema=True, subentry_type=\"conversation\")\n- Inspect subentry reconfigure schema: ha_get_integration(entry_id=\"abc123\", include_subentry_schema=True, subentry_type=\"conversation\", subentry_id=\"sub123\")\n- List template entries: ha_get_integration(domain=\"template\")\n\nSTATES: 'loaded', 'setup_error', 'setup_retry', 'not_loaded',\n'failed_unload', 'migration_error'.\n\nEach entry carries:\n\n- ``log_level``: the canonical Python logger level name\n (``DEBUG``/``INFO``/``WARNING``/``ERROR``/``CRITICAL``) when the\n integration has a ``logger.set_level`` override, or ``\"DEFAULT\"``\n (uppercase sentinel) when no override is set.\n- ``log_level_raw``: the original numeric level (e.g. ``10`` for DEBUG)\n when HA returned an int, ``None`` otherwise (no override set, or HA\n provided a level name as a string).\n\nThis is distinct from the add-on side, where ``ha_get_addon`` returns\nSupervisor's lowercase ``\"default\"`` literal — do not cross-compare.",
1916
+
"description": "Get integration (config entry) information with pagination.\n\nWithout an entry_id: Lists all configured integrations with optional filters.\nWith an entry_id: Returns detailed information including full options/configuration.\n\nEXAMPLES:\n- List all integrations: ha_get_integration()\n- Paginate: ha_get_integration(offset=50)\n- Search: ha_get_integration(query=\"zigbee\")\n- Get specific entry: ha_get_integration(entry_id=\"abc123\")\n- Get entry with editable fields: ha_get_integration(entry_id=\"abc123\", include_schema=True)\n- Get entry with diagnostics dump: ha_get_integration(entry_id=\"abc123\", include_diagnostics=True)\n- Get device-scoped diagnostics: ha_get_integration(entry_id=\"abc123\", include_diagnostics=True, device_id=\"dev123\")\n- Get the parsed KNX ETS project (group-address table): ha_get_integration(entry_id=\"<knx entry>\", include_knx_project=True)\n- Walk a sub-tree: ha_get_integration(entry_id=\"abc123\", include_diagnostics=True, diagnostics_data_path=\"<dotted-path>\")\n- Paginate a large list: ha_get_integration(entry_id=\"abc123\", include_diagnostics=True, diagnostics_data_path=\"<list-valued path>\", diagnostics_data_limit=10, diagnostics_data_offset=20)\n- List config subentries: ha_get_integration(entry_id=\"abc123\", include_subentries=True)\n- Inspect subentry create schema: ha_get_integration(entry_id=\"abc123\", include_subentry_schema=True, subentry_type=\"conversation\")\n- Inspect subentry reconfigure schema: ha_get_integration(entry_id=\"abc123\", include_subentry_schema=True, subentry_type=\"conversation\", subentry_id=\"sub123\")\n- List template entries: ha_get_integration(domain=\"template\")\n\nSTATES: 'loaded', 'setup_error', 'setup_retry', 'not_loaded',\n'failed_unload', 'migration_error'.\n\nEach entry carries:\n\n- ``log_level``: the canonical Python logger level name\n (``DEBUG``/``INFO``/``WARNING``/``ERROR``/``CRITICAL``) when the\n integration has a ``logger.set_level`` override, or ``\"DEFAULT\"``\n (uppercase sentinel) when no override is set.\n- ``log_level_raw``: the original numeric level (e.g. ``10`` for DEBUG)\n when HA returned an int, ``None`` otherwise (no override set, or HA\n provided a level name as a string).\n\nThis is distinct from the add-on side, where ``ha_get_addon`` returns\nSupervisor's lowercase ``\"default\"`` literal — do not cross-compare.",
1917
1917
"inputSchema": {
1918
1918
"properties": {
1919
1919
"entry_id": {
@@ -1972,6 +1972,10 @@
1972
1972
"type": "Annotated[bool, Field(description=\"When entry_id is set, also fetch the integration's diagnostics dump — integration-defined JSON (commonly includes redacted config, device list, state snapshots; exact top-level keys vary by integration). The canonical artifact users grab via Settings → Devices & Services → [integration] → ⋯ → Download diagnostics. Use when triaging integration bugs or filing ha_report_issue for a specific integration. Payloads can be large (Hue ~290 KB, ZHA/MQTT/ESPHome several MB) — pair with diagnostics_fields or diagnostics_truncate_at_bytes to fit the LLM context budget.\", default=False)]",
1973
1973
"default": false
1974
1974
},
1975
+
"include_knx_project": {
1976
+
"type": "Annotated[bool, Field(description='When entry_id is a KNX config entry, also return the parsed ETS project: the full group-address table (address, name, DPT, description) under knx_project.group_addresses, plus the group-range hierarchy and project metadata. This is the parsed-project GA table that is NOT in the diagnostics dump; per-entity GA assignments are already covered by include_diagnostics (config_store / configuration_yaml). Ignored (with a warning) when the entry is not a KNX integration. The KNX integration exposes a single project, so the result is the same regardless of which KNX entry_id is used.', default=False)]",
1977
+
"default": false
1978
+
},
1975
1979
"device_id": {
1976
1980
"type": "Annotated[str | None, Field(description='Optional. When set with include_diagnostics=True, returns the device-scoped diagnostics dump for that specific device under the integration (rather than the full integration dump). Some integrations only expose config-entry-level dumps; others expose both.', default=None)]",
0 commit comments