hass.tibber_prices/tests
Julian Pawlowski 6e0613c055 feat(services): add 5 scheduling services for price-optimized time windows
New services for finding optimal electricity price windows:
- find_cheapest_block: Cheapest contiguous time block (e.g., dishwasher)
- find_cheapest_hours: Cheapest N hours, non-contiguous (e.g., EV charging)
- find_cheapest_schedule: Multi-task scheduling with no-overlap (e.g., shared circuit)
- find_most_expensive_block: Most expensive contiguous block (peak avoidance)
- find_most_expensive_hours: Most expensive N hours (consumption shifting)

Key features:
- Flexible search range (today, tomorrow, today+tomorrow, rolling window)
- Power profile support for variable consumption patterns
- Price level filtering (e.g., only CHEAP/VERY_CHEAP intervals)
- Comparison details showing savings vs. alternatives
- Sliding window algorithm (O(n)) for block search, greedy scheduling
  for multi-task optimization

Also includes:
- Shared validation utilities (search range, price level, power profile)
- entry_id now optional on all services (auto-selects single home)
- Input validation for existing services (time range, filter conflicts)
- Service icons for all new and existing services
- Translations for all 5 languages (en, de, nb, nl, sv)
- Removed 10 unused config.error translation keys (replaced by exceptions)
- Tests for price window algorithms and search range resolution

Impact: Users can find optimal time windows for appliances, EV charging,
and multi-device scheduling via HA service calls. Existing services
improved with optional entry_id and better input validation.
2026-04-11 18:58:27 +00:00
..
services feat(services): add 5 scheduling services for price-optimized time windows 2026-04-11 18:58:27 +00:00
__init__.py test: add pytest framework and midnight-crossing tests 2025-11-21 23:47:01 +00:00
test_avg_none_fallback.py test(sensors): add comprehensive test coverage for mean/median display 2025-12-18 15:14:22 +00:00
test_best_price_e2e.py feat(periods): handle flat days and absolute low-price scenarios 2026-04-06 12:18:40 +00:00
test_config_validators.py refactor(config): use negative values for Best Price min_distance 2025-11-22 04:44:57 +00:00
test_coordinator_shutdown.py refactor(currency)!: rename major/minor to base/subunit currency terminology 2025-12-11 08:26:30 +00:00
test_interval_pool_memory_leak.py refactor(interval_pool): improve reliability and test coverage 2025-12-23 10:10:35 +00:00
test_interval_pool_optimization.py refactor(scripts): reorganize and standardize development scripts 2025-11-26 13:11:52 +00:00
test_level_filtering.py fix(period_handlers): normalize flex and min_distance to absolute values 2025-11-22 13:01:01 +00:00
test_lifecycle_state.py fix(sensors): ensure connection/tomorrow_data/lifecycle consistency 2025-11-22 04:45:57 +00:00
test_mean_median_display.py test(sensors): add comprehensive test coverage for mean/median display 2025-12-18 15:14:22 +00:00
test_midnight_handler.py feat(coordinator): add atomic midnight turnover coordination 2025-11-22 04:45:41 +00:00
test_midnight_periods.py fix(periods): Periods are now correctly recalculated after tomorrow prices became available. 2025-12-09 16:57:57 +00:00
test_midnight_turnover.py fix(tests): remove unused mock_config_entry and update price_avg to base currency in percentage calculations 2025-12-13 14:07:16 +00:00
test_minmax_none_fallback.py fix(calculations): handle negative electricity prices correctly 2025-11-22 04:45:23 +00:00
test_next_api_poll.py test(timers): comprehensive timer architecture validation 2025-11-22 04:46:30 +00:00
test_peak_price_e2e.py refactor(currency)!: rename major/minor to base/subunit currency terminology 2025-12-11 08:26:30 +00:00
test_percentage_calculations.py feat(trend): add direction-group detection, noise floor, and confirmation hysteresis 2026-04-07 13:44:01 +00:00
test_period_calculation.py test(period): document period calculation testing strategy 2025-11-22 04:47:09 +00:00
test_price_calculations.py refactor: migrate from multi-home to single-home-per-coordinator architecture 2025-11-24 16:24:37 +00:00
test_price_window.py feat(services): add 5 scheduling services for price-optimized time windows 2026-04-11 18:58:27 +00:00
test_rating_threshold_validation.py fix(tests): move LogCaptureFixture import under TYPE_CHECKING for better type hinting 2026-04-11 11:05:55 +00:00
test_resource_cleanup.py test: fix async mocking and add noqa comments for private access 2025-11-25 20:44:39 +00:00
test_sensor_consistency.py refactor: migrate from multi-home to single-home-per-coordinator architecture 2025-11-24 16:24:37 +00:00
test_sensor_timer_assignment.py test(sensors): update timer assignment tests for renamed/new trend sensors 2026-04-09 16:09:14 +00:00
test_time_service.py test(time): add boundary tolerance and DST handling tests 2025-11-22 04:46:53 +00:00
test_timer_scheduling.py test(timers): comprehensive timer architecture validation 2025-11-22 04:46:30 +00:00
test_tomorrow_data_refresh.py refactor: migrate from multi-home to single-home-per-coordinator architecture 2025-11-24 16:24:37 +00:00
test_user_data_validation.py fix(validation): enhance user data validation to require active subscription and price info. 2026-01-20 12:33:45 +00:00