diff --git a/custom_components/tibber_prices/__init__.py b/custom_components/tibber_prices/__init__.py index c64ea61..7a6413c 100644 --- a/custom_components/tibber_prices/__init__.py +++ b/custom_components/tibber_prices/__init__.py @@ -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( diff --git a/custom_components/tibber_prices/config_flow_handlers/options_flow.py b/custom_components/tibber_prices/config_flow_handlers/options_flow.py index 3beae7f..ab01234 100644 --- a/custom_components/tibber_prices/config_flow_handlers/options_flow.py +++ b/custom_components/tibber_prices/config_flow_handlers/options_flow.py @@ -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"] = "" - return self.async_create_entry(title="", data=self._options) + # 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: diff --git a/custom_components/tibber_prices/config_flow_handlers/schemas.py b/custom_components/tibber_prices/config_flow_handlers/schemas.py index 119e617..a29d117 100644 --- a/custom_components/tibber_prices/config_flow_handlers/schemas.py +++ b/custom_components/tibber_prices/config_flow_handlers/schemas.py @@ -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({}) diff --git a/custom_components/tibber_prices/const.py b/custom_components/tibber_prices/const.py index 9513da3..d76b633 100644 --- a/custom_components/tibber_prices/const.py +++ b/custom_components/tibber_prices/const.py @@ -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" diff --git a/custom_components/tibber_prices/sensor/chart_data.py b/custom_components/tibber_prices/sensor/chart_data.py index 77ffba5..768afd4 100644 --- a/custom_components/tibber_prices/sensor/chart_data.py +++ b/custom_components/tibber_prices/sensor/chart_data.py @@ -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 diff --git a/custom_components/tibber_prices/translations/de.json b/custom_components/tibber_prices/translations/de.json index 02753de..7420cde 100644 --- a/custom_components/tibber_prices/translations/de.json +++ b/custom_components/tibber_prices/translations/de.json @@ -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 ✓" } }, diff --git a/custom_components/tibber_prices/translations/en.json b/custom_components/tibber_prices/translations/en.json index 3bf1848..eee6ede 100644 --- a/custom_components/tibber_prices/translations/en.json +++ b/custom_components/tibber_prices/translations/en.json @@ -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": { diff --git a/custom_components/tibber_prices/translations/nb.json b/custom_components/tibber_prices/translations/nb.json index abe1728..282e2b2 100644 --- a/custom_components/tibber_prices/translations/nb.json +++ b/custom_components/tibber_prices/translations/nb.json @@ -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 ✓" } }, diff --git a/custom_components/tibber_prices/translations/nl.json b/custom_components/tibber_prices/translations/nl.json index 9db2e1a..3159412 100644 --- a/custom_components/tibber_prices/translations/nl.json +++ b/custom_components/tibber_prices/translations/nl.json @@ -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": { diff --git a/custom_components/tibber_prices/translations/sv.json b/custom_components/tibber_prices/translations/sv.json index 680aed5..fe63903 100644 --- a/custom_components/tibber_prices/translations/sv.json +++ b/custom_components/tibber_prices/translations/sv.json @@ -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": {