ha-mcp-dev 7.6.0.dev657__tar.gz → 7.6.0.dev658__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-7.6.0.dev657/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.6.0.dev658}/PKG-INFO +1 -1
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/pyproject.toml +1 -1
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_config_automations.py +28 -7
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_config_scripts.py +4 -4
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/LICENSE +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/MANIFEST.in +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/README.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/setup.cfg +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/settings.css +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/settings.js +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/settings_ui.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/enhanced.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_config_entry_flow.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_mcp_component.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/tests/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/tests/test_constants.py +0 -0
- {ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/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 = "7.6.0.
|
|
7
|
+
version = "7.6.0.dev658"
|
|
8
8
|
description = "Home Assistant MCP Server - Complete control of Home Assistant through MCP"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13,<3.14"
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
@@ -566,7 +566,7 @@ class AutomationConfigTools:
|
|
|
566
566
|
"alias": "Morning Lights",
|
|
567
567
|
"description": "Turn on bedroom lights at 7 AM to help wake up",
|
|
568
568
|
"trigger": [{"platform": "time", "at": "07:00:00"}],
|
|
569
|
-
"action": [{"
|
|
569
|
+
"action": [{"action": "light.turn_on", "target": {"area_id": "bedroom"}}]
|
|
570
570
|
})
|
|
571
571
|
|
|
572
572
|
Motion-activated lighting — `for:` on the off-transition replaces action-delay:
|
|
@@ -583,9 +583,9 @@ class AutomationConfigTools:
|
|
|
583
583
|
{"condition": "trigger", "id": "motion_on"},
|
|
584
584
|
{"condition": "sun", "after": "sunset"}
|
|
585
585
|
],
|
|
586
|
-
"sequence": [{"
|
|
586
|
+
"sequence": [{"action": "light.turn_on", "target": {"entity_id": "light.hallway"}}]},
|
|
587
587
|
{"conditions": [{"condition": "trigger", "id": "motion_off"}],
|
|
588
|
-
"sequence": [{"
|
|
588
|
+
"sequence": [{"action": "light.turn_off", "target": {"entity_id": "light.hallway"}}]}
|
|
589
589
|
]}
|
|
590
590
|
]
|
|
591
591
|
})
|
|
@@ -597,8 +597,8 @@ class AutomationConfigTools:
|
|
|
597
597
|
"alias": "Updated Morning Routine",
|
|
598
598
|
"trigger": [{"platform": "time", "at": "06:30:00"}],
|
|
599
599
|
"action": [
|
|
600
|
-
{"
|
|
601
|
-
{"
|
|
600
|
+
{"action": "light.turn_on", "target": {"area_id": "bedroom"}},
|
|
601
|
+
{"action": "climate.set_temperature", "target": {"entity_id": "climate.bedroom"}, "data": {"temperature": 22}}
|
|
602
602
|
]
|
|
603
603
|
}
|
|
604
604
|
)
|
|
@@ -636,7 +636,7 @@ class AutomationConfigTools:
|
|
|
636
636
|
|
|
637
637
|
TRIGGER TYPES: time, time_pattern, sun, state, numeric_state, event, device, zone, template, and more
|
|
638
638
|
CONDITION TYPES: state, numeric_state, time, sun, template, device, zone, and more
|
|
639
|
-
ACTION TYPES:
|
|
639
|
+
ACTION TYPES: action calls, delays, wait_for_trigger, wait_template, if/then/else, choose, repeat, parallel
|
|
640
640
|
|
|
641
641
|
For comprehensive automation documentation with all trigger/condition/action types and advanced examples:
|
|
642
642
|
- Use: ha_get_skill_guide
|
|
@@ -747,13 +747,34 @@ class AutomationConfigTools:
|
|
|
747
747
|
and e.status_code == 404
|
|
748
748
|
):
|
|
749
749
|
await self._raise_automation_not_found(identifier)
|
|
750
|
+
error_text = str(e)
|
|
750
751
|
suggestions = [
|
|
751
752
|
"Check automation configuration format",
|
|
752
753
|
"Ensure required fields: alias, trigger, action",
|
|
753
754
|
"Use entity_id format: automation.morning_routine or unique_id",
|
|
754
755
|
"Use ha_search_entities(domain_filter='automation') to find automations",
|
|
755
|
-
"Use ha_get_skill_guide for
|
|
756
|
+
"Use ha_get_skill_guide for automation examples",
|
|
756
757
|
]
|
|
758
|
+
if isinstance(e, HomeAssistantAPIError):
|
|
759
|
+
if "'service'" in error_text and "not allowed" in error_text:
|
|
760
|
+
suggestions.insert(
|
|
761
|
+
0,
|
|
762
|
+
"Use 'action:' not 'service:' for service calls in action steps "
|
|
763
|
+
"(renamed in HA 2024.8).",
|
|
764
|
+
)
|
|
765
|
+
elif "unexpected keyword argument" in error_text.lower():
|
|
766
|
+
suggestions.insert(
|
|
767
|
+
0,
|
|
768
|
+
"An action step contains a field that belongs at the automation root "
|
|
769
|
+
"(e.g. alias, trigger, condition). Each action step should only contain "
|
|
770
|
+
"action/target/data/delay/choose/if/repeat/parallel keys.",
|
|
771
|
+
)
|
|
772
|
+
elif "'variables'" in error_text and "dictionary" in error_text:
|
|
773
|
+
suggestions.insert(
|
|
774
|
+
0,
|
|
775
|
+
"variables must be a dict mapping names to values, "
|
|
776
|
+
'e.g. {"variables": {"my_var": 42}}',
|
|
777
|
+
)
|
|
757
778
|
if bp_warnings:
|
|
758
779
|
suggestions.append(
|
|
759
780
|
"Config had best-practice issues that may be related: "
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_config_scripts.py
RENAMED
|
@@ -512,9 +512,9 @@ class ConfigScriptTools:
|
|
|
512
512
|
Create service call script:
|
|
513
513
|
ha_config_set_script(script_id="blink_light", config={
|
|
514
514
|
"sequence": [
|
|
515
|
-
{"
|
|
515
|
+
{"action": "light.turn_on", "target": {"entity_id": "light.living_room"}},
|
|
516
516
|
{"delay": {"seconds": 2}},
|
|
517
|
-
{"
|
|
517
|
+
{"action": "light.turn_off", "target": {"entity_id": "light.living_room"}}
|
|
518
518
|
],
|
|
519
519
|
"alias": "Light Blink",
|
|
520
520
|
"mode": "single"
|
|
@@ -547,8 +547,8 @@ class ConfigScriptTools:
|
|
|
547
547
|
Update script:
|
|
548
548
|
ha_config_set_script(script_id="morning_routine", config={
|
|
549
549
|
"sequence": [
|
|
550
|
-
{"
|
|
551
|
-
{"
|
|
550
|
+
{"action": "light.turn_on", "target": {"area_id": "bedroom"}},
|
|
551
|
+
{"action": "climate.set_temperature", "target": {"entity_id": "climate.bedroom"}, "data": {"temperature": 22}}
|
|
552
552
|
],
|
|
553
553
|
"alias": "Updated Morning Routine"
|
|
554
554
|
})
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/dashboard_screenshot/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/dashboard_screenshot/capture.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/dashboard_screenshot/provision.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/resources/skills-vendor/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/best_practice_checker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/_entities.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/_overview.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/_scenes.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/smart_search/_scoring.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_config_entry_flow.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_dashboard_screenshot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/tools_voice_assistant.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/tools/validation_middleware.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/transforms/categorized_search.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/transforms/lite_docstrings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp/utils/kill_signal_diagnostics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp_dev.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev657 → ha_mcp_dev-7.6.0.dev658}/src/ha_mcp_dev.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|