mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-05-28 18:43:40 +00:00
feat(sensors)!: rename trend change countdown sensor for naming consistency
Renamed trend_change_in_minutes → next_price_trend_change_in to align with its sibling sensor next_price_trend_change (timestamp variant). Follows the established best/peak price naming pattern where related sensors share a common prefix (e.g. best_price_next_start_time / best_price_next_in_minutes). Updated entity key, translation key, friendly names (all 5 languages), custom translations, coordinator constants, attribute routing, and cache-clear mapping. BREAKING CHANGE: Entity ID changes from sensor.<home>_trend_change_in_minutes to sensor.<home>_next_price_trend_change_in. Automations and dashboards referencing the old entity ID must be updated. Impact: Users with automations or dashboard cards referencing the old sensor name need to update references. The sensor retains identical functionality and attributes.
This commit is contained in:
parent
74cca1857a
commit
b1b41be9aa
13 changed files with 23 additions and 23 deletions
|
|
@ -117,6 +117,6 @@ MINUTE_UPDATE_ENTITY_KEYS = frozenset(
|
|||
"peak_price_progress",
|
||||
"peak_price_next_in_minutes",
|
||||
# Trend change countdown sensor (needs minute updates)
|
||||
"trend_change_in_minutes",
|
||||
"next_price_trend_change_in",
|
||||
}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -312,10 +312,10 @@
|
|||
"long_description": "Scannt die nächsten 24 Stunden (96 Intervalle), um zu finden, wann sich die Preistrend-Richtung ändern wird. Nur Richtungswechsel zählen: steigend/stark steigend bilden eine Gruppe, fallend/stark fallend eine andere, stabil ist eigenständig. Ein Wechsel von steigend zu stark steigend ist KEIN Trendwechsel. Verwendet volatilitätsadaptive Schwellwerte (Standard: ±3%/±9%) mit Hysterese (Standard: 3 aufeinanderfolgende Intervalle). Gibt den Zeitstempel zurück, wann die Änderung erwartet wird.",
|
||||
"usage_tips": "Ereignisbasierte Automation: Aktionen WENN Trend wechselt auslösen, nicht IN X Stunden. Beispiel: 'E-Auto laden wenn nächste Trendänderung fallende Preise zeigt' oder 'Spülmaschine vor Preisanstieg starten'. Ergänzt Zeitfenster-Sensoren (price_trend_Xh), die beantworten 'WERDEN Preise in X Stunden höher sein?'"
|
||||
},
|
||||
"trend_change_in_minutes": {
|
||||
"next_price_trend_change_in": {
|
||||
"description": "Zeit bis zur nächsten Preistrend-Änderung",
|
||||
"long_description": "Zeigt an, wie lange es bis zur nächsten bedeutenden Preistrend-Änderung dauert. Der Wert wird in Stunden angezeigt (z.B. 2,25 h) für Dashboards. Teilt die gleiche Analyse wie der Zeitstempel-Sensor 'Nächste Trendänderung', stellt sie aber als Countdown-Dauer dar. Aktualisiert sich jede Minute für präzise Countdowns. Zeigt 'Unbekannt' wenn keine Trendänderung in den nächsten 24 Stunden erwartet wird.",
|
||||
"usage_tips": "Dashboard-Countdown: Zeige 'Trendänderung in 1,5 h' als Live-Countdown. Für Automationen: 'Wenn trend_change_in_minutes < 0,25 (15 Min), auf Preisrichtungswechsel vorbereiten'. Ergänzt 'Nächste Trendänderung' (Zeitstempel) — verwende den Zeitstempel für 'WANN' und diesen Sensor für 'WIE LANGE'."
|
||||
"usage_tips": "Dashboard-Countdown: Zeige 'Trendänderung in 1,5 h' als Live-Countdown. Für Automationen: 'Wenn next_price_trend_change_in < 0,25 (15 Min), auf Preisrichtungswechsel vorbereiten'. Ergänzt 'Nächste Trendänderung' (Zeitstempel) — verwende den Zeitstempel für 'WANN' und diesen Sensor für 'WIE LANGE'."
|
||||
},
|
||||
"daily_rating": {
|
||||
"description": "Wie sich die heutigen Preise mit historischen Daten vergleichen",
|
||||
|
|
|
|||
|
|
@ -312,10 +312,10 @@
|
|||
"long_description": "Scans the next 24 hours (96 intervals) to find when the price trend direction will change. Only direction changes count: rising/strongly_rising are one group, falling/strongly_falling another, stable is its own. A change from rising to strongly_rising is NOT a trend change. Uses volatility-adaptive thresholds (default: ±3%/±9%) with hysteresis (default: 3 consecutive intervals). Returns the timestamp when the change is expected.",
|
||||
"usage_tips": "Event-based automation: Trigger actions WHEN trend changes, not IN X hours. Example: 'Charge EV when next trend change shows falling prices' or 'Run dishwasher before prices start rising'. More accurate than simple future comparison because it knows if you're already in a trend. Complements time-window sensors (price_trend_Xh) which answer 'WILL prices be higher in X hours?'"
|
||||
},
|
||||
"trend_change_in_minutes": {
|
||||
"next_price_trend_change_in": {
|
||||
"description": "Time until the next price trend change",
|
||||
"long_description": "Shows how long until the next significant price trend change occurs. The state displays in hours (e.g., 2.25 h) for dashboards. Shares the same analysis as the Next Price Trend Change timestamp sensor but presents it as a countdown duration. Updates every minute for accurate countdowns. Returns unknown when no trend change is expected in the next 24 hours.",
|
||||
"usage_tips": "Dashboard countdown: Show 'Trend changes in 1.5 h' as a live countdown. For automations: 'If trend_change_in_minutes state < 0.25 (15 min), prepare for price direction change'. Pairs with Next Price Trend Change (timestamp) — use the timestamp for 'WHEN' and this sensor for 'HOW LONG'."
|
||||
"usage_tips": "Dashboard countdown: Show 'Trend changes in 1.5 h' as a live countdown. For automations: 'If next_price_trend_change_in state < 0.25 (15 min), prepare for price direction change'. Pairs with Next Price Trend Change (timestamp) — use the timestamp for 'WHEN' and this sensor for 'HOW LONG'."
|
||||
},
|
||||
"daily_rating": {
|
||||
"description": "How today's prices compare to historical data",
|
||||
|
|
|
|||
|
|
@ -312,10 +312,10 @@
|
|||
"long_description": "Skanner de neste 24 timene (96 intervaller) for å finne når pristrend-retningen vil endre seg. Kun retningsendringer teller: stigende/sterkt stigende er én gruppe, fallende/sterkt fallende en annen, stabil er egen. En endring fra stigende til sterkt stigende er IKKE en trendendring. Bruker volatilitetstilpassede terskelverdier (standard: ±3%/±9%) med hysterese (standard: 3 påfølgende intervaller). Returnerer tidsstempelet når endringen forventes.",
|
||||
"usage_tips": "Hendelsesbasert automatisering: Utløs handlinger NÅR trenden endres, ikke OM X timer. Eksempel: 'Lad EV når neste trendendring viser synkende priser' eller 'Start oppvaskmaskin før prisene stiger'. Kompletterer tidsvindu-sensorer (price_trend_Xh) som svarer på 'VIL prisene være høyere om X timer?'"
|
||||
},
|
||||
"trend_change_in_minutes": {
|
||||
"next_price_trend_change_in": {
|
||||
"description": "Tid til neste pristrendendring",
|
||||
"long_description": "Viser hvor lenge det er til neste betydelige pristrendendring inntreffer. Verdien vises i timer (f.eks. 2,25 t) for dashboards. Deler samme analyse som tidsstempel-sensoren 'Neste trendendring', men presenterer den som en nedtellingsvarighet. Oppdateres hvert minutt for nøyaktige nedtellinger. Viser 'Ukjent' når ingen trendendring forventes i løpet av de neste 24 timene.",
|
||||
"usage_tips": "Dashboard-nedtelling: Vis 'Trendendring om 1,5 t' som live nedtelling. For automatiseringer: 'Hvis trend_change_in_minutes < 0,25 (15 min), forbered på prisretningsendring'. Kompletterer 'Neste trendendring' (tidsstempel) — bruk tidsstempelet for 'NÅR' og denne sensoren for 'HVOR LENGE'."
|
||||
"usage_tips": "Dashboard-nedtelling: Vis 'Trendendring om 1,5 t' som live nedtelling. For automatiseringer: 'Hvis next_price_trend_change_in < 0,25 (15 min), forbered på prisretningsendring'. Kompletterer 'Neste trendendring' (tidsstempel) — bruk tidsstempelet for 'NÅR' og denne sensoren for 'HVOR LENGE'."
|
||||
},
|
||||
"daily_rating": {
|
||||
"description": "Hvordan dagens priser sammenlignes med historiske data",
|
||||
|
|
|
|||
|
|
@ -312,10 +312,10 @@
|
|||
"long_description": "Scant de komende 24 uur (96 intervallen) om te vinden wanneer de prijstrend-richting zal veranderen. Alleen richtingswijzigingen tellen: stijgend/sterk stijgend vormen één groep, dalend/sterk dalend een andere, stabiel is apart. Een verandering van stijgend naar sterk stijgend is GEEN trendwijziging. Gebruikt volatiliteit-adaptieve drempelwaarden (standaard: ±3%/±9%) met hysterese (standaard: 3 opeenvolgende intervallen). Retourneert het tijdstempel wanneer de wijziging wordt verwacht.",
|
||||
"usage_tips": "Gebeurtenisgestuurde automatisering: Trigger acties WANNEER trend wijzigt, niet OVER X uur. Voorbeeld: 'Laad EV wanneer volgende trendwijziging dalende prijzen toont' of 'Start vaatwasser voordat prijzen stijgen'. Vult tijdvenster-sensors aan (price_outlook_Xh) die beantwoorden 'ZULLEN prijzen over X uur hoger zijn?'"
|
||||
},
|
||||
"trend_change_in_minutes": {
|
||||
"next_price_trend_change_in": {
|
||||
"description": "Tijd tot de volgende prijstrendwijziging",
|
||||
"long_description": "Toont hoe lang het duurt tot de volgende significante prijstrendwijziging plaatsvindt. De waarde wordt weergegeven in uren (bijv. 2,25 u) voor dashboards. Deelt dezelfde analyse als de tijdstempel-sensor 'Volgende Prijstrend Wijziging', maar presenteert het als een aftelduur. Wordt elke minuut bijgewerkt voor nauwkeurige aftellingen. Toont 'Onbekend' wanneer geen trendwijziging wordt verwacht in de komende 24 uur.",
|
||||
"usage_tips": "Dashboard-aftelling: Toon 'Trendwijziging over 1,5 u' als live aftelling. Voor automatiseringen: 'Als trend_change_in_minutes < 0,25 (15 min), bereid je voor op prijsrichtingswijziging'. Vult 'Volgende Prijstrend Wijziging' (tijdstempel) aan — gebruik het tijdstempel voor 'WANNEER' en deze sensor voor 'HOE LANG'."
|
||||
"usage_tips": "Dashboard-aftelling: Toon 'Trendwijziging over 1,5 u' als live aftelling. Voor automatiseringen: 'Als next_price_trend_change_in < 0,25 (15 min), bereid je voor op prijsrichtingswijziging'. Vult 'Volgende Prijstrend Wijziging' (tijdstempel) aan — gebruik het tijdstempel voor 'WANNEER' en deze sensor voor 'HOE LANG'."
|
||||
},
|
||||
"daily_rating": {
|
||||
"description": "Hoe de prijzen van vandaag zich verhouden tot historische gegevens",
|
||||
|
|
|
|||
|
|
@ -312,10 +312,10 @@
|
|||
"long_description": "Skannar de nästa 24 timmarna (96 intervaller) för att hitta när pristrend-riktningen kommer att ändras. Bara riktningsändringar räknas: stigande/kraftigt stigande är en grupp, fallande/kraftigt fallande en annan, stabil är egen. En ändring från stigande till kraftigt stigande är INTE en trendändring. Använder volatilitetsadaptiva tröskelvärden (standard: ±3%/±9%) med hysteres (standard: 3 på varandra följande intervaller). Returnerar tidstämpeln när ändringen förväntas.",
|
||||
"usage_tips": "Händelsestyrd automatisering: Utlös åtgärder NÄR trenden ändras, inte OM X timmar. Exempel: 'Ladda EV när nästa trendändring visar fallande priser' eller 'Starta diskmaskin innan priserna stiger'. Kompletterar tidsfönster-sensorer (price_outlook_Xh) som svarar på 'KOMMER priserna att vara högre om X timmar?'"
|
||||
},
|
||||
"trend_change_in_minutes": {
|
||||
"next_price_trend_change_in": {
|
||||
"description": "Tid till nästa pristrendändring",
|
||||
"long_description": "Visar hur lång tid det är kvar till nästa betydande pristrendändring inträffar. Värdet visas i timmar (t.ex. 2,25 h) för dashboards. Delar samma analys som tidstämpel-sensorn 'Nästa pristrendändring' men presenterar det som en nedtellningsvaraktighet. Uppdateras varje minut för noggranna nedtellningar. Visar 'Okänd' när ingen trendändring förväntas inom de närmaste 24 timmarna.",
|
||||
"usage_tips": "Dashboard-nedtellning: Visa 'Trendändring om 1,5 h' som live nedtellning. För automatiseringar: 'Om trend_change_in_minutes < 0,25 (15 min), förbered för prisriktningsändring'. Kompletterar 'Nästa pristrendändring' (tidstämpel) — använd tidstämpeln för 'NÄR' och denna sensor för 'HUR LÄNGE'."
|
||||
"usage_tips": "Dashboard-nedtellning: Visa 'Trendändring om 1,5 h' som live nedtellning. För automatiseringar: 'Om next_price_trend_change_in < 0,25 (15 min), förbered för prisriktningsändring'. Kompletterar 'Nästa pristrendändring' (tidstämpel) — använd tidstämpeln för 'NÄR' och denna sensor för 'HUR LÄNGE'."
|
||||
},
|
||||
"daily_rating": {
|
||||
"description": "Hur dagens priser jämförs med historiska data",
|
||||
|
|
|
|||
|
|
@ -39,6 +39,6 @@ def _add_cached_trend_attributes(attributes: dict, key: str, cached_data: dict)
|
|||
# Add cached attributes (timestamp already set by platform)
|
||||
# State contains the timestamp of the trend change itself
|
||||
attributes.update(cached_data["trend_change_attributes"])
|
||||
elif key == "trend_change_in_minutes" and cached_data.get("trend_change_attributes"):
|
||||
elif key == "next_price_trend_change_in" and cached_data.get("trend_change_attributes"):
|
||||
# Duration sensor shares same cached attributes as the timestamp sensor
|
||||
attributes.update(cached_data["trend_change_attributes"])
|
||||
|
|
|
|||
|
|
@ -344,7 +344,7 @@ class TibberPricesSensor(TibberPricesEntity, RestoreSensor):
|
|||
elif self.entity_description.key in (
|
||||
"current_price_trend",
|
||||
"next_price_trend_change",
|
||||
"trend_change_in_minutes",
|
||||
"next_price_trend_change_in",
|
||||
):
|
||||
self._trend_calculator.clear_calculation_cache()
|
||||
|
||||
|
|
|
|||
|
|
@ -782,8 +782,8 @@
|
|||
"next_price_trend_change": {
|
||||
"name": "Nächste Trendänderung"
|
||||
},
|
||||
"trend_change_in_minutes": {
|
||||
"name": "Trendänderung in"
|
||||
"next_price_trend_change_in": {
|
||||
"name": "Nächste Trendänderung in"
|
||||
},
|
||||
"daily_rating": {
|
||||
"name": "Tägliche Preisbewertung"
|
||||
|
|
|
|||
|
|
@ -782,8 +782,8 @@
|
|||
"next_price_trend_change": {
|
||||
"name": "Next Price Trend Change"
|
||||
},
|
||||
"trend_change_in_minutes": {
|
||||
"name": "Trend Change In"
|
||||
"next_price_trend_change_in": {
|
||||
"name": "Next Price Trend Change In"
|
||||
},
|
||||
"daily_rating": {
|
||||
"name": "Daily Price Rating"
|
||||
|
|
|
|||
|
|
@ -782,8 +782,8 @@
|
|||
"next_price_trend_change": {
|
||||
"name": "Neste trendendring"
|
||||
},
|
||||
"trend_change_in_minutes": {
|
||||
"name": "Trendendring om"
|
||||
"next_price_trend_change_in": {
|
||||
"name": "Neste trendendring om"
|
||||
},
|
||||
"daily_rating": {
|
||||
"name": "Daglig prisvurdering"
|
||||
|
|
|
|||
|
|
@ -782,8 +782,8 @@
|
|||
"next_price_trend_change": {
|
||||
"name": "Volgende Prijstrend Wijziging"
|
||||
},
|
||||
"trend_change_in_minutes": {
|
||||
"name": "Trendwijziging over"
|
||||
"next_price_trend_change_in": {
|
||||
"name": "Volgende Prijstrend Wijziging over"
|
||||
},
|
||||
"daily_rating": {
|
||||
"name": "Dagelijkse Prijsbeoordeling"
|
||||
|
|
|
|||
|
|
@ -782,8 +782,8 @@
|
|||
"next_price_trend_change": {
|
||||
"name": "Nästa pristrendändring"
|
||||
},
|
||||
"trend_change_in_minutes": {
|
||||
"name": "Trendändring om"
|
||||
"next_price_trend_change_in": {
|
||||
"name": "Nästa pristrendändring om"
|
||||
},
|
||||
"daily_rating": {
|
||||
"name": "Dagligt prisbetyg"
|
||||
|
|
|
|||
Loading…
Reference in a new issue