hass.tibber_prices/custom_components/tibber_prices/translations/de.json
Julian Pawlowski f4568be34e feat(sensors): add price volatility analysis and period filters
Added comprehensive volatility analysis system:
- 4 new volatility sensors (today, tomorrow, next_24h, today+tomorrow)
- Volatility classification (LOW/MODERATE/HIGH/VERY HIGH) based on price spread
- Configurable thresholds in options flow (step 6 of 6)
- Best/Peak price period filters using volatility and price level
- Price spread calculation in get_price service

Volatility sensors help users decide if price-based optimization is worthwhile.
For example, battery optimization only makes sense when volatility ≥ MODERATE.

Period filters allow AND-logic combinations:
- best_price_min_volatility: Only show cheap periods on volatile days
- best_price_max_level: Only show periods when prices reach desired level
- peak_price_min_volatility: Only show peaks on volatile days
- peak_price_min_level: Only show peaks when expensive levels occur

All 5 language files updated (de, en, nb, nl, sv) with:
- Volatility sensor translations (name, states, descriptions)
- Config flow step 6 "Volatility" with threshold settings
- Step progress indicators added to all config steps
- Period filter translations with usage tips

Impact: Users can now assess daily price volatility and configure period
sensors to only activate when conditions justify battery cycling or load
shifting. Reduces unnecessary battery wear on low-volatility days.
2025-11-09 14:24:34 +00:00

500 lines
22 KiB
JSON

{
"config": {
"step": {
"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."
},
"abort": {
"already_configured": "Integration ist bereits konfiguriert",
"entry_not_found": "Tibber Konfigurationseintrag nicht gefunden.",
"setup_complete": "Einrichtung abgeschlossen! Du kannst zusätzliche Optionen für Tibber Preise in den Integrationsoptionen ändern, nachdem du diesen Dialog geschlossen hast.",
"reauth_successful": "Erneute Authentifizierung erfolgreich. Die Integration wurde mit dem neuen Zugriffstoken aktualisiert."
}
},
"common": {
"step_progress": "Schritt {step_num} von {total_steps}"
},
"config_subentries": {
"home": {
"initiate_flow": {
"user": "Tibber Zuhause hinzufügen"
},
"title": "Tibber Zuhause hinzufügen",
"step": {
"user": {
"title": "Tibber Zuhause hinzufügen",
"description": "Wähle ein Zuhause aus, das du zu deiner Tibber-Integration hinzufügen möchtest.",
"data": {
"home_id": "Zuhause"
}
}
},
"error": {
"api_error": "Fehler beim Abrufen der Zuhause von der Tibber API"
},
"abort": {
"no_parent_entry": "Übergeordneter Eintrag nicht gefunden",
"no_access_token": "Kein Zugriffstoken verfügbar",
"home_not_found": "Ausgewähltes Zuhause nicht gefunden",
"api_error": "Fehler beim Abrufen der Zuhause von der Tibber API",
"no_available_homes": "Keine zusätzlichen Zuhause verfügbar. Alle Zuhause von deinem Tibber-Konto wurden bereits hinzugefügt."
}
}
},
"options": {
"step": {
"init": {
"title": "Allgemeine Einstellungen",
"description": "{step_progress}\n\nKonfiguration allgemeiner Einstellungen für Tibber Preisinformationen & Bewertungen.\n\nBenutzer: {user_login}",
"data": {
"extended_descriptions": "Erweiterte Beschreibungen in Entity-Attributen anzeigen"
}
},
"price_rating": {
"title": "Preisbewertungs-Schwellwerte",
"description": "{step_progress}\n\nKonfiguration der Schwellwerte für Preisbewertungsstufen (NIEDRIG/NORMAL/HOCH) basierend auf dem Vergleich mit dem gleitenden 24-Stunden-Durchschnitt.",
"data": {
"price_rating_threshold_low": "Schwellwert für niedrige Bewertung (unter gleitendem Durchschnitt)",
"price_rating_threshold_high": "Schwellwert für hohe Bewertung (über gleitendem Durchschnitt)"
}
},
"best_price": {
"title": "Bestpreis-Periode Einstellungen",
"description": "{step_progress}\n\nKonfiguration für den Bestpreis-Periode Binärsensor. Dieser Sensor ist während der Zeiträume mit den niedrigsten Strompreisen aktiv.",
"data": {
"best_price_min_period_length": "Minimale Periodenlänge",
"best_price_flex": "Flexibilität: Maximal über dem Mindestpreis",
"best_price_min_distance_from_avg": "Mindestabstand: Erforderlich unter dem Tagesdurchschnitt",
"best_price_min_volatility": "Mindest-Volatilitätsfilter",
"best_price_max_level": "Preisniveau-Filter (Optional)"
},
"data_description": {
"best_price_min_volatility": "Zeigt Bestpreis-Perioden nur an, wenn die heutige Volatilität mindestens diesem Level entspricht. Standard: 'Niedrig' (zeigt unabhängig von Volatilität) - Batterie-Optimierung ist auch bei geringen Preisschwankungen nützlich. Wähle 'Moderat'/'Hoch' um Perioden nur an volatileren Tagen anzuzeigen. UND-Verknüpfung: Volatilität UND Niveaufilter müssen beide erfüllt sein.",
"best_price_max_level": "Zeigt Bestpreis-Perioden nur an, wenn mindestens ein Intervall heute ein Preisniveau ≤ dem gewählten Wert hat. UND-Verknüpfung: Volatilitätsfilter (falls gesetzt) UND Niveaufilter müssen beide erfüllt sein. Nützlich um Batterieladen an teuren Tagen zu vermeiden. Wähle 'Beliebig' um diesen Filter zu deaktivieren."
}
},
"peak_price": {
"title": "Spitzenpreis-Periode Einstellungen",
"description": "{step_progress}\n\nKonfiguration für den Spitzenpreis-Periode Binärsensor. Dieser Sensor ist während der Zeiträume mit den höchsten Strompreisen aktiv.",
"data": {
"peak_price_min_period_length": "Minimale Periodenlänge",
"peak_price_flex": "Flexibilität: Maximal unter dem Höchstpreis (negativer Wert)",
"peak_price_min_distance_from_avg": "Mindestabstand: Erforderlich über dem Tagesdurchschnitt",
"peak_price_min_volatility": "Mindest-Volatilitätsfilter",
"peak_price_min_level": "Preisniveau-Filter (Optional)"
},
"data_description": {
"peak_price_min_volatility": "Zeigt Spitzenpreis-Perioden nur an, wenn die heutige Volatilität mindestens diesem Level entspricht. Standard: 'Niedrig' (zeigt unabhängig von Volatilität) - Spitzenwarnungen sind auch bei niedrigen Spannen relevant, da teure Stunden vermeiden immer wichtig ist. Wähle 'Moderat'/'Hoch' um Peaks nur an volatilen Tagen anzuzeigen. UND-Verknüpfung: Volatilität UND Niveaufilter müssen beide erfüllt sein.",
"peak_price_min_level": "Zeigt Spitzenpreis-Perioden nur an, wenn mindestens ein Intervall heute ein Preisniveau ≥ dem gewählten Wert hat. UND-Verknüpfung: Volatilitätsfilter (falls gesetzt) UND Niveaufilter müssen beide erfüllt sein. Normalerweise auf 'Beliebig' gesetzt, da Spitzenperioden relativ zum Tag sind. Wähle 'Beliebig' um diesen Filter zu deaktivieren."
}
},
"price_trend": {
"title": "Preistrend-Schwellenwerte",
"description": "{step_progress}\n\nKonfigurieren Sie 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.",
"data": {
"price_trend_threshold_rising": "Steigender Schwellenwert (über dem aktuellen Preis)",
"price_trend_threshold_falling": "Fallender Schwellenwert (unter dem aktuellen Preis, negativer Wert)"
}
},
"volatility": {
"title": "Preisvolatilität Schwellenwerte",
"description": "{step_progress}\n\nKonfigurieren Sie Schwellenwerte für die Volatilitätsklassifizierung. Volatilität misst Preisschwankungen (Spanne zwischen Min/Max) in kleinster Währungseinheit. Diese Schwellenwerte werden von Volatilitätssensoren und Periodenfiltern verwendet.",
"data": {
"volatility_threshold_moderate": "Moderate Schwelle (Spanne ≥ dieser Wert)",
"volatility_threshold_high": "Hohe Schwelle (Spanne ≥ dieser Wert)",
"volatility_threshold_very_high": "Sehr hohe Schwelle (Spanne ≥ dieser Wert)"
}
}
},
"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."
},
"abort": {
"entry_not_found": "Tibber Konfigurationseintrag nicht gefunden."
},
"best_price_flex": "Bestpreis Flexibilität (%)",
"peak_price_flex": "Spitzenpreis Flexibilität (%)",
"price_rating_threshold_low": "Niedriger Preis Schwellenwert (% zum gleitenden Durchschnitt)",
"price_rating_threshold_high": "Hoher Preis Schwellenwert (% zum gleitenden Durchschnitt)"
},
"entity": {
"sensor": {
"current_price": {
"name": "Aktueller Strompreis"
},
"next_interval_price": {
"name": "Nächster Preis"
},
"previous_interval_price": {
"name": "Vorheriger Preis"
},
"current_hour_average": {
"name": "Aktueller Stunden-Durchschnittspreis"
},
"next_hour_average": {
"name": "Nächster Stunden-Durchschnittspreis"
},
"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": "Durchschnittspreis heute"
},
"lowest_price_tomorrow": {
"name": "Mindestpreis morgen"
},
"highest_price_tomorrow": {
"name": "Höchstpreis morgen"
},
"average_price_tomorrow": {
"name": "Durchschnittspreis morgen"
},
"trailing_price_average": {
"name": "Nachlaufender 24h-Durchschnittspreis"
},
"leading_price_average": {
"name": "Vorlaufender 24h-Durchschnittspreis"
},
"trailing_price_min": {
"name": "Nachlaufender 24h-Mindestpreis"
},
"trailing_price_max": {
"name": "Nachlaufender 24h-Höchstpreis"
},
"leading_price_min": {
"name": "Vorlaufender 24h-Mindestpreis"
},
"leading_price_max": {
"name": "Vorlaufender 24h-Höchstpreis"
},
"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": "Durchschnittspreis nächste 1h"
},
"next_avg_2h": {
"name": "Durchschnittspreis nächste 2h"
},
"next_avg_3h": {
"name": "Durchschnittspreis nächste 3h"
},
"next_avg_4h": {
"name": "Durchschnittspreis nächste 4h"
},
"next_avg_5h": {
"name": "Durchschnittspreis nächste 5h"
},
"next_avg_6h": {
"name": "Durchschnittspreis nächste 6h"
},
"next_avg_8h": {
"name": "Durchschnittspreis nächste 8h"
},
"next_avg_12h": {
"name": "Durchschnittspreis 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"
}
},
"daily_rating": {
"name": "Tägliche Preisbewertung"
},
"monthly_rating": {
"name": "Monatliche Preisbewertung"
},
"data_timestamp": {
"name": "Preisdaten-Ablauf"
},
"today_volatility": {
"name": "Preisvolatilität heute",
"state": {
"low": "Niedrig",
"moderate": "Moderat",
"high": "Hoch",
"very_high": "Sehr hoch"
}
},
"tomorrow_volatility": {
"name": "Preisvolatilität morgen",
"state": {
"low": "Niedrig",
"moderate": "Moderat",
"high": "Hoch",
"very_high": "Sehr hoch"
}
},
"next_24h_volatility": {
"name": "Preisvolatilität der nächsten 24h",
"state": {
"low": "Niedrig",
"moderate": "Moderat",
"high": "Hoch",
"very_high": "Sehr hoch"
}
},
"today_tomorrow_volatility": {
"name": "Preisvolatilität heute+morgen",
"state": {
"low": "Niedrig",
"moderate": "Moderat",
"high": "Hoch",
"very_high": "Sehr hoch"
}
},
"price_forecast": {
"name": "Preisprognose"
}
},
"binary_sensor": {
"peak_price_period": {
"name": "Spitzenpreis-Periode"
},
"best_price_period": {
"name": "Bestpreis-Periode"
},
"connection": {
"name": "Tibber API-Verbindung"
},
"tomorrow_data_available": {
"name": "Daten für morgen verfügbar"
}
}
},
"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."
}
},
"services": {
"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": {
"volatility": {
"options": {
"LOW": "Niedrig",
"MODERATE": "Moderat",
"HIGH": "Hoch",
"VERY_HIGH": "Sehr hoch"
}
},
"price_level": {
"options": {
"ANY": "Beliebig",
"VERY_CHEAP": "Sehr günstig",
"CHEAP": "Günstig",
"NORMAL": "Normal",
"EXPENSIVE": "Teuer",
"VERY_EXPENSIVE": "Sehr teuer"
}
}
},
"title": "Tibber Preisinformationen & Bewertungen"
}