hass.tibber_prices/custom_components/tibber_prices/services
Julian Pawlowski 31fca73ccd feat(services): add sequential parameter to find_cheapest_schedule
When sequential: true, tasks are placed in declaration order instead of
being sorted by duration. Each task's search window starts after the
previous task ends (plus gap_minutes). If a task cannot be placed, all
subsequent tasks in the chain are also marked unscheduled.

Adds 12 tests covering ordering, chaining, gap enforcement, and
chain-breaking behavior.

Impact: Users can now schedule dependent appliances (e.g., washing
machine → dryer) in a single find_cheapest_schedule call with guaranteed
order, instead of chaining two find_cheapest_block calls.
2026-04-19 14:17:32 +00:00
..
__init__.py fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
debug_clear_tomorrow.py fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
find_cheapest_block.py feat(pricing): add relaxation logic for progressive filter loosening 2026-04-18 21:27:05 +00:00
find_cheapest_hours.py feat(pricing): add relaxation logic for progressive filter loosening 2026-04-18 21:27:05 +00:00
find_cheapest_schedule.py feat(services): add sequential parameter to find_cheapest_schedule 2026-04-19 14:17:32 +00:00
find_most_expensive_block.py feat(services): add 5 scheduling services for price-optimized time windows 2026-04-11 18:58:27 +00:00
find_most_expensive_hours.py feat(services): add 5 scheduling services for price-optimized time windows 2026-04-11 18:58:27 +00:00
formatters.py fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
get_apexcharts_yaml.py fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
get_chartdata.py fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
get_price.py fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
helpers.py feat(pricing): add relaxation logic for progressive filter loosening 2026-04-18 21:27:05 +00:00
refresh_user_data.py feat(services): add 5 scheduling services for price-optimized time windows 2026-04-11 18:58:27 +00:00
relaxation.py feat(pricing): add relaxation logic for progressive filter loosening 2026-04-18 21:27:05 +00:00