⚠️ Not affiliated with Tibber This is an independent, community-maintained custom integration for Home Assistant. It is not an official Tibber product and is not affiliated with or endorsed by Tibber AS.
A custom Home Assistant integration that provides advanced electricity 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.
📚 Complete Documentation - Two comprehensive documentation sites:
- 👤 User Documentation - Installation, configuration, usage guides, and examples
- 🔧 Developer Documentation - Architecture, contributing guidelines, and development setup
Quick Links:
- Installation Guide - Step-by-step setup instructions
- Sensor Reference - Complete list of all sensors and attributes
- Chart Examples - ApexCharts visualizations
- Automation Examples - Real-world automation scenarios
- Changelog - Release history and notes
- Quarter-Hourly Price Data: Access detailed 15-minute interval pricing (384 data points across 4 days: day before yesterday/yesterday/today/tomorrow)
- Flexible Currency Display: Choose between base currency (€, kr) or subunit (ct, øre) display - configurable per your preference with smart defaults
- 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
- Beautiful ApexCharts: Auto-generated chart configurations with dynamic Y-axis scaling (see examples)
- Chart Metadata Sensor: Dynamic chart configuration for optimal visualization
- Intelligent Caching: Minimizes API calls while ensuring data freshness across Home Assistant restarts
- Custom Actions (backend 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.
Prerequisites: This integration requires HACS (Home Assistant Community Store) to be installed.
Click the button below to open the integration directly in HACS:
Then:
- Click "Download" to install the integration
- Restart Home Assistant (required after installation)
Note: The My Home Assistant redirect will first take you to a landing page. Click the button there to open your Home Assistant instance. If the repository is not yet in the HACS default store, HACS will ask if you want to add it as a custom repository.
Important: You must have installed the integration first (see Step 1) and restarted Home Assistant!
Click the button below to open the configuration dialog:
This will guide you through:
- Enter your Tibber API token (get one here)
- Select your Tibber home
- Configure price thresholds (optional)
- Go to Settings → Devices & Services
- Click "+ Add Integration"
- Search for "Tibber Price Information & Ratings"
- Follow the configuration steps (same as Option 1)
- 30+ sensors are now available (key sensors enabled by default)
- Configure additional sensors in Settings → Devices & Services → Tibber Price Information & Ratings → Entities
- Use sensors in automations, dashboards, and scripts
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.
📋 Complete Sensor Reference - Full list with descriptions and attributes
| 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 |
| 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 |
| 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.
| Entity | Description |
|---|---|
| Peak Price Period | ON when in a detected peak price period (how it works) |
| Best Price Period | ON when in a detected best price period (how it works) |
| Tibber API Connection | Connection status to Tibber API |
| Tomorrow's Data Available | Whether tomorrow's price data is available |
| Entity | Description |
|---|---|
| Data Expiration | Timestamp when current data expires |
| Price Forecast | Formatted list of upcoming price intervals |
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: Currency display is configurable during setup. Choose between:
- Base currency (€/kWh, kr/kWh) - decimal values, differences visible from 3rd-4th decimal
- Subunit (ct/kWh, øre/kWh) - larger values, differences visible from 1st decimal
Smart defaults: EUR → subunit (German/Dutch preference), NOK/SEK/DKK → base (Scandinavian preference). Supported currencies: EUR, NOK, SEK, DKK, USD, GBP.
Automation Examples> Note: See the full automation examples guide for more advanced recipes.
Use the binary_sensor.tibber_best_price_period to automatically start appliances during detected best price periods:
automation:
- alias: "Run Dishwasher During Cheap Hours"
trigger:
- platform: state
entity_id: binary_sensor.tibber_best_price_period
to: "on"
condition:
- condition: time
after: "21:00:00"
before: "06:00:00"
action:
- service: switch.turn_on
target:
entity_id: switch.dishwasherLearn more: The period calculation guide explains how Best/Peak Price periods are identified and how you can configure filters (flexibility, minimum distance from average, price level filters with gap tolerance).
Get notified when prices reach the VERY_EXPENSIVE level:
automation:
- alias: "Notify on Very Expensive Electricity"
trigger:
- platform: state
entity_id: sensor.tibber_current_interval_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."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_interval_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 temperatureStart 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_interval_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- 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
- 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
- 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 is automatically detected from your Tibber account
- Display mode (base currency vs. subunit) can be configured in integration options:
Settings > Devices & Services > Tibber Price Information & Ratings > Configure - Supported currencies: EUR, NOK, SEK, DKK, USD, and GBP
- Smart defaults apply: EUR users get subunit (ct), Scandinavian users get base currency (kr)
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📖 View all sensors and attributes →
All sensors feature dynamic icons that change based on price levels, providing instant visual feedback in your dashboards.
Dynamic icons adapt to price levels, trends, and period states - showing CHEAP prices, FALLING trend, and active Best Price Period
📖 Dynamic Icons Guide → | Icon Colors Guide →
The integration provides custom actions (they still appear as services under the hood) for advanced use cases. These actions show up in Home Assistant under Developer Tools → Actions.
tibber_prices.get_chartdata- Get price data in chart-friendly formats for any visualization cardtibber_prices.get_apexcharts_yaml- Generate complete ApexCharts configurationstibber_prices.refresh_user_data- Manually refresh account information
📖 Action documentation and examples →
The integration includes built-in support for creating price visualization cards with automatic Y-axis scaling and color-coded series.
Optional: Dynamic 48h chart with automatic Y-axis scaling - generated via get_apexcharts_yaml action
📖 Chart examples and setup guide →
Contributions are welcome! Please read the Contributing Guidelines and Developer Documentation before submitting pull requests.
- Developer Setup - Get started with DevContainer
- Architecture Guide - Understand the codebase
- Release Management - Release process and versioning
This integration is developed with extensive AI assistance (GitHub Copilot, Claude, and other AI tools). While AI enables rapid development and helps implement complex features, it's possible that some edge cases or subtle bugs may exist that haven't been discovered yet. If you encounter any issues, please open an issue - we'll work on fixing them (with AI help, of course! 😊).
The integration is actively maintained and benefits from AI's ability to quickly understand and implement Home Assistant patterns, maintain consistency across the codebase, and handle complex data transformations. Quality is ensured through automated linting (Ruff), Home Assistant's type checking, and real-world testing.
This project is licensed under the MIT License - see the LICENSE file for details.

