{ "config": { "step": { "user": { "description": "Set up Tibber Price Information & Ratings.\n\nTo generate an API access token, visit https://developer.tibber.com.", "data": { "access_token": "API access token" }, "submit": "Validate Token" }, "select_home": { "description": "Select a home to fetch price information and ratings.", "data": { "home_id": "Home" }, "title": "Pick a Home", "submit": "Select Home" }, "finish": { "description": "Select a home to fetch price information and ratings.", "data": { "home_id": "Home ID" }, "title": "Pick a home", "submit": "Select Home" }, "reauth_confirm": { "title": "Reauthenticate Tibber Price Integration", "description": "The access token for Tibber is no longer valid. Please enter a new API access token to continue using this integration.\n\nTo generate a new API access token, visit https://developer.tibber.com.", "data": { "access_token": "API access token" }, "submit": "Update Token" } }, "error": { "auth": "The Tibber Access Token is invalid.", "connection": "Unable to connect to Tibber. Please check your internet connection.", "unknown": "Unexpected error", "cannot_connect": "Failed to connect", "invalid_access_token": "Invalid access token", "missing_homes": "The new access token does not have access to all configured homes. Please use an access token that has access to the same Tibber homes." }, "abort": { "already_configured": "Integration is already configured", "entry_not_found": "Tibber configuration entry not found.", "setup_complete": "Setup complete! You can change additional options for Tibber Prices in the integration's options after closing this dialog.", "reauth_successful": "Reauthentication successful. The integration has been updated with the new access token." } }, "common": { "step_progress": "Step {step_num} of {total_steps}" }, "config_subentries": { "home": { "initiate_flow": { "user": "Add Tibber Home" }, "title": "Add Tibber Home", "step": { "user": { "title": "Add Tibber Home", "description": "Select a home to add to your Tibber integration.\n\n**Note:** After adding this home, you can add additional homes from the integration's context menu by selecting \"Add Tibber Home\".", "data": { "home_id": "Home" } } }, "error": { "api_error": "Failed to fetch homes from Tibber API" }, "abort": { "no_parent_entry": "Parent entry not found", "no_access_token": "No access token available", "home_not_found": "Selected home not found", "api_error": "Failed to fetch homes from Tibber API", "no_available_homes": "No additional homes available to add. All homes from your Tibber account have already been added." } } }, "options": { "step": { "init": { "title": "General Settings", "description": "{step_progress}\n\nConfigure general settings for Tibber Price Information & Ratings.\n\nUser: {user_login}", "data": { "extended_descriptions": "Show extended descriptions in entity attributes" }, "submit": "Next to Step 2" }, "price_rating": { "title": "Price Rating Thresholds", "description": "{step_progress}\n\nConfigure thresholds for price rating levels (low/normal/high) based on comparison with trailing 24-hour average.", "data": { "price_rating_threshold_low": "Low Rating Threshold (below trailing average)", "price_rating_threshold_high": "High Rating Threshold (above trailing average)" }, "submit": "Next to Step 3" }, "best_price": { "title": "Best Price Period Settings", "description": "{step_progress}\n\nConfigure settings for the Best Price Period binary sensor. This sensor is active during periods with the lowest electricity prices.", "data": { "best_price_min_period_length": "Minimum Period Length", "best_price_flex": "Flexibility: Maximum above minimum price", "best_price_min_distance_from_avg": "Minimum Distance: Required below daily average", "best_price_min_volatility": "Minimum Volatility Filter", "best_price_max_level": "Price Level Filter (Optional)" }, "data_description": { "best_price_min_volatility": "Only show best price periods when today's volatility meets or exceeds this level. Default: 'Low' (show regardless of volatility) - battery optimization is useful even with small price variations. Select 'Moderate'/'High' to only show periods on more volatile days. Works with AND logic: volatility AND level filter must both pass.", "best_price_max_level": "Only show best price periods if at least one interval today has a price level ≤ selected value. Works with AND logic: volatility filter (if set) AND level filter must both pass. Useful to avoid battery charging on expensive days. Select 'Any' to disable this filter." }, "submit": "Next to Step 5" }, "peak_price": { "title": "Peak Price Period Settings", "description": "{step_progress}\n\nConfigure settings for the Peak Price Period binary sensor. This sensor is active during periods with the highest electricity prices.", "data": { "peak_price_min_period_length": "Minimum Period Length", "peak_price_flex": "Flexibility: Maximum below maximum price (negative value)", "peak_price_min_distance_from_avg": "Minimum Distance: Required above daily average", "peak_price_min_volatility": "Minimum Volatility Filter", "peak_price_min_level": "Price Level Filter (Optional)" }, "data_description": { "peak_price_min_volatility": "Only show peak price periods when today's volatility meets or exceeds this level. Default: 'Low' (show regardless of volatility) - peak warnings are relevant even at low spreads since avoiding expensive hours always matters. Select 'Moderate'/'High' to only show peaks on volatile days. Works with AND logic: volatility AND level filter must both pass.", "peak_price_min_level": "Only show peak price periods if at least one interval today has a price level ≥ selected value. Works with AND logic: volatility filter (if set) AND level filter must both pass. Typically set to 'Any' since peak periods are relative to the day. Select 'Any' to disable this filter." }, "submit": "Next to Step 6" }, "price_trend": { "title": "Price Trend Thresholds", "description": "{step_progress}\n\nConfigure thresholds for price trend sensors. These sensors compare the current price with the average of the next N hours to determine if prices are rising, falling, or stable.", "data": { "price_trend_threshold_rising": "Rising Threshold (above current price)", "price_trend_threshold_falling": "Falling Threshold (below current price, negative value)" }, "submit": "Complete Configuration" }, "volatility": { "title": "Price Volatility Thresholds", "description": "{step_progress}\n\nConfigure thresholds for volatility classification. Volatility measures price variation (spread between min/max) in minor currency units. These thresholds are used by volatility sensors and period filters.", "data": { "volatility_threshold_moderate": "Moderate Threshold (spread ≥ this value)", "volatility_threshold_high": "High Threshold (spread ≥ this value)", "volatility_threshold_very_high": "Very High Threshold (spread ≥ this value)" }, "submit": "Next to Step 4" } }, "error": { "auth": "The Tibber Access Token is invalid.", "connection": "Unable to connect to Tibber. Please check your internet connection.", "unknown": "An unexpected error occurred. Please check the logs for details.", "cannot_connect": "Failed to connect", "invalid_access_token": "Invalid access token", "different_home": "The access token is not valid for the home ID this integration is configured for." }, "abort": { "entry_not_found": "Tibber configuration entry not found." } }, "entity": { "sensor": { "current_price": { "name": "Current Electricity Price" }, "next_interval_price": { "name": "Next Price" }, "previous_interval_price": { "name": "Previous Electricity Price" }, "current_hour_average": { "name": "Current Hour Average Price" }, "next_hour_average": { "name": "Next Hour Average Price" }, "price_level": { "name": "Current Price Level", "state": { "very_cheap": "Very Cheap", "cheap": "Cheap", "normal": "Normal", "expensive": "Expensive", "very_expensive": "Very Expensive" } }, "next_interval_price_level": { "name": "Next Price Level", "state": { "very_cheap": "Very Cheap", "cheap": "Cheap", "normal": "Normal", "expensive": "Expensive", "very_expensive": "Very Expensive" } }, "previous_interval_price_level": { "name": "Previous Price Level", "state": { "very_cheap": "Very Cheap", "cheap": "Cheap", "normal": "Normal", "expensive": "Expensive", "very_expensive": "Very Expensive" } }, "current_hour_price_level": { "name": "Current Hour Price Level", "state": { "very_cheap": "Very Cheap", "cheap": "Cheap", "normal": "Normal", "expensive": "Expensive", "very_expensive": "Very Expensive" } }, "next_hour_price_level": { "name": "Next Hour Price Level", "state": { "very_cheap": "Very Cheap", "cheap": "Cheap", "normal": "Normal", "expensive": "Expensive", "very_expensive": "Very Expensive" } }, "lowest_price_today": { "name": "Today's Lowest Price" }, "highest_price_today": { "name": "Today's Highest Price" }, "average_price_today": { "name": "Today's Average Price" }, "lowest_price_tomorrow": { "name": "Tomorrow's Lowest Price" }, "highest_price_tomorrow": { "name": "Tomorrow's Highest Price" }, "average_price_tomorrow": { "name": "Tomorrow's Average Price" }, "trailing_price_average": { "name": "Trailing 24h Average Price" }, "leading_price_average": { "name": "Leading 24h Average Price" }, "trailing_price_min": { "name": "Trailing 24h Minimum Price" }, "trailing_price_max": { "name": "Trailing 24h Maximum Price" }, "leading_price_min": { "name": "Leading 24h Minimum Price" }, "leading_price_max": { "name": "Leading 24h Maximum Price" }, "price_rating": { "name": "Current Price Rating", "state": { "low": "Low", "normal": "Normal", "high": "High" } }, "next_interval_price_rating": { "name": "Next Price Rating", "state": { "low": "Low", "normal": "Normal", "high": "High" } }, "previous_interval_price_rating": { "name": "Previous Price Rating", "state": { "low": "Low", "normal": "Normal", "high": "High" } }, "current_hour_price_rating": { "name": "Current Hour Price Rating", "state": { "low": "Low", "normal": "Normal", "high": "High" } }, "next_hour_price_rating": { "name": "Next Hour Price Rating", "state": { "low": "Low", "normal": "Normal", "high": "High" } }, "next_avg_1h": { "name": "Next 1h Average Price" }, "next_avg_2h": { "name": "Next 2h Average Price" }, "next_avg_3h": { "name": "Next 3h Average Price" }, "next_avg_4h": { "name": "Next 4h Average Price" }, "next_avg_5h": { "name": "Next 5h Average Price" }, "next_avg_6h": { "name": "Next 6h Average Price" }, "next_avg_8h": { "name": "Next 8h Average Price" }, "next_avg_12h": { "name": "Next 12h Average Price" }, "price_trend_1h": { "name": "Price Trend (1h)", "state": { "rising": "Rising", "falling": "Falling", "stable": "Stable" } }, "price_trend_2h": { "name": "Price Trend (2h)", "state": { "rising": "Rising", "falling": "Falling", "stable": "Stable" } }, "price_trend_3h": { "name": "Price Trend (3h)", "state": { "rising": "Rising", "falling": "Falling", "stable": "Stable" } }, "price_trend_4h": { "name": "Price Trend (4h)", "state": { "rising": "Rising", "falling": "Falling", "stable": "Stable" } }, "price_trend_5h": { "name": "Price Trend (5h)", "state": { "rising": "Rising", "falling": "Falling", "stable": "Stable" } }, "price_trend_6h": { "name": "Price Trend (6h)", "state": { "rising": "Rising", "falling": "Falling", "stable": "Stable" } }, "price_trend_8h": { "name": "Price Trend (8h)", "state": { "rising": "Rising", "falling": "Falling", "stable": "Stable" } }, "price_trend_12h": { "name": "Price Trend (12h)", "state": { "rising": "Rising", "falling": "Falling", "stable": "Stable" } }, "daily_rating": { "name": "Daily Price Rating" }, "monthly_rating": { "name": "Monthly Price Rating" }, "data_timestamp": { "name": "Price Data Expiration" }, "today_volatility": { "name": "Today's Price Volatility", "state": { "low": "Low", "moderate": "Moderate", "high": "High", "very_high": "Very High" } }, "tomorrow_volatility": { "name": "Tomorrow's Price Volatility", "state": { "low": "Low", "moderate": "Moderate", "high": "High", "very_high": "Very High" } }, "next_24h_volatility": { "name": "Next 24h Price Volatility", "state": { "low": "Low", "moderate": "Moderate", "high": "High", "very_high": "Very High" } }, "today_tomorrow_volatility": { "name": "Today+Tomorrow Price Volatility", "state": { "low": "Low", "moderate": "Moderate", "high": "High", "very_high": "Very High" } }, "price_forecast": { "name": "Price Forecast" } }, "binary_sensor": { "peak_price_period": { "name": "Peak Price Period" }, "best_price_period": { "name": "Best Price Period" }, "connection": { "name": "Tibber API Connection" }, "tomorrow_data_available": { "name": "Tomorrow's Data Available" } } }, "issues": { "new_homes_available": { "title": "New Tibber homes detected", "description": "We detected {count} new home(s) on your Tibber account: {homes}. You can add them to Home Assistant through the Tibber integration configuration." }, "homes_removed": { "title": "Tibber homes removed", "description": "We detected that {count} home(s) have been removed from your Tibber account: {homes}. Please review your Tibber integration configuration." } }, "services": { "refresh_user_data": { "name": "Refresh User Data", "description": "Forces a refresh of the user data (homes, profile information) from the Tibber API. This can be useful after making changes to your Tibber account or when troubleshooting connectivity issues.", "fields": { "entry_id": { "name": "Entry ID", "description": "The config entry ID for the Tibber integration." } } } }, "selector": { "volatility": { "options": { "low": "Low", "moderate": "Moderate", "high": "High", "very_high": "Very high" } }, "price_level": { "options": { "any": "Any", "very_cheap": "Very cheap", "cheap": "Cheap", "normal": "Normal", "expensive": "Expensive", "very_expensive": "Very expensive" } } }, "title": "Tibber Price Information & Ratings" }