hass.tibber_prices/custom_components/tibber_prices
Julian Pawlowski 96f36a3339 feat(services): add plan_charging service for battery/EV scheduling
Accepts battery parameters (capacity, current/target SoC, max power) and
returns a cost-minimized charging schedule with per-interval power, SoC
progression, and total cost — no manual duration calculation needed.

Supports fixed, continuous (min_charge_power_w), and stepped
(charge_power_steps_w) charging modes, deadline-aware two-pass planning
(must_reach_soc + must_reach_by / must_reach_by_event), and round-trip
economics (expected_discharge_price, reserve_for_discharge,
max_cost_per_kwh) for arbitrage use cases. Includes min_charge_duration
and max_cycles_per_day constraints.

Groups deadline fields (must_reach_soc_*, must_reach_by,
must_reach_by_event) into a dedicated section so a deadline use case can
be configured in one place. Battery section lists capacity before the
percent SoC fields that depend on it. Response exposes stable reason
codes (already_at_target, energy_unreachable, energy_unreachable_by_
deadline, no_intervals_after_economic_filter, …) documented in the
service description and user docs.
2026-04-20 21:43:41 +00:00
..
api fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
binary_sensor refactor(attributes): streamline phase type retrieval and attribute building 2026-04-17 08:52:17 +00:00
blueprints feat(blueprints): add appliance scheduling blueprints with auto-install 2026-04-20 18:45:05 +00:00
brand feat(brand): update dark icons for improved visual consistency 2026-04-09 19:04:26 +00:00
config_flow_handlers refactor(repairs): simplify currency mode change notification to one-shot 2026-04-15 10:00:59 +00:00
coordinator refactor(periods): replace cross-day extension with bidirectional bridging 2026-04-19 11:47:45 +00:00
custom_translations refactor(translations): update terminology for previous interval price ranks 2026-04-15 10:43:29 +00:00
entity_utils fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
interval_pool perf(interval_pool): skip redundant API calls when prior fetch covers range 2026-04-17 12:00:57 +00:00
number fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
sensor refactor(day_patterns): rename double valley/peak to double dip/duck curve 2026-04-17 14:37:17 +00:00
services feat(services): add plan_charging service for battery/EV scheduling 2026-04-20 21:43:41 +00:00
switch fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
translations feat(services): add plan_charging service for battery/EV scheduling 2026-04-20 21:43:41 +00:00
utils feat(pricing): add relaxation logic for progressive filter loosening 2026-04-18 21:27:05 +00:00
__init__.py feat(blueprints): add appliance scheduling blueprints with auto-install 2026-04-20 18:45:05 +00:00
config_flow.py fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
const.py feat(entity): expose integration version as sw_version in device info 2026-04-20 18:44:34 +00:00
data.py feat(interval-pool): add intelligent interval caching and memory optimization 2025-11-25 20:44:39 +00:00
diagnostics.py fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
entity.py feat(entity): expose integration version as sw_version in device info 2026-04-20 18:44:34 +00:00
icons.json feat(services): add plan_charging service for battery/EV scheduling 2026-04-20 21:43:41 +00:00
manifest.json refactor(periods): enhance peak period filtering and validation logic 2026-04-17 22:24:18 +00:00
migrations.py fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
services.yaml feat(services): add plan_charging service for battery/EV scheduling 2026-04-20 21:43:41 +00:00