diff --git a/custom_components/tibber_prices/const.py b/custom_components/tibber_prices/const.py index f75d871..35528df 100644 --- a/custom_components/tibber_prices/const.py +++ b/custom_components/tibber_prices/const.py @@ -8,6 +8,12 @@ from typing import Any import aiofiles +from homeassistant.const import ( + CURRENCY_DOLLAR, + CURRENCY_EURO, + UnitOfPower, + UnitOfTime, +) from homeassistant.core import HomeAssistant # Version should match manifest.json @@ -44,6 +50,66 @@ HOME_TYPES = { HOME_TYPE_COTTAGE: "Cottage", } +# Currency mapping: ISO code -> (major_symbol, minor_symbol, minor_name) +# For currencies with Home Assistant constants, use those; otherwise define custom ones +CURRENCY_INFO = { + "EUR": (CURRENCY_EURO, "ct", "cents"), + "NOK": ("kr", "øre", "øre"), + "SEK": ("kr", "öre", "öre"), + "DKK": ("kr", "øre", "øre"), + "USD": (CURRENCY_DOLLAR, "¢", "cents"), + "GBP": ("£", "p", "pence"), +} + + +def get_currency_info(currency_code: str | None) -> tuple[str, str, str]: + """ + Get currency information for a given ISO currency code. + + Args: + currency_code: ISO 4217 currency code (e.g., 'EUR', 'NOK', 'SEK') + + Returns: + Tuple of (major_symbol, minor_symbol, minor_name) + Defaults to EUR if currency is not recognized + + """ + if not currency_code: + currency_code = "EUR" + + return CURRENCY_INFO.get(currency_code.upper(), CURRENCY_INFO["EUR"]) + + +def format_price_unit_major(currency_code: str | None) -> str: + """ + Format the price unit string with major currency unit (e.g., '€/kWh'). + + Args: + currency_code: ISO 4217 currency code (e.g., 'EUR', 'NOK', 'SEK') + + Returns: + Formatted unit string like '€/kWh' or 'kr/kWh' + + """ + major_symbol, _, _ = get_currency_info(currency_code) + return f"{major_symbol}/{UnitOfPower.KILO_WATT}{UnitOfTime.HOURS}" + + +def format_price_unit_minor(currency_code: str | None) -> str: + """ + Format the price unit string with minor currency unit (e.g., 'ct/kWh'). + + Args: + currency_code: ISO 4217 currency code (e.g., 'EUR', 'NOK', 'SEK') + + Returns: + Formatted unit string like 'ct/kWh' or 'øre/kWh' + + """ + _, minor_symbol, _ = get_currency_info(currency_code) + return f"{minor_symbol}/{UnitOfPower.KILO_WATT}{UnitOfTime.HOURS}" + + # Price level constants PRICE_LEVEL_NORMAL = "NORMAL" PRICE_LEVEL_CHEAP = "CHEAP" diff --git a/custom_components/tibber_prices/custom_translations/de.json b/custom_components/tibber_prices/custom_translations/de.json index abaf981..4a5b08b 100644 --- a/custom_components/tibber_prices/custom_translations/de.json +++ b/custom_components/tibber_prices/custom_translations/de.json @@ -1,118 +1,118 @@ { "sensor": { "current_price": { - "description": "Der aktuelle Strompreis in Cent pro kWh", - "long_description": "Zeigt den aktuellen Preis pro kWh (in Cent) von deinem Tibber-Abonnement an", + "description": "Der aktuelle Strompreis pro kWh", + "long_description": "Zeigt den aktuellen Preis pro kWh von deinem Tibber-Abonnement an", "usage_tips": "Nutze dies, um Preise zu verfolgen oder Automatisierungen zu erstellen, die bei günstigem Strom ausgeführt werden" }, "next_interval_price": { - "description": "Der Strompreis für das nächste 15-Minuten-Intervall in Cent pro kWh", - "long_description": "Zeigt den Preis für das nächste 15-Minuten-Intervall (in Cent) von deinem Tibber-Abonnement an", + "description": "Der Strompreis für das nächste 15-Minuten-Intervall pro kWh", + "long_description": "Zeigt den Preis für das nächste 15-Minuten-Intervall von deinem Tibber-Abonnement an", "usage_tips": "Nutze dies, um dich auf kommende Preisänderungen vorzubereiten oder Geräte während günstigerer Intervalle zu planen" }, "previous_interval_price": { - "description": "Der Strompreis für das vorherige 15-Minuten-Intervall in Cent pro kWh", - "long_description": "Zeigt den Preis für das vorherige 15-Minuten-Intervall (in Cent) von deinem Tibber-Abonnement an", + "description": "Der Strompreis für das vorherige 15-Minuten-Intervall pro kWh", + "long_description": "Zeigt den Preis für das vorherige 15-Minuten-Intervall von deinem Tibber-Abonnement an", "usage_tips": "Nutze dies, um vergangene Preisänderungen zu überprüfen oder den Preisverlauf zu verfolgen" }, "current_hour_average": { - "description": "Gleitender 5-Intervall-Durchschnittspreis in Cent pro kWh", - "long_description": "Zeigt den durchschnittlichen Preis pro kWh (in Cent) berechnet aus 5 Intervallen: 2 vorherige, aktuelles und 2 nächste Intervalle (ca. 75 Minuten insgesamt). Dies bietet einen geglätteten 'Stundenpreis', der sich mit der Zeit anpasst, anstatt an feste Uhrzeiten gebunden zu sein.", + "description": "Gleitender 5-Intervall-Durchschnittspreis pro kWh", + "long_description": "Zeigt den durchschnittlichen Preis pro kWh berechnet aus 5 Intervallen: 2 vorherige, aktuelles und 2 nächste Intervalle (ca. 75 Minuten insgesamt). Dies bietet einen geglätteten 'Stundenpreis', der sich mit der Zeit anpasst, anstatt an feste Uhrzeiten gebunden zu sein.", "usage_tips": "Nutze dies für einen stabileren Preisindikator, der kurzfristige Schwankungen glättet und dennoch auf Preisänderungen reagiert. Besser als feste Stundenpreise für Verbrauchsentscheidungen." }, "next_hour_average": { - "description": "Gleitender 5-Intervall-Durchschnittspreis für nächste Stunde in Cent pro kWh", - "long_description": "Zeigt den durchschnittlichen Preis pro kWh (in Cent) berechnet aus 5 Intervallen, die eine Stunde voraus zentriert sind: ungefähr Intervalle +2 bis +6 von jetzt (Minuten +30 bis +105 abdeckend). Dies bietet einen vorausschauenden geglätteten 'Stundenpreis' zur Verbrauchsplanung.", + "description": "Gleitender 5-Intervall-Durchschnittspreis für nächste Stunde pro kWh", + "long_description": "Zeigt den durchschnittlichen Preis pro kWh berechnet aus 5 Intervallen, die eine Stunde voraus zentriert sind: ungefähr Intervalle +2 bis +6 von jetzt (Minuten +30 bis +105 abdeckend). Dies bietet einen vorausschauenden geglätteten 'Stundenpreis' zur Verbrauchsplanung.", "usage_tips": "Nutze dies, um Preisänderungen in der nächsten Stunde vorherzusehen. Hilfreich für die Planung von verbrauchsintensiven Aktivitäten wie Elektrofahrzeug-Laden, Geschirrspüler oder Heizsysteme." }, "lowest_price_today": { - "description": "Der niedrigste Strompreis für heute in Cent pro kWh", - "long_description": "Zeigt den niedrigsten Preis pro kWh (in Cent) für den aktuellen Tag von deinem Tibber-Abonnement an", + "description": "Der niedrigste Strompreis für heute pro kWh", + "long_description": "Zeigt den niedrigsten Preis pro kWh für den aktuellen Tag von deinem Tibber-Abonnement an", "usage_tips": "Nutze dies, um aktuelle Preise mit der günstigsten Zeit des Tages zu vergleichen" }, "highest_price_today": { - "description": "Der höchste Strompreis für heute in Cent pro kWh", - "long_description": "Zeigt den höchsten Preis pro kWh (in Cent) für den aktuellen Tag von deinem Tibber-Abonnement an", + "description": "Der höchste Strompreis für heute pro kWh", + "long_description": "Zeigt den höchsten Preis pro kWh für den aktuellen Tag von deinem Tibber-Abonnement an", "usage_tips": "Nutze dies, um den Betrieb von Geräten während Spitzenpreiszeiten zu vermeiden" }, "average_price_today": { - "description": "Der durchschnittliche Strompreis für heute in Cent pro kWh", - "long_description": "Zeigt den durchschnittlichen Preis pro kWh (in Cent) für den aktuellen Tag von deinem Tibber-Abonnement an", + "description": "Der durchschnittliche Strompreis für heute pro kWh", + "long_description": "Zeigt den durchschnittlichen Preis pro kWh für den aktuellen Tag von deinem Tibber-Abonnement an", "usage_tips": "Nutze dies als Grundlage für den Vergleich mit aktuellen Preisen" }, "lowest_price_tomorrow": { - "description": "Der niedrigste Strompreis für morgen in Cent pro kWh", - "long_description": "Zeigt den niedrigsten Preis pro kWh (in Cent) für den morgigen Tag von deinem Tibber-Abonnement an. Dieser Sensor wird nicht verfügbar, bis die Preise für morgen von Tibber veröffentlicht werden (typischerweise zwischen 13:00 und 14:00 Uhr MEZ).", + "description": "Der niedrigste Strompreis für morgen pro kWh", + "long_description": "Zeigt den niedrigsten Preis pro kWh für den morgigen Tag von deinem Tibber-Abonnement an. Dieser Sensor wird nicht verfügbar, bis die Preise für morgen von Tibber veröffentlicht werden (typischerweise zwischen 13:00 und 14:00 Uhr MEZ).", "usage_tips": "Nutze dies zur Planung energieintensiver Aktivitäten wie das Laden von Elektrofahrzeugen oder das Aufheizen von Warmwasserspeichern für morgen. Wenn der morgige Mindestpreis deutlich niedriger ist als der heutige, kannst du den Verbrauch verschieben." }, "highest_price_tomorrow": { - "description": "Der höchste Strompreis für morgen in Cent pro kWh", - "long_description": "Zeigt den höchsten Preis pro kWh (in Cent) für den morgigen Tag von deinem Tibber-Abonnement an. Dieser Sensor wird nicht verfügbar, bis die Preise für morgen von Tibber veröffentlicht werden (typischerweise zwischen 13:00 und 14:00 Uhr MEZ).", + "description": "Der höchste Strompreis für morgen pro kWh", + "long_description": "Zeigt den höchsten Preis pro kWh für den morgigen Tag von deinem Tibber-Abonnement an. Dieser Sensor wird nicht verfügbar, bis die Preise für morgen von Tibber veröffentlicht werden (typischerweise zwischen 13:00 und 14:00 Uhr MEZ).", "usage_tips": "Nutze dies, um den Betrieb von Geräten während der teuersten Stunden morgen zu vermeiden. Plane nicht-essentielle Lasten außerhalb dieser Spitzenpreiszeiten." }, "average_price_tomorrow": { - "description": "Der durchschnittliche Strompreis für morgen in Cent pro kWh", - "long_description": "Zeigt den durchschnittlichen Preis pro kWh (in Cent) für den morgigen Tag von deinem Tibber-Abonnement an. Dieser Sensor wird nicht verfügbar, bis die Preise für morgen von Tibber veröffentlicht werden (typischerweise zwischen 13:00 und 14:00 Uhr MEZ).", + "description": "Der durchschnittliche Strompreis für morgen pro kWh", + "long_description": "Zeigt den durchschnittlichen Preis pro kWh für den morgigen Tag von deinem Tibber-Abonnement an. Dieser Sensor wird nicht verfügbar, bis die Preise für morgen von Tibber veröffentlicht werden (typischerweise zwischen 13:00 und 14:00 Uhr MEZ).", "usage_tips": "Nutze dies als Grundlinie für den Vergleich mit den morgigen Preisen und zur Verbrauchsplanung. Vergleiche mit dem heutigen Durchschnitt, um zu sehen, ob morgen insgesamt teurer oder günstiger wird." }, "trailing_price_average": { - "description": "Der durchschnittliche Strompreis für die letzten 24 Stunden in Cent pro kWh", - "long_description": "Zeigt den durchschnittlichen Preis pro kWh (in Cent) berechnet aus den letzten 24 Stunden (nachlaufender Durchschnitt) von deinem Tibber-Abonnement an. Dies bietet einen gleitenden Durchschnitt, der alle 15 Minuten basierend auf historischen Daten aktualisiert wird.", + "description": "Der durchschnittliche Strompreis für die letzten 24 Stunden pro kWh", + "long_description": "Zeigt den durchschnittlichen Preis pro kWh berechnet aus den letzten 24 Stunden (nachlaufender Durchschnitt) von deinem Tibber-Abonnement an. Dies bietet einen gleitenden Durchschnitt, der alle 15 Minuten basierend auf historischen Daten aktualisiert wird.", "usage_tips": "Nutze dies, um aktuelle Preise mit den jüngsten Trends zu vergleichen. Ein aktueller Preis deutlich über diesem Durchschnitt kann ein guter Zeitpunkt sein, um den Verbrauch zu reduzieren." }, "leading_price_average": { - "description": "Der durchschnittliche Strompreis für die nächsten 24 Stunden in Cent pro kWh", - "long_description": "Zeigt den durchschnittlichen Preis pro kWh (in Cent) berechnet aus den nächsten 24 Stunden (vorlaufender Durchschnitt) von deinem Tibber-Abonnement an. Dies bietet einen vorausschauenden Durchschnitt basierend auf verfügbaren Prognosedaten.", + "description": "Der durchschnittliche Strompreis für die nächsten 24 Stunden pro kWh", + "long_description": "Zeigt den durchschnittlichen Preis pro kWh berechnet aus den nächsten 24 Stunden (vorlaufender Durchschnitt) von deinem Tibber-Abonnement an. Dies bietet einen vorausschauenden Durchschnitt basierend auf verfügbaren Prognosedaten.", "usage_tips": "Nutze dies zur Energieverbrauchsplanung. Wenn der aktuelle Preis unter dem vorlaufenden Durchschnitt liegt, kann es ein guter Zeitpunkt sein, um energieintensive Geräte zu betreiben." }, "trailing_price_min": { - "description": "Der niedrigste Strompreis für die letzten 24 Stunden in Cent pro kWh", - "long_description": "Zeigt den niedrigsten Preis pro kWh (in Cent) aus den letzten 24 Stunden (nachlaufendes Minimum) von deinem Tibber-Abonnement an. Dies bietet den niedrigsten Preis, der in den letzten 24 Stunden gesehen wurde.", + "description": "Der niedrigste Strompreis für die letzten 24 Stunden pro kWh", + "long_description": "Zeigt den niedrigsten Preis pro kWh aus den letzten 24 Stunden (nachlaufendes Minimum) von deinem Tibber-Abonnement an. Dies bietet den niedrigsten Preis, der in den letzten 24 Stunden gesehen wurde.", "usage_tips": "Nutze dies, um die beste Preisgelegenheit zu sehen, die du in den letzten 24 Stunden hattest, und vergleiche sie mit den aktuellen Preisen." }, "trailing_price_max": { - "description": "Der höchste Strompreis für die letzten 24 Stunden in Cent pro kWh", - "long_description": "Zeigt den höchsten Preis pro kWh (in Cent) aus den letzten 24 Stunden (nachlaufendes Maximum) von deinem Tibber-Abonnement an. Dies bietet den höchsten Preis, der in den letzten 24 Stunden gesehen wurde.", + "description": "Der höchste Strompreis für die letzten 24 Stunden pro kWh", + "long_description": "Zeigt den höchsten Preis pro kWh aus den letzten 24 Stunden (nachlaufendes Maximum) von deinem Tibber-Abonnement an. Dies bietet den höchsten Preis, der in den letzten 24 Stunden gesehen wurde.", "usage_tips": "Nutze dies, um den Spitzenpreis in den letzten 24 Stunden zu sehen und die Preisvolatilität zu bewerten." }, "leading_price_min": { - "description": "Der niedrigste Strompreis für die nächsten 24 Stunden in Cent pro kWh", - "long_description": "Zeigt den niedrigsten Preis pro kWh (in Cent) für die nächsten 24 Stunden (vorlaufendes Minimum) von deinem Tibber-Abonnement an. Dies bietet den niedrigsten erwarteten Preis in den nächsten 24 Stunden basierend auf Prognosedaten.", + "description": "Der niedrigste Strompreis für die nächsten 24 Stunden pro kWh", + "long_description": "Zeigt den niedrigsten Preis pro kWh für die nächsten 24 Stunden (vorlaufendes Minimum) von deinem Tibber-Abonnement an. Dies bietet den niedrigsten erwarteten Preis in den nächsten 24 Stunden basierend auf Prognosedaten.", "usage_tips": "Nutze dies, um die beste kommende Preisgelegenheit zu identifizieren und energieintensive Aufgaben entsprechend zu planen." }, "leading_price_max": { - "description": "Der höchste Strompreis für die nächsten 24 Stunden in Cent pro kWh", - "long_description": "Zeigt den höchsten Preis pro kWh (in Cent) für die nächsten 24 Stunden (vorlaufendes Maximum) von deinem Tibber-Abonnement an. Dies bietet den höchsten erwarteten Preis in den nächsten 24 Stunden basierend auf Prognosedaten.", + "description": "Der höchste Strompreis für die nächsten 24 Stunden pro kWh", + "long_description": "Zeigt den höchsten Preis pro kWh für die nächsten 24 Stunden (vorlaufendes Maximum) von deinem Tibber-Abonnement an. Dies bietet den höchsten erwarteten Preis in den nächsten 24 Stunden basierend auf Prognosedaten.", "usage_tips": "Nutze dies, um den Betrieb von Geräten während kommender Spitzenpreiszeiten zu vermeiden." }, "current_price_cents": { "name": "Aktueller Strompreis", - "description": "Der aktuelle Strompreis in Cent pro kWh", - "long_description": "Zeigt den aktuellen Preis pro kWh (in Cent) von deinem Tibber-Abonnement an", + "description": "Der aktuelle Strompreis pro kWh", + "long_description": "Zeigt den aktuellen Preis pro kWh von deinem Tibber-Abonnement an", "usage_tips": "Nutze dies, um Preise zu verfolgen oder Automatisierungen zu erstellen, die bei günstigem Strom ausgeführt werden" }, "next_interval_price_cents": { "name": "Nächster Preis", - "description": "Der Strompreis für das nächste 15-Minuten-Intervall in Cent pro kWh", - "long_description": "Zeigt den Preis für das nächste 15-Minuten-Intervall (in Cent) von deinem Tibber-Abonnement an", + "description": "Der Strompreis für das nächste 15-Minuten-Intervall pro kWh", + "long_description": "Zeigt den Preis für das nächste 15-Minuten-Intervall von deinem Tibber-Abonnement an", "usage_tips": "Nutze dies, um dich auf kommende Preisänderungen vorzubereiten oder Geräte während günstigerer Intervalle zu planen" }, "previous_interval_price_cents": { "name": "Vorheriger Preis", - "description": "Der Strompreis für das vorherige 15-Minuten-Intervall in Cent pro kWh", - "long_description": "Zeigt den Preis für das vorherige 15-Minuten-Intervall (in Cent) von deinem Tibber-Abonnement an", + "description": "Der Strompreis für das vorherige 15-Minuten-Intervall pro kWh", + "long_description": "Zeigt den Preis für das vorherige 15-Minuten-Intervall von deinem Tibber-Abonnement an", "usage_tips": "Nutze dies, um vergangene Preisänderungen zu überprüfen oder den Preisverlauf zu verfolgen" }, "current_hour_average_cents": { "name": "Aktueller Stunden-Durchschnittspreis", - "description": "Gleitender 5-Intervall-Durchschnittspreis in Cent pro kWh", - "long_description": "Zeigt den durchschnittlichen Preis pro kWh (in Cent) berechnet aus 5 Intervallen: 2 vorherige, aktuelles und 2 nächste Intervalle (ca. 75 Minuten insgesamt). Dies bietet einen geglätteten 'Stundenpreis', der sich mit der Zeit anpasst, anstatt an feste Uhrzeiten gebunden zu sein.", + "description": "Gleitender 5-Intervall-Durchschnittspreis pro kWh", + "long_description": "Zeigt den durchschnittlichen Preis pro kWh berechnet aus 5 Intervallen: 2 vorherige, aktuelles und 2 nächste Intervalle (ca. 75 Minuten insgesamt). Dies bietet einen geglätteten 'Stundenpreis', der sich mit der Zeit anpasst, anstatt an feste Uhrzeiten gebunden zu sein.", "usage_tips": "Nutze dies für einen stabileren Preisindikator, der kurzfristige Schwankungen glättet und dennoch auf Preisänderungen reagiert. Besser als feste Stundenpreise für Verbrauchsentscheidungen." }, "next_hour_average_cents": { "name": "Nächster Stunden-Durchschnittspreis", - "description": "Gleitender 5-Intervall-Durchschnittspreis für nächste Stunde in Cent pro kWh", - "long_description": "Zeigt den durchschnittlichen Preis pro kWh (in Cent) berechnet aus 5 Intervallen, die eine Stunde voraus zentriert sind: ungefähr Intervalle +2 bis +6 von jetzt (Minuten +30 bis +105 abdeckend). Dies bietet einen vorausschauenden geglätteten 'Stundenpreis' zur Verbrauchsplanung.", + "description": "Gleitender 5-Intervall-Durchschnittspreis für nächste Stunde pro kWh", + "long_description": "Zeigt den durchschnittlichen Preis pro kWh berechnet aus 5 Intervallen, die eine Stunde voraus zentriert sind: ungefähr Intervalle +2 bis +6 von jetzt (Minuten +30 bis +105 abdeckend). Dies bietet einen vorausschauenden geglätteten 'Stundenpreis' zur Verbrauchsplanung.", "usage_tips": "Nutze dies, um Preisänderungen in der nächsten Stunde vorherzusehen. Hilfreich für die Planung von verbrauchsintensiven Aktivitäten wie Elektrofahrzeug-Laden, Geschirrspüler oder Heizsysteme." }, "price_level": { @@ -154,74 +154,74 @@ }, "lowest_price_today_cents": { "name": "Mindestpreis heute", - "description": "Der niedrigste Strompreis für heute in Cent pro kWh", - "long_description": "Zeigt den niedrigsten Preis pro kWh (in Cent) für den aktuellen Tag von deinem Tibber-Abonnement an", + "description": "Der niedrigste Strompreis für heute pro kWh", + "long_description": "Zeigt den niedrigsten Preis pro kWh für den aktuellen Tag von deinem Tibber-Abonnement an", "usage_tips": "Nutze dies, um aktuelle Preise mit der günstigsten Zeit des Tages zu vergleichen" }, "highest_price_today_cents": { "name": "Höchstpreis heute", - "description": "Der höchste Strompreis für heute in Cent pro kWh", - "long_description": "Zeigt den höchsten Preis pro kWh (in Cent) für den aktuellen Tag von deinem Tibber-Abonnement an", + "description": "Der höchste Strompreis für heute pro kWh", + "long_description": "Zeigt den höchsten Preis pro kWh für den aktuellen Tag von deinem Tibber-Abonnement an", "usage_tips": "Nutze dies, um den Betrieb von Geräten während Spitzenpreiszeiten zu vermeiden" }, "average_price_today_cents": { "name": "Durchschnittspreis heute", - "description": "Der durchschnittliche Strompreis für heute in Cent pro kWh", - "long_description": "Zeigt den durchschnittlichen Preis pro kWh (in Cent) für den aktuellen Tag von deinem Tibber-Abonnement an", + "description": "Der durchschnittliche Strompreis für heute pro kWh", + "long_description": "Zeigt den durchschnittlichen Preis pro kWh für den aktuellen Tag von deinem Tibber-Abonnement an", "usage_tips": "Nutze dies als Grundlage für den Vergleich mit aktuellen Preisen" }, "lowest_price_tomorrow_cents": { "name": "Mindestpreis morgen", - "description": "Der niedrigste Strompreis für morgen in Cent pro kWh", - "long_description": "Zeigt den niedrigsten Preis pro kWh (in Cent) für den morgigen Tag von deinem Tibber-Abonnement an. Dieser Sensor wird nicht verfügbar, bis die Preise für morgen von Tibber veröffentlicht werden (typischerweise zwischen 13:00 und 14:00 Uhr MEZ).", + "description": "Der niedrigste Strompreis für morgen pro kWh", + "long_description": "Zeigt den niedrigsten Preis pro kWh für den morgigen Tag von deinem Tibber-Abonnement an. Dieser Sensor wird nicht verfügbar, bis die Preise für morgen von Tibber veröffentlicht werden (typischerweise zwischen 13:00 und 14:00 Uhr MEZ).", "usage_tips": "Nutze dies zur Planung energieintensiver Aktivitäten wie das Laden von Elektrofahrzeugen oder das Aufheizen von Warmwasserspeichern für morgen. Wenn der morgige Mindestpreis deutlich niedriger ist als der heutige, kannst du den Verbrauch verschieben." }, "highest_price_tomorrow_cents": { "name": "Höchstpreis morgen", - "description": "Der höchste Strompreis für morgen in Cent pro kWh", - "long_description": "Zeigt den höchsten Preis pro kWh (in Cent) für den morgigen Tag von deinem Tibber-Abonnement an. Dieser Sensor wird nicht verfügbar, bis die Preise für morgen von Tibber veröffentlicht werden (typischerweise zwischen 13:00 und 14:00 Uhr MEZ).", + "description": "Der höchste Strompreis für morgen pro kWh", + "long_description": "Zeigt den höchsten Preis pro kWh für den morgigen Tag von deinem Tibber-Abonnement an. Dieser Sensor wird nicht verfügbar, bis die Preise für morgen von Tibber veröffentlicht werden (typischerweise zwischen 13:00 und 14:00 Uhr MEZ).", "usage_tips": "Nutze dies, um den Betrieb von Geräten während der teuersten Stunden morgen zu vermeiden. Plane nicht-essentielle Lasten außerhalb dieser Spitzenpreiszeiten." }, "average_price_tomorrow_cents": { "name": "Durchschnittspreis morgen", - "description": "Der durchschnittliche Strompreis für morgen in Cent pro kWh", - "long_description": "Zeigt den durchschnittlichen Preis pro kWh (in Cent) für den morgigen Tag von deinem Tibber-Abonnement an. Dieser Sensor wird nicht verfügbar, bis die Preise für morgen von Tibber veröffentlicht werden (typischerweise zwischen 13:00 und 14:00 Uhr MEZ).", + "description": "Der durchschnittliche Strompreis für morgen pro kWh", + "long_description": "Zeigt den durchschnittlichen Preis pro kWh für den morgigen Tag von deinem Tibber-Abonnement an. Dieser Sensor wird nicht verfügbar, bis die Preise für morgen von Tibber veröffentlicht werden (typischerweise zwischen 13:00 und 14:00 Uhr MEZ).", "usage_tips": "Nutze dies als Grundlage für den Vergleich der morgigen Preise mit dem heutigen Durchschnitt. Wenn der morgige Durchschnitt niedriger ist, kann es besser sein, energieintensive Aufgaben bis morgen zu verschieben." }, "trailing_price_average_cents": { "name": "Nachlaufender 24h-Durchschnittspreis", - "description": "Der durchschnittliche Strompreis der letzten 24 Stunden in Cent pro kWh", - "long_description": "Zeigt den durchschnittlichen Preis pro kWh (in Cent) berechnet aus den letzten 24 Stunden (nachlaufender Durchschnitt) von deinem Tibber-Abonnement an. Dies bietet einen rollierenden Durchschnitt, der alle 15 Minuten auf Basis historischer Daten aktualisiert wird.", + "description": "Der durchschnittliche Strompreis der letzten 24 Stunden pro kWh", + "long_description": "Zeigt den durchschnittlichen Preis pro kWh berechnet aus den letzten 24 Stunden (nachlaufender Durchschnitt) von deinem Tibber-Abonnement an. Dies bietet einen rollierenden Durchschnitt, der alle 15 Minuten auf Basis historischer Daten aktualisiert wird.", "usage_tips": "Nutze dies, um aktuelle Preise mit aktuellen Trends zu vergleichen. Ein aktueller Preis, der deutlich über diesem Durchschnitt liegt, kann ein guter Zeitpunkt sein, den Verbrauch zu reduzieren." }, "leading_price_average_cents": { "name": "Vorlaufender 24h-Durchschnittspreis", - "description": "Der durchschnittliche Strompreis für die nächsten 24 Stunden in Cent pro kWh", - "long_description": "Zeigt den durchschnittlichen Preis pro kWh (in Cent) berechnet aus den nächsten 24 Stunden (vorlaufender Durchschnitt) von deinem Tibber-Abonnement an. Dies bietet einen zukunftsgerichteten Durchschnitt basierend auf verfügbaren Prognosedaten.", + "description": "Der durchschnittliche Strompreis für die nächsten 24 Stunden pro kWh", + "long_description": "Zeigt den durchschnittlichen Preis pro kWh berechnet aus den nächsten 24 Stunden (vorlaufender Durchschnitt) von deinem Tibber-Abonnement an. Dies bietet einen zukunftsgerichteten Durchschnitt basierend auf verfügbaren Prognosedaten.", "usage_tips": "Nutze dies zur Planung des Energieverbrauchs. Wenn der aktuelle Preis unter dem vorlaufenden Durchschnitt liegt, kann es ein guter Zeitpunkt sein, energieintensive Geräte zu betreiben." }, "trailing_price_min_cents": { "name": "Nachlaufender 24h-Mindestpreis", - "description": "Der minimale Strompreis der letzten 24 Stunden in Cent pro kWh", - "long_description": "Zeigt den minimalen Preis pro kWh (in Cent) aus den letzten 24 Stunden (nachlaufendes Minimum) von deinem Tibber-Abonnement an. Dies zeigt den niedrigsten Preis der letzten 24 Stunden.", + "description": "Der minimale Strompreis der letzten 24 Stunden pro kWh", + "long_description": "Zeigt den minimalen Preis pro kWh aus den letzten 24 Stunden (nachlaufendes Minimum) von deinem Tibber-Abonnement an. Dies zeigt den niedrigsten Preis der letzten 24 Stunden.", "usage_tips": "Nutze dies, um die beste Preisgelegenheit der letzten 24 Stunden zu sehen und mit aktuellen Preisen zu vergleichen." }, "trailing_price_max_cents": { "name": "Nachlaufender 24h-Höchstpreis", - "description": "Der maximale Strompreis der letzten 24 Stunden in Cent pro kWh", - "long_description": "Zeigt den maximalen Preis pro kWh (in Cent) aus den letzten 24 Stunden (nachlaufendes Maximum) von deinem Tibber-Abonnement an. Dies zeigt den höchsten Preis der letzten 24 Stunden.", + "description": "Der maximale Strompreis der letzten 24 Stunden pro kWh", + "long_description": "Zeigt den maximalen Preis pro kWh aus den letzten 24 Stunden (nachlaufendes Maximum) von deinem Tibber-Abonnement an. Dies zeigt den höchsten Preis der letzten 24 Stunden.", "usage_tips": "Nutze dies, um den Spitzenpreis der letzten 24 Stunden zu sehen und die Preisvolatilität zu bewerten." }, "leading_price_min_cents": { "name": "Vorlaufender 24h-Mindestpreis", - "description": "Der minimale Strompreis für die nächsten 24 Stunden in Cent pro kWh", - "long_description": "Zeigt den minimalen Preis pro kWh (in Cent) für die nächsten 24 Stunden (vorlaufendes Minimum) von deinem Tibber-Abonnement an. Dies zeigt den niedrigsten erwarteten Preis der nächsten 24 Stunden basierend auf Prognosedaten.", + "description": "Der minimale Strompreis für die nächsten 24 Stunden pro kWh", + "long_description": "Zeigt den minimalen Preis pro kWh für die nächsten 24 Stunden (vorlaufendes Minimum) von deinem Tibber-Abonnement an. Dies zeigt den niedrigsten erwarteten Preis der nächsten 24 Stunden basierend auf Prognosedaten.", "usage_tips": "Nutze dies, um die beste kommende Preisgelegenheit zu identifizieren und energieintensive Aufgaben entsprechend zu planen." }, "leading_price_max_cents": { "name": "Vorlaufender 24h-Höchstpreis", - "description": "Der maximale Strompreis für die nächsten 24 Stunden in Cent pro kWh", - "long_description": "Zeigt den maximalen Preis pro kWh (in Cent) für die nächsten 24 Stunden (vorlaufendes Maximum) von deinem Tibber-Abonnement an. Dies zeigt den höchsten erwarteten Preis der nächsten 24 Stunden basierend auf Prognosedaten.", + "description": "Der maximale Strompreis für die nächsten 24 Stunden pro kWh", + "long_description": "Zeigt den maximalen Preis pro kWh für die nächsten 24 Stunden (vorlaufendes Maximum) von deinem Tibber-Abonnement an. Dies zeigt den höchsten erwarteten Preis der nächsten 24 Stunden basierend auf Prognosedaten.", "usage_tips": "Nutze dies, um den Betrieb von Geräten während kommender Spitzenpreiszeiten zu vermeiden." }, "price_rating": { diff --git a/custom_components/tibber_prices/custom_translations/en.json b/custom_components/tibber_prices/custom_translations/en.json index 72dbb04..486d321 100644 --- a/custom_components/tibber_prices/custom_translations/en.json +++ b/custom_components/tibber_prices/custom_translations/en.json @@ -1,118 +1,118 @@ { "sensor": { "current_price": { - "description": "The current electricity price in cents per kWh", - "long_description": "Shows the current price per kWh (in cents) from your Tibber subscription", + "description": "The current electricity price per kWh", + "long_description": "Shows the current price per kWh from your Tibber subscription", "usage_tips": "Use this to track prices or to create automations that run when electricity is cheap" }, "next_interval_price": { - "description": "The next interval electricity price in cents per kWh", - "long_description": "Shows the price for the next 15-minute interval (in cents) from your Tibber subscription", + "description": "The next interval electricity price per kWh", + "long_description": "Shows the price for the next 15-minute interval from your Tibber subscription", "usage_tips": "Use this to prepare for upcoming price changes or to schedule devices to run during cheaper intervals" }, "previous_interval_price": { - "description": "The previous interval electricity price in cents per kWh", - "long_description": "Shows the price for the previous 15-minute interval (in cents) from your Tibber subscription", + "description": "The previous interval electricity price per kWh", + "long_description": "Shows the price for the previous 15-minute interval from your Tibber subscription", "usage_tips": "Use this to review past price changes or track price history" }, "current_hour_average": { - "description": "Rolling 5-interval average price in cents per kWh", - "long_description": "Shows the average price per kWh (in cents) calculated from 5 intervals: 2 previous, current, and 2 next intervals (approximately 75 minutes total). This provides a smoothed 'hour price' that adapts as time moves, rather than being fixed to clock hours.", + "description": "Rolling 5-interval average price per kWh", + "long_description": "Shows the average price per kWh calculated from 5 intervals: 2 previous, current, and 2 next intervals (approximately 75 minutes total). This provides a smoothed 'hour price' that adapts as time moves, rather than being fixed to clock hours.", "usage_tips": "Use this for a more stable price indicator that smooths out short-term fluctuations while still being responsive to price changes. Better than fixed hourly prices for making consumption decisions." }, "next_hour_average": { - "description": "Rolling 5-interval average price for next hour in cents per kWh", - "long_description": "Shows the average price per kWh (in cents) calculated from 5 intervals centered one hour ahead: approximately intervals +2 through +6 from now (covering minutes +30 to +105). This provides a forward-looking smoothed 'hour price' for planning consumption.", + "description": "Rolling 5-interval average price for next hour per kWh", + "long_description": "Shows the average price per kWh calculated from 5 intervals centered one hour ahead: approximately intervals +2 through +6 from now (covering minutes +30 to +105). This provides a forward-looking smoothed 'hour price' for planning consumption.", "usage_tips": "Use this to anticipate price changes in the next hour. Helpful for scheduling high-consumption activities like charging electric vehicles, running dishwashers, or heating systems." }, "lowest_price_today": { - "description": "The lowest electricity price for today in cents per kWh", - "long_description": "Shows the lowest price per kWh (in cents) for the current day from your Tibber subscription", + "description": "The lowest electricity price for today per kWh", + "long_description": "Shows the lowest price per kWh for the current day from your Tibber subscription", "usage_tips": "Use this to compare current prices to the cheapest time of the day" }, "highest_price_today": { - "description": "The highest electricity price for today in cents per kWh", - "long_description": "Shows the highest price per kWh (in cents) for the current day from your Tibber subscription", + "description": "The highest electricity price for today per kWh", + "long_description": "Shows the highest price per kWh for the current day from your Tibber subscription", "usage_tips": "Use this to avoid running appliances during peak price times" }, "average_price_today": { - "description": "The average electricity price for today in cents per kWh", - "long_description": "Shows the average price per kWh (in cents) for the current day from your Tibber subscription", + "description": "The average electricity price for today per kWh", + "long_description": "Shows the average price per kWh for the current day from your Tibber subscription", "usage_tips": "Use this as a baseline for comparing current prices" }, "lowest_price_tomorrow": { - "description": "The lowest electricity price for tomorrow in cents per kWh", - "long_description": "Shows the lowest price per kWh (in cents) for tomorrow from your Tibber subscription. This sensor becomes unavailable until tomorrow's data is published by Tibber (typically around 13:00-14:00 CET).", + "description": "The lowest electricity price for tomorrow per kWh", + "long_description": "Shows the lowest price per kWh for tomorrow from your Tibber subscription. This sensor becomes unavailable until tomorrow's data is published by Tibber (typically around 13:00-14:00 CET).", "usage_tips": "Use this to plan energy-intensive activities for tomorrow's cheapest time. Perfect for pre-scheduling heating, EV charging, or appliances." }, "highest_price_tomorrow": { - "description": "The highest electricity price for tomorrow in cents per kWh", - "long_description": "Shows the highest price per kWh (in cents) for tomorrow from your Tibber subscription. This sensor becomes unavailable until tomorrow's data is published by Tibber (typically around 13:00-14:00 CET).", + "description": "The highest electricity price for tomorrow per kWh", + "long_description": "Shows the highest price per kWh for tomorrow from your Tibber subscription. This sensor becomes unavailable until tomorrow's data is published by Tibber (typically around 13:00-14:00 CET).", "usage_tips": "Use this to avoid running appliances during tomorrow's peak price times. Helpful for planning around expensive periods." }, "average_price_tomorrow": { - "description": "The average electricity price for tomorrow in cents per kWh", - "long_description": "Shows the average price per kWh (in cents) for tomorrow from your Tibber subscription. This sensor becomes unavailable until tomorrow's data is published by Tibber (typically around 13:00-14:00 CET).", + "description": "The average electricity price for tomorrow per kWh", + "long_description": "Shows the average price per kWh for tomorrow from your Tibber subscription. This sensor becomes unavailable until tomorrow's data is published by Tibber (typically around 13:00-14:00 CET).", "usage_tips": "Use this as a baseline for comparing tomorrow's prices and planning consumption. Compare with today's average to see if tomorrow will be more or less expensive overall." }, "trailing_price_average": { - "description": "The average electricity price for the past 24 hours in cents per kWh", - "long_description": "Shows the average price per kWh (in cents) calculated from the past 24 hours (trailing average) from your Tibber subscription. This provides a rolling average that updates every 15 minutes based on historical data.", + "description": "The average electricity price for the past 24 hours per kWh", + "long_description": "Shows the average price per kWh calculated from the past 24 hours (trailing average) from your Tibber subscription. This provides a rolling average that updates every 15 minutes based on historical data.", "usage_tips": "Use this to compare current prices against recent trends. A current price significantly above this average may indicate a good time to reduce consumption." }, "leading_price_average": { - "description": "The average electricity price for the next 24 hours in cents per kWh", - "long_description": "Shows the average price per kWh (in cents) calculated from the next 24 hours (leading average) from your Tibber subscription. This provides a forward-looking average based on available forecast data.", + "description": "The average electricity price for the next 24 hours per kWh", + "long_description": "Shows the average price per kWh calculated from the next 24 hours (leading average) from your Tibber subscription. This provides a forward-looking average based on available forecast data.", "usage_tips": "Use this to plan energy usage. If the current price is below the leading average, it may be a good time to run energy-intensive appliances." }, "trailing_price_min": { - "description": "The minimum electricity price for the past 24 hours in cents per kWh", - "long_description": "Shows the minimum price per kWh (in cents) from the past 24 hours (trailing minimum) from your Tibber subscription. This provides the lowest price seen in the last 24 hours.", + "description": "The minimum electricity price for the past 24 hours per kWh", + "long_description": "Shows the minimum price per kWh from the past 24 hours (trailing minimum) from your Tibber subscription. This provides the lowest price seen in the last 24 hours.", "usage_tips": "Use this to see the best price opportunity you had in the past 24 hours and compare it with current prices." }, "trailing_price_max": { - "description": "The maximum electricity price for the past 24 hours in cents per kWh", - "long_description": "Shows the maximum price per kWh (in cents) from the past 24 hours (trailing maximum) from your Tibber subscription. This provides the highest price seen in the last 24 hours.", + "description": "The maximum electricity price for the past 24 hours per kWh", + "long_description": "Shows the maximum price per kWh from the past 24 hours (trailing maximum) from your Tibber subscription. This provides the highest price seen in the last 24 hours.", "usage_tips": "Use this to see the peak price in the past 24 hours and assess price volatility." }, "leading_price_min": { - "description": "The minimum electricity price for the next 24 hours in cents per kWh", - "long_description": "Shows the minimum price per kWh (in cents) from the next 24 hours (leading minimum) from your Tibber subscription. This provides the lowest price expected in the next 24 hours based on forecast data.", + "description": "The minimum electricity price for the next 24 hours per kWh", + "long_description": "Shows the minimum price per kWh from the next 24 hours (leading minimum) from your Tibber subscription. This provides the lowest price expected in the next 24 hours based on forecast data.", "usage_tips": "Use this to identify the best price opportunity coming up and schedule energy-intensive tasks accordingly." }, "leading_price_max": { - "description": "The maximum electricity price for the next 24 hours in cents per kWh", - "long_description": "Shows the maximum price per kWh (in cents) from the next 24 hours (leading maximum) from your Tibber subscription. This provides the highest price expected in the next 24 hours based on forecast data.", + "description": "The maximum electricity price for the next 24 hours per kWh", + "long_description": "Shows the maximum price per kWh from the next 24 hours (leading maximum) from your Tibber subscription. This provides the highest price expected in the next 24 hours based on forecast data.", "usage_tips": "Use this to avoid running appliances during upcoming peak price periods." }, "current_price_cents": { "name": "Current Electricity Price", - "description": "The current electricity price in cents per kWh", - "long_description": "Shows the current price per kWh (in cents) from your Tibber subscription", + "description": "The current electricity price per kWh", + "long_description": "Shows the current price per kWh from your Tibber subscription", "usage_tips": "Use this to track prices or to create automations that run when electricity is cheap" }, "next_interval_price_cents": { "name": "Next Price", - "description": "The next interval electricity price in cents per kWh", - "long_description": "Shows the price for the next 15-minute interval (in cents) from your Tibber subscription", + "description": "The next interval electricity price per kWh", + "long_description": "Shows the price for the next 15-minute interval from your Tibber subscription", "usage_tips": "Use this to prepare for upcoming price changes or to schedule devices to run during cheaper intervals" }, "previous_interval_price_cents": { "name": "Previous Electricity Price", - "description": "The previous interval electricity price in cents per kWh", - "long_description": "Shows the price for the previous 15-minute interval (in cents) from your Tibber subscription", + "description": "The previous interval electricity price per kWh", + "long_description": "Shows the price for the previous 15-minute interval from your Tibber subscription", "usage_tips": "Use this to review past price changes or track price history" }, "current_hour_average_cents": { "name": "Current Hour Average Price", - "description": "Rolling 5-interval average price in cents per kWh", - "long_description": "Shows the average price per kWh (in cents) calculated from 5 intervals: 2 previous, current, and 2 next intervals (approximately 75 minutes total). This provides a smoothed 'hour price' that adapts as time moves, rather than being fixed to clock hours.", + "description": "Rolling 5-interval average price per kWh", + "long_description": "Shows the average price per kWh calculated from 5 intervals: 2 previous, current, and 2 next intervals (approximately 75 minutes total). This provides a smoothed 'hour price' that adapts as time moves, rather than being fixed to clock hours.", "usage_tips": "Use this for a more stable price indicator that smooths out short-term fluctuations while still being responsive to price changes. Better than fixed hourly prices for making consumption decisions." }, "next_hour_average_cents": { "name": "Next Hour Average Price", - "description": "Rolling 5-interval average price for next hour in cents per kWh", - "long_description": "Shows the average price per kWh (in cents) calculated from 5 intervals centered one hour ahead: approximately intervals +2 through +6 from now (covering minutes +30 to +105). This provides a forward-looking smoothed 'hour price' for planning consumption.", + "description": "Rolling 5-interval average price for next hour per kWh", + "long_description": "Shows the average price per kWh calculated from 5 intervals centered one hour ahead: approximately intervals +2 through +6 from now (covering minutes +30 to +105). This provides a forward-looking smoothed 'hour price' for planning consumption.", "usage_tips": "Use this to anticipate price changes in the next hour. Helpful for scheduling high-consumption activities like charging electric vehicles, running dishwashers, or heating systems." }, "price_level": { @@ -154,74 +154,74 @@ }, "lowest_price_today_cents": { "name": "Today's Lowest Price", - "description": "The lowest electricity price for today in cents per kWh", - "long_description": "Shows the lowest price per kWh (in cents) for the current day from your Tibber subscription", + "description": "The lowest electricity price for today per kWh", + "long_description": "Shows the lowest price per kWh for the current day from your Tibber subscription", "usage_tips": "Use this to compare current prices to the cheapest time of the day" }, "highest_price_today_cents": { "name": "Today's Highest Price", - "description": "The highest electricity price for today in cents per kWh", - "long_description": "Shows the highest price per kWh (in cents) for the current day from your Tibber subscription", + "description": "The highest electricity price for today per kWh", + "long_description": "Shows the highest price per kWh for the current day from your Tibber subscription", "usage_tips": "Use this to avoid running appliances during peak price times" }, "average_price_today_cents": { "name": "Today's Average Price", - "description": "The average electricity price for today in cents per kWh", - "long_description": "Shows the average price per kWh (in cents) for the current day from your Tibber subscription", + "description": "The average electricity price for today per kWh", + "long_description": "Shows the average price per kWh for the current day from your Tibber subscription", "usage_tips": "Use this as a baseline for comparing current prices" }, "lowest_price_tomorrow_cents": { "name": "Tomorrow's Lowest Price", - "description": "The lowest electricity price for tomorrow in cents per kWh", - "long_description": "Shows the lowest price per kWh (in cents) for tomorrow from your Tibber subscription. This sensor becomes unavailable until tomorrow's data is published by Tibber (typically around 13:00-14:00 CET).", + "description": "The lowest electricity price for tomorrow per kWh", + "long_description": "Shows the lowest price per kWh for tomorrow from your Tibber subscription. This sensor becomes unavailable until tomorrow's data is published by Tibber (typically around 13:00-14:00 CET).", "usage_tips": "Use this to plan energy-intensive activities for tomorrow's cheapest time. Perfect for pre-scheduling heating, EV charging, or appliances." }, "highest_price_tomorrow_cents": { "name": "Tomorrow's Highest Price", - "description": "The highest electricity price for tomorrow in cents per kWh", - "long_description": "Shows the highest price per kWh (in cents) for tomorrow from your Tibber subscription. This sensor becomes unavailable until tomorrow's data is published by Tibber (typically around 13:00-14:00 CET).", + "description": "The highest electricity price for tomorrow per kWh", + "long_description": "Shows the highest price per kWh for tomorrow from your Tibber subscription. This sensor becomes unavailable until tomorrow's data is published by Tibber (typically around 13:00-14:00 CET).", "usage_tips": "Use this to avoid running appliances during tomorrow's peak price times. Helpful for planning around expensive periods." }, "average_price_tomorrow_cents": { "name": "Tomorrow's Average Price", - "description": "The average electricity price for tomorrow in cents per kWh", - "long_description": "Shows the average price per kWh (in cents) for tomorrow from your Tibber subscription. This sensor becomes unavailable until tomorrow's data is published by Tibber (typically around 13:00-14:00 CET).", + "description": "The average electricity price for tomorrow per kWh", + "long_description": "Shows the average price per kWh for tomorrow from your Tibber subscription. This sensor becomes unavailable until tomorrow's data is published by Tibber (typically around 13:00-14:00 CET).", "usage_tips": "Use this as a baseline for comparing tomorrow's prices and planning consumption. Compare with today's average to see if tomorrow will be more or less expensive overall." }, "trailing_price_average_cents": { "name": "Trailing 24h Average Price", - "description": "The average electricity price for the past 24 hours in cents per kWh", - "long_description": "Shows the average price per kWh (in cents) calculated from the past 24 hours (trailing average) from your Tibber subscription. This provides a rolling average that updates every 15 minutes based on historical data.", + "description": "The average electricity price for the past 24 hours per kWh", + "long_description": "Shows the average price per kWh calculated from the past 24 hours (trailing average) from your Tibber subscription. This provides a rolling average that updates every 15 minutes based on historical data.", "usage_tips": "Use this to compare current prices against recent trends. A current price significantly above this average may indicate a good time to reduce consumption." }, "leading_price_average_cents": { "name": "Leading 24h Average Price", - "description": "The average electricity price for the next 24 hours in cents per kWh", - "long_description": "Shows the average price per kWh (in cents) calculated from the next 24 hours (leading average) from your Tibber subscription. This provides a forward-looking average based on available forecast data.", + "description": "The average electricity price for the next 24 hours per kWh", + "long_description": "Shows the average price per kWh calculated from the next 24 hours (leading average) from your Tibber subscription. This provides a forward-looking average based on available forecast data.", "usage_tips": "Use this to plan energy usage. If the current price is below the leading average, it may be a good time to run energy-intensive appliances." }, "trailing_price_min_cents": { "name": "Trailing 24h Minimum Price", - "description": "The minimum electricity price for the past 24 hours in cents per kWh", - "long_description": "Shows the minimum price per kWh (in cents) from the past 24 hours (trailing minimum) from your Tibber subscription. This provides the lowest price seen in the last 24 hours.", + "description": "The minimum electricity price for the past 24 hours per kWh", + "long_description": "Shows the minimum price per kWh from the past 24 hours (trailing minimum) from your Tibber subscription. This provides the lowest price seen in the last 24 hours.", "usage_tips": "Use this to see the best price opportunity you had in the past 24 hours and compare it with current prices." }, "trailing_price_max_cents": { "name": "Trailing 24h Maximum Price", - "description": "The maximum electricity price for the past 24 hours in cents per kWh", - "long_description": "Shows the maximum price per kWh (in cents) from the past 24 hours (trailing maximum) from your Tibber subscription. This provides the highest price seen in the last 24 hours.", + "description": "The maximum electricity price for the past 24 hours per kWh", + "long_description": "Shows the maximum price per kWh from the past 24 hours (trailing maximum) from your Tibber subscription. This provides the highest price seen in the last 24 hours.", "usage_tips": "Use this to see the peak price in the past 24 hours and assess price volatility." }, "leading_price_min_cents": { "name": "Leading 24h Minimum Price", - "description": "The minimum electricity price for the next 24 hours in cents per kWh", - "long_description": "Shows the minimum price per kWh (in cents) from the next 24 hours (leading minimum) from your Tibber subscription. This provides the lowest price expected in the next 24 hours based on forecast data.", + "description": "The minimum electricity price for the next 24 hours per kWh", + "long_description": "Shows the minimum price per kWh from the next 24 hours (leading minimum) from your Tibber subscription. This provides the lowest price expected in the next 24 hours based on forecast data.", "usage_tips": "Use this to identify the best price opportunity coming up and schedule energy-intensive tasks accordingly." }, "leading_price_max_cents": { "name": "Leading 24h Maximum Price", - "description": "The maximum electricity price for the next 24 hours in cents per kWh", - "long_description": "Shows the maximum price per kWh (in cents) from the next 24 hours (leading maximum) from your Tibber subscription. This provides the highest price expected in the next 24 hours based on forecast data.", + "description": "The maximum electricity price for the next 24 hours per kWh", + "long_description": "Shows the maximum price per kWh from the next 24 hours (leading maximum) from your Tibber subscription. This provides the highest price expected in the next 24 hours based on forecast data.", "usage_tips": "Use this to avoid running appliances during upcoming peak price periods." }, "price_rating": { diff --git a/custom_components/tibber_prices/sensor.py b/custom_components/tibber_prices/sensor.py index 0f67621..5c04b7d 100644 --- a/custom_components/tibber_prices/sensor.py +++ b/custom_components/tibber_prices/sensor.py @@ -10,13 +10,7 @@ from homeassistant.components.sensor import ( SensorEntity, SensorEntityDescription, ) -from homeassistant.const import ( - CURRENCY_EURO, - PERCENTAGE, - EntityCategory, - UnitOfPower, - UnitOfTime, -) +from homeassistant.const import PERCENTAGE, EntityCategory from homeassistant.util import dt as dt_util from .average_utils import ( @@ -40,6 +34,7 @@ from .const import ( PRICE_LEVEL_MAPPING, PRICE_RATING_MAPPING, async_get_entity_description, + format_price_unit_minor, get_entity_description, get_price_level_translation, ) @@ -60,8 +55,6 @@ if TYPE_CHECKING: from .coordinator import TibberPricesDataUpdateCoordinator from .data import TibberPricesConfigEntry -PRICE_UNIT = CURRENCY_EURO + "/" + UnitOfPower.KILO_WATT + UnitOfTime.HOURS -PRICE_UNIT_MINOR = "ct/" + UnitOfPower.KILO_WATT + UnitOfTime.HOURS HOURS_IN_DAY = 24 LAST_HOUR_OF_DAY = 23 INTERVALS_PER_HOUR = 4 # 15-minute intervals @@ -73,9 +66,8 @@ PRICE_SENSORS = ( key="current_price", translation_key="current_price_cents", name="Current Electricity Price", - icon="mdi:currency-eur", + icon="mdi:cash", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, suggested_display_precision=2, ), SensorEntityDescription( @@ -84,7 +76,6 @@ PRICE_SENSORS = ( name="Next Price", icon="mdi:clock-fast", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, suggested_display_precision=2, ), SensorEntityDescription( @@ -93,7 +84,6 @@ PRICE_SENSORS = ( name="Previous Electricity Price", icon="mdi:history", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, entity_registry_enabled_default=False, suggested_display_precision=2, ), @@ -101,9 +91,8 @@ PRICE_SENSORS = ( key="current_hour_average", translation_key="current_hour_average_cents", name="Current Hour Average Price", - icon="mdi:currency-eur", + icon="mdi:cash", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, suggested_display_precision=1, ), SensorEntityDescription( @@ -112,7 +101,6 @@ PRICE_SENSORS = ( name="Next Hour Average Price", icon="mdi:clock-fast", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, suggested_display_precision=1, ), SensorEntityDescription( @@ -156,7 +144,6 @@ STATISTICS_SENSORS = ( name="Today's Lowest Price", icon="mdi:arrow-collapse-down", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, suggested_display_precision=1, ), SensorEntityDescription( @@ -165,7 +152,6 @@ STATISTICS_SENSORS = ( name="Today's Highest Price", icon="mdi:arrow-collapse-up", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, suggested_display_precision=1, ), SensorEntityDescription( @@ -174,7 +160,6 @@ STATISTICS_SENSORS = ( name="Today's Average Price", icon="mdi:chart-line", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, suggested_display_precision=1, ), SensorEntityDescription( @@ -183,7 +168,6 @@ STATISTICS_SENSORS = ( name="Tomorrow's Lowest Price", icon="mdi:arrow-collapse-down", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, suggested_display_precision=1, ), SensorEntityDescription( @@ -192,7 +176,6 @@ STATISTICS_SENSORS = ( name="Tomorrow's Highest Price", icon="mdi:arrow-collapse-up", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, suggested_display_precision=1, ), SensorEntityDescription( @@ -201,7 +184,6 @@ STATISTICS_SENSORS = ( name="Tomorrow's Average Price", icon="mdi:chart-line", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, suggested_display_precision=1, ), SensorEntityDescription( @@ -210,7 +192,6 @@ STATISTICS_SENSORS = ( name="Trailing 24h Average Price", icon="mdi:chart-line", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, entity_registry_enabled_default=False, suggested_display_precision=1, ), @@ -220,7 +201,6 @@ STATISTICS_SENSORS = ( name="Leading 24h Average Price", icon="mdi:chart-line-variant", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, suggested_display_precision=1, ), SensorEntityDescription( @@ -229,7 +209,6 @@ STATISTICS_SENSORS = ( name="Trailing 24h Minimum Price", icon="mdi:arrow-collapse-down", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, entity_registry_enabled_default=False, suggested_display_precision=1, ), @@ -239,7 +218,6 @@ STATISTICS_SENSORS = ( name="Trailing 24h Maximum Price", icon="mdi:arrow-collapse-up", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, entity_registry_enabled_default=False, suggested_display_precision=1, ), @@ -249,7 +227,6 @@ STATISTICS_SENSORS = ( name="Leading 24h Minimum Price", icon="mdi:arrow-collapse-down", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, suggested_display_precision=1, ), SensorEntityDescription( @@ -258,7 +235,6 @@ STATISTICS_SENSORS = ( name="Leading 24h Maximum Price", icon="mdi:arrow-collapse-up", device_class=SensorDeviceClass.MONETARY, - native_unit_of_measurement=PRICE_UNIT_MINOR, suggested_display_precision=1, ), ) @@ -1158,6 +1134,19 @@ class TibberPricesSensor(TibberPricesEntity, SensorEntity): ) return None + @property + def native_unit_of_measurement(self) -> str | None: + """Return the unit of measurement dynamically based on currency.""" + if self.entity_description.device_class != SensorDeviceClass.MONETARY: + return None + + currency = None + if self.coordinator.data: + price_info = self.coordinator.data.get("priceInfo", {}) + currency = price_info.get("currency") + + return format_price_unit_minor(currency) + @property async def async_extra_state_attributes(self) -> dict | None: """Return additional state attributes asynchronously."""