gitextract_t8ge55s3/ ├── .copilot-instructions.md ├── .coveragerc ├── .devcontainer.json ├── .dockerignore ├── .github/ │ ├── DEPENDABOT_AUTO_MERGE.md │ ├── FUNDING.yml │ ├── RELEASE_TEMPLATE.md │ ├── SECURITY_REMEDIATION.md │ ├── dependabot.yml │ ├── prompts/ │ │ ├── plan.prompt.md │ │ ├── specify.prompt.md │ │ └── tasks.prompt.md │ ├── release.yml │ ├── scripts/ │ │ └── update_hacs_manifest.py │ └── workflows/ │ ├── claude.yml │ ├── dependabot-auto-merge.yml │ ├── hacs-validate.yaml │ ├── linting.yaml │ ├── quality-check.yaml │ ├── security-check.yml │ ├── tests.yaml │ └── workflow-status.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .specify/ │ ├── memory/ │ │ ├── constitution.md │ │ └── constitution_update_checklist.md │ └── templates/ │ ├── agent-file-template.md │ ├── checklist-template.md │ ├── plan-template.md │ ├── spec-template.md │ └── tasks-template.md ├── CHANGELOG.md ├── CLAUDE.md ├── Dockerfile.dev ├── LICENSE ├── LICENSE.md ├── README-DOCKER.md ├── README.md ├── RELEASE_NOTES_v0.11.0.md ├── action/ │ ├── Dockerfile │ ├── action.py │ └── action.yaml ├── build_release.sh ├── config/ │ └── configuration.yaml ├── custom_components/ │ ├── __init__.py │ └── dual_smart_thermostat/ │ ├── __init__.py │ ├── climate.py │ ├── config_flow.py │ ├── config_validation.py │ ├── const.py │ ├── feature_steps/ │ │ ├── __init__.py │ │ ├── fan.py │ │ ├── floor.py │ │ ├── humidity.py │ │ ├── openings.py │ │ ├── presets.py │ │ └── shared.py │ ├── flow_utils.py │ ├── hvac_action_reason/ │ │ ├── __init__.py │ │ ├── hvac_action_reason.py │ │ ├── hvac_action_reason_auto.py │ │ ├── hvac_action_reason_external.py │ │ └── hvac_action_reason_internal.py │ ├── hvac_controller/ │ │ ├── __init__.py │ │ ├── cooler_controller.py │ │ ├── generic_controller.py │ │ ├── heater_controller.py │ │ └── hvac_controller.py │ ├── hvac_device/ │ │ ├── __init__.py │ │ ├── controllable_hvac_device.py │ │ ├── cooler_device.py │ │ ├── cooler_fan_device.py │ │ ├── dryer_device.py │ │ ├── fan_device.py │ │ ├── generic_hvac_device.py │ │ ├── heat_pump_device.py │ │ ├── heater_aux_heater_device.py │ │ ├── heater_cooler_device.py │ │ ├── heater_device.py │ │ ├── hvac_device.py │ │ ├── hvac_device_factory.py │ │ └── multi_hvac_device.py │ ├── managers/ │ │ ├── __init__.py │ │ ├── auto_mode_evaluator.py │ │ ├── environment_manager.py │ │ ├── feature_manager.py │ │ ├── hvac_power_manager.py │ │ ├── opening_manager.py │ │ ├── preset_manager.py │ │ └── state_manager.py │ ├── manifest.json │ ├── models.py │ ├── options_flow.py │ ├── preset_env/ │ │ ├── __init__.py │ │ └── preset_env.py │ ├── schema_utils.py │ ├── schemas.py │ ├── sensor.py │ ├── services.yaml │ └── translations/ │ ├── en.json │ └── sk.json ├── demo_openings_translations.py ├── demo_translations.py ├── docker-compose.yml ├── docs/ │ ├── TESTING.md │ ├── config/ │ │ ├── CONFIG_FLOW.md │ │ ├── CRITICAL_CONFIG_DEPENDENCIES.md │ │ ├── DEPENDENCY_ANALYSIS_SUMMARY.md │ │ └── FOCUSED_DEPENDENCIES_SUMMARY.md │ ├── config_flow/ │ │ ├── ac_only_features.md │ │ ├── architecture.md │ │ └── step_ordering.md │ ├── plans/ │ │ ├── 2026-01-21-fan-speed-control-design.md │ │ └── 2026-01-21-fan-speed-control.md │ ├── superpowers/ │ │ ├── plans/ │ │ │ ├── 2026-04-21-auto-mode-phase-0-action-reason-sensor.md │ │ │ ├── 2026-04-22-auto-mode-phase-1-1-availability-detection.md │ │ │ ├── 2026-04-27-auto-mode-phase-1-2-priority-engine.md │ │ │ ├── 2026-04-29-auto-mode-phase-1-3-outside-bias.md │ │ │ └── 2026-04-30-auto-mode-phase-1-4-apparent-temp.md │ │ └── specs/ │ │ ├── 2026-04-21-auto-mode-phase-0-action-reason-sensor-design.md │ │ ├── 2026-04-22-auto-mode-phase-1-1-availability-detection-design.md │ │ ├── 2026-04-27-auto-mode-phase-1-2-priority-engine-design.md │ │ ├── 2026-04-29-auto-mode-phase-1-3-outside-bias-design.md │ │ └── 2026-04-30-auto-mode-phase-1-4-apparent-temp-design.md │ └── troubleshooting.md ├── examples/ │ ├── README.md │ ├── advanced_features/ │ │ ├── floor_heating_with_limits.yaml │ │ ├── openings_with_timeout.yaml │ │ ├── presets_advanced.yaml │ │ ├── presets_with_templates.yaml │ │ └── two_stage_heating.yaml │ ├── basic_configurations/ │ │ ├── cooler_only.yaml │ │ ├── heat_pump.yaml │ │ ├── heater_cooler.yaml │ │ └── heater_only.yaml │ ├── integrations/ │ │ └── smart_scheduling.yaml │ └── single_mode_wrapper/ │ ├── README.md │ ├── automation.yaml │ ├── configuration.yaml │ └── helpers.yaml ├── hacs.json ├── manage/ │ ├── bump_frontend │ ├── hacs │ ├── integration_start │ ├── lgtm.js │ ├── update_manifest.py │ └── update_requirements.py ├── pcap.py ├── pytest.ini ├── pytest.log ├── requirements-dev.txt ├── requirements.txt ├── scripts/ │ ├── devcontainer_install_deps.sh │ ├── develop │ ├── docker-lint │ ├── docker-shell │ ├── docker-test │ ├── lint │ └── setup ├── setup.cfg ├── sonar-project.properties ├── specs/ │ ├── 001-develop-config-and/ │ │ ├── FEATURE_TESTING_PLAN.md │ │ ├── FEATURE_TESTING_PLAN_EXPANDED.md │ │ ├── FLOW_SEPARATION_ANALYSIS.md │ │ ├── GITHUB_ISSUES_UPDATE_PLAN.md │ │ ├── HOUSEKEEPING.md │ │ ├── OPTIONS_FLOW_BUG_FIX.md │ │ ├── RECONFIGURE_FLOW_MIGRATION.md │ │ ├── REORG.md │ │ ├── UPDATED_TASKS_STRATEGY.md │ │ ├── contracts/ │ │ │ └── step-handlers.md │ │ ├── data-model.md │ │ ├── github-issues-update.md │ │ ├── github-sync-status.md │ │ ├── plan.md │ │ ├── quickstart.md │ │ ├── research.md │ │ ├── schema-consolidation-proposal.md │ │ ├── spec.md │ │ ├── tasks.md │ │ └── test-preservation.md │ ├── 002-separate-tolerances/ │ │ ├── checklists/ │ │ │ └── requirements.md │ │ ├── contracts/ │ │ │ └── tolerance_selection_api.md │ │ ├── data-model.md │ │ ├── plan.md │ │ ├── quickstart.md │ │ ├── research.md │ │ ├── spec.md │ │ └── tasks.md │ ├── 003-separate-tolerances/ │ │ ├── BEHAVIOR_DIAGRAM.md │ │ ├── IMPLEMENTATION_COMPLETE.md │ │ └── README.md │ ├── 004-template-based-presets/ │ │ ├── IMPLEMENTATION_PROGRESS.md │ │ ├── IMPLEMENTATION_STATUS.md │ │ ├── PHASE10_COMPLETE.md │ │ ├── PHASE4_COMPLETE.md │ │ ├── PHASE5_COMPLETE.md │ │ ├── PHASE6_COMPLETE.md │ │ ├── PHASE7_COMPLETE.md │ │ ├── PHASE9_COMPLETE.md │ │ ├── analysis-report.md │ │ ├── checklists/ │ │ │ └── requirements.md │ │ ├── contracts/ │ │ │ └── preset_env_api.md │ │ ├── data-model.md │ │ ├── plan.md │ │ ├── quickstart.md │ │ ├── research.md │ │ ├── spec.md │ │ └── tasks.md │ ├── README.md │ └── issue-096-template-based-presets.md ├── test-results/ │ └── .last-run.json ├── tests/ │ ├── FEATURES.md │ ├── __init__.py │ ├── behavioral/ │ │ └── test_tolerance_thresholds.py │ ├── common.py │ ├── config_flow/ │ │ ├── __init__.py │ │ ├── test_ac_only_advanced_settings.py │ │ ├── test_ac_only_features.py │ │ ├── test_ac_only_features_integration.py │ │ ├── test_advanced_options.py │ │ ├── test_config_flow.py │ │ ├── test_config_flow_validation.py │ │ ├── test_e2e_ac_only_persistence.py │ │ ├── test_e2e_heat_pump_persistence.py │ │ ├── test_e2e_heater_cooler_persistence.py │ │ ├── test_e2e_simple_heater_persistence.py │ │ ├── test_heat_pump_config_flow.py │ │ ├── test_heat_pump_features_integration.py │ │ ├── test_heat_pump_options_flow.py │ │ ├── test_heater_cooler_features_integration.py │ │ ├── test_heater_cooler_flow.py │ │ ├── test_integration.py │ │ ├── test_options_entry_helpers.py │ │ ├── test_options_flow.py │ │ ├── test_preset_templates_config_flow.py │ │ ├── test_reconfigure_flow.py │ │ ├── test_reconfigure_flow_e2e_ac_only.py │ │ ├── test_reconfigure_flow_e2e_heat_pump.py │ │ ├── test_reconfigure_flow_e2e_heater_cooler.py │ │ ├── test_reconfigure_flow_e2e_simple_heater.py │ │ ├── test_reconfigure_system_type_change.py │ │ ├── test_simple_heater_advanced.py │ │ ├── test_simple_heater_features_integration.py │ │ ├── test_step_ordering.py │ │ └── test_translations.py │ ├── conftest.py │ ├── const.py │ ├── contracts/ │ │ ├── GREEN_PHASE_RESULTS.md │ │ ├── RED_PHASE_RESULTS.md │ │ ├── __init__.py │ │ ├── test_feature_availability_contracts.py │ │ ├── test_feature_ordering_contracts.py │ │ └── test_feature_schema_contracts.py │ ├── edge_cases/ │ │ ├── __init__.py │ │ ├── test_issue_10_tolerance_precision.py │ │ ├── test_issue_461_redundant_commands.py │ │ ├── test_issue_467_idle_continuous_off.py │ │ ├── test_issue_468_precision_rounding.py │ │ ├── test_issue_469_off_state_control_bypass.py │ │ ├── test_issue_480_heater_cooler_both_fire.py │ │ ├── test_issue_484_keep_alive_timedelta.py │ │ ├── test_issue_499_multiple_thermostats_unavailable.py │ │ ├── test_issue_499_yaml_entity_unavailable_on_startup.py │ │ ├── test_issue_506_behavior_tolerance_ignored.py │ │ ├── test_issue_506_tolerance_in_range_mode.py │ │ ├── test_issue_506_user_exact_scenario.py │ │ ├── test_issue_506_yaml_tolerance_defaults.py │ │ └── test_issue_518_heater_turns_off_prematurely.py │ ├── features/ │ │ ├── test_ac_features_ux.py │ │ ├── test_advanced_toggle_feature.py │ │ ├── test_feature_hvac_mode_interactions.py │ │ ├── test_heater_cooler_with_fan.py │ │ ├── test_heater_cooler_with_humidity.py │ │ ├── test_openings_with_hvac_modes.py │ │ └── test_presets_with_all_features.py │ ├── fixtures/ │ │ └── configuration.yaml │ ├── managers/ │ │ ├── test_environment_manager.py │ │ ├── test_hvac_device_factory.py │ │ └── test_preset_manager_templates.py │ ├── openings/ │ │ ├── test_openings_config_flow.py │ │ ├── test_openings_multiselect.py │ │ ├── test_openings_options_flow.py │ │ └── test_scope_generation.py │ ├── preset_env/ │ │ └── test_preset_env_templates.py │ ├── presets/ │ │ ├── test_comprehensive_preset_logic.py │ │ └── test_preset_form_organization.py │ ├── test_auto_mode_availability.py │ ├── test_auto_mode_evaluator.py │ ├── test_auto_mode_integration.py │ ├── test_auto_preset_selection.py │ ├── test_config_flow.py │ ├── test_cooler_mode.py │ ├── test_cooler_mode_behavioral.py │ ├── test_dry_mode.py │ ├── test_dual_mode.py │ ├── test_dual_mode_behavioral.py │ ├── test_environment_manager.py │ ├── test_fan_mode.py │ ├── test_fan_speed_control.py │ ├── test_heat_pump_mode.py │ ├── test_heat_pump_mode_behavioral.py │ ├── test_heater_mode.py │ ├── test_heater_mode_behavioral.py │ ├── test_hvac_action_reason_sensor.py │ ├── test_hvac_action_reason_service.py │ ├── test_init.py │ ├── test_logger_multiple_instances.py │ ├── test_presets_schema.py │ └── unit/ │ ├── test_config_validation_integration.py │ ├── test_heat_pump_schema.py │ ├── test_heater_cooler_schema.py │ ├── test_models.py │ └── test_schema_utils.py └── tools/ ├── README.md ├── __init__.py ├── clean_db.py ├── config_validator.py ├── focused_config_dependencies.json └── focused_config_dependencies.py