mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-03-29 21:03:40 +00:00
feat(chart_export): migrate sensor config from UI to configuration.yaml
Moved Chart Data Export sensor configuration from config flow textarea to configuration.yaml for better maintainability and consistency with Home Assistant standards. Changes: - __init__.py: Added async_setup() with CONFIG_SCHEMA for tibber_prices.chart_export - const.py: Added DATA_CHART_CONFIG constant for hass.data storage - options_flow.py: Simplified chart_data_export step to info-only page - schemas.py: get_chart_data_export_schema() returns empty schema (no input fields) - sensor/chart_data.py: Reads config from hass.data instead of config_entry.options - All 5 translation files: Updated chart_data_export description with: - Clear heading: "📊 Chart Data Export Sensor" - Intro line explaining sensor purpose - Legacy warning (⚠️) recommending service use - Two valid use cases (✅): attribute-only tools, auto-updating data - One discouraged use case (❌): automations should use service directly - 3-step activation instructions - YAML configuration example with all parameters - Correct default behavior: today+tomorrow, 15-minute intervals, prices only Impact: Users configure chart export in configuration.yaml instead of UI. Sensor remains disabled by default (diagnostic sensor). Config flow shows prominent info page guiding users toward service usage while keeping sensor available for legacy dashboard tools that only read attributes.
This commit is contained in:
parent
294da3960c
commit
e950737478
10 changed files with 91 additions and 141 deletions
|
|
@ -7,7 +7,9 @@ https://github.com/jpawlowski/hass.tibber_prices
|
|||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, Any
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.config_entries import ConfigEntryState
|
||||
from homeassistant.const import CONF_ACCESS_TOKEN, Platform
|
||||
|
|
@ -17,6 +19,7 @@ from homeassistant.loader import async_get_loaded_integration
|
|||
|
||||
from .api import TibberPricesApiClient
|
||||
from .const import (
|
||||
DATA_CHART_CONFIG,
|
||||
DOMAIN,
|
||||
LOGGER,
|
||||
async_load_standard_translations,
|
||||
|
|
@ -36,6 +39,62 @@ PLATFORMS: list[Platform] = [
|
|||
Platform.BINARY_SENSOR,
|
||||
]
|
||||
|
||||
# Configuration schema for configuration.yaml
|
||||
CONFIG_SCHEMA = vol.Schema(
|
||||
{
|
||||
DOMAIN: vol.Schema(
|
||||
{
|
||||
vol.Optional("chart_export"): vol.Schema(
|
||||
{
|
||||
vol.Optional("day"): vol.All(vol.Any(str, list), vol.Coerce(list)),
|
||||
vol.Optional("resolution"): str,
|
||||
vol.Optional("output_format"): str,
|
||||
vol.Optional("minor_currency"): bool,
|
||||
vol.Optional("round_decimals"): vol.All(int, vol.Range(min=0, max=10)),
|
||||
vol.Optional("include_level"): bool,
|
||||
vol.Optional("include_rating_level"): bool,
|
||||
vol.Optional("include_average"): bool,
|
||||
vol.Optional("level_filter"): vol.All(vol.Any(str, list), vol.Coerce(list)),
|
||||
vol.Optional("rating_level_filter"): vol.All(vol.Any(str, list), vol.Coerce(list)),
|
||||
vol.Optional("period_filter"): str,
|
||||
vol.Optional("insert_nulls"): str,
|
||||
vol.Optional("add_trailing_null"): bool,
|
||||
vol.Optional("array_fields"): str,
|
||||
vol.Optional("start_time_field"): str,
|
||||
vol.Optional("end_time_field"): str,
|
||||
vol.Optional("price_field"): str,
|
||||
vol.Optional("level_field"): str,
|
||||
vol.Optional("rating_level_field"): str,
|
||||
vol.Optional("average_field"): str,
|
||||
vol.Optional("data_key"): str,
|
||||
}
|
||||
),
|
||||
}
|
||||
),
|
||||
},
|
||||
extra=vol.ALLOW_EXTRA,
|
||||
)
|
||||
|
||||
|
||||
async def async_setup(hass: HomeAssistant, config: dict[str, Any]) -> bool:
|
||||
"""Set up the Tibber Prices component from configuration.yaml."""
|
||||
# Store chart export configuration in hass.data for sensor access
|
||||
if DOMAIN not in hass.data:
|
||||
hass.data[DOMAIN] = {}
|
||||
|
||||
# Extract chart_export config if present
|
||||
domain_config = config.get(DOMAIN, {})
|
||||
chart_config = domain_config.get("chart_export", {})
|
||||
|
||||
if chart_config:
|
||||
LOGGER.debug("Loaded chart_export configuration from configuration.yaml")
|
||||
hass.data[DOMAIN][DATA_CHART_CONFIG] = chart_config
|
||||
else:
|
||||
LOGGER.debug("No chart_export configuration found in configuration.yaml")
|
||||
hass.data[DOMAIN][DATA_CHART_CONFIG] = {}
|
||||
|
||||
return True
|
||||
|
||||
|
||||
# https://developers.home-assistant.io/docs/config_entries_index/#setting-up-an-entry
|
||||
async def async_setup_entry(
|
||||
|
|
|
|||
|
|
@ -5,8 +5,6 @@ from __future__ import annotations
|
|||
import logging
|
||||
from typing import Any, ClassVar
|
||||
|
||||
import yaml
|
||||
|
||||
from custom_components.tibber_prices.config_flow_handlers.schemas import (
|
||||
get_best_price_schema,
|
||||
get_chart_data_export_schema,
|
||||
|
|
@ -130,58 +128,16 @@ class TibberPricesOptionsFlowHandler(OptionsFlow):
|
|||
)
|
||||
|
||||
async def async_step_chart_data_export(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult:
|
||||
"""Configure chart data export sensor."""
|
||||
errors: dict[str, str] = {}
|
||||
|
||||
"""Info page for chart data export sensor."""
|
||||
if user_input is not None:
|
||||
# Get YAML configuration (default to empty string if not provided)
|
||||
yaml_config = user_input.get("chart_data_config", "")
|
||||
|
||||
if yaml_config.strip(): # Only validate if not empty
|
||||
try:
|
||||
parsed = yaml.safe_load(yaml_config)
|
||||
if parsed is not None and not isinstance(parsed, dict):
|
||||
errors["base"] = "invalid_yaml_structure"
|
||||
except yaml.YAMLError:
|
||||
errors["base"] = "invalid_yaml_syntax"
|
||||
|
||||
# Test service call with parsed parameters
|
||||
if not errors and parsed and isinstance(parsed, dict):
|
||||
try:
|
||||
# Add entry_id to service call data
|
||||
service_data = {**parsed, "entry_id": self.config_entry.entry_id}
|
||||
|
||||
# Call the service to validate parameters
|
||||
await self.hass.services.async_call(
|
||||
domain="tibber_prices",
|
||||
service="get_chartdata",
|
||||
service_data=service_data,
|
||||
blocking=True,
|
||||
return_response=True,
|
||||
)
|
||||
except Exception as ex: # noqa: BLE001
|
||||
# Set error with detailed message directly (no translation key)
|
||||
error_msg = str(ex)
|
||||
_LOGGER.warning(
|
||||
"Service validation failed for chart_data_export: %s",
|
||||
error_msg,
|
||||
)
|
||||
# Use field-level error to show detailed message
|
||||
errors["chart_data_config"] = error_msg
|
||||
|
||||
if not errors:
|
||||
# Explicitly store chart_data_config (including empty string to allow clearing)
|
||||
self._options.update(user_input)
|
||||
# Ensure the key exists even if empty
|
||||
if "chart_data_config" not in user_input:
|
||||
self._options["chart_data_config"] = ""
|
||||
# No validation needed - just an info page
|
||||
return self.async_create_entry(title="", data=self._options)
|
||||
|
||||
# Show info-only form (no input fields)
|
||||
return self.async_show_form(
|
||||
step_id="chart_data_export",
|
||||
data_schema=get_chart_data_export_schema(self.config_entry.options),
|
||||
description_placeholders=self._get_step_description_placeholders("chart_data_export"),
|
||||
errors=errors,
|
||||
)
|
||||
|
||||
async def async_step_volatility(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult:
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ from custom_components.tibber_prices.const import (
|
|||
CONF_BEST_PRICE_MAX_LEVEL_GAP_COUNT,
|
||||
CONF_BEST_PRICE_MIN_DISTANCE_FROM_AVG,
|
||||
CONF_BEST_PRICE_MIN_PERIOD_LENGTH,
|
||||
CONF_CHART_DATA_CONFIG,
|
||||
CONF_ENABLE_MIN_PERIODS_BEST,
|
||||
CONF_ENABLE_MIN_PERIODS_PEAK,
|
||||
CONF_EXTENDED_DESCRIPTIONS,
|
||||
|
|
@ -540,24 +539,7 @@ def get_price_trend_schema(options: Mapping[str, Any]) -> vol.Schema:
|
|||
)
|
||||
|
||||
|
||||
def get_chart_data_export_schema(options: Mapping[str, Any]) -> vol.Schema:
|
||||
"""Return schema for chart data export configuration."""
|
||||
default_yaml = options.get(
|
||||
CONF_CHART_DATA_CONFIG,
|
||||
# Default: Empty string - uses service defaults (today, interval resolution)
|
||||
"",
|
||||
)
|
||||
|
||||
return vol.Schema(
|
||||
{
|
||||
vol.Optional(
|
||||
CONF_CHART_DATA_CONFIG,
|
||||
description={"suggested_value": default_yaml},
|
||||
): TextSelector(
|
||||
TextSelectorConfig(
|
||||
multiline=True,
|
||||
type=TextSelectorType.TEXT,
|
||||
)
|
||||
),
|
||||
}
|
||||
)
|
||||
def get_chart_data_export_schema(_options: Mapping[str, Any]) -> vol.Schema:
|
||||
"""Return schema for chart data export info page (no input fields)."""
|
||||
# Empty schema - this is just an info page now
|
||||
return vol.Schema({})
|
||||
|
|
|
|||
|
|
@ -17,6 +17,10 @@ from homeassistant.const import (
|
|||
from homeassistant.core import HomeAssistant
|
||||
|
||||
DOMAIN = "tibber_prices"
|
||||
LOGGER = logging.getLogger(__package__)
|
||||
|
||||
# Data storage keys
|
||||
DATA_CHART_CONFIG = "chart_config" # Key for chart export config in hass.data
|
||||
|
||||
# Configuration keys
|
||||
CONF_EXTENDED_DESCRIPTIONS = "extended_descriptions"
|
||||
|
|
@ -345,8 +349,6 @@ BINARY_SENSOR_COLOR_MAPPING = {
|
|||
},
|
||||
}
|
||||
|
||||
LOGGER = logging.getLogger(__package__)
|
||||
|
||||
# Path to custom translations directory
|
||||
CUSTOM_TRANSLATIONS_DIR = Path(__file__).parent / "custom_translations"
|
||||
|
||||
|
|
|
|||
|
|
@ -4,9 +4,7 @@ from __future__ import annotations
|
|||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
import yaml
|
||||
|
||||
from custom_components.tibber_prices.const import CONF_CHART_DATA_CONFIG, DOMAIN
|
||||
from custom_components.tibber_prices.const import DATA_CHART_CONFIG, DOMAIN
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from datetime import datetime
|
||||
|
|
@ -22,7 +20,7 @@ async def call_chartdata_service_async(
|
|||
config_entry: TibberPricesConfigEntry,
|
||||
) -> tuple[dict | None, str | None]:
|
||||
"""
|
||||
Call get_chartdata service with user-configured YAML (async).
|
||||
Call get_chartdata service with configuration from configuration.yaml (async).
|
||||
|
||||
Returns:
|
||||
Tuple of (response, error_message).
|
||||
|
|
@ -30,29 +28,12 @@ async def call_chartdata_service_async(
|
|||
If failed: (None, error_string)
|
||||
|
||||
"""
|
||||
# Get user-configured YAML
|
||||
yaml_config = config_entry.options.get(CONF_CHART_DATA_CONFIG, "")
|
||||
# Get configuration from hass.data (loaded from configuration.yaml)
|
||||
domain_data = hass.data.get(DOMAIN, {})
|
||||
chart_config = domain_data.get(DATA_CHART_CONFIG, {})
|
||||
|
||||
# Parse YAML if provided, otherwise use empty dict (service defaults)
|
||||
service_params = {}
|
||||
if yaml_config and yaml_config.strip():
|
||||
try:
|
||||
parsed = yaml.safe_load(yaml_config)
|
||||
# Ensure we have a dict (yaml.safe_load can return str, int, etc.)
|
||||
if isinstance(parsed, dict):
|
||||
service_params = parsed
|
||||
else:
|
||||
coordinator.logger.warning(
|
||||
"YAML configuration must be a dictionary, got %s. Using service defaults.",
|
||||
type(parsed).__name__,
|
||||
)
|
||||
service_params = {}
|
||||
except yaml.YAMLError as err:
|
||||
coordinator.logger.warning(
|
||||
"Invalid chart data YAML configuration: %s. Using service defaults.",
|
||||
err,
|
||||
)
|
||||
service_params = {} # Fall back to service defaults
|
||||
# Use chart_config directly (already a dict from async_setup)
|
||||
service_params = dict(chart_config) if chart_config else {}
|
||||
|
||||
# Add required entry_id parameter
|
||||
service_params["entry_id"] = config_entry.entry_id
|
||||
|
|
|
|||
|
|
@ -186,14 +186,8 @@
|
|||
"submit": "Weiter →"
|
||||
},
|
||||
"chart_data_export": {
|
||||
"title": "📊 Diagramm-Datenexport",
|
||||
"description": "_{step_progress}_\n\n⚠️ **Dieser Schritt ist optional:** Konfiguriere nur, wenn du einen diagnostischen Sensor für ältere Dashboard-Tools benötigst, die KEINE Services aufrufen können.\n\n⚠️ **WICHTIG: Legacy-Feature**\nDieser Sensor existiert nur für Abwärtskompatibilität mit älteren Tools, die Daten nur aus Entity-Attributen lesen können.\n\n**Für neue Integrationen nutze stattdessen direkt den `tibber_prices.get_chartdata` Service** - er ist flexibler, effizienter und der empfohlene Home Assistant Ansatz.\n\n**Wann diesen Sensor nutzen:**\n✅ NUR wenn dein Dashboard-Tool NUR Attribute lesen kann (z.B. ältere Versionen)\n❌ NICHT für neue Integrationen - nutze den Service direkt\n\n**Was ist dieser Sensor?**\nEin diagnostischer Sensor, der den `tibber_prices.get_chartdata` Service mit deinen YAML-Parametern aufruft und das Ergebnis als Attribute bereitstellt.\n\n**Wie nutzen:**\n1. Öffne Settings → Devices & Services → Tibber Prices\n2. Wähle dein Home\n3. Finde 'Diagramm-Datenexport' im Diagnose-Bereich\n4. Aktiviere den Sensor (standardmäßig deaktiviert)\n5. Nutze `homeassistant.update_entity` um Daten manuell zu aktualisieren\n\n**Konfigurationsanleitung:**\n1. Teste deinen Service-Aufruf in Entwicklerwerkzeuge → Services → `tibber_prices.get_chartdata`\n2. Kopiere das YAML aus dem `data:` Bereich (ohne `entry_id`)\n3. Füge es unten ein (nutze Shift+Enter oder Strg+Enter für neue Zeilen)\n\n**Beispiel-YAML:**\n```yaml\nday:\n - today\n - tomorrow\ninclude_level: true\ninclude_rating_level: true\n```\n\n**Hinweis:** Leer lassen oder diesen Schritt überspringen, wenn du den Service direkt nutzt (empfohlen).",
|
||||
"data": {
|
||||
"chart_data_config": "Service-Konfiguration (YAML)"
|
||||
},
|
||||
"data_description": {
|
||||
"chart_data_config": "YAML-Konfiguration für get_chartdata Service. Unterstützte Parameter: day (Liste aus yesterday/today/tomorrow), resolution (interval/hourly), output_format, include_level, include_rating_level, include_average, und viele mehr. Siehe Service-Dokumentation für vollständige Liste. Leer lassen für Standard-Einstellungen (today, interval resolution, array of objects)."
|
||||
},
|
||||
"title": "📊 Chart Data Export Sensor",
|
||||
"description": "_{step_progress}_\n\nDer Chart Data Export Sensor stellt Preisdaten als Sensor-Attribute zur Verfügung.\n\n⚠️ **Hinweis:** Dieser Sensor ist ein Legacy-Feature für Kompatibilität mit älteren Tools.\n\n**Für neue Setups empfohlen:** Nutze den `tibber_prices.get_chartdata` **Service direkt** - er ist flexibler, effizienter und der moderne Home Assistant-Ansatz.\n\n**Wann dieser Sensor sinnvoll ist:**\n\n✅ Dein Dashboard-Tool kann **nur** Attribute lesen (keine Service-Aufrufe)\n✅ Du brauchst statische Daten, die automatisch aktualisiert werden\n❌ **Nicht für Automationen:** Nutze dort direkt `tibber_prices.get_chartdata` - flexibler und effizienter!\n\n---\n\n**Sensor aktivieren:**\n\n1. Öffne **Einstellungen → Geräte & Dienste → Tibber Prices**\n2. Wähle dein Home → Finde **'Chart Data Export'** (Diagnose-Bereich)\n3. **Aktiviere den Sensor** (standardmäßig deaktiviert)\n\n**Konfiguration (optional):**\n\nStandardeinstellung funktioniert sofort (heute+morgen, 15-Minuten-Intervalle, reine Preise).\n\nFür Anpassungen füge in **`configuration.yaml`** ein:\n\n```yaml\ntibber_prices:\n chart_export:\n day:\n - today\n - tomorrow\n include_level: true\n include_rating_level: true\n```\n\n**Alle Parameter:** Siehe `tibber_prices.get_chartdata` Service-Dokumentation",
|
||||
"submit": "Abschließen ✓"
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -171,14 +171,8 @@
|
|||
"submit": "Continue →"
|
||||
},
|
||||
"chart_data_export": {
|
||||
"title": "📊 Chart Data Export",
|
||||
"description": "_{step_progress}_\n\n**⚠️ This step is optional** and only relevant if you plan to enable the **Chart Data Export** diagnostic sensor.\n\n**⚠️ IMPORTANT: Legacy Feature**\nThis sensor exists for **backwards compatibility** with tools that can only read entity attributes (e.g., older ApexCharts versions). **For new integrations, use the `tibber_prices.get_chartdata` service directly** - it's more flexible, efficient, and the recommended Home Assistant approach.\n\n**When to use this sensor:**\n- ✅ Your dashboard tool can ONLY read attributes (not call services)\n- ✅ You need static data that updates automatically\n- ❌ NOT recommended for new integrations that support service calls\n\n**What is this sensor?**\nThis sensor calls the `tibber_prices.get_chartdata` service with your custom YAML parameters and exposes the result as entity attributes.\n\n**How to use it:**\n1. **Complete this configuration** (or leave empty for service defaults)\n2. Go to **Settings → Devices & Services → Tibber Prices**\n3. Click on your home → Find **'Chart Data Export'** in the **Diagnostic** section\n4. Enable the sensor - it will automatically call the service with your configuration\n5. Use the sensor's attributes in your dashboard cards\n\n**Configuration guide:**\n1. Test your service call in **Developer Tools → Services → `tibber_prices.get_chartdata`**\n2. Copy the YAML from the `data:` section (without `entry_id`)\n3. Paste it below (use **Shift+Enter** or **Ctrl+Enter** for new lines, NOT just Enter)\n\n**Example YAML:**\n```yaml\nday:\n - today\n - tomorrow\ninclude_level: true\ninclude_rating_level: true\n```\n\n**Note:** Leave empty to use service defaults or skip this feature if you don't need the sensor.",
|
||||
"data": {
|
||||
"chart_data_config": "Service Configuration (YAML)"
|
||||
},
|
||||
"data_description": {
|
||||
"chart_data_config": "YAML configuration for get_chartdata service. Supported parameters: day (list of yesterday/today/tomorrow), resolution (interval/hourly), output_format, include_level, include_rating_level, include_average, and many more. See service documentation for full list. Leave empty to use service defaults (today, interval resolution, array of objects)."
|
||||
},
|
||||
"title": "📊 Chart Data Export Sensor",
|
||||
"description": "_{step_progress}_\n\nThe Chart Data Export Sensor provides price data as sensor attributes.\n\n⚠️ **Note:** This sensor is a legacy feature for compatibility with older tools.\n\n**Recommended for new setups:** Use the `tibber_prices.get_chartdata` **service directly** - it's more flexible, efficient, and the modern Home Assistant approach.\n\n**When this sensor makes sense:**\n\n✅ Your dashboard tool can **only** read attributes (no service calls)\n✅ You need static data that updates automatically\n❌ **Not for automations:** Use `tibber_prices.get_chartdata` directly there - more flexible and efficient!\n\n---\n\n**Enable the sensor:**\n\n1. Open **Settings → Devices & Services → Tibber Prices**\n2. Select your home → Find **'Chart Data Export'** (Diagnostic section)\n3. **Enable the sensor** (disabled by default)\n\n**Configuration (optional):**\n\nDefault settings work out-of-the-box (today+tomorrow, 15-minute intervals, prices only).\n\nFor customization, add to **`configuration.yaml`**:\n\n```yaml\ntibber_prices:\n chart_export:\n day:\n - today\n - tomorrow\n include_level: true\n include_rating_level: true\n```\n\n**All parameters:** See `tibber_prices.get_chartdata` service documentation",
|
||||
"submit": "Complete ✓"
|
||||
},
|
||||
"volatility": {
|
||||
|
|
|
|||
|
|
@ -186,14 +186,8 @@
|
|||
"submit": "Fortsett →"
|
||||
},
|
||||
"chart_data_export": {
|
||||
"title": "Diagramdataeksport",
|
||||
"description": "{step_progress}\n\n⚠️ **Dette trinnet er valgfritt:** Konfigurer bare hvis du trenger en diagnostisk sensor for eldre dashboardverktøy som IKKE kan kalle tjenester.\n\n⚠️ **VIKTIG: Legacy-funksjon**\nDenne sensoren finnes kun for bakoverkompatibilitet med eldre verktøy som bare kan lese data fra entitetsattributter.\n\n**For nye integrasjoner, bruk `tibber_prices.get_chartdata` tjenesten direkte** - den er mer fleksibel, effektiv og den anbefalte Home Assistant-tilnærmingen.\n\n**Når bruke denne sensoren:**\n✅ KUN hvis dashboardverktøyet ditt KUN kan lese attributter (f.eks. eldre versjoner)\n❌ IKKE for nye integrasjoner - bruk tjenesten direkte\n\n**Hva er denne sensoren?**\nEn diagnostisk sensor som kaller `tibber_prices.get_chartdata` tjenesten med dine YAML-parametere og gir resultatet som attributter.\n\n**Hvordan bruke:**\n1. Åpne Innstillinger → Enheter og tjenester → Tibber Prices\n2. Velg ditt hjem\n3. Finn 'Diagramdataeksport' i Diagnostikk-seksjonen\n4. Aktiver sensoren (deaktivert som standard)\n5. Bruk `homeassistant.update_entity` for å oppdatere data manuelt\n\n**Konfigurasjonsveiledning:**\n1. Test tjenestekallet ditt i Utviklerverktøy → Tjenester → `tibber_prices.get_chartdata`\n2. Kopier YAML fra `data:` seksjonen (uten `entry_id`)\n3. Lim det inn nedenfor (bruk Shift+Enter eller Ctrl+Enter for nye linjer)\n\n**Eksempel YAML:**\n```yaml\nday:\n - today\n - tomorrow\ninclude_level: true\ninclude_rating_level: true\n```\n\n**Merk:** La være tomt eller hopp over dette trinnet hvis du bruker tjenesten direkte (anbefalt).",
|
||||
"data": {
|
||||
"chart_data_config": "Tjenestekonfigurasjon (YAML)"
|
||||
},
|
||||
"data_description": {
|
||||
"chart_data_config": "YAML-konfigurasjon for `get_chartdata` tjeneste. Støttede parametere: day (liste med yesterday/today/tomorrow), resolution (interval/hourly), output_format, include_level, include_rating_level, include_average, og mange flere. Se tjenestens dokumentasjon for full liste. La være tomt for å bruke standardinnstillinger (today, interval resolution, array of objects)."
|
||||
},
|
||||
"title": "📊 Diagram-dataeksport Sensor",
|
||||
"description": "_{step_progress}_\n\nDiagram-dataeksport-sensoren gir prisdata som sensorattributter.\n\n⚠️ **Merk:** Denne sensoren er en legacy-funksjon for kompatibilitet med eldre verktøy.\n\n**Anbefalt for nye oppsett:** Bruk `tibber_prices.get_chartdata` **tjenesten direkte** - den er mer fleksibel, effektiv og den moderne Home Assistant-tilnærmingen.\n\n**Når denne sensoren gir mening:**\n\n✅ Dashboardverktøyet ditt kan **kun** lese attributter (ingen tjenestekall)\n✅ Du trenger statiske data som oppdateres automatisk\n❌ **Ikke for automatiseringer:** Bruk `tibber_prices.get_chartdata` direkte der - mer fleksibel og effektiv!\n\n---\n\n**Aktiver sensoren:**\n\n1. Åpne **Innstillinger → Enheter og tjenester → Tibber Prices**\n2. Velg ditt hjem → Finn **'Diagramdataeksport'** (Diagnostikk-seksjonen)\n3. **Aktiver sensoren** (deaktivert som standard)\n\n**Konfigurasjon (valgfritt):**\n\nStandardinnstillinger fungerer umiddelbart (i dag+i morgen, 15-minutters intervaller, bare priser).\n\nFor tilpasning, legg til i **`configuration.yaml`**:\n\n```yaml\ntibber_prices:\n chart_export:\n day:\n - today\n - tomorrow\n include_level: true\n include_rating_level: true\n```\n\n**Alle parametere:** Se `tibber_prices.get_chartdata` tjenestens dokumentasjon",
|
||||
"submit": "Fullfør ✓"
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -186,15 +186,9 @@
|
|||
"submit": "Doorgaan →"
|
||||
},
|
||||
"chart_data_export": {
|
||||
"title": "Grafiek Data Export",
|
||||
"description": "{step_progress}\n\n⚠️ **Deze stap is optioneel:** Configureer alleen als je een diagnostische sensor nodig hebt voor oudere dashboardtools die GEEN services kunnen aanroepen.\n\n⚠️ **BELANGRIJK: Legacy-functie**\nDeze sensor bestaat alleen voor achterwaartse compatibiliteit met oudere tools die alleen data kunnen lezen uit entiteitsattributen.\n\n**Voor nieuwe integraties, gebruik de `tibber_prices.get_chartdata` service direct** - deze is flexibeler, efficiënter en de aanbevolen Home Assistant-aanpak.\n\n**Wanneer deze sensor gebruiken:**\n✅ ALLEEN als jouw dashboardtool ALLEEN attributen kan lezen (bijv. oudere versies)\n❌ NIET voor nieuwe integraties - gebruik de service direct\n\n**Wat is deze sensor?**\nEen diagnostische sensor die de `tibber_prices.get_chartdata` service aanroept met jouw YAML-parameters en het resultaat beschikbaar stelt als attributen.\n\n**Hoe te gebruiken:**\n1. Open Instellingen → Apparaten en services → Tibber Prices\n2. Selecteer jouw woning\n3. Vind 'Grafiek Data Export' in de Diagnostiek-sectie\n4. Activeer de sensor (standaard uitgeschakeld)\n5. Gebruik `homeassistant.update_entity` om data handmatig bij te werken\n\n**Configuratiehandleiding:**\n1. Test je service-aanroep in Ontwikkelaarstools → Services → `tibber_prices.get_chartdata`\n2. Kopieer de YAML uit de `data:` sectie (zonder `entry_id`)\n3. Plak het hieronder (gebruik Shift+Enter of Ctrl+Enter voor nieuwe regels)\n\n**Voorbeeld YAML:**\n```yaml\nday:\n - today\n - tomorrow\ninclude_level: true\ninclude_rating_level: true\n```\n\n**Opmerking:** Laat leeg of sla deze stap over als je de service direct gebruikt (aanbevolen).",
|
||||
"data": {
|
||||
"chart_data_config": "Serviceconfiguratie (YAML)"
|
||||
},
|
||||
"data_description": {
|
||||
"chart_data_config": "YAML-configuratie voor `get_chartdata` service. Ondersteunde parameters: day (lijst met yesterday/today/tomorrow), resolution (interval/hourly), output_format, include_level, include_rating_level, include_average, en nog veel meer. Zie servicedocumentatie voor volledige lijst. Laat leeg om standaardinstellingen te gebruiken (today, interval resolution, array of objects)."
|
||||
},
|
||||
"submit": "Voltooiën ✓"
|
||||
"title": "📊 Grafiek-data-export Sensor",
|
||||
"description": "_{step_progress}_\n\nDe Grafiek-data-export sensor biedt prijsgegevens als sensorattributen.\n\n⚠️ **Let op:** Deze sensor is een legacy-functie voor compatibiliteit met oudere tools.\n\n**Aanbevolen voor nieuwe setups:** Gebruik de `tibber_prices.get_chartdata` **service direct** - deze is flexibeler, efficiënter en de moderne Home Assistant-aanpak.\n\n**Wanneer deze sensor zinvol is:**\n\n✅ Je dashboardtool kan **alleen** attributen lezen (geen service-aanroepen)\n✅ Je hebt statische data nodig die automatisch bijwerkt\n❌ **Niet voor automatiseringen:** Gebruik `tibber_prices.get_chartdata` daar direct - flexibeler en efficiënter!\n\n---\n\n**Activeer de sensor:**\n\n1. Open **Instellingen → Apparaten en diensten → Tibber Prices**\n2. Selecteer je thuis → Vind **'Grafiekgegevensexport'** (Diagnostiek-sectie)\n3. **Activeer de sensor** (standaard uitgeschakeld)\n\n**Configuratie (optioneel):**\n\nStandaardinstellingen werken direct (vandaag+morgen, 15-minuten intervallen, alleen prijzen).\n\nVoor aanpassing, voeg toe aan **`configuration.yaml`**:\n\n```yaml\ntibber_prices:\n chart_export:\n day:\n - today\n - tomorrow\n include_level: true\n include_rating_level: true\n```\n\n**Alle parameters:** Zie `tibber_prices.get_chartdata` servicedocumentatie",
|
||||
"submit": "Voltooien ✓"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
|
|
|||
|
|
@ -186,15 +186,9 @@
|
|||
"submit": "Fortsätt →"
|
||||
},
|
||||
"chart_data_export": {
|
||||
"title": "Diagramdataexport",
|
||||
"description": "{step_progress}\n\n⚠️ **Detta steg är valfritt:** Konfigurera bara om du behöver en diagnostisk sensor för äldre instrumentpanelsverktyg som INTE kan anropa tjänster.\n\n⚠️ **VIKTIGT: Legacy-funktion**\nDenna sensor finns endast för bakåtkompatibilitet med äldre verktyg som bara kan läsa data från entitetsattribut.\n\n**För nya integrationer, använd `tibber_prices.get_chartdata` tjänsten direkt** - den är mer flexibel, effektiv och den rekommenderade Home Assistant-metoden.\n\n**När använda denna sensor:**\n✅ ENDAST om ditt instrumentpanelsverktyg ENDAST kan läsa attribut (t.ex. äldre versioner)\n❌ INTE för nya integrationer - använd tjänsten direkt\n\n**Vad är denna sensor?**\nEn diagnostisk sensor som anropar `tibber_prices.get_chartdata` tjänsten med dina YAML-parametrar och tillhandahåller resultatet som attribut.\n\n**Hur använda:**\n1. Öppna Inställningar → Enheter och tjänster → Tibber Prices\n2. Välj ditt hem\n3. Hitta 'Diagramdataexport' i Diagnostik-sektionen\n4. Aktivera sensorn (inaktiverad som standard)\n5. Använd `homeassistant.update_entity` för att uppdatera data manuellt\n\n**Konfigurationsguide:**\n1. Testa ditt tjänsteanrop i Utvecklarverktyg → Tjänster → `tibber_prices.get_chartdata`\n2. Kopiera YAML från `data:` sektionen (utan `entry_id`)\n3. Klistra in det nedan (använd Shift+Enter eller Ctrl+Enter för nya rader)\n\n**Exempel YAML:**\n```yaml\nday:\n - today\n - tomorrow\ninclude_level: true\ninclude_rating_level: true\n```\n\n**Observera:** Lämna tomt eller hoppa över detta steg om du använder tjänsten direkt (rekommenderat).",
|
||||
"data": {
|
||||
"chart_data_config": "Tjänstkonfiguration (YAML)"
|
||||
},
|
||||
"data_description": {
|
||||
"chart_data_config": "YAML-konfiguration för `get_chartdata` tjänst. Stödda parametrar: day (lista med yesterday/today/tomorrow), resolution (interval/hourly), output_format, include_level, include_rating_level, include_average, och många fler. Se tjänstdokumentation för fullständig lista. Lämna tomt för att använda standardinställningar (today, interval resolution, array of objects)."
|
||||
},
|
||||
"submit": "Slutför →"
|
||||
"title": "📊 Diagram-dataexport Sensor",
|
||||
"description": "_{step_progress}_\n\nDiagram-dataexport-sensorn tillhandahåller prisdata som sensorattribut.\n\n⚠️ **Observera:** Denna sensor är en legacy-funktion för kompatibilitet med äldre verktyg.\n\n**Rekommenderat för nya installationer:** Använd `tibber_prices.get_chartdata` **tjänsten direkt** - den är mer flexibel, effektiv och det moderna Home Assistant-tillvägagångssättet.\n\n**När denna sensor är meningsfull:**\n\n✅ Ditt dashboardverktyg kan **endast** läsa attribut (inga tjänsteanrop)\n✅ Du behöver statiska data som uppdateras automatiskt\n❌ **Inte för automationer:** Använd `tibber_prices.get_chartdata` direkt där - mer flexibel och effektiv!\n\n---\n\n**Aktivera sensorn:**\n\n1. Öppna **Inställningar → Enheter och tjänster → Tibber Prices**\n2. Välj ditt hem → Hitta **'Diagramdataexport'** (Diagnostik-sektionen)\n3. **Aktivera sensorn** (inaktiverad som standard)\n\n**Konfiguration (valfritt):**\n\nStandardinställningar fungerar direkt (idag+imorgon, 15-minuters intervaller, endast priser).\n\nFör anpassning, lägg till i **`configuration.yaml`**:\n\n```yaml\ntibber_prices:\n chart_export:\n day:\n - today\n - tomorrow\n include_level: true\n include_rating_level: true\n```\n\n**Alla parametrar:** Se `tibber_prices.get_chartdata` tjänstdokumentation",
|
||||
"submit": "Slutför ✓"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
|
|
|
|||
Loading…
Reference in a new issue