ha-mcp-dev 7.6.0.dev611__tar.gz → 7.6.0.dev612__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.dev611/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.6.0.dev612}/PKG-INFO +1 -1
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/pyproject.toml +1 -1
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_config_automations.py +2 -2
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_config_scripts.py +3 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_utility.py +1 -1
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/LICENSE +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/MANIFEST.in +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/README.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/setup.cfg +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/settings_ui.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/enhanced.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/smart_search.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_config_entry_flow.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_mcp_component.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/tests/__init__.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/tests/test_constants.py +0 -0
- {ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/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.dev612"
|
|
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.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
@@ -482,8 +482,8 @@ class AutomationConfigTools:
|
|
|
482
482
|
`{{ states(x) in [...] }}`
|
|
483
483
|
- `condition: time` instead of `{{ now().hour ... }}` or `{{ now().weekday() ... }}`
|
|
484
484
|
- `condition: sun` instead of `{{ is_state('sun.sun', ...) }}`
|
|
485
|
-
- Native `for:` field on `state`/`numeric_state` triggers and
|
|
486
|
-
`{{ now() - X.last_changed > timedelta(...) }}` duration math.
|
|
485
|
+
- Native `for:` field on `state`/`numeric_state` triggers and `state`
|
|
486
|
+
conditions over `{{ now() - X.last_changed > timedelta(...) }}` duration math.
|
|
487
487
|
- `wait_for_trigger` instead of `wait_template`
|
|
488
488
|
- `choose` action instead of template-based service names
|
|
489
489
|
- For one-shot date firing, use a `time` trigger plus `automation.turn_off` on a
|
{ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_config_scripts.py
RENAMED
|
@@ -436,6 +436,9 @@ class ConfigScriptTools:
|
|
|
436
436
|
schema. Templates in logic positions fail silently and obscure intent.
|
|
437
437
|
- `choose` / `if/then/else` instead of template-based service names
|
|
438
438
|
- `wait_for_trigger` instead of `wait_template`
|
|
439
|
+
- Native `for:` field on `state` conditions inside `choose`/`if`, and on
|
|
440
|
+
`state`/`numeric_state` triggers in `wait_for_trigger`, instead of
|
|
441
|
+
`{{ now() - X.last_changed > timedelta(...) }}` duration math.
|
|
439
442
|
- `repeat` with `for_each` instead of template loops
|
|
440
443
|
- Hardcode `target.entity_id` literals — never `{{ this.entity_id }}`.
|
|
441
444
|
Templates are appropriate ONLY in `data.*` fields, notification message/title,
|
|
@@ -1206,7 +1206,7 @@ def register_utility_tools(mcp: Any, client: Any, **kwargs: Any) -> None:
|
|
|
1206
1206
|
- `condition: numeric_state` over `{{ states('x') | float > N }}`
|
|
1207
1207
|
- `condition: state` over `{{ is_state(...) }}`
|
|
1208
1208
|
- `condition: time` / `condition: sun` over `now().hour` / `is_state('sun.sun', ...)`
|
|
1209
|
-
- Native `for:` field on state/numeric_state triggers and conditions over
|
|
1209
|
+
- Native `for:` field on state/numeric_state triggers and state conditions over
|
|
1210
1210
|
`{{ now() - X.last_changed > timedelta(...) }}` duration math
|
|
1211
1211
|
- `choose` action over templated `service:` / `action:` strings
|
|
1212
1212
|
See `ha_get_skill_guide` (best-practices skill) for the full anti-pattern list.
|
|
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
|
|
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.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/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
|
{ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/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
|
|
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.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_config_entry_flow.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_config_helpers.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.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/tools/tools_voice_assistant.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/transforms/categorized_search.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/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.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp/utils/kill_signal_diagnostics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/src/ha_mcp_dev.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.6.0.dev611 → ha_mcp_dev-7.6.0.dev612}/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
|