mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-03-29 21:03:40 +00:00
Complete terminology migration from confusing "major/minor" to clearer
"base/subunit" currency naming throughout entire codebase, translations,
documentation, tests, and services.
BREAKING CHANGES:
1. **Service API Parameters Renamed**:
- `get_chartdata`: `minor_currency` → `subunit_currency`
- `get_apexcharts_yaml`: Updated service_data references from
`minor_currency: true` to `subunit_currency: true`
- All automations/scripts using these parameters MUST be updated
2. **Configuration Option Key Changed**:
- Config entry option: Display mode setting now uses new terminology
- Internal key: `currency_display_mode` values remain "base"/"subunit"
- User-facing labels updated in all 5 languages (de, en, nb, nl, sv)
3. **Sensor Entity Key Renamed**:
- `current_interval_price_major` → `current_interval_price_base`
- Entity ID changes: `sensor.tibber_home_current_interval_price_major`
→ `sensor.tibber_home_current_interval_price_base`
- Energy Dashboard configurations MUST update entity references
4. **Function Signatures Changed**:
- `format_price_unit_major()` → `format_price_unit_base()`
- `format_price_unit_minor()` → `format_price_unit_subunit()`
- `get_price_value()`: Parameter `in_euro` deprecated in favor of
`config_entry` (backward compatible for now)
5. **Translation Keys Renamed**:
- All language files: Sensor translation key
`current_interval_price_major` → `current_interval_price_base`
- Service parameter descriptions updated in all languages
- Selector options updated: Display mode dropdown values
Changes by Category:
**Core Code (Python)**:
- const.py: Renamed all format_price_unit_*() functions, updated docstrings
- entity_utils/helpers.py: Updated get_price_value() with config-driven
conversion and backward-compatible in_euro parameter
- sensor/__init__.py: Added display mode filtering for base currency sensor
- sensor/core.py:
* Implemented suggested_display_precision property for dynamic decimal places
* Updated native_unit_of_measurement to use get_display_unit_string()
* Updated all price conversion calls to use config_entry parameter
- sensor/definitions.py: Renamed entity key and updated all
suggested_display_precision values (2 decimals for most sensors)
- sensor/calculators/*.py: Updated all price conversion calls (8 calculators)
- sensor/helpers.py: Updated aggregate_price_data() signature with config_entry
- sensor/attributes/future.py: Updated future price attributes conversion
**Services**:
- services/chartdata.py: Renamed parameter minor_currency → subunit_currency
throughout (53 occurrences), updated metadata calculation
- services/apexcharts.py: Updated service_data references in generated YAML
- services/formatters.py: Renamed parameter use_minor_currency →
use_subunit_currency in aggregate_hourly_exact() and get_period_data()
- sensor/chart_metadata.py: Updated default parameter name
**Translations (5 Languages)**:
- All /translations/*.json:
* Added new config step "display_settings" with comprehensive explanations
* Renamed current_interval_price_major → current_interval_price_base
* Updated service parameter descriptions (subunit_currency)
* Added selector.currency_display_mode.options with translated labels
- All /custom_translations/*.json:
* Renamed sensor description keys
* Updated chart_metadata usage_tips references
**Documentation**:
- docs/user/docs/actions.md: Updated parameter table and feature list
- docs/user/versioned_docs/version-v0.21.0/actions.md: Backported changes
**Tests**:
- Updated 7 test files with renamed parameters and conversion logic:
* test_connect_segments.py: Renamed minor/major to subunit/base
* test_period_data_format.py: Updated period price conversion tests
* test_avg_none_fallback.py: Fixed tuple unpacking for new return format
* test_best_price_e2e.py: Added config_entry parameter to all calls
* test_cache_validity.py: Fixed cache data structure (price_info key)
* test_coordinator_shutdown.py: Added repair_manager mock
* test_midnight_turnover.py: Added config_entry parameter
* test_peak_price_e2e.py: Added config_entry parameter, fixed price_avg → price_mean
* test_percentage_calculations.py: Added config_entry mock
**Coordinator/Period Calculation**:
- coordinator/periods.py: Added config_entry parameter to
calculate_periods_with_relaxation() calls (2 locations)
Migration Guide:
1. **Update Service Calls in Automations/Scripts**:
\`\`\`yaml
# Before:
service: tibber_prices.get_chartdata
data:
minor_currency: true
# After:
service: tibber_prices.get_chartdata
data:
subunit_currency: true
\`\`\`
2. **Update Energy Dashboard Configuration**:
- Settings → Dashboards → Energy
- Replace sensor entity:
`sensor.tibber_home_current_interval_price_major` →
`sensor.tibber_home_current_interval_price_base`
3. **Review Integration Configuration**:
- Settings → Devices & Services → Tibber Prices → Configure
- New "Currency Display Settings" step added
- Default mode depends on currency (EUR → subunit, Scandinavian → base)
Rationale:
The "major/minor" terminology was confusing and didn't clearly communicate:
- **Major** → Unclear if this means "primary" or "large value"
- **Minor** → Easily confused with "less important" rather than "smaller unit"
New terminology is precise and self-explanatory:
- **Base currency** → Standard ISO currency (€, kr, $, £)
- **Subunit currency** → Fractional unit (ct, øre, ¢, p)
This aligns with:
- International terminology (ISO 4217 standard)
- Banking/financial industry conventions
- User expectations from payment processing systems
Impact: Aligns currency terminology with international standards. Users must
update service calls, automations, and Energy Dashboard configuration after
upgrade.
Refs: User feedback session (December 2025) identified terminology confusion
1151 lines
68 KiB
JSON
1151 lines
68 KiB
JSON
{
|
||
"config": {
|
||
"step": {
|
||
"account_choice": {
|
||
"title": "Konto wählen",
|
||
"description": "Du kannst ein weiteres Zuhause aus einem bestehenden Tibber-Konto hinzufügen oder einen neuen API-Token für ein anderes Konto eingeben.",
|
||
"data": {
|
||
"account_choice": "Konto"
|
||
},
|
||
"submit": "Weiter →"
|
||
},
|
||
"new_token": {
|
||
"title": "API-Token eingeben",
|
||
"description": "Richte Tibber Preisinformationen & Bewertungen ein.\n\nUm einen API-Zugriffstoken zu generieren, besuche https://developer.tibber.com.",
|
||
"data": {
|
||
"access_token": "API-Zugriffstoken"
|
||
},
|
||
"submit": "Token validieren"
|
||
},
|
||
"user": {
|
||
"description": "Richte Tibber Preisinformationen & Bewertungen ein.\n\nUm einen API-Zugriffstoken zu generieren, besuche https://developer.tibber.com.",
|
||
"data": {
|
||
"access_token": "API-Zugriffstoken"
|
||
},
|
||
"submit": "Token validieren"
|
||
},
|
||
"select_home": {
|
||
"description": "Wähle ein Zuhause, um Preisinformationen und Bewertungen abzurufen.",
|
||
"data": {
|
||
"home_id": "Zuhause"
|
||
},
|
||
"title": "Wähle ein Zuhause",
|
||
"submit": "Zuhause auswählen"
|
||
},
|
||
"finish": {
|
||
"description": "Wähle ein Zuhause, um Preisinformationen und Bewertungen abzurufen.",
|
||
"data": {
|
||
"home_id": "Home ID"
|
||
},
|
||
"title": "Wähle ein Zuhause",
|
||
"submit": "Zuhause auswählen"
|
||
},
|
||
"reauth_confirm": {
|
||
"title": "Tibber Preis-Integration erneut authentifizieren",
|
||
"description": "Der Zugriffstoken für Tibber ist nicht mehr gültig. Bitte gib einen neuen API-Zugriffstoken ein, um diese Integration weiter zu nutzen.\n\nUm einen neuen API-Zugriffstoken zu generieren, besuche https://developer.tibber.com.",
|
||
"data": {
|
||
"access_token": "API-Zugriffstoken"
|
||
},
|
||
"submit": "Token aktualisieren"
|
||
}
|
||
},
|
||
"error": {
|
||
"auth": "Der Tibber Zugangstoken ist ungültig.",
|
||
"connection": "Verbindung zu Tibber nicht möglich. Bitte überprüfe deine Internetverbindung.",
|
||
"unknown": "Ein unerwarteter Fehler ist aufgetreten. Bitte überprüfe die Logs für Details.",
|
||
"cannot_connect": "Verbindung fehlgeschlagen",
|
||
"invalid_access_token": "Ungültiges Zugriffstoken",
|
||
"missing_homes": "Der neue Zugriffstoken hat keinen Zugriff auf alle konfigurierten Zuhause. Bitte verwende einen Zugriffstoken, der Zugriff auf die gleichen Tibber-Zuhause hat.",
|
||
"home_already_configured": "Dieses Zuhause ist bereits in einem anderen Eintrag konfiguriert. Jedes Zuhause kann nur einmal konfiguriert werden.",
|
||
"no_active_subscription": "Dieses Zuhause hat keinen aktiven Tibber-Vertrag. Nur Häuser mit aktivem Stromvertrag können zu Home Assistant hinzugefügt werden.",
|
||
"subscription_expired": "Der Tibber-Vertrag für dieses Zuhause ist abgelaufen. Nur Häuser mit aktivem oder zukünftigem Stromvertrag können zu Home Assistant hinzugefügt werden.",
|
||
"future_subscription_warning": "Hinweis: Der Tibber-Vertrag für dieses Zuhause hat noch nicht begonnen. Die Funktionalität ist möglicherweise eingeschränkt, bis der Vertrag aktiv wird.",
|
||
"invalid_yaml_syntax": "Ungültige YAML-Syntax. Bitte überprüfe Einrückungen, Doppelpunkte und Sonderzeichen.",
|
||
"invalid_yaml_structure": "YAML muss ein Dictionary/Objekt sein (Schlüssel: Wert-Paare), keine Liste oder reiner Text.",
|
||
"service_call_failed": "Service-Aufruf-Validierung fehlgeschlagen: {error_detail}",
|
||
"missing_entry_id": "Eintrag-ID wird benötigt, wurde aber nicht bereitgestellt.",
|
||
"invalid_entry_id": "Ungültige Eintrag-ID oder Eintrag nicht gefunden.",
|
||
"missing_home_id": "Home-ID fehlt in der Konfiguration.",
|
||
"user_data_not_available": "Benutzerdaten nicht verfügbar. Bitte aktualisiere zuerst die Benutzerdaten.",
|
||
"price_fetch_failed": "Preisdaten konnten nicht abgerufen werden. Bitte prüfe die Logs für Details."
|
||
},
|
||
"abort": {
|
||
"already_configured": "Alle verfügbaren Tibber-Zuhause sind bereits konfiguriert. Jedes Zuhause kann nur einmal konfiguriert werden.",
|
||
"entry_not_found": "Tibber-Konfigurationseintrag nicht gefunden.",
|
||
"setup_complete": "Einrichtung abgeschlossen! Du kannst zusätzliche Optionen für Tibber Prices in den Integrationsoptionen nach Schließen dieses Dialogs ändern.",
|
||
"reauth_successful": "Neuauthentifizierung erfolgreich. Die Integration wurde mit dem neuen Zugriffstoken aktualisiert."
|
||
}
|
||
},
|
||
"common": {
|
||
"step_progress": "{step_num} / {total_steps}"
|
||
},
|
||
"config_subentries": {
|
||
"home": {
|
||
"entry_type": "Zeitreise-Ansicht",
|
||
"initiate_flow": {
|
||
"user": "Zeitreise-Ansicht erstellen"
|
||
},
|
||
"title": "Zeitreise-Ansicht erstellen",
|
||
"step": {
|
||
"user": {
|
||
"title": "Konfigurationseintrag auswählen",
|
||
"description": "Wähle den Konfigurationseintrag aus, für den du eine Zeitreise-Ansicht erstellen möchtest.\n\n**Zeitreise-Ansichten** ermöglichen es dir, historische Preisdaten so anzuzeigen, als wären sie die aktuellen Daten. Dies ist nützlich zum Testen von Automatisierungen oder zur Analyse vergangener Preismuster.",
|
||
"data": {
|
||
"parent_entry_id": "Konfigurationseintrag"
|
||
}
|
||
},
|
||
"time_offset": {
|
||
"title": "Zeitversatz konfigurieren",
|
||
"description": "Konfiguriere, wie weit zurück in der Zeit diese Ansicht reisen soll.\n\n**Empfohlen:** Verwende **≥2 Tage** Versatz, um Konflikte mit \"yesterday\"-Entitäten zu vermeiden, die ebenfalls historische Daten bereitstellen.\n\n**Beispiele:**\n• **-7 Tage**: Zeigt Preise von vor 7 Tagen\n• **-2 Tage, 3 Stunden**: Zeigt Preise von vor 2 Tagen und 3 Stunden\n• **-14 Tage**: Zeigt Preise von vor 2 Wochen",
|
||
"data": {
|
||
"virtual_time_offset_days": "Tage zurück",
|
||
"time_offset": "Zusätzlicher Zeitversatz"
|
||
},
|
||
"data_description": {
|
||
"virtual_time_offset_days": "Wie viele Tage in die Vergangenheit reisen. Slider-Bereich: 0 bis 374 Tage (≈1 Jahr). Empfohlen: ≥2 Tage, um Konflikte mit \"yesterday\"-Entitäten zu vermeiden.",
|
||
"time_offset": "Optionale Feinabstimmung: Füge Stunden und/oder Minuten zum Tagesversatz hinzu. Die Zeit wird automatisch subtrahiert (weiter zurück reisen). Hinweis: Sekunden werden ignoriert - nur minutengenaue Präzision wird unterstützt."
|
||
}
|
||
},
|
||
"init": {
|
||
"title": "Zeitversatz neu konfigurieren",
|
||
"description": "Aktualisiere den Zeitversatz für diese Zeitreise-Ansicht.",
|
||
"data": {
|
||
"virtual_time_offset_days": "Tage zurück",
|
||
"time_offset": "Zusätzlicher Zeitversatz"
|
||
},
|
||
"data_description": {
|
||
"virtual_time_offset_days": "Wie viele Tage in die Vergangenheit reisen. Slider-Bereich: 0 bis 374 Tage (≈1 Jahr). Empfohlen: ≥2 Tage, um Konflikte mit \"yesterday\"-Entitäten zu vermeiden.",
|
||
"time_offset": "Optionale Feinabstimmung: Füge Stunden und/oder Minuten zum Tagesversatz hinzu. Die Zeit wird automatisch subtrahiert (weiter zurück reisen). Hinweis: Sekunden werden ignoriert - nur minutengenaue Präzision wird unterstützt."
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"no_time_offset": "Mindestens ein Zeitversatzwert muss negativ sein (nur historische Daten)."
|
||
},
|
||
"abort": {
|
||
"already_configured": "**Eine Zeitreise-Ansicht mit diesem exakten Zeitversatz existiert bereits.**\n\nBitte wähle einen anderen Versatz.",
|
||
"no_main_entries": "Keine Hauptkonfigurationseinträge gefunden. Füge zuerst ein Tibber-Zuhause hinzu.",
|
||
"parent_entry_not_found": "Ausgewählter Konfigurationseintrag nicht gefunden."
|
||
}
|
||
}
|
||
},
|
||
"options": {
|
||
"step": {
|
||
"init": {
|
||
"title": "⚙️ Allgemeine Einstellungen",
|
||
"description": "_{step_progress}_\n\n**Konfiguriere allgemeine Einstellungen für Tibber-Preisinformationen und -bewertungen.**\n\n---\n\n**Benutzer:** {user_login}",
|
||
"data": {
|
||
"extended_descriptions": "Erweiterte Beschreibungen",
|
||
"average_sensor_display": "Durchschnittsensor-Anzeige"
|
||
},
|
||
"data_description": {
|
||
"extended_descriptions": "Steuert, ob Entitätsattribute ausführliche Erklärungen und Nutzungstipps enthalten.\n\n• Deaktiviert (Standard): Nur kurze Beschreibung\n• Aktiviert: Ausführliche Erklärung + praktische Nutzungsbeispiele\n\nBeispiel:\nDeaktiviert = 1 Attribut\nAktiviert = 2 zusätzliche Attribute",
|
||
"average_sensor_display": "Wähle aus, welcher statistische Wert im Sensorstatus für Durchschnitts-Preissensoren angezeigt wird. Der andere Wert wird als Attribut angezeigt. Der Median ist resistenter gegen Extremwerte, während das arithmetische Mittel dem traditionellen Durchschnitt entspricht. Standard: Median"
|
||
},
|
||
"submit": "Weiter →"
|
||
},
|
||
"display_settings": {
|
||
"title": "💱 Währungsanzeige-Einstellungen",
|
||
"description": "_{step_progress}_\n\n**Konfiguriere, wie Strompreise angezeigt werden - in Basiswährung (€, kr) oder Unterwährungseinheit (ct, øre).**\n\n---",
|
||
"data": {
|
||
"currency_display_mode": "Anzeigemodus"
|
||
},
|
||
"data_description": {
|
||
"currency_display_mode": "Wähle, wie Preise angezeigt werden:\n\n• **Basiswährung** (€/kWh, kr/kWh): Dezimalwerte (z.B. 0,25 €/kWh) - Unterschiede sichtbar ab 3.-4. Nachkommastelle\n• **Unterwährungseinheit** (ct/kWh, øre/kWh): Größere Werte (z.B. 25,00 ct/kWh) - Unterschiede bereits ab 1. Nachkommastelle sichtbar\n\nStandard abhängig von deiner Währung:\n• EUR → Unterwährungseinheit (Cent) - deutsche/niederländische Präferenz\n• NOK/SEK/DKK → Basiswährung (Kronen) - skandinavische Präferenz\n• USD/GBP → Basiswährung\n\n**💡 Tipp:** Bei Auswahl von Unterwährungseinheit kannst du den zusätzlichen Sensor \"Aktueller Strompreis (Energie-Dashboard)\" aktivieren (standardmäßig deaktiviert)."
|
||
},
|
||
"submit": "Weiter →"
|
||
},
|
||
"current_interval_price_rating": {
|
||
"title": "📊 Preisbewertungs-Schwellenwerte",
|
||
"description": "_{step_progress}_\n\n**Konfiguriere Schwellenwerte für Preisbewertungsstufen (niedrig/normal/hoch) basierend auf dem Vergleich mit dem nachlaufenden 24-Stunden-Durchschnitt.**\n\n---",
|
||
"sections": {
|
||
"price_rating_thresholds": {
|
||
"name": "Preisbewertungs-Schwellenwerte",
|
||
"description": "Definiere die Einstufungen für die Preisbewertung.",
|
||
"data": {
|
||
"price_rating_threshold_low": "Niedrig-Schwelle",
|
||
"price_rating_threshold_high": "Hoch-Schwelle",
|
||
"average_sensor_display": "Durchschnitts-Sensor Anzeige"
|
||
},
|
||
"data_description": {
|
||
"price_rating_threshold_low": "Prozentwert, um wie viel der aktuelle Preis unter dem nachlaufenden 24-Stunden-Durchschnitt liegen muss, damit er als 'niedrig' bewertet wird. Beispiel: 5 bedeutet mindestens 5% unter Durchschnitt. Sensoren mit dieser Bewertung zeigen günstige Zeitfenster an. Standard: 5%",
|
||
"price_rating_threshold_high": "Prozentwert, um wie viel der aktuelle Preis über dem nachlaufenden 24-Stunden-Durchschnitt liegen muss, damit er als 'hoch' bewertet wird. Beispiel: 10 bedeutet mindestens 10% über Durchschnitt. Sensoren mit dieser Bewertung warnen vor teuren Zeitfenstern. Standard: 10%",
|
||
"average_sensor_display": "Wähle, welches statistische Maß im Sensor-Status für Durchschnittspreissensoren angezeigt werden soll. Der andere Wert wird als Attribut angezeigt. Der Median ist widerstandsfähiger gegen Extremwerte, während das arithmetische Mittel den traditionellen Durchschnitt darstellt. Standard: Median"
|
||
}
|
||
}
|
||
},
|
||
"submit": "Weiter →"
|
||
},
|
||
"best_price": {
|
||
"title": "💚 Bestpreis-Zeitraum Einstellungen",
|
||
"description": "_{step_progress}_\n\n**Konfiguration für den Bestpreis-Zeitraum mit den niedrigsten Strompreisen.**\n\n---",
|
||
"sections": {
|
||
"period_settings": {
|
||
"name": "Zeitraumdauer & Preisniveaus",
|
||
"description": "Lege fest, wie lange Zeiträume sein sollen und welche Preisniveaus einbezogen werden.",
|
||
"data": {
|
||
"best_price_min_period_length": "Minimale Zeitraumlänge",
|
||
"best_price_max_level": "Preisniveau-Filter",
|
||
"best_price_max_level_gap_count": "Lückentoleranz"
|
||
},
|
||
"data_description": {
|
||
"best_price_min_period_length": "Mindestdauer für einen Zeitraum um als 'Bestpreis' zu gelten. Längere Zeiträume sind praktischer für Geräte wie Geschirrspüler oder Wärmepumpen. Bestpreis-Zeiträume benötigen mindestens 60 Minuten (vs. 30 Minuten für Spitzenlast-Warnungen), da sie aussagekräftige Zeitfenster für die Verbrauchsplanung bieten sollten.",
|
||
"best_price_max_level": "Nur Bestpreis-Zeiträume anzeigen, wenn sie Intervalle mit Preisniveaus ≤ dem ausgewählten Wert enthalten. Beispiel: Auswahl '**Günstig**' bedeutet, der Zeitraum muss mindestens ein '**Sehr günstig**' oder '**Günstig**' Intervall enthalten. Dies stellt sicher, dass 'Bestpreis'-Zeiträume nicht nur relativ billig für den Tag sind, sondern auch absolut günstig. Wähle '**Alle**' um Bestpreise unabhängig vom absoluten Preisniveau anzuzeigen.",
|
||
"best_price_max_level_gap_count": "Maximale Anzahl aufeinanderfolgender Intervalle, die um genau eine Preisstufe vom erforderlichen Niveau abweichen dürfen. Beispiel: Mit '**Günstig**'-Filter und Lückenzähler 1 wird eine Sequenz '**Günstig**, **Günstig**, **Normal**, **Günstig**' akzeptiert (**Normal** ist eine Stufe über **Günstig**). Dies verhindert, dass Zeiträume durch gelegentliche Niveauabweichungen aufgeteilt werden. **Hinweis:** Lückentoleranz erfordert Zeiträume ≥90 Minuten (6 Intervalle), um Ausreißer effektiv zu erkennen. Standard: 0 (strikte Filterung, keine Toleranz)."
|
||
}
|
||
},
|
||
"flexibility_settings": {
|
||
"name": "Flexibilität & Schwellenwerte",
|
||
"description": "Kontrolliere, wie sehr Preise abweichen dürfen und dennoch als 'Bestpreis' gelten.",
|
||
"data": {
|
||
"best_price_flex": "Flexibilität",
|
||
"best_price_min_distance_from_avg": "Mindestabstand"
|
||
},
|
||
"data_description": {
|
||
"best_price_flex": "Maximale Menge über dem Tagesminimumpreis, um noch als 'Bestpreis' zu gelten. Empfohlen: 15-20% mit Lockerung aktiviert (Standard), oder 25-35% ohne Lockerung. Maximum: 50% (Hartgrenze für zuverlässige Zeitraumerkennung).",
|
||
"best_price_min_distance_from_avg": "Stellt sicher, dass Zeiträume erheblich günstiger als der Tagesdurchschnitt sind, nicht nur marginal darunter. Dies filtert Rauschen heraus und verhindert, dass leicht unterdurchschnittliche Zeiträume an flachen Preistagen als 'Bestpreis' markiert werden. Höhere Werte = strengere Filterung (nur wirklich billige Zeiträume gelten). Standard: 5 bedeutet Zeiträume müssen mindestens 5% unter dem Tagesdurchschnitt liegen."
|
||
}
|
||
},
|
||
"relaxation_and_target_periods": {
|
||
"name": "Lockerung & Zielanzahl Zeiträume",
|
||
"description": "Konfiguriere automatische Filterlockerung und Zielanzahl von Zeiträumen. Aktiviere 'Mindestanzahl anstreben' um die Lockerung zu aktivieren.",
|
||
"data": {
|
||
"enable_min_periods_best": "Mindestanzahl anstreben",
|
||
"min_periods_best": "Mindestanzahl Zeiträume",
|
||
"relaxation_attempts_best": "Lockerungsversuche"
|
||
},
|
||
"data_description": {
|
||
"enable_min_periods_best": "Bei Aktivierung werden Filter schrittweise gelockert, wenn nicht genug Zeiträume gefunden werden. Dies versucht, die gewünschte Mindestanzahl von Zeiträumen zu erreichen, was weniger optimale Zeitfenster als Bestpreis-Zeiträume einschließen kann.",
|
||
"min_periods_best": "Mindestanzahl von Bestpreis-Zeiträumen pro Tag, die angestrebt werden sollen. Filter werden schrittweise gelockert, um diese Anzahl zu erreichen. Nur aktiv wenn 'Mindestanzahl anstreben' aktiviert ist. Standard: 1",
|
||
"relaxation_attempts_best": "Wie viele Flexibilitätsstufen (Versuche) zu versuchen sind, bevor aufgegeben wird. Jeder Versuch führt alle Filterkombinationen auf der neuen Flexibilitätsstufe aus. Mehr Versuche erhöhen die Chance, zusätzliche Zeiträume zu finden, kosten aber mehr Verarbeitungszeit."
|
||
}
|
||
}
|
||
},
|
||
"submit": "Weiter →"
|
||
},
|
||
"peak_price": {
|
||
"title": "🔴 Spitzenpreis-Zeitraum Einstellungen",
|
||
"description": "_{step_progress}_\n\n**Konfiguration für den Spitzenpreis-Zeitraum mit den höchsten Strompreisen.**\n\n---",
|
||
"sections": {
|
||
"period_settings": {
|
||
"name": "Zeitraum-Einstellungen",
|
||
"description": "Konfiguriere Zeitraumlänge und Preisniveau-Einschränkungen.",
|
||
"data": {
|
||
"peak_price_min_period_length": "Minimale Zeitraumlänge",
|
||
"peak_price_min_level": "Preisniveau-Filter",
|
||
"peak_price_max_level_gap_count": "Lückentoleranz"
|
||
},
|
||
"data_description": {
|
||
"peak_price_min_period_length": "Minimale Dauer, damit ein Zeitraum als 'Spitzenpreis' gilt. Spitzenpreis-Warnungen sind für kürzere Zeiträume zulässig (mindestens 30 Minuten im Vergleich zu 60 Minuten für Bestpreis), da kurze teure Spitzen eine Warnung wert sind, auch wenn sie für die Verbrauchsplanung zu kurz sind.",
|
||
"peak_price_min_level": "Zeigt Spitzenpreis-Zeiträume nur an, wenn sie Intervalle mit Preisniveaus ≥ dem gewählten Wert enthalten. Beispiel: Wahl von '**Teuer**' bedeutet, dass der Zeitraum mindestens ein '**Teuer**' oder '**Sehr teuer**' Intervall haben muss. Dies stellt sicher, dass Spitzenpreis-Zeiträume nicht nur relativ teuer für den Tag sind, sondern tatsächlich teuer in absoluten Zahlen. Wähle '**Beliebig**' um Spitzenpreise unabhängig vom absoluten Preisniveau anzuzeigen.",
|
||
"peak_price_max_level_gap_count": "Maximale Anzahl aufeinanderfolgender Intervalle, die exakt um eine Niveaustufe vom geforderten Level abweichen dürfen. Beispiel: Bei Filter '**Teuer**' und Lückentoleranz 2 wird die Sequenz '**Teuer**, **Normal**, **Normal**, **Teuer**' akzeptiert (**Normal** ist eine Stufe unter **Teuer**). Dies verhindert, dass Zeiträume durch gelegentliche Niveau-Abweichungen aufgespalten werden. **Hinweis:** Lückentoleranz erfordert Zeiträume ≥90 Minuten (6 Intervalle), um Ausreißer effektiv zu erkennen. Standard: 0 (strenge Filterung, keine Toleranz)."
|
||
}
|
||
},
|
||
"flexibility_settings": {
|
||
"name": "Flexibilitäts-Einstellungen",
|
||
"description": "Konfiguriere Preisvergleich-Schwellenwerte und Filterung.",
|
||
"data": {
|
||
"peak_price_flex": "Flexibilität",
|
||
"peak_price_min_distance_from_avg": "Mindestabstand"
|
||
},
|
||
"data_description": {
|
||
"peak_price_flex": "Maximal unter dem täglichen Höchstpreis, bei dem Intervalle noch als 'Spitzenpreis' qualifizieren. Empfehlung: -15 bis -20 mit aktivierter Lockerung (Standard), oder -25 bis -35 ohne Lockerung. Maximum: -50 (harte Grenze für zuverlässige Zeitraumerkennung). Hinweis: Negative Werte zeigen den Abstand unter dem Maximum an.",
|
||
"peak_price_min_distance_from_avg": "Stellt sicher, dass Zeiträume signifikant teurer als der Tagesdurchschnitt sind, nicht nur geringfügig darüber. Dies filtert Rauschen und verhindert, dass leicht überdurchschnittliche Zeiträume an Tagen mit flachen Preisen als 'Spitzenpreis' markiert werden. Höhere Werte = strengere Filterung (nur wirklich teure Zeiträume qualifizieren). Standard: 5 bedeutet, Zeiträume müssen mindestens 5% über dem Tagesdurchschnitt liegen."
|
||
}
|
||
},
|
||
"relaxation_and_target_periods": {
|
||
"name": "Lockerung & Zielzeiträume",
|
||
"description": "Konfiguriere automatische Filter-Lockerung und Zielzeiträume. Aktiviere 'Mindestanzahl anstreben' um Lockerung zu aktivieren.",
|
||
"data": {
|
||
"enable_min_periods_peak": "Mindestanzahl anstreben",
|
||
"min_periods_peak": "Mindestanzahl Zeiträume",
|
||
"relaxation_attempts_peak": "Lockerungsversuche"
|
||
},
|
||
"data_description": {
|
||
"enable_min_periods_peak": "Wenn aktiviert, werden Filter schrittweise gelockert, falls nicht genug Zeiträume gefunden wurden. Dies versucht die gewünschte Mindestanzahl zu erreichen, um sicherzustellen, dass du auch an Tagen mit ungewöhnlichen Preismustern vor teuren Zeiträumen gewarnt wirst.",
|
||
"min_periods_peak": "Mindestanzahl an Spitzenpreis-Zeiträumen, die pro Tag angestrebt werden. Filter werden schrittweise gelockert, um diese Anzahl zu erreichen. Nur aktiv, wenn 'Mindestanzahl Zeiträume anstreben' aktiviert ist. Standard: 1",
|
||
"relaxation_attempts_peak": "Wie viele Flex-Stufen (Versuche) nacheinander ausprobiert werden, bevor aufgegeben wird. Jeder Versuch testet alle Filterkombinationen auf der neuen Flex-Stufe. Mehr Versuche erhöhen die Chance auf zusätzliche Spitzenpreis-Zeiträume, benötigen aber etwas mehr Rechenzeit."
|
||
}
|
||
}
|
||
},
|
||
"submit": "Weiter →"
|
||
},
|
||
"price_trend": {
|
||
"title": "📈 Preistrend-Schwellenwerte",
|
||
"description": "_{step_progress}_\n\n**Konfiguriere Schwellenwerte für Preistrend-Sensoren. Diese Sensoren vergleichen den aktuellen Preis mit dem Durchschnitt der nächsten N Stunden, um festzustellen, ob die Preise steigen, fallen oder stabil sind.**\n\n---",
|
||
"sections": {
|
||
"price_trend_thresholds": {
|
||
"name": "Preistrend-Schwellenwerte",
|
||
"description": "Definiere die Einstufungen für den Preistrend.",
|
||
"data": {
|
||
"price_trend_threshold_rising": "Steigend-Schwelle",
|
||
"price_trend_threshold_falling": "Fallend-Schwelle"
|
||
},
|
||
"data_description": {
|
||
"price_trend_threshold_rising": "Prozentwert, um wie viel der Durchschnitt der nächsten N Stunden über dem aktuellen Preis liegen muss, damit der Trend als 'steigend' gilt. Beispiel: 5 bedeutet Durchschnitt ist mindestens 5% höher → Preise werden steigen. Typische Werte: 5-15%. Standard: 5%",
|
||
"price_trend_threshold_falling": "Prozentwert (negativ), um wie viel der Durchschnitt der nächsten N Stunden unter dem aktuellen Preis liegen muss, damit der Trend als 'fallend' gilt. Beispiel: -5 bedeutet Durchschnitt ist mindestens 5% niedriger → Preise werden fallen. Typische Werte: -5 bis -15%. Standard: -5%"
|
||
}
|
||
}
|
||
},
|
||
"submit": "Weiter →"
|
||
},
|
||
"volatility": {
|
||
"title": "💨 Volatilität Schwellenwerte",
|
||
"description": "_{step_progress}_\n\n**Konfiguriere Schwellenwerte für die Volatilitätsklassifizierung.** Volatilität misst relative Preisschwankungen anhand des Variationskoeffizienten (VK = Standardabweichung / Durchschnitt × 100%). Diese Schwellenwerte sind Prozentwerte, die für alle Preisniveaus funktionieren.\n\nVerwendet von:\n• Volatilitätssensoren (Klassifizierung)\n• Trend-Sensoren (adaptive Schwellenanpassung: <moderat = empfindlicher, ≥hoch = weniger empfindlich)\n\n---",
|
||
"sections": {
|
||
"volatility_thresholds": {
|
||
"name": "Volatilitätsschwellen",
|
||
"description": "Definiere Volatilitäts-Klassifizierungsstufen.",
|
||
"data": {
|
||
"volatility_threshold_moderate": "Moderat-Schwelle",
|
||
"volatility_threshold_high": "Hoch-Schwelle",
|
||
"volatility_threshold_very_high": "Sehr hoch-Schwelle"
|
||
},
|
||
"data_description": {
|
||
"volatility_threshold_moderate": "Variationskoeffizient (VK) ab dem Preise als 'moderat volatil' gelten. VK = (Standardabweichung / Durchschnitt) × 100%. Beispiel: 15 bedeutet Preisschwankungen von ±15% um den Durchschnitt. Sensoren zeigen diese Klassifizierung an, Trend-Sensoren werden empfindlicher. Standard: 15%",
|
||
"volatility_threshold_high": "Variationskoeffizient (VK) ab dem Preise als 'hoch volatil' gelten. Beispiel: 30 bedeutet Preisschwankungen von ±30% um den Durchschnitt. Größere Preissprünge erwartet, Trend-Sensoren werden weniger empfindlich. Standard: 30%",
|
||
"volatility_threshold_very_high": "Variationskoeffizient (VK) ab dem Preise als 'sehr hoch volatil' gelten. Beispiel: 50 bedeutet extreme Preisschwankungen von ±50% um den Durchschnitt. An solchen Tagen sind starke Preisspitzen wahrscheinlich. Standard: 50%"
|
||
}
|
||
}
|
||
},
|
||
"submit": "Weiter →"
|
||
},
|
||
"chart_data_export": {
|
||
"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 ✓"
|
||
}
|
||
},
|
||
"error": {
|
||
"auth": "Der Tibber Zugangstoken ist ungültig.",
|
||
"connection": "Verbindung zu Tibber nicht möglich. Bitte überprüfe deine Internetverbindung.",
|
||
"unknown": "Ein unerwarteter Fehler ist aufgetreten. Bitte überprüfe die Logs für Details.",
|
||
"cannot_connect": "Verbindung fehlgeschlagen",
|
||
"invalid_access_token": "Ungültiges Zugriffstoken",
|
||
"different_home": "Der Zugriffstoken ist nicht gültig für die Home ID, für die diese Integration konfiguriert ist.",
|
||
"invalid_flex": "Flexibilitätsprozentsatz muss zwischen -50% und +50% liegen",
|
||
"invalid_best_price_distance": "Distanzprozentsatz muss zwischen -50% und 0% liegen (negativ = unter Durchschnitt)",
|
||
"invalid_peak_price_distance": "Distanzprozentsatz muss zwischen 0% und 50% liegen (positiv = über Durchschnitt)",
|
||
"invalid_min_periods": "Mindestanzahl der Zeiträume muss zwischen 1 und 10 liegen",
|
||
"invalid_period_length": "Die Periodenlänge muss mindestens 15 Minuten betragen (Vielfache von 15).",
|
||
"invalid_gap_count": "Lückentoleranz muss zwischen 0 und 8 liegen",
|
||
"invalid_relaxation_attempts": "Lockerungsversuche müssen zwischen 1 und 12 liegen",
|
||
"invalid_price_rating_low": "Untere Preis-Bewertungsschwelle muss zwischen -50% und -5% liegen",
|
||
"invalid_price_rating_high": "Obere Preis-Bewertungsschwelle muss zwischen 5% und 50% liegen",
|
||
"invalid_price_rating_thresholds": "Untere Schwelle muss kleiner als obere Schwelle sein",
|
||
"invalid_volatility_threshold_moderate": "Moderate Volatilitätsschwelle muss zwischen 5% und 25% liegen",
|
||
"invalid_volatility_threshold_high": "Hohe Volatilitätsschwelle muss zwischen 20% und 40% liegen",
|
||
"invalid_volatility_threshold_very_high": "Sehr hohe Volatilitätsschwelle muss zwischen 35% und 80% liegen",
|
||
"invalid_volatility_thresholds": "Schwellenwerte müssen aufsteigend sein: moderat < hoch < sehr hoch",
|
||
"invalid_price_trend_rising": "Steigender Trendschwellenwert muss zwischen 1% und 50% liegen",
|
||
"invalid_price_trend_falling": "Fallender Trendschwellenwert muss zwischen -50% und -1% liegen"
|
||
},
|
||
"abort": {
|
||
"entry_not_found": "Tibber Konfigurationseintrag nicht gefunden."
|
||
}
|
||
},
|
||
"entity": {
|
||
"sensor": {
|
||
"current_interval_price": {
|
||
"name": "Aktueller Strompreis"
|
||
},
|
||
"current_interval_price_base": {
|
||
"name": "Aktueller Strompreis (Energie-Dashboard)"
|
||
},
|
||
"next_interval_price": {
|
||
"name": "Nächster Strompreis"
|
||
},
|
||
"previous_interval_price": {
|
||
"name": "Vorheriger Strompreis"
|
||
},
|
||
"current_hour_average_price": {
|
||
"name": "⌀ Stunden-Preis aktuell"
|
||
},
|
||
"next_hour_average_price": {
|
||
"name": "⌀ Stunden-Preis nächste Stunde"
|
||
},
|
||
"current_interval_price_level": {
|
||
"name": "Aktuelles Preisniveau",
|
||
"state": {
|
||
"very_cheap": "Sehr günstig",
|
||
"cheap": "Günstig",
|
||
"normal": "Normal",
|
||
"expensive": "Teuer",
|
||
"very_expensive": "Sehr teuer"
|
||
}
|
||
},
|
||
"next_interval_price_level": {
|
||
"name": "Nächstes Preisniveau",
|
||
"state": {
|
||
"very_cheap": "Sehr günstig",
|
||
"cheap": "Günstig",
|
||
"normal": "Normal",
|
||
"expensive": "Teuer",
|
||
"very_expensive": "Sehr teuer"
|
||
}
|
||
},
|
||
"previous_interval_price_level": {
|
||
"name": "Vorheriges Preisniveau",
|
||
"state": {
|
||
"very_cheap": "Sehr günstig",
|
||
"cheap": "Günstig",
|
||
"normal": "Normal",
|
||
"expensive": "Teuer",
|
||
"very_expensive": "Sehr teuer"
|
||
}
|
||
},
|
||
"current_hour_price_level": {
|
||
"name": "Aktuelles Stunden-Preisniveau",
|
||
"state": {
|
||
"very_cheap": "Sehr günstig",
|
||
"cheap": "Günstig",
|
||
"normal": "Normal",
|
||
"expensive": "Teuer",
|
||
"very_expensive": "Sehr teuer"
|
||
}
|
||
},
|
||
"next_hour_price_level": {
|
||
"name": "Nächstes Stunden-Preisniveau",
|
||
"state": {
|
||
"very_cheap": "Sehr günstig",
|
||
"cheap": "Günstig",
|
||
"normal": "Normal",
|
||
"expensive": "Teuer",
|
||
"very_expensive": "Sehr teuer"
|
||
}
|
||
},
|
||
"lowest_price_today": {
|
||
"name": "Mindestpreis heute"
|
||
},
|
||
"highest_price_today": {
|
||
"name": "Höchstpreis heute"
|
||
},
|
||
"average_price_today": {
|
||
"name": "⌀ Preis heute"
|
||
},
|
||
"lowest_price_tomorrow": {
|
||
"name": "Mindestpreis morgen"
|
||
},
|
||
"highest_price_tomorrow": {
|
||
"name": "Höchstpreis morgen"
|
||
},
|
||
"average_price_tomorrow": {
|
||
"name": "⌀ Preis morgen"
|
||
},
|
||
"yesterday_price_level": {
|
||
"name": "Preisniveau gestern",
|
||
"state": {
|
||
"very_cheap": "Sehr günstig",
|
||
"cheap": "Günstig",
|
||
"normal": "Normal",
|
||
"expensive": "Teuer",
|
||
"very_expensive": "Sehr teuer"
|
||
}
|
||
},
|
||
"today_price_level": {
|
||
"name": "Preisniveau heute",
|
||
"state": {
|
||
"very_cheap": "Sehr günstig",
|
||
"cheap": "Günstig",
|
||
"normal": "Normal",
|
||
"expensive": "Teuer",
|
||
"very_expensive": "Sehr teuer"
|
||
}
|
||
},
|
||
"tomorrow_price_level": {
|
||
"name": "Preisniveau morgen",
|
||
"state": {
|
||
"very_cheap": "Sehr günstig",
|
||
"cheap": "Günstig",
|
||
"normal": "Normal",
|
||
"expensive": "Teuer",
|
||
"very_expensive": "Sehr teuer"
|
||
}
|
||
},
|
||
"yesterday_price_rating": {
|
||
"name": "Preisbewertung gestern",
|
||
"state": {
|
||
"low": "Niedrig",
|
||
"normal": "Normal",
|
||
"high": "Hoch"
|
||
}
|
||
},
|
||
"today_price_rating": {
|
||
"name": "Preisbewertung heute",
|
||
"state": {
|
||
"low": "Niedrig",
|
||
"normal": "Normal",
|
||
"high": "Hoch"
|
||
}
|
||
},
|
||
"tomorrow_price_rating": {
|
||
"name": "Preisbewertung morgen",
|
||
"state": {
|
||
"low": "Niedrig",
|
||
"normal": "Normal",
|
||
"high": "Hoch"
|
||
}
|
||
},
|
||
"trailing_price_average": {
|
||
"name": "⌀ Preis nachlaufend 24h"
|
||
},
|
||
"leading_price_average": {
|
||
"name": "⌀ Preis vorlaufend 24h"
|
||
},
|
||
"trailing_price_min": {
|
||
"name": "24h-Mindestpreis nachlaufend"
|
||
},
|
||
"trailing_price_max": {
|
||
"name": "24h-Höchstpreis nachlaufend"
|
||
},
|
||
"leading_price_min": {
|
||
"name": "24h-Mindestpreis vorlaufend"
|
||
},
|
||
"leading_price_max": {
|
||
"name": "24h-Höchstpreis vorlaufend"
|
||
},
|
||
"current_interval_price_rating": {
|
||
"name": "Aktuelle Preisbewertung",
|
||
"state": {
|
||
"low": "Niedrig",
|
||
"normal": "Normal",
|
||
"high": "Hoch"
|
||
}
|
||
},
|
||
"next_interval_price_rating": {
|
||
"name": "Nächste Preisbewertung",
|
||
"state": {
|
||
"low": "Niedrig",
|
||
"normal": "Normal",
|
||
"high": "Hoch"
|
||
}
|
||
},
|
||
"previous_interval_price_rating": {
|
||
"name": "Vorherige Preisbewertung",
|
||
"state": {
|
||
"low": "Niedrig",
|
||
"normal": "Normal",
|
||
"high": "Hoch"
|
||
}
|
||
},
|
||
"current_hour_price_rating": {
|
||
"name": "Aktuelle Stunden-Preisbewertung",
|
||
"state": {
|
||
"low": "Niedrig",
|
||
"normal": "Normal",
|
||
"high": "Hoch"
|
||
}
|
||
},
|
||
"next_hour_price_rating": {
|
||
"name": "Nächste Stunden-Preisbewertung",
|
||
"state": {
|
||
"low": "Niedrig",
|
||
"normal": "Normal",
|
||
"high": "Hoch"
|
||
}
|
||
},
|
||
"next_avg_1h": {
|
||
"name": "⌀ Preis nächste 1h"
|
||
},
|
||
"next_avg_2h": {
|
||
"name": "⌀ Preis nächste 2h"
|
||
},
|
||
"next_avg_3h": {
|
||
"name": "⌀ Preis nächste 3h"
|
||
},
|
||
"next_avg_4h": {
|
||
"name": "⌀ Preis nächste 4h"
|
||
},
|
||
"next_avg_5h": {
|
||
"name": "⌀ Preis nächste 5h"
|
||
},
|
||
"next_avg_6h": {
|
||
"name": "⌀ Preis nächste 6h"
|
||
},
|
||
"next_avg_8h": {
|
||
"name": "⌀ Preis nächste 8h"
|
||
},
|
||
"next_avg_12h": {
|
||
"name": "⌀ Preis nächste 12h"
|
||
},
|
||
"price_trend_1h": {
|
||
"name": "Preistrend (1h)",
|
||
"state": {
|
||
"rising": "Steigend",
|
||
"falling": "Fallend",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"price_trend_2h": {
|
||
"name": "Preistrend (2h)",
|
||
"state": {
|
||
"rising": "Steigend",
|
||
"falling": "Fallend",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"price_trend_3h": {
|
||
"name": "Preistrend (3h)",
|
||
"state": {
|
||
"rising": "Steigend",
|
||
"falling": "Fallend",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"price_trend_4h": {
|
||
"name": "Preistrend (4h)",
|
||
"state": {
|
||
"rising": "Steigend",
|
||
"falling": "Fallend",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"price_trend_5h": {
|
||
"name": "Preistrend (5h)",
|
||
"state": {
|
||
"rising": "Steigend",
|
||
"falling": "Fallend",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"price_trend_6h": {
|
||
"name": "Preistrend (6h)",
|
||
"state": {
|
||
"rising": "Steigend",
|
||
"falling": "Fallend",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"price_trend_8h": {
|
||
"name": "Preistrend (8h)",
|
||
"state": {
|
||
"rising": "Steigend",
|
||
"falling": "Fallend",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"price_trend_12h": {
|
||
"name": "Preistrend (12h)",
|
||
"state": {
|
||
"rising": "Steigend",
|
||
"falling": "Fallend",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"current_price_trend": {
|
||
"name": "Aktueller Preistrend",
|
||
"state": {
|
||
"rising": "Steigend",
|
||
"falling": "Fallend",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"next_price_trend_change": {
|
||
"name": "Nächste Trendänderung"
|
||
},
|
||
"daily_rating": {
|
||
"name": "Tägliche Preisbewertung"
|
||
},
|
||
"monthly_rating": {
|
||
"name": "Monatliche Preisbewertung"
|
||
},
|
||
"data_lifecycle_status": {
|
||
"name": "Datenlebenszyklus-Status",
|
||
"state": {
|
||
"cached": "Zwischengespeichert",
|
||
"fresh": "Frisch",
|
||
"refreshing": "Aktualisiere",
|
||
"searching_tomorrow": "Suche Morgendaten",
|
||
"turnover_pending": "Mitternachtswechsel steht bevor",
|
||
"error": "Fehler"
|
||
}
|
||
},
|
||
"today_volatility": {
|
||
"name": "Volatilität heute",
|
||
"state": {
|
||
"low": "Niedrig",
|
||
"moderate": "Moderat",
|
||
"high": "Hoch",
|
||
"very_high": "Sehr hoch"
|
||
}
|
||
},
|
||
"tomorrow_volatility": {
|
||
"name": "Volatilität morgen",
|
||
"state": {
|
||
"low": "Niedrig",
|
||
"moderate": "Moderat",
|
||
"high": "Hoch",
|
||
"very_high": "Sehr hoch"
|
||
}
|
||
},
|
||
"next_24h_volatility": {
|
||
"name": "Volatilität der nächsten 24h",
|
||
"state": {
|
||
"low": "Niedrig",
|
||
"moderate": "Moderat",
|
||
"high": "Hoch",
|
||
"very_high": "Sehr hoch"
|
||
}
|
||
},
|
||
"today_tomorrow_volatility": {
|
||
"name": "Volatilität heute+morgen",
|
||
"state": {
|
||
"low": "Niedrig",
|
||
"moderate": "Moderat",
|
||
"high": "Hoch",
|
||
"very_high": "Sehr hoch"
|
||
}
|
||
},
|
||
"best_price_end_time": {
|
||
"name": "Bestpreis endet"
|
||
},
|
||
"best_price_period_duration": {
|
||
"name": "Bestpreis Dauer"
|
||
},
|
||
"best_price_remaining_minutes": {
|
||
"name": "Bestpreis verbleibend"
|
||
},
|
||
"best_price_progress": {
|
||
"name": "Bestpreis Fortschritt"
|
||
},
|
||
"best_price_next_start_time": {
|
||
"name": "Bestpreis startet"
|
||
},
|
||
"best_price_next_in_minutes": {
|
||
"name": "Bestpreis startet in"
|
||
},
|
||
"peak_price_end_time": {
|
||
"name": "Spitzenpreis endet"
|
||
},
|
||
"peak_price_period_duration": {
|
||
"name": "Spitzenpreis Dauer"
|
||
},
|
||
"peak_price_remaining_minutes": {
|
||
"name": "Spitzenpreis verbleibend"
|
||
},
|
||
"peak_price_progress": {
|
||
"name": "Spitzenpreis Fortschritt"
|
||
},
|
||
"peak_price_next_start_time": {
|
||
"name": "Spitzenpreis startet"
|
||
},
|
||
"peak_price_next_in_minutes": {
|
||
"name": "Spitzenpreis startet in"
|
||
},
|
||
"home_type": {
|
||
"name": "Wohnungstyp",
|
||
"state": {
|
||
"apartment": "Wohnung",
|
||
"rowhouse": "Reihenhaus",
|
||
"house": "Haus",
|
||
"cottage": "Ferienhaus"
|
||
}
|
||
},
|
||
"home_size": {
|
||
"name": "Wohnfläche"
|
||
},
|
||
"main_fuse_size": {
|
||
"name": "Hauptsicherung"
|
||
},
|
||
"number_of_residents": {
|
||
"name": "Anzahl Bewohner"
|
||
},
|
||
"primary_heating_source": {
|
||
"name": "Primäre Heizquelle",
|
||
"state": {
|
||
"air2air_heatpump": "Luft-Luft-Wärmepumpe",
|
||
"air2water_heatpump": "Luft-Wasser-Wärmepumpe",
|
||
"boiler": "Boiler",
|
||
"central_heating": "Zentralheizung",
|
||
"district_heating": "Fernwärme",
|
||
"district": "Fernwärme",
|
||
"electric_boiler": "Elektroboiler",
|
||
"electricity": "Elektroheizung",
|
||
"floor": "Fußbodenheizung",
|
||
"gas": "Gas",
|
||
"ground_heatpump": "Erdwärmepumpe",
|
||
"ground": "Erdwärmepumpe",
|
||
"oil": "Öl",
|
||
"other": "Sonstige",
|
||
"waste": "Abwärme"
|
||
}
|
||
},
|
||
"grid_company": {
|
||
"name": "Netzbetreiber"
|
||
},
|
||
"grid_area_code": {
|
||
"name": "Netzgebietscode"
|
||
},
|
||
"price_area_code": {
|
||
"name": "Preiszonencode"
|
||
},
|
||
"consumption_ean": {
|
||
"name": "Verbrauchs-EAN"
|
||
},
|
||
"production_ean": {
|
||
"name": "Erzeugungs-EAN"
|
||
},
|
||
"energy_tax_type": {
|
||
"name": "Energiesteuertyp"
|
||
},
|
||
"vat_type": {
|
||
"name": "Mehrwertsteuertyp"
|
||
},
|
||
"estimated_annual_consumption": {
|
||
"name": "Geschätzter Jahresverbrauch"
|
||
},
|
||
"subscription_status": {
|
||
"name": "Abonnementstatus",
|
||
"state": {
|
||
"running": "Aktiv",
|
||
"ended": "Beendet",
|
||
"pending": "Ausstehend",
|
||
"unknown": "Unbekannt"
|
||
}
|
||
},
|
||
"chart_data_export": {
|
||
"name": "Diagramm-Datenexport",
|
||
"state": {
|
||
"pending": "Ausstehend",
|
||
"ready": "Bereit",
|
||
"error": "Fehler"
|
||
}
|
||
},
|
||
"chart_metadata": {
|
||
"name": "Diagramm-Metadaten",
|
||
"state": {
|
||
"pending": "Ausstehend",
|
||
"ready": "Bereit",
|
||
"error": "Fehler"
|
||
}
|
||
}
|
||
},
|
||
"binary_sensor": {
|
||
"peak_price_period": {
|
||
"name": "Spitzenpreis-Zeitraum"
|
||
},
|
||
"best_price_period": {
|
||
"name": "Bestpreis-Zeitraum"
|
||
},
|
||
"connection": {
|
||
"name": "Tibber-API-Verbindung"
|
||
},
|
||
"tomorrow_data_available": {
|
||
"name": "Morgige Daten verfügbar"
|
||
},
|
||
"has_ventilation_system": {
|
||
"name": "Hat Lüftungsanlage"
|
||
},
|
||
"realtime_consumption_enabled": {
|
||
"name": "Echtzeitverbrauch aktiviert"
|
||
}
|
||
}
|
||
},
|
||
"issues": {
|
||
"new_homes_available": {
|
||
"title": "Neue Tibber-Häuser erkannt",
|
||
"description": "Wir haben {count} neue(s) Zuhause in deinem Tibber-Konto erkannt: {homes}. Du kannst diese über die Tibber-Integration in Home Assistant hinzufügen."
|
||
},
|
||
"homes_removed": {
|
||
"title": "Tibber-Häuser entfernt",
|
||
"description": "Wir haben erkannt, dass {count} Zuhause aus deinem Tibber-Konto entfernt wurde(n): {homes}. Bitte überprüfe deine Tibber-Integrationskonfiguration."
|
||
},
|
||
"tomorrow_data_missing": {
|
||
"title": "Preisdaten für morgen fehlen für {home_name}",
|
||
"description": "Die Strompreisdaten für morgen sind nach {warning_hour}:00 Uhr immer noch nicht verfügbar. Das ist ungewöhnlich, da Tibber normalerweise die Preise für morgen am Nachmittag veröffentlicht (ca. 13:00-14:00 Uhr MEZ).\n\nMögliche Ursachen:\n- Tibber hat die Preise für morgen noch nicht veröffentlicht\n- Temporäre API-Probleme\n- Dein Stromanbieter hat die Preise noch nicht an Tibber übermittelt\n\nDieses Problem löst sich automatisch, sobald die Daten für morgen verfügbar sind. Falls dies nach 20:00 Uhr weiterhin besteht, prüfe bitte die Tibber-App oder kontaktiere den Tibber-Support."
|
||
},
|
||
"rate_limit_exceeded": {
|
||
"title": "API-Ratenlimit erreicht für {home_name}",
|
||
"description": "Die Tibber-API hat diese Integration nach {error_count} aufeinanderfolgenden Fehlern ratenlimitiert. Das bedeutet, dass Anfragen zu häufig gestellt werden.\n\nDie Integration wird automatisch mit zunehmenden Verzögerungen erneut versuchen. Dieses Problem löst sich, sobald das Ratenlimit abläuft.\n\nFalls dies mehrere Stunden anhält, überprüfe:\n- Ob mehrere Home Assistant Instanzen denselben API-Token verwenden\n- Ob andere Anwendungen deinen Tibber-API-Token stark nutzen\n- Die Update-Frequenz reduzieren, falls du sie angepasst hast"
|
||
},
|
||
"home_not_found": {
|
||
"title": "Zuhause {home_name} nicht im Tibber-Konto gefunden",
|
||
"description": "Das in dieser Integration konfigurierte Zuhause (Eintrag-ID: {entry_id}) ist nicht mehr in deinem Tibber-Konto verfügbar. Dies passiert normalerweise, wenn:\n- Das Zuhause aus deinem Tibber-Konto gelöscht wurde\n- Das Zuhause zu einem anderen Tibber-Konto verschoben wurde\n- Der Zugriff auf dieses Zuhause widerrufen wurde\n\nBitte entferne diesen Integrationseintrag und füge ihn erneut hinzu, falls das Zuhause weiterhin überwacht werden soll. Um diesen Eintrag zu entfernen, gehe zu Einstellungen → Geräte & Dienste → Tibber Prices und lösche die Konfiguration {home_name}."
|
||
}
|
||
},
|
||
"services": {
|
||
"get_price": {
|
||
"name": "Preisdaten abrufen",
|
||
"description": "Preisdaten für einen bestimmten Zeitraum mit automatischem Routing abrufen. Entwicklungs- und Test-Service für die price_info_for_range API-Funktion. Verwendet automatisch PRICE_INFO, PRICE_INFO_RANGE oder beide basierend auf der Zeitraumgrenze.",
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Eintrag-ID",
|
||
"description": "Die Konfigurations-Eintrag-ID für die Tibber-Integration."
|
||
},
|
||
"start_time": {
|
||
"name": "Startzeit",
|
||
"description": "Start des Zeitraums (inklusive, zeitzonenbewusst)."
|
||
},
|
||
"end_time": {
|
||
"name": "Endzeit",
|
||
"description": "Ende des Zeitraums (exklusive, zeitzonenbewusst)."
|
||
}
|
||
}
|
||
},
|
||
"get_apexcharts_yaml": {
|
||
"name": "ApexCharts-Karten-YAML abrufen",
|
||
"description": "⚠️ WICHTIG: Dieser Service generiert eine GRUNDLEGENDE BEISPIEL-Konfiguration für die ApexCharts-Karte als Startpunkt. Es ist KEINE vollständige Lösung für alle ApexCharts-Funktionen. Diese Integration ist primär ein DATENLIEFERANT. Das generierte YAML zeigt, wie du den `get_chartdata`-Service zum Abrufen von Preisdaten nutzt. Aufgrund der segmentierten Natur unserer Daten (verschiedene Zeitabschnitte pro Serie) und der Nutzung von Home Assistants Service-API statt Entity-Attributen sind viele erweiterte ApexCharts-Funktionen (wie in_header, bestimmte Transformationen) nicht kompatibel oder erfordern manuelle Anpassung. Du darfst das generierte YAML gerne für deine spezifischen Bedürfnisse anpassen, aber bitte verstehe, dass umfassender ApexCharts-Konfigurations-Support außerhalb des Umfangs dieser Integration liegt. Community-Beiträge mit verbesserten Konfigurationen sind immer willkommen - wenn du ein besseres Setup findest, das funktioniert, teile es bitte, damit alle davon profitieren können! Für direkten Datenzugriff zum Erstellen eigener Diagramme nutze stattdessen den `get_chartdata`-Service.",
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Eintrags-ID",
|
||
"description": "Die Konfigurationseintrags-ID für die Tibber-Integration."
|
||
},
|
||
"day": {
|
||
"name": "Tag",
|
||
"description": "Welcher Tag visualisiert werden soll (Standard: Rollierendes Fenster). Feste Tag-Optionen (Gestern/Heute/Morgen) zeigen 24h-Fenster ohne zusätzliche Abhängigkeiten. Dynamische Optionen benötigen config-template-card: Rollierendes Fenster zeigt ein festes 48h-Fenster, das automatisch zwischen gestern+heute und heute+morgen wechselt basierend auf Datenverfügbarkeit. Rollierendes Fenster (Auto-Zoom) verhält sich gleich, zoomt aber zusätzlich automatisch rein (2h Rückblick + verbleibende Zeit bis Mitternacht, graph_span verringert sich alle 15 Minuten)."
|
||
},
|
||
"level_type": {
|
||
"name": "Stufen-Typ",
|
||
"description": "Wähle, welche Preisstufen-Klassifizierung visualisiert werden soll: 'rating_level' (niedrig/normal/hoch basierend auf deinen konfigurierten Schwellenwerten) oder 'level' (Tibber-API-Stufen: sehr günstig/günstig/normal/teuer/sehr teuer)."
|
||
},
|
||
"highlight_best_price": {
|
||
"name": "Bestpreis-Zeiträume hervorheben",
|
||
"description": "Füge eine halbtransparente grüne Überlagerung hinzu, um die Bestpreis-Zeiträume im Diagramm hervorzuheben. Dies erleichtert die visuelle Identifizierung der optimalen Zeiten für den Energieverbrauch."
|
||
}
|
||
}
|
||
},
|
||
"get_chartdata": {
|
||
"name": "Diagrammdaten abrufen",
|
||
"description": "Gibt Preisdaten in einem einfachen, diagrammfreundlichen Format kompatibel mit der Tibber Core Integration zurück. Perfekt für beliebte Diagramm-Karten wie ha-price-timeline-card, ApexCharts Card, Plotly Graph Card, Mini Graph Card oder die eingebaute History Graph Card. Feldnamen und Datenstruktur können an die Anforderungen deines Diagramms angepasst werden.",
|
||
"sections": {
|
||
"general": {
|
||
"name": "Allgemein",
|
||
"description": "Basisoptionen für das Abrufen von Diagrammdaten."
|
||
},
|
||
"selection": {
|
||
"name": "Auswahl",
|
||
"description": "Wähle aus, welche Daten in die Ausgabe aufgenommen werden sollen."
|
||
},
|
||
"filters": {
|
||
"name": "Filter",
|
||
"description": "Filtere Daten basierend auf Preisniveaus, Preisbewertungen oder speziellen Zeiträumen."
|
||
},
|
||
"transformation": {
|
||
"name": "Daten transformieren",
|
||
"description": "Transformiere die Datenausgabe für bessere Diagrammkompatibilität."
|
||
},
|
||
"format": {
|
||
"name": "Format",
|
||
"description": "Passe das Ausgabeformat an."
|
||
},
|
||
"arrays_of_arrays": {
|
||
"name": "Erweiterte Ausgabeeinstellungen: Array von Arrays",
|
||
"description": "Einstellungen für das Ausgabeformat bei Verwendung eines Arrays von Arrays."
|
||
},
|
||
"arrays_of_objects": {
|
||
"name": "Erweiterte Ausgabeeinstellungen: Array von Objekten",
|
||
"description": "Einstellungen für das Ausgabeformat bei Verwendung eines Arrays von Objekten."
|
||
}
|
||
},
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Eintrag-ID",
|
||
"description": "Die Konfigurationseintrag-ID für die Tibber-Integration."
|
||
},
|
||
"day": {
|
||
"name": "Tag",
|
||
"description": "Für welche(n) Tag(e) sollen Preise abgerufen werden. Du kannst mehrere Tage auswählen. Falls nicht angegeben, wird ein rollierendes 2-Tages-Fenster zurückgegeben: heute+morgen (wenn Morgendaten verfügbar) oder gestern+heute (wenn Morgendaten noch nicht verfügbar). Dies ermöglicht eine kontinuierliche Diagrammanzeige ohne Lücken."
|
||
},
|
||
"resolution": {
|
||
"name": "Auflösung",
|
||
"description": "Zeitauflösung für die zurückgegebenen Daten. Optionen: 'interval' (Standard, 15-Minuten-Intervalle, 96 Datenpunkte pro Tag), 'hourly' (stündliche Durchschnitte, 24 Datenpunkte pro Tag)."
|
||
},
|
||
"output_format": {
|
||
"name": "Ausgabeformat",
|
||
"description": "Ausgabeformat für die zurückgegebenen Daten. Optionen: 'array_of_objects' (Standard, Array von Objekten mit anpassbaren Feldnamen), 'array_of_arrays' (Array von [Zeitstempel, Preis]-Arrays mit abschließendem Null-Punkt für Stepline-Charts)."
|
||
},
|
||
"array_fields": {
|
||
"name": "Array-Felder",
|
||
"description": "Definiere, welche Felder im array_of_arrays-Format enthalten sein sollen. Verwende Feldnamen in geschweiften Klammern, getrennt durch Kommas. Verfügbare Felder: start_time, price_per_kwh, level, rating_level, average. Felder werden automatisch aktiviert, auch wenn include_*-Optionen nicht gesetzt sind. Leer lassen für Standard (nur Zeitstempel und Preis)."
|
||
},
|
||
"subunit_currency": {
|
||
"name": "Unterwährungseinheit",
|
||
"description": "Gibt Preise in Unterwährungseinheiten zurück (Cent für EUR, Øre für NOK/SEK) statt in Basiswährungseinheiten. Standardmäßig deaktiviert."
|
||
},
|
||
"round_decimals": {
|
||
"name": "Dezimalstellen runden",
|
||
"description": "Anzahl der Dezimalstellen, auf die Preise gerundet werden sollen (0-10). Falls nicht angegeben, wird die Standardgenauigkeit verwendet (4 Dezimalstellen für Basiswährung, 2 für Unterwährungseinheit)."
|
||
},
|
||
"include_level": {
|
||
"name": "Preisniveau einschließen",
|
||
"description": "Fügt das Tibber-Preisniveau (sehr günstig/günstig/normal/teuer/sehr teuer) zu jedem Datenpunkt hinzu."
|
||
},
|
||
"include_rating_level": {
|
||
"name": "Preisbewertung einschließen",
|
||
"description": "Fügt die berechnete Preisbewertung (niedrig/normal/hoch) basierend auf deinen konfigurierten Schwellwerten zu jedem Datenpunkt hinzu."
|
||
},
|
||
"include_average": {
|
||
"name": "Durchschnitt einschließen",
|
||
"description": "Den Tagesdurchschnittspreis in jedem Datenpunkt zum Vergleich einschließen."
|
||
},
|
||
"level_filter": {
|
||
"name": "Preisniveau-Filter",
|
||
"description": "Intervalle filtern, um nur bestimmte Tibber-Preisniveaus einzuschließen (sehr günstig/günstig/normal/teuer/sehr teuer). Falls nicht angegeben, werden alle Niveaus eingeschlossen."
|
||
},
|
||
"rating_level_filter": {
|
||
"name": "Preisbewertungs-Filter",
|
||
"description": "Intervalle filtern, um nur bestimmte Preisbewertungen einzuschließen (niedrig/normal/hoch). Falls nicht angegeben, werden alle Bewertungen eingeschlossen."
|
||
},
|
||
"period_filter": {
|
||
"name": "Perioden-Filter",
|
||
"description": "Intervalle filtern, um nur solche innerhalb von Bestepreis- oder Spitzenpreis-Zeiträumen einzuschließen. Optionen: 'best_price' (nur Intervalle in Beste-Preis-Perioden), 'peak_price' (nur Intervalle in Spitzen-Preis-Perioden). Falls nicht angegeben, werden alle Intervalle eingeschlossen. Verwendet vorberechnete Periodendaten von Binär-Sensoren."
|
||
},
|
||
"insert_nulls": {
|
||
"name": "NULL-Werte einfügen",
|
||
"description": "Steuert das Einfügen von NULL-Werten für gefilterte Daten. 'none' (Standard): Keine NULL-Werte, nur passende Intervalle. 'segments': NULL-Punkte an Segmentgrenzen für saubere Lücken in Diagrammen hinzufügen (empfohlen für Stufenliniendiagramme). 'all': NULL für alle Zeitstempel einfügen, bei denen der Filter nicht übereinstimmt (nützlich für kontinuierliche Zeitreihenvisualisierung)."
|
||
},
|
||
"connect_segments": {
|
||
"name": "Segmente verbinden",
|
||
"description": "[NUR BEI 'NULL-Werte einfügen'] Wenn aktiviert, werden an Segmentgrenzen Verbindungspunkte hinzugefügt, um verschiedene Preisstufen-Segmente in Stufenliniendiagrammen visuell zu verbinden. Bei fallendem Preis wird ein Punkt mit dem niedrigeren Preis am Ende des aktuellen Segments hinzugefügt. Bei steigendem Preis wird ein Haltepunkt vor der Lücke hinzugefügt. Dies erzeugt sanfte visuelle Übergänge zwischen Segmenten anstelle von abrupten Lücken."
|
||
},
|
||
"add_trailing_null": {
|
||
"name": "Abschließenden Null-Punkt hinzufügen",
|
||
"description": "Füge einen finalen Datenpunkt mit Nullwerten (außer Zeitstempel) am Ende hinzu. Einige Diagrammbibliotheken benötigen dies, um Extrapolation/Interpolation zum Viewport-Rand bei Verwendung von Stufendarstellung zu verhindern. Deaktiviert lassen, es sei denn, dein Diagramm benötigt es."
|
||
},
|
||
"start_time_field": {
|
||
"name": "Startzeit-Feldname",
|
||
"description": "Benutzerdefinierter Name für das Startzeit-Feld in der Ausgabe. Standardmäßig 'start_time', wenn nicht angegeben."
|
||
},
|
||
"end_time_field": {
|
||
"name": "Endzeit-Feldname",
|
||
"description": "Benutzerdefinierter Name für das Endzeit-Feld in der Ausgabe. Standardmäßig 'end_time', wenn nicht angegeben. Nur verwendet mit period_filter."
|
||
},
|
||
"price_field": {
|
||
"name": "Preis-Feldname",
|
||
"description": "Benutzerdefinierter Name für das Preis-Feld in der Ausgabe. Standard ist 'price_per_kwh', falls nicht angegeben."
|
||
},
|
||
"level_field": {
|
||
"name": "Preisniveau-Feldname",
|
||
"description": "Benutzerdefinierter Name für das Preisniveau-Feld in der Ausgabe. Standard ist 'level', falls nicht angegeben. Wird nur verwendet, wenn include_level aktiviert ist."
|
||
},
|
||
"rating_level_field": {
|
||
"name": "Preisbewertung-Feldname",
|
||
"description": "Benutzerdefinierter Name für das Preisbewertungs-Feld in der Ausgabe. Standard ist 'rating_level', falls nicht angegeben. Wird nur verwendet, wenn include_rating_level aktiviert ist."
|
||
},
|
||
"average_field": {
|
||
"name": "Durchschnitts-Feldname",
|
||
"description": "Benutzerdefinierter Name für das Durchschnitts-Feld in der Ausgabe. Standard ist 'average', falls nicht angegeben. Wird nur verwendet, wenn include_average aktiviert ist."
|
||
},
|
||
"metadata": {
|
||
"name": "Metadaten",
|
||
"description": "Steuerung der Metadaten-Einbindung in der Antwort. 'include' (Standard): Gibt Chart-Daten und Metadaten mit Preisstatistiken, Währungsinformationen, Y-Achsen-Vorschlägen und Zeitbereich zurück. 'only': Gibt nur Metadaten zurück ohne Chart-Daten zu verarbeiten (schnell, nützlich für dynamische Y-Achsen-Konfiguration). 'none': Gibt nur Chart-Daten ohne Metadaten zurück."
|
||
},
|
||
"data_key": {
|
||
"name": "Daten-Schlüssel",
|
||
"description": "Benutzerdefinierter Name für den obersten Datenschlüssel in der Antwort. Standard ist 'data', falls nicht angegeben."
|
||
}
|
||
}
|
||
},
|
||
"refresh_user_data": {
|
||
"name": "Benutzerdaten aktualisieren",
|
||
"description": "Erzwingt eine Aktualisierung der Benutzerdaten (Häuser, Profilinformationen) aus der Tibber API. Dies kann nützlich sein, nachdem Änderungen an deinem Tibber-Konto vorgenommen wurden oder bei der Fehlerbehebung von Verbindungsproblemen.",
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Eintrag-ID",
|
||
"description": "Die Konfigurationseintrag-ID für die Tibber-Integration."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"selector": {
|
||
"account_choice": {
|
||
"options": {
|
||
"new_token": "Neues Tibber-Konto per API-Token hinzufügen"
|
||
}
|
||
},
|
||
"day": {
|
||
"options": {
|
||
"yesterday": "Gestern",
|
||
"today": "Heute",
|
||
"tomorrow": "Morgen",
|
||
"rolling_window": "Rollierendes Fenster",
|
||
"rolling_window_autozoom": "Rollierendes Fenster (Auto-Zoom)"
|
||
}
|
||
},
|
||
"resolution": {
|
||
"options": {
|
||
"interval": "Intervall (15 Min)",
|
||
"hourly": "Stündlich"
|
||
}
|
||
},
|
||
"output_format": {
|
||
"options": {
|
||
"array_of_objects": "Array aus Objekten",
|
||
"array_of_arrays": "Array aus Arrays"
|
||
}
|
||
},
|
||
"level_type": {
|
||
"options": {
|
||
"rating_level": "Preisbewertung (niedrig/normal/hoch)",
|
||
"level": "Preisniveau (sehr günstig bis sehr teuer)"
|
||
}
|
||
},
|
||
"level_filter": {
|
||
"options": {
|
||
"very_cheap": "Sehr günstig",
|
||
"cheap": "Günstig",
|
||
"normal": "Normal",
|
||
"expensive": "Teuer",
|
||
"very_expensive": "Sehr teuer"
|
||
}
|
||
},
|
||
"rating_level_filter": {
|
||
"options": {
|
||
"low": "Niedrig",
|
||
"normal": "Normal",
|
||
"high": "Hoch"
|
||
}
|
||
},
|
||
"insert_nulls": {
|
||
"options": {
|
||
"none": "Keine",
|
||
"segments": "Segmente",
|
||
"all": "Alle"
|
||
}
|
||
},
|
||
"period_filter": {
|
||
"options": {
|
||
"best_price": "Bestpreis-Zeiträume",
|
||
"peak_price": "Spitzenpreis-Zeiträume"
|
||
}
|
||
},
|
||
"metadata": {
|
||
"options": {
|
||
"include": "Einbeziehen (Daten + Metadaten)",
|
||
"only": "Nur Metadaten",
|
||
"none": "Keine (nur Daten)"
|
||
}
|
||
},
|
||
"volatility": {
|
||
"options": {
|
||
"low": "Niedrig",
|
||
"moderate": "Moderat",
|
||
"high": "Hoch",
|
||
"very_high": "Sehr hoch"
|
||
}
|
||
},
|
||
"current_interval_price_level": {
|
||
"options": {
|
||
"any": "Beliebig",
|
||
"very_cheap": "Sehr günstig",
|
||
"cheap": "Günstig",
|
||
"normal": "Normal",
|
||
"expensive": "Teuer",
|
||
"very_expensive": "Sehr teuer"
|
||
}
|
||
},
|
||
"currency_display_mode": {
|
||
"options": {
|
||
"base": "Basiswährung (€, kr)",
|
||
"subunit": "Unterwährungseinheit (ct, øre)"
|
||
}
|
||
},
|
||
"average_sensor_display": {
|
||
"options": {
|
||
"median": "Median",
|
||
"mean": "Arithmetisches Mittel"
|
||
}
|
||
}
|
||
},
|
||
"title": "Tibber Preisinformationen & Bewertungen"
|
||
}
|