ha-mcp-dev 8.2.0.dev2360__tar.gz → 8.2.0.dev2362__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ha_mcp_dev-8.2.0.dev2360/src/ha_mcp_dev.egg-info → ha_mcp_dev-8.2.0.dev2362}/PKG-INFO +1 -1
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/pyproject.toml +1 -1
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/cs.json +32 -32
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/de.json +35 -35
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/eo.json +35 -35
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/es.json +35 -35
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/fr.json +35 -35
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/it.json +34 -34
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/nl.json +35 -35
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/pl.json +35 -35
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/ru.json +35 -35
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/sv.json +35 -35
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/zh-Hans.json +35 -35
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/MANIFEST.in +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/setup.cfg +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_rich_compat.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/requirements.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_vendor/websockets/version.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/auth/oidc_compat.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/hacs_auto_refresh.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/policy/editing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/redaction.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/renamed_tools.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/en.json +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/settings.js +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/best_practice_result.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/best_practice_variables.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/component_config_entries.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/config_entry_identity.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/error_log_parsing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/hacs_registration.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_security_policy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/visibility/resolver.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/tests/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/tests/test_constants.py +0 -0
- {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/tests/test_env_manager.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ha-mcp-dev"
|
|
7
|
-
version = "8.2.0.
|
|
7
|
+
version = "8.2.0.dev2362"
|
|
8
8
|
description = "Home Assistant MCP Server - Complete control of Home Assistant through MCP"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
# Upper bound widened to <3.15 so the package installs on Home Assistant's
|
{ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/cs.json
RENAMED
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"tabs.policies": "Zásady zabezpečení nástrojů",
|
|
29
29
|
"tabs.visibility": "Viditelnost entit",
|
|
30
30
|
"tabs.accessibility": "Přístupnost",
|
|
31
|
-
"notice.restart_required": "⚠ Změny uloženy.
|
|
32
|
-
"notice.shared_settings": "Funkce pro celý server (vyhledávání nástrojů,
|
|
33
|
-
"notice.env_pins": "Nástroje uvedené v proměnných prostředí <code>DISABLED_TOOLS</code> nebo <code>PINNED_TOOLS</code> jsou
|
|
31
|
+
"notice.restart_required": "⚠ Změny uloženy. Aby se projevily, restartujte HA-MCP. Při příštím spuštění HA-MCP zcela odstraní zakázané nástroje ze seznamu nástrojů MCP. Poté znovu připojte nebo obnovte server MCP ve svém AI klientovi (např. obnovte seznam nástrojů na claude.ai, znovu přidejte/obnovte konektor v ChatGPT nebo zavřete a znovu otevřete Claude Desktop), aby se seznam nástrojů načetl znovu. Restartování aplikace (doplňku) nebo Home Assistant NEZAPOMENE obnovit mezipaměť seznamu nástrojů vašeho klienta. ChatGPT někdy nadále poskytuje seznam nástrojů z mezipaměti i po odebrání a opětovném přidání konektoru – pokud nástroje stále chybí, odstraňte konektor a vytvořte nový pod jiným názvem.",
|
|
32
|
+
"notice.shared_settings": "Funkce platné pro celý server (vyhledávání nástrojů, úpravy konfigurace YAML, nástroje souborového systému atd.) se objevují jak na kartě <strong>Server Settings</strong>, tak na stránce Konfigurace aplikace (doplňku); v obou případech jde o totožné nastavení. Po restartování aplikace (doplňku) zůstává jedno rozhraní synchronizované s druhým. Změny vyžadují restartování HA-MCP.",
|
|
33
|
+
"notice.env_pins": "Nástroje uvedené v proměnných prostředí <code>DISABLED_TOOLS</code> nebo <code>PINNED_TOOLS</code> jsou zamčené pouze pro čtení; chcete-li je upravit zde, zrušte nastavení proměnné prostředí. Přepínače připnutí se projeví pouze tehdy, když je povoleno vyhledávání nástrojů (karta Server Settings nebo stránka Konfigurace aplikace (doplňku)).",
|
|
34
34
|
"actions.restart_addon": "Restartovat aplikaci (doplněk)",
|
|
35
35
|
"actions.save": "Uložit",
|
|
36
36
|
"actions.save_settings": "Uložit nastavení",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"tools.read_only.help": "Vypne všechny nástroje pro zápis a zablokuje každému nástroji provádění zápisových nebo destruktivních volání. Nástroje pro smíšené čtení/zápis (zálohy, aplikace (doplňky), preference energie, hlasové pipeline a režim kódu, pokud je povolen) zůstanou dostupné s blokovanými operacemi zápisu.",
|
|
41
41
|
"tools.read_only.unknown": "Nepodařilo se načíst nastavení serveru. Stav režimu pouze pro čtení je neznámý; toto zobrazení nemusí odrážet to, co server vynucuje.",
|
|
42
42
|
"tools.search": "Hledat nástroje...",
|
|
43
|
-
"server.auto_save_notice": "Nastavení na této kartě se
|
|
43
|
+
"server.auto_save_notice": "Nastavení na této kartě se ukládá automaticky. Změny se projeví až po restartování HA-MCP (aplikuje je na straně serveru) a opětovném připojení nebo obnovení serveru MCP ve vašem AI klientovi (znovu načte seznam nástrojů), např. obnovením seznamu nástrojů na claude.ai, opětovným přidáním nebo obnovením konektoru v ChatGPT, případně zavřením a opětovným otevřením Claude Desktop. ChatGPT někdy nadále poskytuje seznam nástrojů z mezipaměti i po odebrání a opětovném přidání konektoru – pokud nástroje stále chybí, odstraňte konektor a vytvořte nový pod jiným názvem.",
|
|
44
44
|
"server.sections.search": "Vyhledávání a shoda",
|
|
45
45
|
"server.sections.operations": "Operace",
|
|
46
46
|
"server.sections.tool_surface": "Rozhraní nástrojů",
|
|
@@ -61,10 +61,10 @@
|
|
|
61
61
|
"policies.global.title": "Globální nastavení",
|
|
62
62
|
"policies.global.unknown": "Nepodařilo se načíst nastavení serveru. Dva přepínače níže jsou zobrazeny jako neznámé a nelze je změnit, dokud se stránka úspěšně nenačte; toto zobrazení nemusí odrážet to, co server vynucuje.",
|
|
63
63
|
"policies.global.enabled.label": "Povolit zásady zabezpečení nástrojů",
|
|
64
|
-
"policies.global.enabled.help": "Hlavní
|
|
64
|
+
"policies.global.enabled.help": "Hlavní vypínač. Zrcadlí přepínač v Server Settings. Ve výchozím nastavení vypnuto. Zapnutím a restartováním HA-MCP aktivujete middleware pro řízení přístupu. Když je vypnuto, níže uvedená pravidla zůstávají zachována, ale nevynucují se.",
|
|
65
65
|
"policies.global.manage_tool.label": "Povolit AI agentům upravovat tyto zásady (ha_manage_security_policy)",
|
|
66
66
|
"policies.global.manage_tool.help": "Registruje nástroj ha_manage_security_policy, který čte a nahrazuje dokument zásad, který tato karta upravuje. Ve výchozím nastavení vypnuto. Nezávisle na hlavním přepínači výše: toto řídí, kdo může pravidla upravovat, nikoli zda jsou vynucována. Nástroj nezpřístupňuje operace fronty čekajících schválení, ale akce nastavení řízená zásadami může stále vyžadovat schválení.",
|
|
67
|
-
"policies.global.manage_tool.warning": "
|
|
67
|
+
"policies.global.manage_tool.warning": "Povolením této funkce umožníte připojeným AI agentům přepisovat bezpečnostní pravidla na této kartě, včetně odstranění bran schvalování. Chcete-li zachovat dohled člověka, zabezpečte nástroj PŘED jeho zapnutím: na kartě Tools zapněte „security gated“ pro Manage Security Policy. Toto pravidlo lze vytvořit, když je nástroj stále vypnutý, a začne se vynucovat, jakmile bude výše uvedený hlavní vypínač zapnutý a server restartovaný. Po přepnutí libovolného přepínače restartujte aplikaci (doplněk).",
|
|
68
68
|
"policies.global.wait.label": "Čekat sekund (5-600)",
|
|
69
69
|
"policies.global.wait.help": "Jak dlouho middleware čeká na schválení před vypršením časového limitu.",
|
|
70
70
|
"policies.global.ttl.label": "TTL schválení minut (1-60)",
|
|
@@ -127,9 +127,9 @@
|
|
|
127
127
|
"features.enable_tool_security_policies.label": "Povolit zásady zabezpečení nástrojů (pokročilé)",
|
|
128
128
|
"features.enable_tool_security_policies.help": "Podmiňuje vysoce rizikové volání nástrojů (ovládání zámků/alarmů, zápisy automatizací atd.) schválením uživatelem. Když je volán chráněný nástroj, agent řekne uživateli, aby otevřel záložku Zásady zabezpečení nástrojů ve webovém rozhraní a klikl na Schválit, než volání pokračuje. Pravidla pro jednotlivé nástroje s volitelnými podmínkami argumentů se konfigurují na záložce Zásady zabezpečení nástrojů. Ve výchozím nastavení vypnuto. Vyžaduje restart, aby se projevilo.",
|
|
129
129
|
"features.read_only_mode.label": "Režim pouze pro čtení",
|
|
130
|
-
"features.read_only_mode.help": "Vypne všechny nástroje pro zápis a
|
|
130
|
+
"features.read_only_mode.help": "Vypne všechny nástroje pro zápis a odstraní schopnost nástrojů provádět jakékoli zápisy nebo destruktivní volání. Smíšené nástroje pro čtení/zápis – zálohy, aplikace (doplňky), preference energie, hlasové pipelines a režim kódu, pokud je povolen – zůstávají k dispozici se zablokovanými operacemi zápisu. Stejný přepínač jako na kartě Tools ve webovém rozhraní. Ve výchozím nastavení vypnuto. K projevům změn je vyžadován restart.",
|
|
131
131
|
"features.redact_secrets.label": "Redigovat tajemství",
|
|
132
|
-
"features.redact_secrets.help": "
|
|
132
|
+
"features.redact_secrets.help": "Skrývá tajné údaje z odpovědí nástrojů, než se dostanou k AI asistenci. Možnosti aplikace (doplňku) a pole integrací označená jako hesla jsou nahrazena značkou nastaveno/prázdno (takže zůstává možné odpovědět na otázku „je tento pověření nastaveno?“), a z odpovědí ostatních nástrojů jsou odstraněny tajné hodnoty, které server již viděl (hodnoty kratší než 6 znaků se přeskakují, protože nahrazování drobných fragmentů by poškodilo nesouvisející výstup). Pole, která nejsou svým schématem označena jako hesla, nelze detekovat. Ve výchozím nastavení vypnuto.",
|
|
133
133
|
"features.enable_mandatory_bps.label": "Připojit dovednosti osvědčených postupů při zápisu",
|
|
134
134
|
"features.enable_mandatory_bps.help": "Hlavní přepínač pro funkci doručování obsahu dovedností nástrojů pro zápis (problém #1182). Pokud je povoleno (výchozí), šest konfiguračních nástrojů pro zápis (automatizace, skripty, scény, pomocníci, řídicí panely, čistý YAML) připojí kanonické referenční soubory osvědčených postupů Home Assistant pod `skill_content` při každém úspěšném zápisu, plus automaticky vloží jakékoli referenční sekce citované varováními o osvědčených postupech. Každý nástroj také zpřístupňuje parametr `MandatoryBPS` pro každé volání, který může agent nastavit na false při následných voláních, jakmile má obsah. Když je tento hlavní přepínač vypnutý, ŽÁDNÝ `skill_content` není odeslán bez ohledu na parametr pro každé volání nebo varování BP. Doporučeno ZAPNUTO jako první volba; vypněte pouze pro modely s velmi malými kontextovými okny. Vypnutí této funkce může snížit přesnost zápisu. Vyžaduje restart, aby se projevilo.",
|
|
135
135
|
"features.enable_strict_mandatory_bps.label": "Přísný režim osvědčených postupů",
|
|
@@ -149,11 +149,11 @@
|
|
|
149
149
|
"features.enable_filesystem_tools.label": "Povolit nástroje souborového systému (beta)",
|
|
150
150
|
"features.enable_filesystem_tools.help": "Nastaví HAMCP_ENABLE_FILESYSTEM_TOOLS=true. Povoluje přímý přístup pro čtení/zápis souborů do vašeho souborového systému Home Assistant. VAROVÁNÍ: Tímto získá MCP server citlivý přímý přístup k souborům ve vašem systému. Povolte pouze v případě, že důvěřujete AI asistentovi s operacemi se soubory. Vyžaduje restart, aby se změny projevily. VYŽADUJE, aby byl zapnut hlavní přepínač „Enable beta features“ výše (a ve webovém rozhraní) — jinak je tento podřízený příznak za běhu ignorován bez ohledu na jeho hodnotu zde.",
|
|
151
151
|
"features.enable_code_mode.label": "Povolit sandbox vlastních nástrojů (beta)",
|
|
152
|
-
"features.enable_code_mode.help": "
|
|
152
|
+
"features.enable_code_mode.help": "Funkce v beta verzi. Povoluje nástroj ha_manage_custom_tool, který umožňuje AI asistentům vytvářet, spouštět, ukládat a mazat vlastní kód v Pythonu v zabezpečeném sandboxu, když žádný vestavěný nástroj nedokáže požadavek zpracovat. Kód běží v izolovaném interpretu bez přístupu k souborovému systému nebo libovolné síti. Kód v sandboxu může přistupovat k REST API HA (api_get/api_post), odesílat příkazy WebSocket (ws_send), volat existující nástroje MCP (call_tool) nebo odstranit uložený nástroj (delete_saved_tool). Uložené nástroje se ve výchozím nastavení ukládají do /data/saved_tools.json, takže přežijí restarty aplikace (doplňku) a jsou viditelné pro každého klienta, který se může připojit. Známá omezení naleznete v docs/beta.md. K projevům změn je vyžadován restart. VYŽADUJE, aby byl výše uvedený hlavní přepínač „Enable beta features“ zapnutý (a to i ve webovém rozhraní) – v opačném případě bude tento dílčí příznak za běhu ignorován bez ohledu na jeho hodnotu zde.",
|
|
153
153
|
"features.enable_lite_docstrings.label": "Povolit zjednodušené docstringy nástrojů (beta)",
|
|
154
154
|
"features.enable_lite_docstrings.help": "Beta funkce. Nahrazuje docstringy u několika náročných nástrojů ha-mcp (automations, scripts, scenes, helpers, dashboards, ha_call_service, ha_config_set_yaml) kratšími variantami, které odkládají podrobnosti o schématu a příkladech na nástroj ha_get_skill_guide (nebo jeho skill:// resource). UPOZORNĚNÍ: toto snižuje využití tokenů v nečinnosti, ale může snížit výkon LLM — zkrácené popisy spoléhají na to, že LLM skutečně zavolá nástroj skill nebo přečte skill resource pro podrobnosti, což není zaručeno (některé modely přeskočí dodatečné volání nástroje a skončí s menším vedením, než měly dříve). Nejlépe se kombinuje s klientem, který podporuje MCP resources nebo s enable_tool_search. Vyžaduje restart, aby se projevilo. VYŽADUJE, aby byl hlavní přepínač „Enable beta features“ výše (a ve web UI) zapnutý — jinak je tento podřízený příznak za runtime ignorován bez ohledu na jeho hodnotu zde.",
|
|
155
155
|
"features.enable_dashboard_screenshot.label": "Povolit režim snímání obrazovky dashboardu (beta)",
|
|
156
|
-
"features.enable_dashboard_screenshot.help": "
|
|
156
|
+
"features.enable_dashboard_screenshot.help": "Funkce v beta verzi – ve výchozím nastavení zakázána. Přidává nástroj ha_get_dashboard_screenshot a volby include_screenshot / return_screenshot k nástrojům pro získání/nastavení nástěnek, takže AI asistenti mohou kontrolovat jeden nebo více responzivních obrázků Lovelace (např. pro ověření právě vytvořené nástěnky). Podporuje stabilní pojmenované pohledy, dávky pro mobily/tablety/desktopy a výstup v PNG/JPEG/WebP/BMP. Vykreslování běží v samostatném volitelném enginu – „Puppet“ aplikaci (doplňku) od ballooba, což je headless Chromium –, který nainstalujete jednou (přidáte balloobův repozitář do obchodu s aplikacemi a nainstalujete „Puppet“) a poskytnete mu přístupový token s dlouhou platností; v nasazeních Docker/Container tento engine spustíte jako vedlejší kontejner (sidecar) a nastavíte proměnnou HAMCP_DASHBOARD_SCREENSHOT_ENGINE_URL. Nic náročného se neinstaluje, dokud obojí nepovolíte a nenainstalujete daný engine. K projevům změn je vyžadován restart. VYŽADUJE, aby byl výše uvedený hlavní přepínač „Enable beta features“ zapnutý (a to i ve webovém rozhraní) – v opačném případě bude tento dílčí příznak za běhu ignorován bez ohledu na jeho hodnotu zde.",
|
|
157
157
|
"actions.restart_server": "Restartovat server HA-MCP",
|
|
158
158
|
"actions.restart_confirm": "Restartovat HA-MCP nyní? Stránka se automaticky znovu načte, jakmile bude opět online.",
|
|
159
159
|
"actions.view": "Zobrazit",
|
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
"status.stopped_offline": "Zastaveno. Tato stránka přejde do režimu offline",
|
|
182
182
|
"status.stopped_connection": "Zastaveno (spojení přerušeno)",
|
|
183
183
|
"status.restarting": "Restartování…",
|
|
184
|
-
"status.waiting_addon": "
|
|
184
|
+
"status.waiting_addon": "Čeká se na opětovné spuštění aplikace (doplňku)…",
|
|
185
185
|
"errors.javascript": "Chyba JS: {message} @ {where}",
|
|
186
186
|
"errors.async": "Asynchronní chyba: {message}",
|
|
187
187
|
"errors.network": "Chyba sítě: {message}",
|
|
@@ -206,7 +206,7 @@
|
|
|
206
206
|
"common.minutes_short": "{count} min",
|
|
207
207
|
"common.bytes": "{count} bajtů",
|
|
208
208
|
"common.none": "(žádné)",
|
|
209
|
-
"notice.restart.addon": "⚠ Změny uloženy.
|
|
209
|
+
"notice.restart.addon": "⚠ Změny uloženy. Kliknutím na „Restartovat aplikaci (doplněk)“ je projevíte. Zakázané nástroje budou odstraněny ze seznamu nástrojů MCP při příštím spuštění. Poté obnovte seznam nástrojů ve svém AI klientovi; samotný restart aplikace neobnoví mezipaměť seznamu klienta.",
|
|
210
210
|
"notice.restart.embedded": "⚠ Změny uloženy. Klikněte na „Restartovat server HA-MCP“ pro opětovné načtení integrace v procesu. Poté obnovte seznam nástrojů MCP ve vašem AI klientovi.",
|
|
211
211
|
"notice.restart.sidecar": "⚠ Změny uloženy. Pro jejich projevení zcela ukončete a znovu otevřete svého klienta MCP. Zakázané nástroje budou při příštím spuštění odstraněny ze seznamu nástrojů MCP.",
|
|
212
212
|
"notice.restart.standalone": "⚠ Změny uloženy. Restartujte proces ha-mcp a poté obnovte seznam nástrojů MCP ve vašem AI klientovi.",
|
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
"tools.badges.read_only": "pouze pro čtení",
|
|
219
219
|
"tools.badges.writes": "zapisuje",
|
|
220
220
|
"tools.badges.deletes": "maže",
|
|
221
|
-
"tools.notes.gated_disabled": "Zakázáno. Zapněte {setting}
|
|
221
|
+
"tools.notes.gated_disabled": "Zakázáno. Zapněte {setting} – přepínač nástroje pro úpravu pravidel se nachází na kartě Tool Security Policies – a poté restartujte aplikaci (doplněk).",
|
|
222
222
|
"tools.notes.beta_disabled": "Beta. Nastavte {setting} v konfiguraci vývojové aplikace (doplňku) nebo odpovídající proměnné prostředí (viz docs/beta.md).",
|
|
223
223
|
"tools.notes.env_pinned": "Připnuto proměnnou {variable}. Zrušte nastavení proměnné prostředí pro úpravu zde.",
|
|
224
224
|
"tools.notes.bps_locked": "Uzamčeno, když je zapnut režim přísných osvědčených postupů. Nejprve vypněte toto nastavení, abyste tento nástroj zakázali.",
|
|
@@ -233,7 +233,7 @@
|
|
|
233
233
|
"tools.states.enabled": "povoleno",
|
|
234
234
|
"tools.states.pinned": "připnuto",
|
|
235
235
|
"tools.states.security_gated": "zabezpečeno",
|
|
236
|
-
"tools.security.enable_first": "Nejprve povolte
|
|
236
|
+
"tools.security.enable_first": "Nejprve povolte Tool Security Policies v nastavení serveru.",
|
|
237
237
|
"tools.summary.total": "{count} celkem",
|
|
238
238
|
"tools.summary.enabled": "{count} povoleno",
|
|
239
239
|
"tools.summary.pinned": "{count} připnuto",
|
|
@@ -292,9 +292,9 @@
|
|
|
292
292
|
"origins.env_locked": "Nastaveno přes proměnnou prostředí; zrušte ji pro úpravy zde.",
|
|
293
293
|
"origins.addon_synced": "Synchronizováno s kartou Konfigurace aplikace (doplňku). Po uložení je vyžadován restart.",
|
|
294
294
|
"origins.env_var_unset": "Nastaveno přes proměnnou prostředí {variable}; zrušte ji pro úpravy zde.",
|
|
295
|
-
"origins.beta_legacy_bridge": "Automaticky povoleno v režimu
|
|
296
|
-
"origins.addon_runtime": "Nastaveno
|
|
297
|
-
"origins.display_only": "Pouze zobrazení. Upravte pomocí proměnné prostředí nebo nastavení aplikace (
|
|
295
|
+
"origins.beta_legacy_bridge": "Automaticky povoleno v starším režimu aplikace (doplňku). Pro převzetí kontroly nastavte <code>enable_beta_features</code> explicitně v konfiguraci. (env: {variable})",
|
|
296
|
+
"origins.addon_runtime": "Nastaveno v běhovém prostředí aplikace (doplňku) spravovaném nástrojem Supervisor; zde nelze změnit. (env: {variable})",
|
|
297
|
+
"origins.display_only": "Pouze pro zobrazení. Upravte pomocí proměnné prostředí nebo nastavení aplikace (doplněku).",
|
|
298
298
|
"features.errors.network": "Příznaky funkcí nedostupné (chyba sítě při přístupu k /api/settings/features).",
|
|
299
299
|
"features.errors.http": "Příznaky funkcí nedostupné (HTTP {status}).",
|
|
300
300
|
"features.errors.json": "Odpověď příznaků funkcí nebyla platný JSON.",
|
|
@@ -304,12 +304,12 @@
|
|
|
304
304
|
"advanced.sidecar.stdio_only": "Dostupné pouze v režimu stdio. Tento HTTP server nemá žádný sidecar uživatelského rozhraní nastavení k připnutí.",
|
|
305
305
|
"advanced.enable_dev_mode.confirm": "⚠ Povolit režim vývojáře?\n\nPo restartu budou skryté vývojářské nástroje zpřístupněny připojeným AI agentům. Povolte pouze pro vývoj a testování.",
|
|
306
306
|
"advanced.dev_tools_security_policy_access.confirm": "⚠ Povolit vývojářským nástrojům měnit bezpečnostní zásady?\n\nZatímco je režim vývojáře zapnutý, připojení AI agenti budou moci přepisovat bezpečnostní zásady nástrojů, přidávat nebo odebírat brány schválení pro jednotlivé nástroje a schvalovat nebo zamítat čekající schválení – včetně jejich vlastních řízených volání. Povolte pouze při testování zásad.",
|
|
307
|
-
"advanced.code_mode_saved_tools_path.addon_locked": "Pevně
|
|
307
|
+
"advanced.code_mode_saved_tools_path.addon_locked": "Pevně nastaveno na <code>/data/saved_tools.json</code> v režimu aplikace (doplněku), aby uložené nástroje přežily aktualizace.",
|
|
308
308
|
"advanced.code_mode_saved_tools_path.blank_warning": "Pokud je prázdné, vlastní nástroje jsou uchovávány pouze v paměti a ztraceny po restartu.",
|
|
309
309
|
"policies.errors.conflict": "{operation} selhalo: zásada byla upravena na jiné kartě nebo v jiné relaci. Znovu načtěte a znovu použijte své změny.",
|
|
310
310
|
"policies.errors.load": "Nepodařilo se načíst zásadu: {status}",
|
|
311
311
|
"policies.errors.reach_server": "Nepodařilo se dosáhnout serveru: {message}",
|
|
312
|
-
"policies.errors.corrupt_suffix": " (tool_policy.json se zdá být poškozený; upravte nebo smažte
|
|
312
|
+
"policies.errors.corrupt_suffix": " (soubor tool_policy.json se zdá být poškozený; upravte jej nebo smažte v datovém adresáři serveru)",
|
|
313
313
|
"policies.errors.load_detail": "Nepodařilo se načíst zásadu: {detail}",
|
|
314
314
|
"policies.errors.update_tool": "Nepodařilo se aktualizovat bezpečnostní zásadu nástroje: {message}",
|
|
315
315
|
"policies.errors.remove_rule": "Nepodařilo se odstranit pravidlo: {message}",
|
|
@@ -365,8 +365,8 @@
|
|
|
365
365
|
"policies.editor.validation.empty_list": "prázdný seznam pro op={operator}",
|
|
366
366
|
"policies.editor.validation.argument_required": "argument je vyžadován",
|
|
367
367
|
"policies.pending.offline": "Ztracen kontakt se serverem ({message}). Opakuji pokus.",
|
|
368
|
-
"policies.pending.disabled": "
|
|
369
|
-
"policies.pending.unavailable": "
|
|
368
|
+
"policies.pending.disabled": "Zásady zabezpečení nástrojů jsou vypnuté. Zapněte je a restartujte HA-MCP pro aktivaci filtrování.",
|
|
369
|
+
"policies.pending.unavailable": "Schvalování v reálném čase není k dispozici. Zkontrolujte protokol HA-MCP.",
|
|
370
370
|
"policies.pending.expires": "Vyprší: {time}",
|
|
371
371
|
"policies.pending.already_decided": "Toto schválení již bylo {decision}, pravděpodobně z jiné karty nebo relace.",
|
|
372
372
|
"policies.pending.decision.approved": "schváleno",
|
|
@@ -374,11 +374,11 @@
|
|
|
374
374
|
"policies.pending.invalid_token": "Tento schvalovací token již není platný (již spotřebován nebo vypršel).",
|
|
375
375
|
"policies.pending.action_failed": "Akce schválení selhala: {detail}",
|
|
376
376
|
"visibility.errors.reach_server": "Nepodařilo se dosáhnout serveru: {message}",
|
|
377
|
-
"visibility.errors.corrupt_suffix": " (entity_visibility.json se zdá být poškozený; upravte nebo smažte
|
|
377
|
+
"visibility.errors.corrupt_suffix": " (soubor entity_visibility.json se zdá být poškozený; upravte jej nebo smažte v datovém adresáři serveru)",
|
|
378
378
|
"visibility.errors.load_detail": "Nepodařilo se načíst konfiguraci viditelnosti: {detail}",
|
|
379
379
|
"visibility.errors.conflict": "Konfigurace byla změněna na jiné kartě nebo v jiné relaci. Znovu načtěte stránku a poté znovu použijte své změny.",
|
|
380
380
|
"advanced.homeassistant_url.label": "URL adresa Home Assistant",
|
|
381
|
-
"advanced.homeassistant_url.help": "Pouze zobrazení.
|
|
381
|
+
"advanced.homeassistant_url.help": "Pouze pro zobrazení. Nastavuje se přes HOMEASSISTANT_URL nebo je spravováno aplikací (doplněkem).",
|
|
382
382
|
"advanced.homeassistant_token.label": "Token Home Assistant",
|
|
383
383
|
"advanced.homeassistant_token.help": "Pouze zobrazení. Nastaveno přes HOMEASSISTANT_TOKEN. Zde maskováno z bezpečnostních důvodů.",
|
|
384
384
|
"advanced.timeout.label": "Časový limit požadavku HA (s)",
|
|
@@ -462,8 +462,8 @@
|
|
|
462
462
|
"addon.pinned_tools.name": "Připnuté nástroje (oddělené čárkami)",
|
|
463
463
|
"addon.pinned_tools.description": "Nástroje zde uvedené jsou uzamčeny jako připnuté — zobrazují se v horní části karty Nástroje a nelze je odepnout z webového uživatelského rozhraní Nastavení, aniž byste nejprve zrušili toto nastavení. Užitečné v kombinaci s vyhledáváním nástrojů. Názvy nástrojů oddělené čárkami.",
|
|
464
464
|
"addon.verify_ssl.name": "Ověřit certifikát TLS",
|
|
465
|
-
"addon.verify_ssl.description": "
|
|
466
|
-
"addon_stable.enable_tool_search.description": "
|
|
465
|
+
"addon.verify_ssl.description": "Ověřit TLS certifikát serveru Home Assistant. Aplikace (doplněk) se připojuje přes proxy Supervisor, takže to obvykle nemá žádný vliv a mělo by to zůstat zapnuté. Zakazujte pouze v případě, že jste přenastavili aplikaci (doplněk) tak, aby komunikovala s HA přes veřejný HTTPS hostname s The self-signed certifikátem nebo neshodou hostname. Vypnutí oslabuje zabezpečení přenosu – nechte zapnuté, pokud víte, že to potřebujete. Vyžaduje restart, aby se projevilo.",
|
|
466
|
+
"addon_stable.enable_tool_search.description": "Nahradit úplný katalog nástrojů vyhledáváním. Snižuje klidový kontext přibližně o 90 %, na asi 5 tisíc tokenů. ⚠️ NEZAPÍNEJTE toto v klientech s vlastním vestavěným vyhledáváním nástrojů / odloženými nástroji (claude.ai, Claude Desktop, Claude Code) – obě vrstvy vyhledávání se střetávají a vestavěné vyhledávání nástrojů v klientovi je zde lepší volbou; nechte to vypnuté. Zda jsou nástroje odloženy, závisí na kombinaci vašeho klienta a modelu: použijte toto, když vaše nastavení načítá celý katalog předem – modely bez nativních odložených nástrojů (např. Gemini, lokální modely kompatibilní s OpenAI, Claude Haiku), klienti, kteří vkládají všechna schémata nástrojů bez ohledu na model (např. GitHub Copilot CLI), nebo menší kontextová okna. Některé modely Codex a ChatGPT také obsahují odložené nástroje – ověřte si funkce přímo u svého klienta/modelu, abyste to nenechávali zbytečně zapnuté. Nástroje se vyhledávají přes ha_search_tools a spouštějí se přes kategorizované proxy (read/write/delete). Vyžaduje restart aplikace (doplněku), aby se projevila změna – poté znovu připojte nebo obnovte MCP server ve svém AI klientovi, aby se znovu načetl seznam nástrojů. Samotný restart aplikace (doplněku) NEAKTUALIZUJE mezipaměť seznamu nástrojů klienta; toto platí po změně jakéhokoli nastavení zde."
|
|
467
467
|
},
|
|
468
468
|
"tools": {
|
|
469
469
|
"ha_bulk_control": {
|
|
@@ -618,9 +618,9 @@
|
|
|
618
618
|
"title": "Vyhodnotit šablonu",
|
|
619
619
|
"description": "Vyhodnotit šablony Jinja2 pomocí šablonovacího enginu Home Assistant."
|
|
620
620
|
},
|
|
621
|
-
"
|
|
622
|
-
"title": "Získat doplňky",
|
|
623
|
-
"description": "Získat
|
|
621
|
+
"ha_get_app": {
|
|
622
|
+
"title": "Získat aplikace (doplňky)",
|
|
623
|
+
"description": "Získat aplikace Home Assistant (dříve známé jako doplňky a tento nástroj jako ha_get_addon) – vypsat nainstalované, dostupné nebo získat d"
|
|
624
624
|
},
|
|
625
625
|
"ha_get_automation_traces": {
|
|
626
626
|
"title": "Získat trasování automatizací",
|
|
@@ -706,9 +706,9 @@
|
|
|
706
706
|
"title": "Vypsat dostupné služby",
|
|
707
707
|
"description": "Seznam dostupných služeb Home Assistant s volitelným stránkováním a řízením detailů."
|
|
708
708
|
},
|
|
709
|
-
"
|
|
710
|
-
"title": "Spravovat doplněk",
|
|
711
|
-
"description": "Spravovat
|
|
709
|
+
"ha_manage_app": {
|
|
710
|
+
"title": "Spravovat aplikaci (doplněk)",
|
|
711
|
+
"description": "Spravovat aplikaci Home Assistant (dříve známou jako doplněk a tento nástroj jako ha_manage_addon) – aktualizovat její konfiguraci o"
|
|
712
712
|
},
|
|
713
713
|
"ha_manage_backup": {
|
|
714
714
|
"title": "Spravovat zálohy",
|
|
@@ -820,7 +820,7 @@
|
|
|
820
820
|
}
|
|
821
821
|
},
|
|
822
822
|
"tool_groups": {
|
|
823
|
-
"
|
|
823
|
+
"Apps (add-ons)": "Aplikace (doplňky)",
|
|
824
824
|
"Areas & Floors": "Oblasti a patra",
|
|
825
825
|
"Assist": "Asistent",
|
|
826
826
|
"Automations": "Automatizace",
|
{ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2362}/src/ha_mcp/settings_ui/locales/de.json
RENAMED
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
"tabs.policies": "Tool-Sicherheitsrichtlinien",
|
|
29
29
|
"tabs.visibility": "Entitäts-Sichtbarkeit",
|
|
30
30
|
"tabs.accessibility": "Barrierefreiheit",
|
|
31
|
-
"notice.restart_required": "⚠ Änderungen gespeichert. Starte HA-MCP neu, damit sie wirksam werden. Beim nächsten Start entfernt HA-MCP deaktivierte Tools vollständig aus der MCP-Tool-Liste. Verbinde dann
|
|
32
|
-
"notice.shared_settings": "
|
|
33
|
-
"notice.env_pins": "
|
|
34
|
-
"actions.restart_addon": "Add-on neu starten",
|
|
31
|
+
"notice.restart_required": "⚠ Änderungen gespeichert. Starte HA-MCP neu, damit sie wirksam werden. Beim nächsten Start entfernt HA-MCP deaktivierte Tools vollständig aus der MCP-Tool-Liste. Verbinde dich dann erneut mit dem MCP-Server in deinem KI-Client oder aktualisiere diesen (z. B. Tool-Liste auf claude.ai aktualisieren, Konnektor in ChatGPT neu hinzufügen/aktualisieren oder Claude Desktop schließen und wieder öffnen), damit die Tool-Liste neu geladen wird. Ein Neustart der App (Add-on) oder von Home Assistant aktualisiert NICHT die zwischengespeicherte Tool-Liste deines Clients. ChatGPT liefert seine zwischengespeicherte Tool-Liste manchmal selbst dann noch aus, wenn der Konnektor entfernt und neu hinzugefügt wurde — falls Tools weiterhin fehlen, lösche den Konnektor und erstelle einen neuen unter einem anderen Namen.",
|
|
32
|
+
"notice.shared_settings": "Serverweite Funktionen (Tool-Suche, YAML-Konfigurationsbearbeitung, Dateisystem-Tools usw.) werden sowohl im Tab <strong>Servereinstellungen</strong> als auch auf der App-Konfigurationsseite (Add-on) angezeigt; es sind in beiden Fällen dieselben Einstellungen. Beide Oberflächen bleiben nach dem Neustart der App (Add-on) miteinander synchronisiert. Änderungen erfordern einen Neustart von HA-MCP.",
|
|
33
|
+
"notice.env_pins": "In den Umgebungsvariablen <code>DISABLED_TOOLS</code> oder <code>PINNED_TOOLS</code> aufgeführte Tools sind schreibgeschützt gesperrt; deaktiviere die Umgebungsvariable, um sie hier zu bearbeiten. Pin-Umschalter werden erst wirksam, wenn die Tool-Suche aktiviert ist (Tab Servereinstellungen oder App-Konfigurationsseite (Add-on)).",
|
|
34
|
+
"actions.restart_addon": "App (Add-on) neu starten",
|
|
35
35
|
"actions.save": "Speichern",
|
|
36
36
|
"actions.save_settings": "Einstellungen speichern",
|
|
37
37
|
"actions.refresh": "Neu laden",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"tools.read_only.help": "Schaltet alle Schreibtools aus und verhindert, dass Tools Schreib- oder destruktive Aufrufe tätigen. Gemischte Lese-/Schreib-Tools (Backups, Add-ons, Energiepräferenzen, Voice-Pipelines und Code-Modus, wenn aktiviert) bleiben verfügbar, wobei ihre Schreiboperationen blockiert sind.",
|
|
41
41
|
"tools.read_only.unknown": "Server-Einstellungen konnten nicht gelesen werden. Status des Nur-Lese-Modus unbekannt; diese Ansicht spiegelt möglicherweise nicht wider, was der Server erzwingt.",
|
|
42
42
|
"tools.search": "Tools durchsuchen...",
|
|
43
|
-
"server.auto_save_notice": "Einstellungen auf diesem Tab werden automatisch gespeichert. Änderungen werden erst wirksam, nachdem du
|
|
43
|
+
"server.auto_save_notice": "Die Einstellungen auf diesem Tab werden automatisch gespeichert. Änderungen werden erst wirksam, nachdem du HA-MCP neu gestartet hast (wendet sie serverseitig an) und den MCP-Server in deinem KI-Client neu verbunden oder aktualisiert hast (lädt die Tool-Liste neu), z. B. Tool-Liste auf claude.ai aktualisieren, Konnektor in ChatGPT neu hinzufügen oder aktualisieren oder Claude Desktop schließen und wieder öffnen. ChatGPT liefert seine zwischengespeicherte Tool-Liste manchmal selbst dann noch aus, wenn der Konnektor entfernt und neu hinzugefügt wurde — falls Tools weiterhin fehlen, lösche den Konnektor und erstelle einen neuen unter einem anderen Namen.",
|
|
44
44
|
"server.sections.search": "Suche & Abgleich",
|
|
45
45
|
"server.sections.operations": "Operationen",
|
|
46
46
|
"server.sections.tool_surface": "Tool-Oberfläche",
|
|
@@ -61,10 +61,10 @@
|
|
|
61
61
|
"policies.global.title": "Globale Einstellungen",
|
|
62
62
|
"policies.global.unknown": "Servereinstellungen konnten nicht gelesen werden. Die beiden Schalter unten werden als unbekannt angezeigt und können erst geändert werden, wenn die Seite erfolgreich neu geladen wurde; diese Ansicht spiegelt möglicherweise nicht wider, was der Server erzwingt.",
|
|
63
63
|
"policies.global.enabled.label": "Tool-Sicherheitsrichtlinien aktivieren",
|
|
64
|
-
"policies.global.enabled.help": "Hauptschalter. Spiegelt den
|
|
64
|
+
"policies.global.enabled.help": "Hauptschalter. Spiegelt den Umschalter in den Servereinstellungen wider. Standardmäßig aus. Schalte ihn ein und starte HA-MCP neu, um die Filter-Middleware zu aktivieren. Solange er aus ist, bleiben die Regeln unten bestehen, werden aber nicht durchgesetzt.",
|
|
65
65
|
"policies.global.manage_tool.label": "KI-Agenten erlauben, diese Richtlinien zu bearbeiten (ha_manage_security_policy)",
|
|
66
66
|
"policies.global.manage_tool.help": "Registriert das Tool ha_manage_security_policy, das das Richtliniendokument liest und ersetzt, das dieser Tab bearbeitet. Standardmäßig deaktiviert. Unabhängig vom Hauptschalter oben: Dies steuert, wer die Regeln bearbeiten kann, nicht ob sie erzwungen werden. Das Tool legt keine Operationen der Warteschlange für ausstehende Genehmigungen offen, aber eine durch Richtlinien geschützte Set-Aktion kann weiterhin eine Genehmigung erfordern.",
|
|
67
|
-
"policies.global.manage_tool.warning": "
|
|
67
|
+
"policies.global.manage_tool.warning": "Wenn du dies aktivierst, können verbundene KI-Agenten die Sicherheitsrichtlinien auf diesem Tab umschreiben, einschließlich des Entfernens von Freigabeschranken. Um einen Menschen in die Schleife einzubinden, sichere das Tool BEVOR du es aktivierst: Schalte auf dem Tab Tools die Option \"Sicherheitsgeschützt\" für Manage Security Policy ein. Diese Regel kann erstellt werden, während das Tool noch ausgeschaltet ist, und sie greift, sobald der obige Hauptschalter eingeschaltet und der Server neu gestartet wurde. Starte die App (Add-on) neu, nachdem du einen der beiden Schalter umgelegt hast.",
|
|
68
68
|
"policies.global.wait.label": "Wartezeit in Sekunden (5-600)",
|
|
69
69
|
"policies.global.wait.help": "Wie lange die Middleware auf eine Genehmigung wartet, bevor sie eine Zeitüberschreitung aufweist.",
|
|
70
70
|
"policies.global.ttl.label": "Genehmigungs-TTL in Minuten (1-60)",
|
|
@@ -127,9 +127,9 @@
|
|
|
127
127
|
"features.enable_tool_security_policies.label": "Tool-Sicherheitsrichtlinien aktivieren (erweitert)",
|
|
128
128
|
"features.enable_tool_security_policies.help": "Gating kritischer Tool-Aufrufe (Schloss-/Alarmsteuerung, Automatisierungsschreibvorgänge usw.) hinter Benutzergenehmigung. Wenn ein geschütztes Tool aufgerufen wird, weist der Agent den Benutzer an, den Tab Tool-Sicherheitsrichtlinien in der Web-UI zu öffnen und auf Genehmigen zu klicken, bevor der Aufruf fortgesetzt wird. Tool-bezogene Regeln mit optionalen Argumentbedingungen werden im Tab Tool-Sicherheitsrichtlinien konfiguriert. Standardmäßig ausgeschaltet. Erfordert Neustart, um wirksam zu werden.",
|
|
129
129
|
"features.read_only_mode.label": "Nur-Lese-Modus",
|
|
130
|
-
"features.read_only_mode.help": "Schaltet alle
|
|
130
|
+
"features.read_only_mode.help": "Schaltet alle Schreib-Tools aus und entzieht Tools die Fähigkeit, Schreib- oder destruktive Aufrufe auszuführen. Gemischte Lese-/Schreib-Tools — Backups, Apps (Add-ons), Energieeinstellungen, Sprach-Pipelines und der Code-Modus, wenn aktiviert — bleiben verfügbar, wobei ihre Schreiboperationen blockiert sind. Gleicher Umschalter wie auf dem Web-UI-Tab Tools. Standardmäßig aus. Erfordert einen Neustart, um wirksam zu werden.",
|
|
131
131
|
"features.redact_secrets.label": "Geheimnisse schwärzen",
|
|
132
|
-
"features.redact_secrets.help": "
|
|
132
|
+
"features.redact_secrets.help": "Entfernt Geheimnisse aus Tool-Antworten, bevor sie den KI-Assistenten erreichen. App-Optionen (Add-on) und als Passwörter markierte Integrationsfelder werden durch eine Markierung für gesetzt/leer ersetzt (sodass \"ist diese Zugangsbezeichnung konfiguriert?\" beantwortet bleiben kann), und andere Tool-Antworten werden von Geheimniswerten bereinigt, die der Server bereits gesehen hat (Werte, die kürzer als 6 Zeichen sind, werden übersprungen, da das Ersetzen winziger Fragmente zusammenhängende Ausgaben beschädigen würde). Felder, die von ihrem Schema nicht als Passwörter markiert wurden, können nicht erkannt werden. Standardmäßig aus.",
|
|
133
133
|
"features.enable_mandatory_bps.label": "Best-Practice-Skills bei Schreibvorgängen anhängen",
|
|
134
134
|
"features.enable_mandatory_bps.help": "Hauptschalter für die Funktion zur Bereitstellung von Schreib-Tool-Skill-Inhalten (Issue #1182). Wenn aktiviert (Standard), fügen die sechs Konfigurations-Schreibtools (Automatisierungen, Skripte, Szenen, Helfer, Dashboards, rohes YAML) die kanonischen Home-Assistant-Best-Practice-Referenzdateien unter skill_content bei jedem erfolgreichen Schreibvorgang an, plus automatisches Einbetten aller Referenzabschnitte, die von Best-Practice-Warnungen zitiert werden. Jedes Tool stellt auch einen per-Aufruf-Parameter MandatoryBPS zur Verfügung, den der Agent bei nachfolgenden Aufrufen auf false setzen kann, sobald er den Inhalt hat. Wenn dieser Hauptschalter ausgeschaltet ist, wird KEIN skill_content ausgegeben, unabhängig vom per-Aufruf-Parameter oder BP-Warnungen. Empfohlen EIN als erste Wahl; deaktiviere nur für Modelle mit sehr kleinen Kontextfenstern. Das Ausschalten davon kann die Schreibgenauigkeit beeinträchtigen. Erfordert Neustart, um wirksam zu werden.",
|
|
135
135
|
"features.enable_strict_mandatory_bps.label": "Strikter Best-Practices-Modus",
|
|
@@ -149,11 +149,11 @@
|
|
|
149
149
|
"features.enable_filesystem_tools.label": "Dateisystem-Tools aktivieren (Beta)",
|
|
150
150
|
"features.enable_filesystem_tools.help": "Setzt HAMCP_ENABLE_FILESYSTEM_TOOLS=true. Aktiviert direkten Dateilese-/-schreibzugriff auf dein Home-Assistant-Dateisystem. WARNUNG: Dies gibt dem MCP-Server sensiblen direkten Dateizugriff auf dein System. Aktiviere nur, wenn du dem KI-Assistenten bei Dateioperationen vertraust. Erfordert Neustart, um wirksam zu werden. ERFORDERT, dass der Master-Schalter Beta-Funktionen aktivieren oben (und in der Web-UI) eingeschaltet ist – andernfalls wird dieses Unter-Flag zur Laufzeit ignoriert, unabhängig von seinem Wert hier.",
|
|
151
151
|
"features.enable_code_mode.label": "Benutzerdefinierte Tool-Sandbox aktivieren (Beta)",
|
|
152
|
-
"features.enable_code_mode.help": "Beta-Funktion. Aktiviert das ha_manage_custom_tool-Tool,
|
|
152
|
+
"features.enable_code_mode.help": "Beta-Funktion. Aktiviert das ha_manage_custom_tool-Tool, mit dem KI-Assistenten benutzerdefinierten Python-Code in einer sicheren Sandbox erstellen, ausführen, speichern und löschen können, wenn kein integriertes Tool die Anfrage verarbeiten kann. Code läuft in einem isolierten Interpreter ohne Dateisystem oder beliebigen Netzwerkzugriff. Sandbox-Code kann die HA REST API aufrufen (api_get/api_post), WebSocket-Befehle senden (ws_send), bestehende MCP-Tools aufrufen (call_tool) oder ein gespeichertes Tool löschen (delete_saved_tool). Gespeicherte Tools bleiben standardmäßig in /data/saved_tools.json erhalten, sodass sie Neustarts der App (Add-on) überstehen, und sind für jeden Client sichtbar, der eine Verbindung herstellen kann. Bekannte Einschränkungen findest du in docs/beta.md. Erfordert einen Neustart, um wirksam zu werden. ERFORDERT, dass der Hauptschalter \"Beta-Funktionen aktivieren\" oben (und im Web-UI) eingeschaltet ist — andernfalls wird dieses Unterflag zur Laufzeit unabhängig von seinem Wert hier ignoriert.",
|
|
153
153
|
"features.enable_lite_docstrings.label": "Lite-Tool-Docstrings aktivieren (Beta)",
|
|
154
154
|
"features.enable_lite_docstrings.help": "Beta-Funktion. Ersetzt die Docstrings auf einer Handvoll schwerer ha-mcp-Tools (Automatisierungen, Skripte, Szenen, Helfer, Dashboards, ha_call_service, ha_config_set_yaml) durch kürzere Varianten, die Schema- und Beispieldetails auf das ha_get_skill_guide-Tool (oder seine skill://-Ressource) verschieben. WARNUNG: Dies reduziert die Leerlauf-Token-Nutzung, kann aber die LLM-Leistung beeinträchtigen – die gekürzten Beschreibungen verlassen sich darauf, dass das LLM tatsächlich das Skill-Tool aufruft oder die Skill-Ressource für Details liest, was nicht garantiert ist (einige Modelle überspringen den zusätzlichen Tool-Aufruf und haben am Ende weniger Anleitung als zuvor). Am besten mit einem Client gepaart, der MCP-Ressourcen unterstützt, oder mit enable_tool_search. Erfordert Neustart, um wirksam zu werden. ERFORDERT, dass der Master-Schalter Beta-Funktionen aktivieren oben (und in der Web-UI) eingeschaltet ist – andernfalls wird dieses Unter-Flag zur Laufzeit ignoriert, unabhängig von seinem Wert hier.",
|
|
155
155
|
"features.enable_dashboard_screenshot.label": "Dashboard-Screenshot-Modus aktivieren (Beta)",
|
|
156
|
-
"features.enable_dashboard_screenshot.help": "Beta-Funktion
|
|
156
|
+
"features.enable_dashboard_screenshot.help": "Beta-Funktion — standardmäßig deaktiviert. Fügt das Tool ha_get_dashboard_screenshot sowie die Optionen include_screenshot / return_screenshot zu den Dashboard-Get/Set-Tools hinzu, sodass KI-Assistenten ein oder mehrere responsive Lovelace-Bilder überprüfen können (z. B. um ein gerade erst erstelltes Dashboard zu überprüfen). Unterstützt stabile benannte Ansichten, Mobil-/Tablet-/Desktop-Batches sowie PNG/JPEG/WebP/BMP-Ausgaben. Das Rendern erfolgt in einer separaten, optionalen Engine — balloobs \"Puppet\" App (Add-on), headless Chromium —, die du einmalig installierst (füge balloobs Repository dem App-Store hinzu, installiere dann \"Puppet\") und mit einem langlebigen Zugriffstoken versiehst; bei Docker/Container-Bereitstellungen führst du diese Engine als Sidecar aus und setzt HAMCP_DASHBOARD_SCREENSHOT_ENGINE_URL. Es wird nichts Schweres installiert, es sei denn, du aktivierst dies und installierst die Engine. Erfordert einen Neustart, um wirksam zu werden. ERFORDERT, dass der Hauptschalter \"Beta-Funktionen aktivieren\" oben (und im Web-UI) eingeschaltet ist — andernfalls wird dieses Unterflag zur Laufzeit unabhängig von seinem Wert hier ignoriert.",
|
|
157
157
|
"actions.restart_server": "HA-MCP-Server neu starten",
|
|
158
158
|
"actions.restart_confirm": "HA-MCP jetzt neu starten? Die Seite wird automatisch neu geladen, sobald der Server wieder online ist.",
|
|
159
159
|
"actions.view": "Ansehen",
|
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
"status.stopped_offline": "Gestoppt. Diese Seite wird offline gehen",
|
|
182
182
|
"status.stopped_connection": "Gestoppt (Verbindung getrennt)",
|
|
183
183
|
"status.restarting": "Startet neu…",
|
|
184
|
-
"status.waiting_addon": "Warte darauf, dass
|
|
184
|
+
"status.waiting_addon": "Warte darauf, dass die App (Add-on) wieder online geht…",
|
|
185
185
|
"errors.javascript": "JS-Fehler: {message} @ {where}",
|
|
186
186
|
"errors.async": "Async-Fehler: {message}",
|
|
187
187
|
"errors.network": "Netzwerkfehler: {message}",
|
|
@@ -206,7 +206,7 @@
|
|
|
206
206
|
"common.minutes_short": "{count} Min.",
|
|
207
207
|
"common.bytes": "{count} Bytes",
|
|
208
208
|
"common.none": "(keine)",
|
|
209
|
-
"notice.restart.addon": "⚠ Änderungen gespeichert. Klicke auf Add-on neu starten
|
|
209
|
+
"notice.restart.addon": "⚠ Änderungen gespeichert. Klicke auf „App (Add-on) neu starten“, damit sie wirksam werden. Deaktivierte Tools werden beim nächsten Start aus der MCP-Tool-Liste entfernt. Aktualisiere dann die Tool-Liste in deinem KI-Client; das alleinige Neustarten der App aktualisiert nicht die zwischengespeicherte Liste des Clients.",
|
|
210
210
|
"notice.restart.embedded": "⚠ Änderungen gespeichert. Klicke auf HA-MCP-Server neu starten, um die In-Process-Integration neu zu laden. Aktualisiere dann die MCP-Tool-Liste in deinem KI-Client.",
|
|
211
211
|
"notice.restart.sidecar": "⚠ Änderungen gespeichert. Beende deinen MCP-Client vollständig und öffne ihn erneut, damit sie wirksam werden. Deaktivierte Tools werden beim nächsten Start aus der MCP-Tool-Liste entfernt.",
|
|
212
212
|
"notice.restart.standalone": "⚠ Änderungen gespeichert. Starte den ha-mcp-Prozess neu und aktualisiere dann die MCP-Tool-Liste in deinem KI-Client.",
|
|
@@ -218,8 +218,8 @@
|
|
|
218
218
|
"tools.badges.read_only": "schreibgeschützt",
|
|
219
219
|
"tools.badges.writes": "schreibt",
|
|
220
220
|
"tools.badges.deletes": "löscht",
|
|
221
|
-
"tools.notes.gated_disabled": "Deaktiviert. Aktiviere {setting} — der
|
|
222
|
-
"tools.notes.beta_disabled": "Beta. Setze {setting} in der Dev-Add-on
|
|
221
|
+
"tools.notes.gated_disabled": "Deaktiviert. Aktiviere {setting} — der Umschalter des Tools zur Richtlinienbearbeitung befindet sich auf dem Tab Tool-Sicherheitsrichtlinien — und starte dann die App (Add-on) neu.",
|
|
222
|
+
"tools.notes.beta_disabled": "Beta. Setze {setting} in der Dev-App-Konfiguration (Add-on) oder der entsprechenden Umgebungsvariable (siehe docs/beta.md).",
|
|
223
223
|
"tools.notes.env_pinned": "Angeheftet durch {variable}. Hebe die Umgebungsvariable auf, um hier zu bearbeiten.",
|
|
224
224
|
"tools.notes.bps_locked": "Gesperrt, während der strikte Best-Practices-Modus eingeschaltet ist. Schalte diese Einstellung zuerst aus, um dieses Tool zu deaktivieren.",
|
|
225
225
|
"tools.notes.read_only_off": "Aus. Nur-Lese-Modus ist eingeschaltet; Schreibtools sind deaktiviert.",
|
|
@@ -233,7 +233,7 @@
|
|
|
233
233
|
"tools.states.enabled": "aktiviert",
|
|
234
234
|
"tools.states.pinned": "angeheftet",
|
|
235
235
|
"tools.states.security_gated": "sicherheitsgegated",
|
|
236
|
-
"tools.security.enable_first": "Aktiviere zuerst Tool-Sicherheitsrichtlinien in
|
|
236
|
+
"tools.security.enable_first": "Aktiviere zuerst die Tool-Sicherheitsrichtlinien in den Servereinstellungen.",
|
|
237
237
|
"tools.summary.total": "{count} insgesamt",
|
|
238
238
|
"tools.summary.enabled": "{count} aktiviert",
|
|
239
239
|
"tools.summary.pinned": "{count} angeheftet",
|
|
@@ -290,11 +290,11 @@
|
|
|
290
290
|
"filesystem.custom.save": "Verzeichnisse speichern",
|
|
291
291
|
"filesystem.custom.saved_rejected": "Gespeichert. Abgelehnt (blockiert oder ungültig): {paths}",
|
|
292
292
|
"origins.env_locked": "Über Umgebungsvariable gesetzt; hebe sie auf, um hier zu bearbeiten.",
|
|
293
|
-
"origins.addon_synced": "Mit dem Add-on
|
|
293
|
+
"origins.addon_synced": "Mit dem Tab App-Konfiguration (Add-on) synchronisiert. Nach dem Speichern ist ein Neustart erforderlich.",
|
|
294
294
|
"origins.env_var_unset": "Über Umgebungsvariable {variable} gesetzt; hebe sie auf, um hier zu bearbeiten.",
|
|
295
|
-
"origins.beta_legacy_bridge": "
|
|
296
|
-
"origins.addon_runtime": "
|
|
297
|
-
"origins.display_only": "Nur Anzeige. Über Umgebungsvariable oder Add-on-Einstellungen ändern.",
|
|
295
|
+
"origins.beta_legacy_bridge": "Im Legacy-Modus der App (Add-on) automatisch aktiviert. Setze <code>enable_beta_features</code> explizit in der Konfiguration, um die Kontrolle zu übernehmen. (env: {variable})",
|
|
296
|
+
"origins.addon_runtime": "Wird durch die vom Supervisor verwaltete App-Laufzeitumgebung (Add-on) festgelegt; kann hier nicht geändert werden. (env: {variable})",
|
|
297
|
+
"origins.display_only": "Nur zur Anzeige. Über Umgebungsvariable oder App-(Add-on-)Einstellungen ändern.",
|
|
298
298
|
"features.errors.network": "Feature-Flags nicht verfügbar (Netzwerkfehler beim Erreichen von /api/settings/features).",
|
|
299
299
|
"features.errors.http": "Feature-Flags nicht verfügbar (HTTP {status}).",
|
|
300
300
|
"features.errors.json": "Feature-Flags-Antwort war kein gültiges JSON.",
|
|
@@ -304,12 +304,12 @@
|
|
|
304
304
|
"advanced.sidecar.stdio_only": "Nur im stdio-Modus verfügbar. Dieser HTTP-Server hat kein Einstellungs-UI-Sidecar zum Anheften.",
|
|
305
305
|
"advanced.enable_dev_mode.confirm": "⚠ Entwicklermodus aktivieren?\n\nNach dem Neustart werden versteckte Entwickler-Tools für verbundene KI-Agenten freigegeben. Aktiviere nur für Entwicklung und Tests.",
|
|
306
306
|
"advanced.dev_tools_security_policy_access.confirm": "⚠ Entwicklertools Sicherheitsrichtlinien ändern lassen?\n\nSolange der Entwicklermodus aktiviert ist, können verbundene KI-Agenten Tool-Sicherheitsrichtlinien umschreiben, Genehmigungstore pro Tool hinzufügen oder entfernen und ausstehende Genehmigungen genehmigen oder ablehnen – einschließlich ihrer eigenen gesperrten Aufrufe. Nur während des Testens von Richtlinien aktivieren.",
|
|
307
|
-
"advanced.code_mode_saved_tools_path.addon_locked": "
|
|
307
|
+
"advanced.code_mode_saved_tools_path.addon_locked": "Im App-(Add-on-)Modus fest auf <code>/data/saved_tools.json</code> eingestellt, damit gespeicherte Tools Aktualisierungen überstehen.",
|
|
308
308
|
"advanced.code_mode_saved_tools_path.blank_warning": "Wenn leer, werden benutzerdefinierte Tools nur im Speicher gehalten und gehen beim Neustart verloren.",
|
|
309
309
|
"policies.errors.conflict": "{operation} fehlgeschlagen: Richtlinie wurde in einem anderen Tab oder einer anderen Sitzung geändert. Lade neu und wende deine Änderungen erneut an.",
|
|
310
310
|
"policies.errors.load": "Richtlinie konnte nicht geladen werden: {status}",
|
|
311
311
|
"policies.errors.reach_server": "Server konnte nicht erreicht werden: {message}",
|
|
312
|
-
"policies.errors.corrupt_suffix": " (tool_policy.json scheint beschädigt; bearbeite oder lösche
|
|
312
|
+
"policies.errors.corrupt_suffix": " (tool_policy.json scheint beschädigt zu sein; bearbeite oder lösche sie im Datenverzeichnis des Servers)",
|
|
313
313
|
"policies.errors.load_detail": "Richtlinie konnte nicht geladen werden: {detail}",
|
|
314
314
|
"policies.errors.update_tool": "Tool-Sicherheitsrichtlinie konnte nicht aktualisiert werden: {message}",
|
|
315
315
|
"policies.errors.remove_rule": "Regel konnte nicht entfernt werden: {message}",
|
|
@@ -365,8 +365,8 @@
|
|
|
365
365
|
"policies.editor.validation.empty_list": "leere Liste für op={operator}",
|
|
366
366
|
"policies.editor.validation.argument_required": "Argument ist erforderlich",
|
|
367
367
|
"policies.pending.offline": "Kontakt zum Server verloren ({message}). Wiederhole.",
|
|
368
|
-
"policies.pending.disabled": "Tool-Sicherheitsrichtlinien sind
|
|
369
|
-
"policies.pending.unavailable": "
|
|
368
|
+
"policies.pending.disabled": "Tool-Sicherheitsrichtlinien sind deaktiviert. Schalte sie ein und starte HA-MCP neu, um die Freigabe zu aktivieren.",
|
|
369
|
+
"policies.pending.unavailable": "Echtzeit-Genehmigungen nicht verfügbar. Überprüfe das HA-MCP-Protokoll.",
|
|
370
370
|
"policies.pending.expires": "Läuft ab: {time}",
|
|
371
371
|
"policies.pending.already_decided": "Diese Genehmigung war bereits {decision}, möglicherweise von einem anderen Tab oder einer anderen Sitzung.",
|
|
372
372
|
"policies.pending.decision.approved": "genehmigt",
|
|
@@ -374,11 +374,11 @@
|
|
|
374
374
|
"policies.pending.invalid_token": "Dieses Genehmigungs-Token ist nicht mehr gültig (bereits verbraucht oder abgelaufen).",
|
|
375
375
|
"policies.pending.action_failed": "Genehmigungs-Aktion fehlgeschlagen: {detail}",
|
|
376
376
|
"visibility.errors.reach_server": "Server konnte nicht erreicht werden: {message}",
|
|
377
|
-
"visibility.errors.corrupt_suffix": " (entity_visibility.json scheint beschädigt; bearbeite oder lösche
|
|
377
|
+
"visibility.errors.corrupt_suffix": " (entity_visibility.json scheint beschädigt zu sein; bearbeite oder lösche sie im Datenverzeichnis des Servers)",
|
|
378
378
|
"visibility.errors.load_detail": "Sichtbarkeitskonfiguration konnte nicht geladen werden: {detail}",
|
|
379
379
|
"visibility.errors.conflict": "Konfiguration wurde in einem anderen Tab oder einer anderen Sitzung geändert. Lade die Seite neu und wende dann deine Änderungen erneut an.",
|
|
380
380
|
"advanced.homeassistant_url.label": "Home-Assistant-URL",
|
|
381
|
-
"advanced.homeassistant_url.help": "Nur Anzeige. Über HOMEASSISTANT_URL
|
|
381
|
+
"advanced.homeassistant_url.help": "Nur zur Anzeige. Über HOMEASSISTANT_URL festgelegt oder von der App (dem Add-on) verwaltet.",
|
|
382
382
|
"advanced.homeassistant_token.label": "Home-Assistant-Token",
|
|
383
383
|
"advanced.homeassistant_token.help": "Nur Anzeige. Über HOMEASSISTANT_TOKEN gesetzt. Aus Sicherheitsgründen hier maskiert.",
|
|
384
384
|
"advanced.timeout.label": "HA-Anforderungs-Timeout (s)",
|
|
@@ -462,11 +462,11 @@
|
|
|
462
462
|
"addon.pinned_tools.name": "Angeheftete Tools (kommagetrennt)",
|
|
463
463
|
"addon.pinned_tools.description": "Hier aufgelistete Tools sind gesperrt angeheftet – sie erscheinen oben im Tools-Tab und können nicht vom Web-Settings-UI entfernt werden, ohne diese Option zuerst zu entfernen. Nützlich in Kombination mit Tool Search. Kommagetrennte Tool-Namen.",
|
|
464
464
|
"addon.verify_ssl.name": "TLS-Zertifikat verifizieren",
|
|
465
|
-
"addon.verify_ssl.description": "
|
|
466
|
-
"addon_stable.enable_tool_search.description": "
|
|
465
|
+
"addon.verify_ssl.description": "Überprüfe das TLS-Zertifikat des Home Assistant-Servers. Die App (das Add-on) verbindet sich über den Supervisor-Proxy, daher hat dies normalerweise keine Auswirkungen und sollte aktiviert bleiben. Deaktiviere es nur, wenn du die App (das Add-on) so rekonfiguriert hast, dass sie über einen öffentlichen HTTPS-Hostnamen mit einem selbstsignierten Zertifikat oder einem Hostnamen-Mismatch mit HA kommuniziert. Das Deaktivieren schwächt die Transportsicherheit — lasse es eingeschaltet, es sei denn, du weißt, dass du es brauchst. Erfordert einen Neustart, um wirksam zu werden.",
|
|
466
|
+
"addon_stable.enable_tool_search.description": "Ersetze den vollständigen Tool-Katalog durch eine suchend basierte Erkennung. Reduziert den Leerlaufkontext um etwa 90 % auf ca. 5K Token. ⚠️ Aktiviere dies NICHT in Clients mit eigener integrierter Tool-Suche / verzögerten Tools (claude.ai, Claude Desktop, Claude Code) — die beiden Suchschichten kollidieren, und die integrierte Tool-Suche des Clients ist dort die bessere Wahl; lasse dies ausgeschaltet. Ob Tools verzögert werden, hängt von deiner Client- und Modellkombination ab: Verwende dies, wenn dein Setup den vollständigen Katalog im Voraus lädt — Modelle ohne native verzögerte Tools (z. B. Gemini, OpenAI-kompatible lokale Modelle, Claude Haiku), Clients, die alle Tool-Schemas unabhängig vom Modell einbetten (z. B. GitHub Copilot CLI), oder kleinere Kontextfenster. Einige Codex-Modelle und ChatGPT beinhalten ebenfalls verzögerte Tools — überprüfe deinen Client bzw. dein Modell direkt, um dessen Funktionen zu bestätigen, damit du dies nicht unnötig aktiviert lässt. Tools werden über ha_search_tools gefunden und über kategorisierte Proxys (lesen/schreiben/löschen) ausgeführt. Erfordert einen App-(Add-on-)Neustart, um wirksam zu werden — verbinde dich danach neu oder aktualisiere den MCP-Server in deinem KI-Client, damit dieser die Tool-Liste neu lädt. Das alleinige Neustarten der App (des Add-ons) aktualisiert die zwischengespeicherte Tool-Liste eines Clients NICHT; dies gilt nach jeder Änderung einer Einstellung hier."
|
|
467
467
|
},
|
|
468
468
|
"tool_groups": {
|
|
469
|
-
"
|
|
469
|
+
"Apps (add-ons)": "Apps (Add-ons)",
|
|
470
470
|
"Areas & Floors": "Bereiche & Etagen",
|
|
471
471
|
"Assist": "Assist",
|
|
472
472
|
"Automations": "Automatisierungen",
|
|
@@ -649,9 +649,9 @@
|
|
|
649
649
|
"title": "Template auswerten",
|
|
650
650
|
"description": "Wertet ein Jinja2-Template mit der Home-Assistant-Engine aus."
|
|
651
651
|
},
|
|
652
|
-
"
|
|
653
|
-
"title": "Add-ons abrufen",
|
|
654
|
-
"description": "
|
|
652
|
+
"ha_get_app": {
|
|
653
|
+
"title": "Apps (Add-ons) abrufen",
|
|
654
|
+
"description": "Home Assistant-Apps abrufen (früher als Add-ons bekannt, und dieses Tool als ha_get_addon) – installierte oder verfügbare auflisten oder abrufen"
|
|
655
655
|
},
|
|
656
656
|
"ha_get_automation_traces": {
|
|
657
657
|
"title": "Traces abrufen",
|
|
@@ -737,9 +737,9 @@
|
|
|
737
737
|
"title": "Dienste auflisten",
|
|
738
738
|
"description": "Zeigt verfügbare Home-Assistant-Dienste und deren Parameter."
|
|
739
739
|
},
|
|
740
|
-
"
|
|
741
|
-
"title": "Add-on verwalten",
|
|
742
|
-
"description": "
|
|
740
|
+
"ha_manage_app": {
|
|
741
|
+
"title": "App (Add-on) verwalten",
|
|
742
|
+
"description": "Eine Home Assistant-App verwalten (früher als Add-on bekannt, und dieses Tool als ha_manage_addon) – Konfiguration aktualisieren o"
|
|
743
743
|
},
|
|
744
744
|
"ha_manage_backup": {
|
|
745
745
|
"title": "Backups verwalten",
|