Implemented multi-backend release notes generation: **Scripts:** - prepare-release: Bump manifest.json + create tag (foolproof workflow) - generate-release-notes: Parse conventional commits with 3 backends * GitHub Copilot CLI (AI-powered, smart grouping) * git-cliff (template-based, fast and reliable) * Manual grep/awk (fallback, always works) - setup: Auto-install git-cliff via cargo in DevContainer **GitHub Actions:** - auto-tag.yml: Automatically create tag on manifest.json version bump - release.yml: Generate release notes and create GitHub release on tag push - release.yml: Button config for GitHub UI release notes generator **Configuration:** - cliff.toml: Smart filtering rules * Excludes: manifest bumps, dev-env changes, CI/CD changes * Includes: Dependency updates (relevant for users) * Groups by conventional commit type with emoji **Workflow:** 1. Run `./scripts/prepare-release 0.3.0` 2. Push commit + tag: `git push origin main v0.3.0` 3. CI/CD automatically generates release notes and creates GitHub release Impact: Maintainers can prepare professional releases with one command. Release notes are automatically generated from conventional commits with intelligent filtering and categorization. |
||
|---|---|---|
| .copilot | ||
| .devcontainer | ||
| .github | ||
| config | ||
| custom_components/tibber_prices | ||
| images | ||
| scripts | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .prettierignore | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| cliff.toml | ||
| CONTRIBUTING.md | ||
| hacs.json | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
| requirements.txt | ||
Tibber Price Information & Ratings
A Home Assistant integration that provides advanced price information and ratings from Tibber. This integration fetches quarter-hourly electricity prices, enriches them with statistical analysis, and provides smart indicators to help you optimize your energy consumption and save money.
Features
- Quarter-Hourly Price Data: Access detailed 15-minute interval pricing (192 data points across yesterday/today/tomorrow)
- Current and Next Interval Prices: Get real-time price data in both major currency (€, kr) and minor units (ct, øre)
- Multi-Currency Support: Automatic detection and formatting for EUR, NOK, SEK, DKK, USD, and GBP
- Price Level Indicators: Know when you're in a VERY_CHEAP, CHEAP, NORMAL, EXPENSIVE, or VERY_EXPENSIVE period
- Statistical Sensors: Track lowest, highest, and average prices for the day
- Price Ratings: Quarter-hourly ratings comparing current prices to 24-hour trailing averages
- Smart Indicators: Binary sensors to detect peak hours and best price hours for automations
- Intelligent Caching: Minimizes API calls while ensuring data freshness across Home Assistant restarts
- Custom Services: API endpoints for advanced integrations (ApexCharts support included)
- Diagnostic Sensors: Monitor data freshness and availability
- Reliable API Usage: Uses only official Tibber
priceInfoandpriceInfoRangeendpoints - no legacy APIs. Price ratings and statistics are calculated locally for maximum reliability and future-proofing.
Installation
HACS Installation (Recommended)
- Ensure HACS is installed in your Home Assistant instance
- Go to HACS > Integrations > Click the three dots in the top right > Custom repositories
- Add this repository URL:
https://github.com/jpawlowski/hass.tibber_prices - Click "Add"
- Search for "Tibber Price Information & Ratings" in the Integrations tab
- Click "Install"
- Restart Home Assistant
Manual Installation
- Copy the
custom_components/tibber_pricesdirectory from this repository into your Home Assistant'scustom_componentsdirectory - Restart Home Assistant
Configuration
Requirements
- A Tibber account with an active subscription
- A Tibber API access token (obtain from developer.tibber.com)
Setup Process
- Go to Settings > Devices & Services in your Home Assistant UI
- Click the + ADD INTEGRATION button in the bottom right
- Search for "Tibber Price Information & Ratings"
- Enter your Tibber API access token when prompted
- Click "Submit"
Available Entities
The integration provides 30+ sensors across different categories. Key sensors are enabled by default, while advanced sensors can be enabled as needed.
Rich Sensor Attributes: All sensors include extensive attributes with timestamps, context data, and detailed explanations. Enable Extended Descriptions in the integration options to add
long_descriptionandusage_tipsattributes to every sensor, providing in-context documentation directly in Home Assistant's UI.
Core Price Sensors (Enabled by Default)
| Entity | Description |
|---|---|
| Current Electricity Price | Current 15-minute interval price |
| Next Interval Price | Price for the next 15-minute interval |
| Current Hour Average Price | Average of current hour's 4 intervals |
| Next Hour Average Price | Average of next hour's 4 intervals |
| Current Price Level | API classification (VERY_CHEAP to VERY_EXPENSIVE) |
| Next Interval Price Level | Price level for next interval |
| Current Hour Price Level | Price level for current hour average |
| Next Hour Price Level | Price level for next hour average |
Statistical Sensors (Enabled by Default)
| Entity | Description |
|---|---|
| Today's Lowest Price | Minimum price for today |
| Today's Highest Price | Maximum price for today |
| Today's Average Price | Mean price across today's intervals |
| Tomorrow's Lowest Price | Minimum price for tomorrow (when available) |
| Tomorrow's Highest Price | Maximum price for tomorrow (when available) |
| Tomorrow's Average Price | Mean price for tomorrow (when available) |
| Leading 24h Average Price | Average of next 24 hours from now |
| Leading 24h Minimum Price | Lowest price in next 24 hours |
| Leading 24h Maximum Price | Highest price in next 24 hours |
Price Rating Sensors (Enabled by Default)
| Entity | Description |
|---|---|
| Current Price Rating | % difference from 24h trailing average (current interval) |
| Next Interval Price Rating | % difference from 24h trailing average (next interval) |
| Current Hour Price Rating | % difference for current hour average |
| Next Hour Price Rating | % difference for next hour average |
How ratings work: Compares each interval to the average of the previous 96 intervals (24 hours). Positive values mean prices are above average, negative means below average.
Binary Sensors (Enabled by Default)
| Entity | Description |
|---|---|
| Peak Price Interval | ON when current interval is in the highest 20% of day's prices |
| Best Price Interval | ON when current interval is in the lowest 20% of day's prices |
| Tibber API Connection | Connection status to Tibber API |
| Tomorrow's Data Available | Whether tomorrow's price data is available |
Diagnostic Sensors (Enabled by Default)
| Entity | Description |
|---|---|
| Data Expiration | Timestamp when current data expires |
| Price Forecast | Formatted list of upcoming price intervals |
Additional Sensors (Disabled by Default)
The following sensors are available but disabled by default. Enable them in Settings > Devices & Services > Tibber Price Information & Ratings > Entities:
- Previous Interval Price & Previous Interval Price Level: Historical data for the last 15-minute interval
- Previous Interval Price Rating: Rating for the previous interval
- Trailing 24h Average Price: Average of the past 24 hours from now
- Trailing 24h Minimum/Maximum Price: Min/max in the past 24 hours
Note
: All monetary sensors use minor currency units (ct/kWh, øre/kWh, ¢/kWh, p/kWh) automatically based on your Tibber account's currency. Supported: EUR, NOK, SEK, DKK, USD, GBP.
Automation Examples
Run Appliances During Cheap Hours
Use the binary_sensor.tibber_best_price_interval to automatically start appliances during the cheapest 15-minute periods:
automation:
- alias: "Run Dishwasher During Cheap Hours"
trigger:
- platform: state
entity_id: binary_sensor.tibber_best_price_interval
to: "on"
condition:
- condition: time
after: "21:00:00"
before: "06:00:00"
action:
- service: switch.turn_on
target:
entity_id: switch.dishwasher
Notify on Extremely High Prices
Get notified when prices reach the VERY_EXPENSIVE level:
automation:
- alias: "Notify on Very Expensive Electricity"
trigger:
- platform: state
entity_id: sensor.tibber_current_price_level
to: "VERY_EXPENSIVE"
action:
- service: notify.mobile_app
data:
title: "⚠️ High Electricity Prices"
message: "Current electricity price is in the VERY EXPENSIVE range. Consider reducing consumption."
Temperature Control Based on Price Ratings
Adjust heating/cooling when current prices are significantly above the 24h average:
automation:
- alias: "Reduce Heating During High Price Ratings"
trigger:
- platform: numeric_state
entity_id: sensor.tibber_current_price_rating
above: 20 # More than 20% above 24h average
action:
- service: climate.set_temperature
target:
entity_id: climate.living_room
data:
temperature: 19 # Lower target temperature
Smart EV Charging Based on Tomorrow's Prices
Start charging when tomorrow's prices drop below today's average:
automation:
- alias: "Smart EV Charging"
trigger:
- platform: state
entity_id: binary_sensor.tibber_best_price_interval
to: "on"
condition:
- condition: numeric_state
entity_id: sensor.tibber_current_price_rating
below: -15 # At least 15% below average
- condition: numeric_state
entity_id: sensor.ev_battery_level
below: 80
action:
- service: switch.turn_on
target:
entity_id: switch.ev_charger
Troubleshooting
No data appearing
- Check your API token is valid at developer.tibber.com
- Verify you have an active Tibber subscription
- Check the Home Assistant logs for detailed error messages (
Settings > System > Logs) - Restart the integration:
Settings > Devices & Services > Tibber Price Information & Ratings > ⋮ > Reload
Missing tomorrow's price data
- Tomorrow's price data typically becomes available between 13:00 and 15:00 each day (Nordic time)
- The integration automatically checks more frequently during this window
- Check
binary_sensor.tibber_tomorrows_data_availableto see if data is available - If data is unavailable after 15:00, verify it's available in the Tibber app first
Prices not updating at quarter-hour boundaries
- Entities automatically refresh at 00/15/30/45-minute marks without waiting for API polls
- Check
sensor.tibber_data_expirationto verify data freshness - The integration caches data intelligently and survives Home Assistant restarts
Currency or units showing incorrectly
- Currency is automatically detected from your Tibber account
- The integration supports EUR, NOK, SEK, DKK, USD, and GBP with appropriate minor units
- Enable/disable major vs. minor unit sensors in
Settings > Devices & Services > Tibber Price Information & Ratings > Entities
Advanced Features
Sensor Attributes
Every sensor includes rich attributes beyond just the state value. These attributes provide context, timestamps, and additional data useful for automations and templates.
Standard attributes available on most sensors:
timestamp- ISO 8601 timestamp for the data pointdescription- Brief explanation of what the sensor representslevel_idandlevel_value- For price level sensors (e.g.,VERY_CHEAP= -2)
Extended descriptions (enable in integration options):
long_description- Detailed explanation of the sensor's purposeusage_tips- Practical suggestions for using the sensor in automations
Example - Current Price sensor attributes:
timestamp: "2025-11-03T14:15:00+01:00"
description: "The current electricity price per kWh"
long_description: "Shows the current price per kWh from your Tibber subscription"
usage_tips: "Use this to track prices or to create automations that run when electricity is cheap"
Example template using attributes:
template:
- sensor:
- name: "Price Status"
state: >
{% set price = states('sensor.tibber_current_electricity_price') | float %}
{% set timestamp = state_attr('sensor.tibber_current_electricity_price', 'timestamp') %}
Price at {{ timestamp }}: {{ price }} ct/kWh
Custom Services
The integration provides custom services for advanced use cases:
tibber_prices.get_price- Fetch price data for specific days/times (useful for scripts)tibber_prices.get_apexcharts_data- Get formatted data for ApexCharts cardstibber_prices.get_apexcharts_yaml- Generate complete ApexCharts card configurationtibber_prices.refresh_user_data- Manually refresh account information
See the Services tab in Home Assistant Developer Tools for detailed documentation and parameters.
ApexCharts Integration
The integration includes built-in support for creating beautiful price visualization cards. Use the get_apexcharts_yaml service to generate card configurations automatically.
Contributing
If you want to contribute to this project, please read the Contributing Guidelines.
License
This project is licensed under the MIT License - see the LICENSE file for details.
