hass.tibber_prices/custom_components/tibber_prices
Julian Pawlowski 2f36c73c18 feat(services): add hourly resolution option for chart data services
Add resolution parameter to get_chartdata and get_apexcharts_yaml services,
allowing users to choose between original 15-minute intervals or aggregated
hourly values for chart visualization.

Implementation uses rolling 5-interval window aggregation (-2, -1, 0, +1, +2
around :00 of each hour = 60 minutes total), matching the sensor rolling
hour methodology. Respects user's CONF_AVERAGE_SENSOR_DISPLAY setting for
mean vs median calculation.

Changes:
- formatters.py: Add aggregate_to_hourly() function preserving original
  field names (startsAt, total, level, rating_level) for unified processing
- get_chartdata.py: Pre-aggregate data before processing when resolution is
  'hourly', enabling same code path for filters/insert_nulls/connect_segments
- get_apexcharts_yaml.py: Add resolution parameter, pass to all 4 get_chartdata
  service calls in generated JavaScript
- services.yaml: Add resolution field with interval/hourly selector
- icons.json: Add section icons for get_apexcharts_yaml fields
- translations: Add highlight_peak_price and resolution field translations
  for all 5 languages (en, de, sv, nb, nl)

Impact: Users can now generate cleaner charts with 24 hourly data points
instead of 96 quarter-hourly intervals. The unified processing approach
ensures all chart features (filters, null insertion, segment connection)
work identically for both resolutions.
2026-01-20 15:51:34 +00:00
..
api fix(api): handle None values in API responses to prevent AttributeError 2025-12-13 14:02:30 +00:00
binary_sensor fix(volatility): expose price coefficient variation attribute 2025-12-25 19:10:42 +00:00
config_flow_handlers feat(config_flow): add entity status checks to options flow pages 2026-01-20 13:59:07 +00:00
coordinator fix(validation): enhance user data validation to require active subscription and price info. 2026-01-20 12:33:45 +00:00
custom_translations feat(sensor): convert timing sensors to hour-based display with minute attributes 2025-12-26 16:03:00 +00:00
entity_utils feat(sensors): add 5-level price trend scale with configurable thresholds 2026-01-20 13:36:01 +00:00
interval_pool fix(coordinator): track API calls separately from cached data usage 2025-12-25 18:53:29 +00:00
sensor feat(sensors): add 5-level price trend scale with configurable thresholds 2026-01-20 13:36:01 +00:00
services feat(services): add hourly resolution option for chart data services 2026-01-20 15:51:34 +00:00
translations feat(services): add hourly resolution option for chart data services 2026-01-20 15:51:34 +00:00
utils feat(sensors): add 5-level price trend scale with configurable thresholds 2026-01-20 13:36:01 +00:00
__init__.py refactor(interval_pool): improve reliability and test coverage 2025-12-23 10:10:35 +00:00
config_flow.py feat(config_flow): add price level gap tolerance for Tibber API level field 2025-12-22 20:25:30 +00:00
const.py feat(sensors): add 5-level price trend scale with configurable thresholds 2026-01-20 13:36:01 +00:00
data.py feat(interval-pool): add intelligent interval caching and memory optimization 2025-11-25 20:44:39 +00:00
diagnostics.py refactor(lifecycle): integrate with Pool for sensor metrics 2025-12-23 14:13:34 +00:00
entity.py fix(api): handle None values in API responses to prevent AttributeError 2025-12-13 14:02:30 +00:00
icons.json feat(services): add hourly resolution option for chart data services 2026-01-20 15:51:34 +00:00
manifest.json chore(release): bump version to 0.26.0 2026-01-20 12:40:37 +00:00
services.yaml feat(services): add hourly resolution option for chart data services 2026-01-20 15:51:34 +00:00