mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-03-29 21:03:40 +00:00
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.
496 lines
21 KiB
JSON
496 lines
21 KiB
JSON
{
|
|
"config": {
|
|
"step": {
|
|
"user": {
|
|
"description": "Stel Tibber Prijsinformatie & Beoordelingen in.\n\nOm een API-toegangstoken te genereren, bezoek https://developer.tibber.com.",
|
|
"data": {
|
|
"access_token": "API-toegangstoken"
|
|
},
|
|
"submit": "Token valideren"
|
|
},
|
|
"select_home": {
|
|
"description": "Selecteer een huis om prijsinformatie en beoordelingen op te halen.",
|
|
"data": {
|
|
"home_id": "Huis"
|
|
},
|
|
"title": "Kies een huis",
|
|
"submit": "Huis selecteren"
|
|
},
|
|
"finish": {
|
|
"description": "Selecteer een huis om prijsinformatie en beoordelingen op te halen.",
|
|
"data": {
|
|
"home_id": "Huis-ID"
|
|
},
|
|
"title": "Kies een huis",
|
|
"submit": "Huis selecteren"
|
|
},
|
|
"reauth_confirm": {
|
|
"title": "Tibber Prijs-integratie opnieuw authenticeren",
|
|
"description": "Het toegangstoken voor Tibber is niet langer geldig. Voer een nieuw API-toegangstoken in om deze integratie te blijven gebruiken.\n\nOm een nieuw API-toegangstoken te genereren, bezoek https://developer.tibber.com.",
|
|
"data": {
|
|
"access_token": "API-toegangstoken"
|
|
},
|
|
"submit": "Token bijwerken"
|
|
}
|
|
},
|
|
"error": {
|
|
"auth": "Het Tibber-toegangstoken is ongeldig.",
|
|
"connection": "Kan geen verbinding maken met Tibber. Controleer uw internetverbinding.",
|
|
"unknown": "Onverwachte fout",
|
|
"cannot_connect": "Verbinding mislukt",
|
|
"invalid_access_token": "Ongeldig toegangstoken",
|
|
"missing_homes": "Het nieuwe toegangstoken heeft geen toegang tot alle geconfigureerde huizen. Gebruik een toegangstoken dat toegang heeft tot dezelfde Tibber-huizen."
|
|
},
|
|
"abort": {
|
|
"already_configured": "Integratie is al geconfigureerd",
|
|
"entry_not_found": "Tibber-configuratie-item niet gevonden.",
|
|
"setup_complete": "Installatie voltooid! U kunt aanvullende opties voor Tibber-prijzen wijzigen in de integratie-opties na het sluiten van dit dialoogvenster.",
|
|
"reauth_successful": "Herauthenticatie succesvol. De integratie is bijgewerkt met het nieuwe toegangstoken."
|
|
}
|
|
},
|
|
"common": {
|
|
"step_progress": "Stap {step_num} van {total_steps}"
|
|
},
|
|
"config_subentries": {
|
|
"home": {
|
|
"initiate_flow": {
|
|
"user": "Tibber-huis toevoegen"
|
|
},
|
|
"title": "Tibber-huis toevoegen",
|
|
"step": {
|
|
"user": {
|
|
"title": "Tibber-huis toevoegen",
|
|
"description": "Selecteer een huis om toe te voegen aan uw Tibber-integratie.\n\n**Opmerking:** Na het toevoegen van dit huis, kunt u extra huizen toevoegen via het contextmenu van de integratie door \"Tibber-huis toevoegen\" te selecteren.",
|
|
"data": {
|
|
"home_id": "Huis"
|
|
}
|
|
}
|
|
},
|
|
"error": {
|
|
"api_error": "Ophalen van huizen van Tibber API mislukt"
|
|
},
|
|
"abort": {
|
|
"no_parent_entry": "Bovenliggend item niet gevonden",
|
|
"no_access_token": "Geen toegangstoken beschikbaar",
|
|
"home_not_found": "Geselecteerd huis niet gevonden",
|
|
"api_error": "Ophalen van huizen van Tibber API mislukt",
|
|
"no_available_homes": "Geen extra huizen beschikbaar om toe te voegen. Alle huizen van uw Tibber-account zijn al toegevoegd."
|
|
}
|
|
}
|
|
},
|
|
"options": {
|
|
"step": {
|
|
"init": {
|
|
"title": "Algemene instellingen",
|
|
"description": "{step_progress}\n\nConfigureer algemene instellingen voor Tibber Prijsinformatie & Beoordelingen.\n\nGebruiker: {user_login}",
|
|
"data": {
|
|
"extended_descriptions": "Uitgebreide beschrijvingen tonen in entiteitsattributen"
|
|
}
|
|
},
|
|
"price_rating": {
|
|
"title": "Prijsbeoordelingsdrempels",
|
|
"description": "{step_progress}\n\nConfigureer drempels voor prijsbeoordelingsniveaus (LAAG/NORMAAL/HOOG) op basis van vergelijking met het voortschrijdend 24-uurs gemiddelde.",
|
|
"data": {
|
|
"price_rating_threshold_low": "Lage beoordelingsdrempel (% onder voortschrijdend gemiddelde)",
|
|
"price_rating_threshold_high": "Hoge beoordelingsdrempel (% boven voortschrijdend gemiddelde)"
|
|
}
|
|
},
|
|
"best_price": {
|
|
"title": "Instellingen beste prijsperiode",
|
|
"description": "{step_progress}\n\nConfigureer instellingen voor de Beste Prijsperiode binaire sensor. Deze sensor is actief tijdens perioden met de laagste elektriciteitsprijzen.",
|
|
"data": {
|
|
"best_price_min_period_length": "Minimale periode lengte",
|
|
"best_price_flex": "Flexibiliteit: Maximaal % boven minimumprijs",
|
|
"best_price_min_distance_from_avg": "Minimale afstand: Vereist % onder dagelijks gemiddelde",
|
|
"best_price_min_volatility": "Minimum volatiliteitsfilter",
|
|
"best_price_max_level": "Prijsniveaufilter (Optioneel)"
|
|
},
|
|
"data_description": {
|
|
"best_price_min_volatility": "Toon alleen beste prijsperiodes wanneer de volatiliteit van vandaag dit niveau bereikt of overschrijdt. Standaard: 'Laag' (toon ongeacht volatiliteit) - batterijoptimalisatie is nuttig zelfs bij kleine prijsvariaties. Selecteer 'Matig'/'Hoog' om periodes alleen op meer volatiele dagen te tonen.",
|
|
"best_price_max_level": "Toon alleen beste prijsperiodes als minstens één interval vandaag een prijsniveau ≤ geselecteerde waarde heeft. Werkt met EN-logica: volatiliteitsfilter (indien ingesteld) EN niveaufilter moeten beide voldaan zijn. Nuttig om batterij laden op dure dagen te vermijden. Selecteer 'Alle' om dit filter uit te schakelen."
|
|
}
|
|
},
|
|
"peak_price": {
|
|
"title": "Instellingen piekprijsperiode",
|
|
"description": "{step_progress}\n\nConfigureer instellingen voor de Piekprijsperiode binaire sensor. Deze sensor is actief tijdens perioden met de hoogste elektriciteitsprijzen.",
|
|
"data": {
|
|
"peak_price_min_period_length": "Minimale periode lengte",
|
|
"peak_price_flex": "Flexibiliteit: Maximaal % onder maximumprijs (negatieve waarde)",
|
|
"peak_price_min_distance_from_avg": "Minimale afstand: Vereist % boven dagelijks gemiddelde",
|
|
"peak_price_min_volatility": "Minimum volatiliteitsfilter",
|
|
"peak_price_min_level": "Prijsniveaufilter (Optioneel)"
|
|
},
|
|
"data_description": {
|
|
"peak_price_min_volatility": "Toon alleen piekprijsperiodes wanneer de volatiliteit van vandaag dit niveau bereikt of overschrijdt. Standaard: 'Laag' (toon ongeacht volatiliteit) - piekwaarschuwingen zijn relevant zelfs bij lage spreiding omdat vermijding van dure uren altijd belangrijk is. Selecteer 'Matig'/'Hoog' om alleen pieken op volatiele dagen te tonen.",
|
|
"peak_price_min_level": "Toon alleen piekprijsperiodes als minstens één interval vandaag een prijsniveau ≥ geselecteerde waarde heeft. Werkt met EN-logica: volatiliteitsfilter (indien ingesteld) EN niveaufilter moeten beide voldaan zijn. Meestal ingesteld op 'Alle' omdat piekperiodes relatief zijn aan de dag. Selecteer 'Alle' om dit filter uit te schakelen."
|
|
}
|
|
},
|
|
"price_trend": {
|
|
"title": "Prijstrenddrempels",
|
|
"description": "{step_progress}\n\nConfigureer drempels voor prijstrendsensoren. Deze sensoren vergelijken de huidige prijs met het gemiddelde van de volgende N uur om te bepalen of prijzen stijgen, dalen of stabiel zijn.",
|
|
"data": {
|
|
"price_trend_threshold_rising": "Stijgende drempel (% boven huidige prijs)",
|
|
"price_trend_threshold_falling": "Dalende drempel (% onder huidige prijs, negatieve waarde)"
|
|
}
|
|
},
|
|
"volatility": {
|
|
"title": "Prijsvolatiliteit Drempels",
|
|
"description": "{step_progress}\n\nConfigureer drempels voor volatiliteitsclassificatie. Volatiliteit meet prijsschommelingen (spreiding tussen min/max) in kleinste valuta-eenheid (ct/øre). Deze drempels worden gebruikt door volatiliteitssensoren en periodefilters.",
|
|
"data": {
|
|
"volatility_threshold_moderate": "Matige drempel (ct/øre, spreiding ≥ deze waarde)",
|
|
"volatility_threshold_high": "Hoge drempel (ct/øre, spreiding ≥ deze waarde)",
|
|
"volatility_threshold_very_high": "Zeer hoge drempel (ct/øre, spreiding ≥ deze waarde)"
|
|
}
|
|
}
|
|
},
|
|
"error": {
|
|
"auth": "Het Tibber-toegangstoken is ongeldig.",
|
|
"connection": "Kan geen verbinding maken met Tibber. Controleer uw internetverbinding.",
|
|
"unknown": "Er is een onverwachte fout opgetreden. Controleer de logboeken voor details.",
|
|
"cannot_connect": "Verbinding mislukt",
|
|
"invalid_access_token": "Ongeldig toegangstoken",
|
|
"different_home": "Het toegangstoken is niet geldig voor de huis-ID waarvoor deze integratie is geconfigureerd."
|
|
},
|
|
"abort": {
|
|
"entry_not_found": "Tibber-configuratie-item niet gevonden."
|
|
}
|
|
},
|
|
"entity": {
|
|
"sensor": {
|
|
"current_price": {
|
|
"name": "Huidige elektriciteitsprijs"
|
|
},
|
|
"next_interval_price": {
|
|
"name": "Volgende prijs"
|
|
},
|
|
"previous_interval_price": {
|
|
"name": "Vorige elektriciteitsprijs"
|
|
},
|
|
"current_hour_average": {
|
|
"name": "Huidig uurgemiddelde prijs"
|
|
},
|
|
"next_hour_average": {
|
|
"name": "Volgend uurgemiddelde prijs"
|
|
},
|
|
"price_level": {
|
|
"name": "Huidig prijsniveau",
|
|
"state": {
|
|
"very_cheap": "Zeer goedkoop",
|
|
"cheap": "Goedkoop",
|
|
"normal": "Normaal",
|
|
"expensive": "Duur",
|
|
"very_expensive": "Zeer duur"
|
|
}
|
|
},
|
|
"next_interval_price_level": {
|
|
"name": "Volgend prijsniveau",
|
|
"state": {
|
|
"very_cheap": "Zeer goedkoop",
|
|
"cheap": "Goedkoop",
|
|
"normal": "Normaal",
|
|
"expensive": "Duur",
|
|
"very_expensive": "Zeer duur"
|
|
}
|
|
},
|
|
"previous_interval_price_level": {
|
|
"name": "Vorig prijsniveau",
|
|
"state": {
|
|
"very_cheap": "Zeer goedkoop",
|
|
"cheap": "Goedkoop",
|
|
"normal": "Normaal",
|
|
"expensive": "Duur",
|
|
"very_expensive": "Zeer duur"
|
|
}
|
|
},
|
|
"current_hour_price_level": {
|
|
"name": "Huidig uurprijsniveau",
|
|
"state": {
|
|
"very_cheap": "Zeer goedkoop",
|
|
"cheap": "Goedkoop",
|
|
"normal": "Normaal",
|
|
"expensive": "Duur",
|
|
"very_expensive": "Zeer duur"
|
|
}
|
|
},
|
|
"next_hour_price_level": {
|
|
"name": "Volgend uurprijsniveau",
|
|
"state": {
|
|
"very_cheap": "Zeer goedkoop",
|
|
"cheap": "Goedkoop",
|
|
"normal": "Normaal",
|
|
"expensive": "Duur",
|
|
"very_expensive": "Zeer duur"
|
|
}
|
|
},
|
|
"lowest_price_today": {
|
|
"name": "Laagste prijs vandaag"
|
|
},
|
|
"highest_price_today": {
|
|
"name": "Hoogste prijs vandaag"
|
|
},
|
|
"average_price_today": {
|
|
"name": "Gemiddelde prijs vandaag"
|
|
},
|
|
"lowest_price_tomorrow": {
|
|
"name": "Laagste prijs morgen"
|
|
},
|
|
"highest_price_tomorrow": {
|
|
"name": "Hoogste prijs morgen"
|
|
},
|
|
"average_price_tomorrow": {
|
|
"name": "Gemiddelde prijs morgen"
|
|
},
|
|
"trailing_price_average": {
|
|
"name": "Voortschrijdend 24u gemiddelde prijs"
|
|
},
|
|
"leading_price_average": {
|
|
"name": "Vooruitlopend 24u gemiddelde prijs"
|
|
},
|
|
"trailing_price_min": {
|
|
"name": "Voortschrijdend 24u minimumprijs"
|
|
},
|
|
"trailing_price_max": {
|
|
"name": "Voortschrijdend 24u maximumprijs"
|
|
},
|
|
"leading_price_min": {
|
|
"name": "Vooruitlopend 24u minimumprijs"
|
|
},
|
|
"leading_price_max": {
|
|
"name": "Vooruitlopend 24u maximumprijs"
|
|
},
|
|
"price_rating": {
|
|
"name": "Huidige prijsbeoordeling",
|
|
"state": {
|
|
"low": "Laag",
|
|
"normal": "Normaal",
|
|
"high": "Hoog"
|
|
}
|
|
},
|
|
"next_interval_price_rating": {
|
|
"name": "Volgende prijsbeoordeling",
|
|
"state": {
|
|
"low": "Laag",
|
|
"normal": "Normaal",
|
|
"high": "Hoog"
|
|
}
|
|
},
|
|
"previous_interval_price_rating": {
|
|
"name": "Vorige prijsbeoordeling",
|
|
"state": {
|
|
"low": "Laag",
|
|
"normal": "Normaal",
|
|
"high": "Hoog"
|
|
}
|
|
},
|
|
"current_hour_price_rating": {
|
|
"name": "Huidig uurprijs beoordeling",
|
|
"state": {
|
|
"low": "Laag",
|
|
"normal": "Normaal",
|
|
"high": "Hoog"
|
|
}
|
|
},
|
|
"next_hour_price_rating": {
|
|
"name": "Volgend uurprijs beoordeling",
|
|
"state": {
|
|
"low": "Laag",
|
|
"normal": "Normaal",
|
|
"high": "Hoog"
|
|
}
|
|
},
|
|
"next_avg_1h": {
|
|
"name": "Volgende 1u gemiddelde prijs"
|
|
},
|
|
"next_avg_2h": {
|
|
"name": "Volgende 2u gemiddelde prijs"
|
|
},
|
|
"next_avg_3h": {
|
|
"name": "Volgende 3u gemiddelde prijs"
|
|
},
|
|
"next_avg_4h": {
|
|
"name": "Volgende 4u gemiddelde prijs"
|
|
},
|
|
"next_avg_5h": {
|
|
"name": "Volgende 5u gemiddelde prijs"
|
|
},
|
|
"next_avg_6h": {
|
|
"name": "Volgende 6u gemiddelde prijs"
|
|
},
|
|
"next_avg_8h": {
|
|
"name": "Volgende 8u gemiddelde prijs"
|
|
},
|
|
"next_avg_12h": {
|
|
"name": "Volgende 12u gemiddelde prijs"
|
|
},
|
|
"price_trend_1h": {
|
|
"name": "Prijstrend (1u)",
|
|
"state": {
|
|
"rising": "Stijgend",
|
|
"falling": "Dalend",
|
|
"stable": "Stabiel"
|
|
}
|
|
},
|
|
"price_trend_2h": {
|
|
"name": "Prijstrend (2u)",
|
|
"state": {
|
|
"rising": "Stijgend",
|
|
"falling": "Dalend",
|
|
"stable": "Stabiel"
|
|
}
|
|
},
|
|
"price_trend_3h": {
|
|
"name": "Prijstrend (3u)",
|
|
"state": {
|
|
"rising": "Stijgend",
|
|
"falling": "Dalend",
|
|
"stable": "Stabiel"
|
|
}
|
|
},
|
|
"price_trend_4h": {
|
|
"name": "Prijstrend (4u)",
|
|
"state": {
|
|
"rising": "Stijgend",
|
|
"falling": "Dalend",
|
|
"stable": "Stabiel"
|
|
}
|
|
},
|
|
"price_trend_5h": {
|
|
"name": "Prijstrend (5u)",
|
|
"state": {
|
|
"rising": "Stijgend",
|
|
"falling": "Dalend",
|
|
"stable": "Stabiel"
|
|
}
|
|
},
|
|
"price_trend_6h": {
|
|
"name": "Prijstrend (6u)",
|
|
"state": {
|
|
"rising": "Stijgend",
|
|
"falling": "Dalend",
|
|
"stable": "Stabiel"
|
|
}
|
|
},
|
|
"price_trend_8h": {
|
|
"name": "Prijstrend (8u)",
|
|
"state": {
|
|
"rising": "Stijgend",
|
|
"falling": "Dalend",
|
|
"stable": "Stabiel"
|
|
}
|
|
},
|
|
"price_trend_12h": {
|
|
"name": "Prijstrend (12u)",
|
|
"state": {
|
|
"rising": "Stijgend",
|
|
"falling": "Dalend",
|
|
"stable": "Stabiel"
|
|
}
|
|
},
|
|
"daily_rating": {
|
|
"name": "Dagelijkse prijsbeoordeling"
|
|
},
|
|
"monthly_rating": {
|
|
"name": "Maandelijkse prijsbeoordeling"
|
|
},
|
|
"data_timestamp": {
|
|
"name": "Prijsgegevens Vervaldatum"
|
|
},
|
|
"today_volatility": {
|
|
"name": "Vandaag Prijsvolatiliteit",
|
|
"state": {
|
|
"low": "Laag",
|
|
"moderate": "Gematigd",
|
|
"high": "Hoog",
|
|
"very_high": "Zeer Hoog"
|
|
}
|
|
},
|
|
"tomorrow_volatility": {
|
|
"name": "Morgen Prijsvolatiliteit",
|
|
"state": {
|
|
"low": "Laag",
|
|
"moderate": "Gematigd",
|
|
"high": "Hoog",
|
|
"very_high": "Zeer Hoog"
|
|
}
|
|
},
|
|
"next_24h_volatility": {
|
|
"name": "Volgende 24u Prijsvolatiliteit",
|
|
"state": {
|
|
"low": "Laag",
|
|
"moderate": "Gematigd",
|
|
"high": "Hoog",
|
|
"very_high": "Zeer Hoog"
|
|
}
|
|
},
|
|
"today_tomorrow_volatility": {
|
|
"name": "Vandaag+Morgen Prijsvolatiliteit",
|
|
"state": {
|
|
"low": "Laag",
|
|
"moderate": "Gematigd",
|
|
"high": "Hoog",
|
|
"very_high": "Zeer Hoog"
|
|
}
|
|
},
|
|
"price_forecast": {
|
|
"name": "Prijsprognose"
|
|
}
|
|
},
|
|
"binary_sensor": {
|
|
"peak_price_period": {
|
|
"name": "Piekprijsperiode"
|
|
},
|
|
"best_price_period": {
|
|
"name": "Beste prijsperiode"
|
|
},
|
|
"connection": {
|
|
"name": "Tibber API-verbinding"
|
|
},
|
|
"tomorrow_data_available": {
|
|
"name": "Gegevens van morgen beschikbaar"
|
|
}
|
|
}
|
|
},
|
|
"issues": {
|
|
"new_homes_available": {
|
|
"title": "Nieuwe Tibber-huizen gedetecteerd",
|
|
"description": "We hebben {count} nieuw(e) huis/huizen op uw Tibber-account gedetecteerd: {homes}. U kunt ze toevoegen aan Home Assistant via de Tibber-integratieconfiguratie."
|
|
},
|
|
"homes_removed": {
|
|
"title": "Tibber-huizen verwijderd",
|
|
"description": "We hebben gedetecteerd dat {count} huis/huizen zijn verwijderd van uw Tibber-account: {homes}. Controleer uw Tibber-integratieconfiguratie."
|
|
}
|
|
},
|
|
"services": {
|
|
"refresh_user_data": {
|
|
"name": "Gebruikersgegevens vernieuwen",
|
|
"description": "Forceert een vernieuwing van de gebruikersgegevens (huizen, profielinformatie) van de Tibber API. Dit kan handig zijn na het maken van wijzigingen in uw Tibber-account of bij het oplossen van verbindingsproblemen.",
|
|
"fields": {
|
|
"entry_id": {
|
|
"name": "Item-ID",
|
|
"description": "De config-item-ID voor de Tibber-integratie."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"selector": {
|
|
"volatility": {
|
|
"options": {
|
|
"LOW": "Laag",
|
|
"MODERATE": "Matig",
|
|
"HIGH": "Hoog",
|
|
"VERY_HIGH": "Zeer hoog"
|
|
}
|
|
},
|
|
"price_level": {
|
|
"options": {
|
|
"ANY": "Alle",
|
|
"VERY_CHEAP": "Zeer goedkoop",
|
|
"CHEAP": "Goedkoop",
|
|
"NORMAL": "Normaal",
|
|
"EXPENSIVE": "Duur",
|
|
"VERY_EXPENSIVE": "Zeer duur"
|
|
}
|
|
}
|
|
},
|
|
"title": "Tibber Prijsinformatie & Beoordelingen"
|
|
}
|