mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-05-28 18:43:40 +00:00
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.
79 lines
2.9 KiB
JSON
79 lines
2.9 KiB
JSON
{
|
|
"services": {
|
|
"get_price": {
|
|
"service": "mdi:table-search"
|
|
},
|
|
"get_chartdata": {
|
|
"service": "mdi:chart-bar",
|
|
"sections": {
|
|
"general": "mdi:identifier",
|
|
"selection": "mdi:calendar-range",
|
|
"filters": "mdi:filter-variant",
|
|
"transformation": "mdi:tune",
|
|
"format": "mdi:file-table",
|
|
"arrays_of_objects": "mdi:code-json",
|
|
"arrays_of_arrays": "mdi:code-brackets"
|
|
}
|
|
},
|
|
"get_apexcharts_yaml": {
|
|
"service": "mdi:chart-line",
|
|
"sections": {
|
|
"entry_id": "mdi:identifier",
|
|
"day": "mdi:calendar-range",
|
|
"level_type": "mdi:format-list-bulleted-type",
|
|
"resolution": "mdi:timer-sand",
|
|
"highlight_best_price": "mdi:battery-charging-low",
|
|
"highlight_peak_price": "mdi:battery-alert"
|
|
}
|
|
},
|
|
"refresh_user_data": {
|
|
"service": "mdi:refresh"
|
|
},
|
|
"find_cheapest_block": {
|
|
"service": "mdi:washing-machine",
|
|
"sections": {
|
|
"search_range": "mdi:calendar-search",
|
|
"time_alternatives": "mdi:clock-time-eight-outline",
|
|
"price_filter": "mdi:filter-variant",
|
|
"output": "mdi:tune-variant"
|
|
}
|
|
},
|
|
"find_most_expensive_block": {
|
|
"service": "mdi:lightning-bolt-circle",
|
|
"sections": {
|
|
"search_range": "mdi:calendar-search",
|
|
"time_alternatives": "mdi:clock-time-eight-outline",
|
|
"price_filter": "mdi:filter-variant",
|
|
"output": "mdi:tune-variant"
|
|
}
|
|
},
|
|
"find_cheapest_hours": {
|
|
"service": "mdi:ev-station",
|
|
"sections": {
|
|
"search_range": "mdi:calendar-search",
|
|
"time_alternatives": "mdi:clock-time-eight-outline",
|
|
"price_filter": "mdi:filter-variant",
|
|
"output": "mdi:tune-variant"
|
|
}
|
|
},
|
|
"find_most_expensive_hours": {
|
|
"service": "mdi:flash-alert",
|
|
"sections": {
|
|
"search_range": "mdi:calendar-search",
|
|
"time_alternatives": "mdi:clock-time-eight-outline",
|
|
"price_filter": "mdi:filter-variant",
|
|
"output": "mdi:tune-variant"
|
|
}
|
|
},
|
|
"find_cheapest_schedule": {
|
|
"service": "mdi:calendar-check",
|
|
"sections": {
|
|
"scheduling_options": "mdi:format-list-numbered",
|
|
"search_range": "mdi:calendar-search",
|
|
"time_alternatives": "mdi:clock-time-eight-outline",
|
|
"price_filter": "mdi:filter-variant",
|
|
"output": "mdi:tune-variant"
|
|
}
|
|
}
|
|
}
|
|
}
|