mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-03-29 21:03:40 +00:00
Implement gap tolerance smoothing for Tibber's price level classification (VERY_CHEAP/CHEAP/NORMAL/EXPENSIVE/VERY_EXPENSIVE), separate from the existing rating_level gap tolerance (LOW/NORMAL/HIGH). New feature: - Add CONF_PRICE_LEVEL_GAP_TOLERANCE config option with separate UI step - Implement _apply_level_gap_tolerance() using same bidirectional gravitational pull algorithm as rating gap tolerance - Add _build_level_blocks() and _merge_small_level_blocks() helper functions Config flow changes: - Add new "price_level" options step with dedicated schema - Add menu entry "đ·ïž Preisniveau" / "đ·ïž Price Level" - Include translations for all 5 languages (de, en, nb, nl, sv) Bug fixes: - Use copy.deepcopy() for price intervals before enrichment to prevent in-place modification of cached raw API data, which caused gap tolerance changes to not take effect when reverting settings - Clear transformation cache in invalidate_config_cache() to ensure re-enrichment with new settings Logging improvements: - Reduce options update handler from 4 INFO messages to 1 DEBUG message - Move level_filtering and period_overlap debug logs to .details logger for granular control via configuration.yaml Technical details: - level_gap_tolerance is tracked separately in transformation config hash - Algorithm: Identifies small blocks (†tolerance) and merges them into the larger neighboring block using gravitational pull calculation - Default: 1 (smooth single isolated intervals), Range: 0-4 Impact: Users can now stabilize Tibber's price level classification independently from the internal rating_level calculation. Prevents automation flickering caused by brief price level changes in Tibber's API.
1172 lines
68 KiB
JSON
1172 lines
68 KiB
JSON
{
|
||
"config": {
|
||
"step": {
|
||
"account_choice": {
|
||
"title": "VĂ€lj konto",
|
||
"description": "Du kan lÀgga till ett annat hem frÄn ett befintligt Tibber-konto eller ange en ny API-token för ett annat konto.",
|
||
"data": {
|
||
"account_choice": "Konto"
|
||
},
|
||
"submit": "FortsĂ€tt â"
|
||
},
|
||
"new_token": {
|
||
"title": "Ange API-token",
|
||
"description": "Konfigurera Tibber Prisinformation & Betyg.\n\nFör att generera en API-Ätkomsttoken, besök https://developer.tibber.com.",
|
||
"data": {
|
||
"access_token": "API-Ätkomsttoken"
|
||
},
|
||
"submit": "Validera token"
|
||
},
|
||
"user": {
|
||
"description": "Konfigurera Tibber Prisinformation & Betyg.\n\nFör att generera en API-Ätkomsttoken, besök https://developer.tibber.com.",
|
||
"data": {
|
||
"access_token": "API-Ätkomsttoken"
|
||
},
|
||
"submit": "Validera token"
|
||
},
|
||
"select_home": {
|
||
"description": "VÀlj ett hem för att hÀmta prisinformation och betyg.",
|
||
"data": {
|
||
"home_id": "Hem"
|
||
},
|
||
"title": "VĂ€lj ett hem",
|
||
"submit": "VĂ€lj hem"
|
||
},
|
||
"finish": {
|
||
"description": "VÀlj ett hem för att hÀmta prisinformation och betyg.",
|
||
"data": {
|
||
"home_id": "Hem-ID"
|
||
},
|
||
"title": "VĂ€lj ett hem",
|
||
"submit": "VĂ€lj hem"
|
||
},
|
||
"reauth_confirm": {
|
||
"title": "Ă
terautentisera Tibber-prisintegration",
|
||
"description": "Ă
tkomsttoken för Tibber Àr inte lÀngre giltig. Ange en ny API-Ätkomsttoken för att fortsÀtta anvÀnda denna integration.\n\nFör att generera en ny API-Ätkomsttoken, besök https://developer.tibber.com.",
|
||
"data": {
|
||
"access_token": "API-Ätkomsttoken"
|
||
},
|
||
"submit": "Uppdatera token"
|
||
}
|
||
},
|
||
"error": {
|
||
"auth": "Tibber-Ätkomsttoken Àr ogiltig.",
|
||
"connection": "Kan inte ansluta till Tibber. Kontrollera din internetanslutning.",
|
||
"unknown": "OvÀntat fel",
|
||
"cannot_connect": "Anslutning misslyckades",
|
||
"invalid_access_token": "Ogiltig Ätkomsttoken",
|
||
"missing_homes": "Den nya Ätkomsttoken har inte Ätkomst till alla konfigurerade hem. AnvÀnd en Ätkomsttoken som har Ätkomst till samma Tibber-hem.",
|
||
"home_already_configured": "Detta hem Àr redan konfigurerat i en annan post. Varje hem kan bara konfigureras en gÄng.",
|
||
"no_active_subscription": "Detta hem har inget aktivt Tibber-avtal. Endast hem med aktiva elavtal kan lÀggas till i Home Assistant.",
|
||
"subscription_expired": "Tibber-avtalet för detta hem har löpt ut. Endast hem med aktiva eller framtida elavtal kan lÀggas till i Home Assistant.",
|
||
"future_subscription_warning": "Obs: Detta hems Tibber-avtal har inte börjat Ànnu. Funktionaliteten kan vara begrÀnsad tills avtalet blir aktivt.",
|
||
"invalid_yaml_syntax": "Ogiltig YAML-syntax. Kontrollera indragning, kolon och specialtecken.",
|
||
"invalid_yaml_structure": "YAML mÄste vara en ordbok/objekt (nyckel: vÀrde-par), inte en lista eller vanlig text.",
|
||
"service_call_failed": "TjÀnsteanrop validering misslyckades: {error_detail}",
|
||
"missing_entry_id": "Post-ID krÀvs men angavs inte.",
|
||
"invalid_entry_id": "Ogiltigt post-ID eller post hittades inte.",
|
||
"missing_home_id": "Hem-ID saknas frÄn konfigurationsposten.",
|
||
"user_data_not_available": "AnvÀndardata Àr inte tillgÀnglig. Uppdatera anvÀndardata först.",
|
||
"price_fetch_failed": "Misslyckades med att hÀmta prisdata. Kontrollera loggarna för detaljer."
|
||
},
|
||
"abort": {
|
||
"already_configured": "Alla tillgÀngliga Tibber-hem Àr redan konfigurerade. Varje hem kan bara konfigureras en gÄng.",
|
||
"entry_not_found": "Tibber-konfigurationspost hittades inte.",
|
||
"setup_complete": "Konfiguration klar! Du kan Àndra ytterligare alternativ för Tibber-priser i integrationens instÀllningar efter att ha stÀngt denna dialogruta.",
|
||
"reauth_successful": "Ă
terautentisering lyckades. Integrationen har uppdaterats med den nya Ätkomsttoken."
|
||
}
|
||
},
|
||
"common": {
|
||
"step_progress": "{step_num} / {total_steps}"
|
||
},
|
||
"config_subentries": {
|
||
"home": {
|
||
"entry_type": "Tidsresevy",
|
||
"initiate_flow": {
|
||
"user": "Skapa tidsresevy"
|
||
},
|
||
"title": "Skapa tidsresevy",
|
||
"step": {
|
||
"user": {
|
||
"title": "VĂ€lj konfigurationspost",
|
||
"description": "VÀlj den konfigurationspost som du vill skapa en tidsresevy för.\n\n**Tidsresevyer** lÄter dig se historisk prisdata som om det vore nuvarande tid. Detta Àr anvÀndbart för att testa automationer eller analysera tidigare prismönster.",
|
||
"data": {
|
||
"parent_entry_id": "Konfigurationspost"
|
||
}
|
||
},
|
||
"time_offset": {
|
||
"title": "Konfigurera tidsförskjutning",
|
||
"description": "Konfigurera hur lĂ„ngt tillbaka i tiden denna vy ska resa.\n\n**Rekommenderat:** AnvĂ€nd **â„2 dagar** förskjutning för att undvika konflikter med \"igĂ„r\"-entiteter som ocksĂ„ tillhandahĂ„ller historisk data.\n\n**Exempel:**\nâą **-7 dagar**: Visa priser frĂ„n 7 dagar sedan\nâą **-2 dagar, 3 timmar**: Visa priser frĂ„n 2 dagar och 3 timmar sedan\nâą **-14 dagar**: Visa priser frĂ„n 2 veckor sedan",
|
||
"data": {
|
||
"virtual_time_offset_days": "Dagar tillbaka",
|
||
"time_offset": "Extra tidsförskjutning"
|
||
},
|
||
"data_description": {
|
||
"virtual_time_offset_days": "Hur mĂ„nga dagar ska man resa tillbaka i tiden. Skjutreglage: 0 till 374 dagar (â1 Ă„r). Rekommenderat: â„2 dagar för att undvika konflikter med \"igĂ„r\"-entiteter.",
|
||
"time_offset": "Valfri finjustering: LÀgg till timmar och/eller minuter till dagförskjutningen. Tiden subtraheras automatiskt (resa tillbaka lÀngre). Obs: Sekunder ignoreras - endast minutnoggrannhet stöds."
|
||
}
|
||
},
|
||
"init": {
|
||
"title": "Konfigurera om tidsförskjutning",
|
||
"description": "Uppdatera tidsförskjutningen för denna tidsresevy.",
|
||
"data": {
|
||
"virtual_time_offset_days": "Dagar tillbaka",
|
||
"time_offset": "Extra tidsförskjutning"
|
||
},
|
||
"data_description": {
|
||
"virtual_time_offset_days": "Hur mĂ„nga dagar ska man resa tillbaka i tiden. Skjutreglage: 0 till 374 dagar (â1 Ă„r). Rekommenderat: â„2 dagar för att undvika konflikter med \"igĂ„r\"-entiteter.",
|
||
"time_offset": "Valfri finjustering: LÀgg till timmar och/eller minuter till dagförskjutningen. Tiden subtraheras automatiskt (resa tillbaka lÀngre). Obs: Sekunder ignoreras - endast minutnoggrannhet stöds."
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"no_time_offset": "Minst ett tidsförskjutningsvÀrde mÄste vara negativt (endast historisk data)."
|
||
},
|
||
"abort": {
|
||
"already_configured": "**En tidsresevy med exakt denna tidsförskjutning finns redan.**\n\nVÀlj en annan förskjutning.",
|
||
"no_main_entries": "Inga huvudkonfigurationsposter hittades. LÀgg till ett Tibber-hem först.",
|
||
"parent_entry_not_found": "Vald konfigurationspost hittades inte."
|
||
}
|
||
}
|
||
},
|
||
"options": {
|
||
"step": {
|
||
"init": {
|
||
"menu_options": {
|
||
"general_settings": "âïž AllmĂ€nna instĂ€llningar",
|
||
"display_settings": "đ± Valutavisning",
|
||
"current_interval_price_rating": "đ Prisbetyg",
|
||
"price_level": "đ·ïž PrisnivĂ„",
|
||
"volatility": "đš Prisvolatilitet",
|
||
"best_price": "đ BĂ€sta Prisperiod",
|
||
"peak_price": "đŽ Topprisperiod",
|
||
"price_trend": "đ Pristrend",
|
||
"chart_data_export": "đ Diagramdataexport-sensor",
|
||
"reset_to_defaults": "đ Ă
terstÀll till standard",
|
||
"finish": "âŹ
ïž Tillbaka"
|
||
}
|
||
},
|
||
"general_settings": {
|
||
"title": "âïž AllmĂ€nna instĂ€llningar",
|
||
"description": "**Konfigurera allmÀnna instÀllningar för Tibber prisinformation och betyg.**\n\n---\n\n**AnvÀndare:** {user_login}",
|
||
"data": {
|
||
"extended_descriptions": "Utökade beskrivningar",
|
||
"average_sensor_display": "Visa genomsnittssensor"
|
||
},
|
||
"data_description": {
|
||
"extended_descriptions": "Kontrollerar om entitetsattribut inkluderar detaljerade förklaringar och anvÀndningstips.\n\n⹠Inaktiverad (standard): Endast kort beskrivning\n⹠Aktiverad: Detaljerad förklaring + praktiska anvÀndningsexempel\n\nExempel:\nInaktiverad = 1 attribut\nAktiverad = 2 ytterligare attribut",
|
||
"average_sensor_display": "VÀlj vilket statistiskt mÄtt som ska visas i sensortillstÄndet för genomsnittsprissensorer. Det andra vÀrdet visas som ett attribut.\n\n⹠**Median (standard)**: Visar det 'typiska' priset, resistent mot extrema toppar - bÀst för visning och mÀnsklig tolkning\n⹠**Aritmetiskt medelvÀrde**: Visar det sanna matematiska genomsnittet inklusive alla priser - bÀst nÀr du behöver exakta kostnadsberÀkningar\n\nFör automatiseringar, anvÀnd attributet `price_mean` eller `price_median` för att komma Ät bÄda vÀrdena oavsett denna instÀllning."
|
||
},
|
||
"submit": "â© Spara & tillbaka"
|
||
},
|
||
"display_settings": {
|
||
"title": "đ± ValutavisningsinstĂ€llningar",
|
||
"description": "**Konfigurera hur elpriser visas - i basvaluta (âŹ, kr) eller underenhet (ct, Ăžre).**\n\n---",
|
||
"data": {
|
||
"currency_display_mode": "VisningslÀge"
|
||
},
|
||
"data_description": {
|
||
"currency_display_mode": "VĂ€lj hur priser visas:\n\nâą **Basvaluta** (âŹ/kWh, kr/kWh): DecimalvĂ€rden (t.ex. 0,25 âŹ/kWh) - skillnader synliga frĂ„n 3:e-4:e decimalen\nâą **Underenhetsvaluta** (ct/kWh, Ăžre/kWh): Större vĂ€rden (t.ex. 25,00 ct/kWh) - skillnader synliga frĂ„n 1:a decimalen\n\nStandard beror pĂ„ din valuta:\nâą EUR â Underenhet (cent) - Tysk/nederlĂ€ndsk preferens\nâą NOK/SEK/DKK â Bas (kronor) - Skandinavisk preferens\nâą USD/GBP â Basvaluta\n\n**đĄ Tips:** NĂ€r du vĂ€ljer Underenhetsvaluta kan du aktivera den extra sensorn \"Aktuellt Elpris (Energidashboard)\" (inaktiverad som standard)."
|
||
},
|
||
"submit": "â© Spara & tillbaka"
|
||
},
|
||
"current_interval_price_rating": {
|
||
"title": "đ PrisbetyginstĂ€llningar",
|
||
"description": "**Konfigurera tröskelvÀrden och stabilisering för prisbetygsnivÄer (lÄg/normal/hög) baserat pÄ jÀmförelse med glidande 24-timmars genomsnitt.**",
|
||
"data": {
|
||
"price_rating_threshold_low": "LÄg tröskel",
|
||
"price_rating_threshold_high": "Hög tröskel",
|
||
"price_rating_hysteresis": "Hysteres",
|
||
"price_rating_gap_tolerance": "Gap-tolerans"
|
||
},
|
||
"data_description": {
|
||
"price_rating_threshold_low": "Procentandel under det glidande 24-timmars genomsnittet som det aktuella priset mÄste vara för att kvalificera som 'lÄgt' betyg. Exempel: -10 betyder minst 10% under genomsnittet. Sensorer med detta betyg indikerar gynnsamma tidsfönster. Standard: -10%",
|
||
"price_rating_threshold_high": "Procentandel över det glidande 24-timmars genomsnittet som det aktuella priset mÄste vara för att kvalificera som 'högt' betyg. Exempel: 10 betyder minst 10% över genomsnittet. Sensorer med detta betyg varnar om dyra tidsfönster. Standard: 10%",
|
||
"price_rating_hysteresis": "Procentband runt tröskelvĂ€rden för att undvika snabba tillstĂ„ndsĂ€ndringar. NĂ€r betyget redan Ă€r LĂ
GT mĂ„ste priset stiga över (tröskel + hysteres) för att byta till NORMAL. LikasĂ„ krĂ€ver HĂGT att priset faller under (tröskel - hysteres) för att lĂ€mna tillstĂ„ndet. Detta ger stabilitet för automatiseringar som reagerar pĂ„ betygsĂ€ndringar. SĂ€tt till 0 för att inaktivera. Standard: 2%",
|
||
"price_rating_gap_tolerance": "Maximalt antal pÄ varandra följande intervaller som kan 'jÀmnas ut' om de avviker frÄn omgivande betyg. SmÄ isolerade betygsÀndringar sammanfogas med det dominerande grannblocket. Detta ger stabilitet för automatiseringar genom att förhindra att korta betygstoppar utlöser onödiga ÄtgÀrder. Exempel: 1 betyder att ett enstaka 'normal'-intervall omgivet av 'hög'-intervaller korrigeras till 'hög'. SÀtt till 0 för att inaktivera. Standard: 1"
|
||
},
|
||
"submit": "â© Spara & tillbaka"
|
||
},
|
||
"best_price": {
|
||
"title": "đ BĂ€sta Prisperiod-instĂ€llningar",
|
||
"description": "**Konfigurera instÀllningar för binÀrsensorn BÀsta Prisperiod. Denna sensor Àr aktiv under perioder med lÀgsta elpriserna.**\n\n---",
|
||
"sections": {
|
||
"period_settings": {
|
||
"name": "PeriodlÀngd & NivÄer",
|
||
"description": "Konfigurera hur lÄnga perioder ska vara och vilka prisnivÄer som ska inkluderas.",
|
||
"data": {
|
||
"best_price_min_period_length": "Minsta PeriodlÀngd",
|
||
"best_price_max_level": "PrisnivÄfilter",
|
||
"best_price_max_level_gap_count": "Gaptolerans"
|
||
},
|
||
"data_description": {
|
||
"best_price_min_period_length": "Minsta varaktighet för en period för att betraktas som 'bÀsta pris'. LÀngre perioder Àr mer praktiska för att köra apparater som diskmaskiner eller vÀrmepumpar. BÀsta prisperioder krÀver 60 minuter minimum (jÀmfört med 30 minuter för topprisvarningar) eftersom de bör ge meningsfulla tidsfönster för förbrukningsplanering, inte bara korta möjligheter.",
|
||
"best_price_max_level": "Visa endast bÀsta prisperioder om de innehÄller intervall med prisnivÄer †valt vÀrde. Till exempel betyder valet '**Billigt**' att perioden mÄste ha minst ett '**Mycket billigt**' eller '**Billigt**' intervall. Detta sÀkerstÀller att 'bÀsta pris'-perioder inte bara Àr relativt billiga för dagen, utan faktiskt billiga i absoluta termer. VÀlj '**Alla**' för att visa bÀsta priser oavsett deras absoluta prisnivÄ.",
|
||
"best_price_max_level_gap_count": "Maximalt antal konsekutiva intervall som tillĂ„ts avvika med exakt ett nivĂ„steg frĂ„n den nödvĂ€ndiga nivĂ„n. Till exempel: med '**Billigt**'-filter och gapantal 1, accepteras sekvensen '**Billigt**, **Billigt**, **Normalt**, **Billigt**' (**Normalt** Ă€r ett steg över **Billigt**). Detta förhindrar att perioder delas upp av tillfĂ€lliga nivĂ„avvikelser. **Obs:** Gaptolerans krĂ€ver perioder â„90 minuter (6 intervall) för att upptĂ€cka avvikare effektivt. Standard: 0 (strikt filtrering, ingen tolerans)."
|
||
}
|
||
},
|
||
"flexibility_settings": {
|
||
"name": "Flexibilitet & Trösklar",
|
||
"description": "Kontrollera hur mycket priser kan avvika och fortfarande kvalificera som 'bÀsta pris'.",
|
||
"data": {
|
||
"best_price_flex": "Flexibilitet",
|
||
"best_price_min_distance_from_avg": "MinimiavstÄnd"
|
||
},
|
||
"data_description": {
|
||
"best_price_flex": "Maximum över dagens minimipris som intervall kan vara och fortfarande kvalificera som 'bÀsta pris'. Rekommenderat: 15-20 med relaxation aktiverad (standard), eller 25-35 utan relaxation. Maximum: 50 (hÄrd grÀns för pÄlitlig perioddetektering).",
|
||
"best_price_min_distance_from_avg": "SÀkerstÀller att perioder Àr betydligt billigare Àn dagsgenomsnittet, inte bara marginellt under det. Detta filtrerar bort brus och förhindrar att perioder strax under genomsnittet markeras som 'bÀsta pris' pÄ dagar med platta priser. Högre vÀrden = striktare filtrering (endast verkligt billiga perioder kvalificerar). Standard: 5 betyder att perioder mÄste vara minst 5% under dagsgenomsnittet."
|
||
}
|
||
},
|
||
"relaxation_and_target_periods": {
|
||
"name": "Relaxation & MÄlperioder",
|
||
"description": "Konfigurera automatisk filterrelaxation och mÄlperiodsantal. Aktivera 'UppnÄ Minimiantal' för att aktivera relaxation.",
|
||
"data": {
|
||
"enable_min_periods_best": "UppnÄ Minimiantal",
|
||
"min_periods_best": "Minsta Perioder",
|
||
"relaxation_attempts_best": "Relaxationsförsök"
|
||
},
|
||
"data_description": {
|
||
"enable_min_periods_best": "NÀr aktiverad kommer filter gradvis att relaxeras om inte tillrÀckligt mÄnga perioder hittas. Detta försöker nÄ det önskade minimiantalet perioder, vilket kan inkludera mindre optimala tidsfönster som bÀsta-pris-perioder.",
|
||
"min_periods_best": "Minsta antal bÀsta prisperioder att sikta pÄ per dag. Filter kommer att relaxeras steg för steg för att försöka uppnÄ detta antal. Endast aktiv nÀr 'UppnÄ Minimiantal' Àr aktiverad. Standard: 1",
|
||
"relaxation_attempts_best": "Hur mÄnga flexnivÄer (försök) att prova innan man ger upp. Varje försök kör alla filterkombinationer pÄ den nya flexnivÄn. Fler försök ökar chansen att hitta ytterligare perioder pÄ bekostnad av lÀngre behandlingstid."
|
||
}
|
||
}
|
||
},
|
||
"submit": "â© Spara & tillbaka"
|
||
},
|
||
"peak_price": {
|
||
"title": "đŽ Topprisperiod-instĂ€llningar",
|
||
"description": "**Konfigurera instÀllningar för binÀrsensorn Topprisperiod. Denna sensor Àr aktiv under perioder med högsta elpriserna.**\n\n---",
|
||
"sections": {
|
||
"period_settings": {
|
||
"name": "PeriodinstÀllningar",
|
||
"description": "Konfigurera periodlÀngd och prisnivÄbegrÀnsningar.",
|
||
"data": {
|
||
"peak_price_min_period_length": "Minsta PeriodlÀngd",
|
||
"peak_price_min_level": "PrisnivÄfilter",
|
||
"peak_price_max_level_gap_count": "Gaptolerans"
|
||
},
|
||
"data_description": {
|
||
"peak_price_min_period_length": "Minsta varaktighet för en period för att betraktas som 'topppris'. Topprisvarningar Àr tillÄtna för kortare perioder (30 minuters minimum jÀmfört med 60 minuter för bÀsta pris) eftersom korta dyra toppar Àr vÀrda att varna om, Àven om de Àr för korta för förbrukningsplanering.",
|
||
"peak_price_min_level": "Visa endast topprisperioder om de innehÄller intervall med prisnivÄer ℠valt vÀrde. Till exempel betyder valet '**Dyrt**' att perioden mÄste ha minst ett '**Dyrt**' eller '**Mycket dyrt**' intervall. Detta sÀkerstÀller att 'topppris'-perioder inte bara Àr relativt dyra för dagen, utan faktiskt dyra i absoluta termer. VÀlj '**Alla**' för att visa topppriser oavsett deras absoluta prisnivÄ.",
|
||
"peak_price_max_level_gap_count": "Maximalt antal konsekutiva intervall som tillĂ„ts avvika med exakt ett nivĂ„steg frĂ„n den nödvĂ€ndiga nivĂ„n. Till exempel: med '**Dyrt**'-filter och gapantal 2, accepteras sekvensen '**Dyrt**, **Normalt**, **Normalt**, **Dyrt**' (**Normalt** Ă€r ett steg under **Dyrt**). Detta förhindrar att perioder delas upp av tillfĂ€lliga nivĂ„avvikelser. **Obs:** Gaptolerans krĂ€ver perioder â„90 minuter (6 intervall) för att upptĂ€cka avvikare effektivt. Standard: 0 (strikt filtrering, ingen tolerans)."
|
||
}
|
||
},
|
||
"flexibility_settings": {
|
||
"name": "FlexibilitetsinstÀllningar",
|
||
"description": "Konfigurera prisjÀmförelsetrösklar och filtrering.",
|
||
"data": {
|
||
"peak_price_flex": "Flexibilitet",
|
||
"peak_price_min_distance_from_avg": "MinimiavstÄnd"
|
||
},
|
||
"data_description": {
|
||
"peak_price_flex": "Maximum under dagens maximipris som intervall kan vara och fortfarande kvalificera som 'topppris'. Rekommenderat: -15 till -20 med relaxation aktiverad (standard), eller -25 till -35 utan relaxation. Maximum: -50 (hÄrd grÀns för pÄlitlig perioddetektering). Obs: Negativa vÀrden indikerar avstÄnd under maximum.",
|
||
"peak_price_min_distance_from_avg": "SÀkerstÀller att perioder Àr betydligt dyrare Àn dagsgenomsnittet, inte bara marginellt över det. Detta filtrerar bort brus och förhindrar att perioder strax över genomsnittet markeras som 'topppris' pÄ dagar med platta priser. Högre vÀrden = striktare filtrering (endast verkligt dyra perioder kvalificerar). Standard: 5 betyder att perioder mÄste vara minst 5% över dagsgenomsnittet."
|
||
}
|
||
},
|
||
"relaxation_and_target_periods": {
|
||
"name": "Relaxation & MÄlperioder",
|
||
"description": "Konfigurera automatisk filterrelaxation och mÄlperiodsantal. Aktivera 'UppnÄ Minimiantal' för att aktivera relaxation.",
|
||
"data": {
|
||
"enable_min_periods_peak": "UppnÄ Minimiantal",
|
||
"min_periods_peak": "Minsta Perioder",
|
||
"relaxation_attempts_peak": "Relaxationsförsök"
|
||
},
|
||
"data_description": {
|
||
"enable_min_periods_peak": "NÀr aktiverad kommer filter gradvis att relaxeras om inte tillrÀckligt mÄnga perioder hittas. Detta försöker nÄ det önskade minimiantalet perioder för att sÀkerstÀlla att du varnas om dyra perioder Àven pÄ dagar med ovanliga prismönster.",
|
||
"min_periods_peak": "Minsta antal topprisperioder att sikta pÄ per dag. Filter kommer att relaxeras steg för steg för att försöka uppnÄ detta antal. Endast aktiv nÀr 'UppnÄ Minimiantal' Àr aktiverad. Standard: 1",
|
||
"relaxation_attempts_peak": "Hur mÄnga flexnivÄer (försök) att prova innan man ger upp. Varje försök kör alla filterkombinationer pÄ den nya flexnivÄn. Fler försök ökar chansen att hitta ytterligare toppperioder pÄ bekostnad av lÀngre behandlingstid."
|
||
}
|
||
}
|
||
},
|
||
"submit": "â© Spara & tillbaka"
|
||
},
|
||
"price_trend": {
|
||
"title": "đ Pristrendtrösklar",
|
||
"description": "**Konfigurera tröskelvÀrden för pristrendsensorer. Dessa sensorer jÀmför aktuellt pris med genomsnittet av de nÀsta N timmarna för att bestÀmma om priserna stiger, faller eller Àr stabila.**",
|
||
"data": {
|
||
"price_trend_threshold_rising": "Stigande tröskel",
|
||
"price_trend_threshold_falling": "Fallande tröskel"
|
||
},
|
||
"data_description": {
|
||
"price_trend_threshold_rising": "Procentandel som genomsnittet av de nĂ€sta N timmarna mĂ„ste vara över det aktuella priset för att kvalificera som 'stigande' trend. Exempel: 5 betyder att genomsnittet Ă€r minst 5% högre â priserna kommer att stiga. Typiska vĂ€rden: 5-15%. Standard: 5%",
|
||
"price_trend_threshold_falling": "Procentandel (negativ) som genomsnittet av de nĂ€sta N timmarna mĂ„ste vara under det aktuella priset för att kvalificera som 'fallande' trend. Exempel: -5 betyder att genomsnittet Ă€r minst 5% lĂ€gre â priserna kommer att falla. Typiska vĂ€rden: -5 till -15%. Standard: -5%"
|
||
},
|
||
"submit": "â© Spara & tillbaka"
|
||
},
|
||
"volatility": {
|
||
"title": "đš Prisvolatilitetströsklar",
|
||
"description": "**Konfigurera tröskelvĂ€rden för volatilitetsklassificering.** Volatilitet mĂ€ter relativ prisvariation med variationskoefficienten (CV = standardavvikelse / medelvĂ€rde Ă 100%). Dessa tröskelvĂ€rden Ă€r procentvĂ€rden som fungerar över alla prisnivĂ„er.\n\nAnvĂ€nds av:\nâą Volatilitetssensorer (klassificering)\nâą Trendsensorer (adaptiv tröskeljustering: <mĂ„ttlig = mer kĂ€nslig, â„hög = mindre kĂ€nslig)",
|
||
"data": {
|
||
"volatility_threshold_moderate": "MÄttlig tröskel",
|
||
"volatility_threshold_high": "Hög tröskel",
|
||
"volatility_threshold_very_high": "Mycket hög tröskel"
|
||
},
|
||
"data_description": {
|
||
"volatility_threshold_moderate": "Variationskoefficient (CV) vid vilken priser anses 'mÄttligt volatila'. CV = (standardavvikelse / medelvÀrde) à 100%. Exempel: 15 betyder prisfluktuationer pÄ ±15% runt genomsnittet. Sensorer visar denna klassificering, trendsensorer blir mer kÀnsliga. Standard: 15%",
|
||
"volatility_threshold_high": "Variationskoefficient (CV) vid vilken priser anses 'högvolatila'. Exempel: 30 betyder prisfluktuationer pÄ ±30% runt genomsnittet. Större prishopp förvÀntas, trendsensorer blir mindre kÀnsliga. Standard: 30%",
|
||
"volatility_threshold_very_high": "Variationskoefficient (CV) vid vilken priser anses 'mycket högvolatila'. Exempel: 50 betyder extrema prisfluktuationer pÄ ±50% runt genomsnittet. PÄ sÄdana dagar Àr starka pristoppar troliga. Standard: 50%"
|
||
},
|
||
"submit": "â© Spara & tillbaka"
|
||
},
|
||
"chart_data_export": {
|
||
"title": "đ Diagramdataexport-sensor",
|
||
"description": "Diagramdataexport-sensorn tillhandahĂ„ller prisdata som sensorattribut.\n\nâ ïž **Obs:** Denna sensor Ă€r en Ă€ldre funktion för kompatibilitet med Ă€ldre verktyg.\n\n**Rekommenderat för nya konfigurationer:** AnvĂ€nd `tibber_prices.get_chartdata` **tjĂ€nsten direkt** - den Ă€r mer flexibel, effektiv och det moderna Home Assistant-sĂ€ttet.\n\n**NĂ€r denna sensor Ă€r meningsfull:**\n\nâ
Ditt instrumentpanelverktyg kan **endast** lĂ€sa attribut (inga tjĂ€nsteanrop)\nâ
Du behöver statisk data som uppdateras automatiskt\nâ **Inte för automationer:** AnvĂ€nd `tibber_prices.get_chartdata` direkt dĂ€r - mer flexibelt och effektivt!\n\n---\n\n**Aktivera sensorn:**\n\n1. Ăppna **InstĂ€llningar â Enheter & TjĂ€nster â Tibber-priser**\n2. VĂ€lj ditt hem â Hitta **'Diagramdataexport'** (Diagnostiksektion)\n3. **Aktivera sensorn** (inaktiverad som standard)\n\n**Konfiguration (valfritt):**\n\nStandardinstĂ€llningar fungerar direkt (idag+imorgon, 15-minutersintervall, endast priser).\n\nFör anpassning, lĂ€gg till i **`configuration.yaml`**:\n\n```yaml\ntibber_prices:\n chart_export:\n day:\n - today\n - tomorrow\n include_level: true\n include_rating_level: true\n```\n\n**Alla parametrar:** Se `tibber_prices.get_chartdata` tjĂ€nstdokumentation",
|
||
"submit": "â© Ok & tillbaka"
|
||
},
|
||
"reset_to_defaults": {
|
||
"title": "đ Ă
terstÀll till standard",
|
||
"description": "â ïž **Varning:** Detta kommer att Ă„terstĂ€lla **ALLA** instĂ€llningar till fabriksstandard.\n\n**Vad som kommer att Ă„terstĂ€llas:**\nâą Alla prisbetygströsklar\nâą Alla volatilitetströsklar\nâą Alla pristrendtrösklar\nâą Alla bĂ€sta prisperiodinstĂ€llningar\nâą Alla topprisperiodinstĂ€llningar\nâą VisningsinstĂ€llningar\nâą AllmĂ€nna instĂ€llningar\n\n**Vad som INTE kommer att Ă„terstĂ€llas:**\nâą Din Tibber API-token\nâą Valt hem\nâą Valuta\n\n**đĄ Tips:** Detta Ă€r anvĂ€ndbart om du vill börja om frĂ„n början efter att ha experimenterat med instĂ€llningar.",
|
||
"data": {
|
||
"confirm_reset": "Ja, ÄterstÀll allt till standard"
|
||
},
|
||
"submit": "Ă
terstÀll nu"
|
||
},
|
||
"price_level": {
|
||
"title": "<22><>ïž PrisnivĂ„-instĂ€llningar",
|
||
"description": "**Konfigurera stabilisering för Tibbers prisnivÄ-klassificering (mycket billig/billig/normal/dyr/mycket dyr).**\n\nTibbers API tillhandahÄller ett prisnivÄ-fÀlt för varje intervall. Denna instÀllning jÀmnar ut korta fluktuationer för att förhindra instabilitet i automatiseringar.",
|
||
"data": {
|
||
"price_level_gap_tolerance": "Gap-tolerans"
|
||
},
|
||
"data_description": {
|
||
"price_level_gap_tolerance": "Maximalt antal pÄ varandra följande intervaller som kan 'jÀmnas ut' om de avviker frÄn omgivande prisnivÄer. SmÄ isolerade nivÄförÀndringar sammanfogas med det dominerande grannblocket. Exempel: 1 betyder att ett enstaka 'normal'-intervall omgivet av 'billig'-intervaller korrigeras till 'billig'. SÀtt till 0 för att inaktivera. Standard: 1"
|
||
},
|
||
"submit": "â© Spara & tillbaka"
|
||
}
|
||
},
|
||
"error": {
|
||
"auth": "Tibber-Ätkomsttoken Àr ogiltig.",
|
||
"connection": "Kan inte ansluta till Tibber. Kontrollera din internetanslutning.",
|
||
"unknown": "Ett ovÀntat fel intrÀffade. Kontrollera loggarna för detaljer.",
|
||
"cannot_connect": "Anslutning misslyckades",
|
||
"invalid_access_token": "Ogiltig Ätkomsttoken",
|
||
"different_home": "Ă
tkomsttoken Àr inte giltig för det hem-ID som denna integration Àr konfigurerad för.",
|
||
"invalid_period_length": "PeriodlÀngd mÄste vara minst 15 minuter (multiplar av 15).",
|
||
"invalid_flex": "Flexibilitetsprocent mÄste vara mellan -50% och +50%",
|
||
"invalid_best_price_distance": "AvstÄnds procent mÄste vara mellan -50% och 0% (negativ = under genomsnitt)",
|
||
"invalid_peak_price_distance": "AvstÄnds procent mÄste vara mellan 0% och 50% (positiv = över genomsnitt)",
|
||
"invalid_min_periods": "Minsta perioder mÄste vara mellan 1 och 10",
|
||
"invalid_gap_count": "Gapantal mÄste vara mellan 0 och 8",
|
||
"invalid_relaxation_attempts": "Relaxationsförsök mÄste vara mellan 1 och 12",
|
||
"invalid_price_rating_low": "LÄg prisbetygströskel mÄste vara mellan -50% och -5%",
|
||
"invalid_price_rating_high": "Hög prisbetygströskel mÄste vara mellan 5% och 50%",
|
||
"invalid_price_rating_thresholds": "LÄg tröskel mÄste vara mindre Àn hög tröskel",
|
||
"invalid_volatility_threshold_moderate": "MÄttlig volatilitetströskel mÄste vara mellan 5% och 25%",
|
||
"invalid_volatility_threshold_high": "Hög volatilitetströskel mÄste vara mellan 20% och 40%",
|
||
"invalid_volatility_threshold_very_high": "Mycket hög volatilitetströskel mÄste vara mellan 35% och 80%",
|
||
"invalid_volatility_thresholds": "Trösklar mÄste vara i stigande ordning: mÄttlig < hög < mycket hög",
|
||
"invalid_price_trend_rising": "Stigande trendtröskel mÄste vara mellan 1% och 50%",
|
||
"invalid_price_trend_falling": "Fallande trendtröskel mÄste vara mellan -50% och -1%"
|
||
},
|
||
"abort": {
|
||
"entry_not_found": "Tibber-konfigurationspost hittades inte.",
|
||
"reset_cancelled": "Ă
terstÀllning avbruten. Inga Àndringar gjordes i din konfiguration.",
|
||
"reset_successful": "â
Alla instÀllningar har ÄterstÀllts till fabriksstandard. Din konfiguration Àr nu som en ny installation.",
|
||
"finished": "Konfiguration slutförd."
|
||
}
|
||
},
|
||
"entity": {
|
||
"sensor": {
|
||
"current_interval_price": {
|
||
"name": "Aktuellt elpris"
|
||
},
|
||
"current_interval_price_base": {
|
||
"name": "Aktuellt elpris (Energidashboard)"
|
||
},
|
||
"next_interval_price": {
|
||
"name": "NĂ€sta elpris"
|
||
},
|
||
"previous_interval_price": {
|
||
"name": "FöregÄende elpris"
|
||
},
|
||
"current_hour_average_price": {
|
||
"name": "â Timpris aktuell"
|
||
},
|
||
"next_hour_average_price": {
|
||
"name": "â Timpris nĂ€sta"
|
||
},
|
||
"current_interval_price_level": {
|
||
"name": "Aktuell prisnivÄ",
|
||
"state": {
|
||
"very_cheap": "Mycket billigt",
|
||
"cheap": "Billigt",
|
||
"normal": "Normalt",
|
||
"expensive": "Dyrt",
|
||
"very_expensive": "Mycket dyrt"
|
||
}
|
||
},
|
||
"next_interval_price_level": {
|
||
"name": "NÀsta prisnivÄ",
|
||
"state": {
|
||
"very_cheap": "Mycket billigt",
|
||
"cheap": "Billigt",
|
||
"normal": "Normalt",
|
||
"expensive": "Dyrt",
|
||
"very_expensive": "Mycket dyrt"
|
||
}
|
||
},
|
||
"previous_interval_price_level": {
|
||
"name": "FöregÄende prisnivÄ",
|
||
"state": {
|
||
"very_cheap": "Mycket billigt",
|
||
"cheap": "Billigt",
|
||
"normal": "Normalt",
|
||
"expensive": "Dyrt",
|
||
"very_expensive": "Mycket dyrt"
|
||
}
|
||
},
|
||
"current_hour_price_level": {
|
||
"name": "Aktuell timprisnivÄ",
|
||
"state": {
|
||
"very_cheap": "Mycket billigt",
|
||
"cheap": "Billigt",
|
||
"normal": "Normalt",
|
||
"expensive": "Dyrt",
|
||
"very_expensive": "Mycket dyrt"
|
||
}
|
||
},
|
||
"next_hour_price_level": {
|
||
"name": "NÀsta timprisnivÄ",
|
||
"state": {
|
||
"very_cheap": "Mycket billigt",
|
||
"cheap": "Billigt",
|
||
"normal": "Normalt",
|
||
"expensive": "Dyrt",
|
||
"very_expensive": "Mycket dyrt"
|
||
}
|
||
},
|
||
"lowest_price_today": {
|
||
"name": "Dagens lÀgsta pris"
|
||
},
|
||
"highest_price_today": {
|
||
"name": "Dagens högsta pris"
|
||
},
|
||
"average_price_today": {
|
||
"name": "â Pris idag"
|
||
},
|
||
"lowest_price_tomorrow": {
|
||
"name": "Morgondagens lÀgsta pris"
|
||
},
|
||
"highest_price_tomorrow": {
|
||
"name": "Morgondagens högsta pris"
|
||
},
|
||
"average_price_tomorrow": {
|
||
"name": "â Pris imorgon"
|
||
},
|
||
"yesterday_price_level": {
|
||
"name": "GÄrdagens prisnivÄ",
|
||
"state": {
|
||
"very_cheap": "Mycket billigt",
|
||
"cheap": "Billigt",
|
||
"normal": "Normalt",
|
||
"expensive": "Dyrt",
|
||
"very_expensive": "Mycket dyrt"
|
||
}
|
||
},
|
||
"today_price_level": {
|
||
"name": "Dagens prisnivÄ",
|
||
"state": {
|
||
"very_cheap": "Mycket billigt",
|
||
"cheap": "Billigt",
|
||
"normal": "Normalt",
|
||
"expensive": "Dyrt",
|
||
"very_expensive": "Mycket dyrt"
|
||
}
|
||
},
|
||
"tomorrow_price_level": {
|
||
"name": "Morgondagens prisnivÄ",
|
||
"state": {
|
||
"very_cheap": "Mycket billigt",
|
||
"cheap": "Billigt",
|
||
"normal": "Normalt",
|
||
"expensive": "Dyrt",
|
||
"very_expensive": "Mycket dyrt"
|
||
}
|
||
},
|
||
"yesterday_price_rating": {
|
||
"name": "GÄrdagens prisbetyg",
|
||
"state": {
|
||
"low": "LÄg",
|
||
"normal": "Normal",
|
||
"high": "Hög"
|
||
}
|
||
},
|
||
"today_price_rating": {
|
||
"name": "Dagens prisbetyg",
|
||
"state": {
|
||
"low": "LÄg",
|
||
"normal": "Normal",
|
||
"high": "Hög"
|
||
}
|
||
},
|
||
"tomorrow_price_rating": {
|
||
"name": "Morgondagens prisbetyg",
|
||
"state": {
|
||
"low": "LÄg",
|
||
"normal": "Normal",
|
||
"high": "Hög"
|
||
}
|
||
},
|
||
"trailing_price_average": {
|
||
"name": "â Pris glidande 24h"
|
||
},
|
||
"leading_price_average": {
|
||
"name": "â Pris framĂ„t 24h"
|
||
},
|
||
"trailing_price_min": {
|
||
"name": "Glidande 24h minimipris"
|
||
},
|
||
"trailing_price_max": {
|
||
"name": "Glidande 24h maximipris"
|
||
},
|
||
"leading_price_min": {
|
||
"name": "FramÄt 24h minimipris"
|
||
},
|
||
"leading_price_max": {
|
||
"name": "FramÄt 24h maximipris"
|
||
},
|
||
"current_interval_price_rating": {
|
||
"name": "Aktuellt prisbetyg",
|
||
"state": {
|
||
"low": "LÄg",
|
||
"normal": "Normal",
|
||
"high": "Hög"
|
||
}
|
||
},
|
||
"next_interval_price_rating": {
|
||
"name": "NĂ€sta prisbetyg",
|
||
"state": {
|
||
"low": "LÄg",
|
||
"normal": "Normal",
|
||
"high": "Hög"
|
||
}
|
||
},
|
||
"previous_interval_price_rating": {
|
||
"name": "FöregÄende prisbetyg",
|
||
"state": {
|
||
"low": "LÄg",
|
||
"normal": "Normal",
|
||
"high": "Hög"
|
||
}
|
||
},
|
||
"current_hour_price_rating": {
|
||
"name": "Aktuellt timprisbetyg",
|
||
"state": {
|
||
"low": "LÄg",
|
||
"normal": "Normal",
|
||
"high": "Hög"
|
||
}
|
||
},
|
||
"next_hour_price_rating": {
|
||
"name": "NĂ€sta timprisbetyg",
|
||
"state": {
|
||
"low": "LÄg",
|
||
"normal": "Normal",
|
||
"high": "Hög"
|
||
}
|
||
},
|
||
"next_avg_1h": {
|
||
"name": "â Pris nĂ€sta 1h"
|
||
},
|
||
"next_avg_2h": {
|
||
"name": "â Pris nĂ€sta 2h"
|
||
},
|
||
"next_avg_3h": {
|
||
"name": "â Pris nĂ€sta 3h"
|
||
},
|
||
"next_avg_4h": {
|
||
"name": "â Pris nĂ€sta 4h"
|
||
},
|
||
"next_avg_5h": {
|
||
"name": "â Pris nĂ€sta 5h"
|
||
},
|
||
"next_avg_6h": {
|
||
"name": "â Pris nĂ€sta 6h"
|
||
},
|
||
"next_avg_8h": {
|
||
"name": "â Pris nĂ€sta 8h"
|
||
},
|
||
"next_avg_12h": {
|
||
"name": "â Pris nĂ€sta 12h"
|
||
},
|
||
"price_trend_1h": {
|
||
"name": "Pristrend (1h)",
|
||
"state": {
|
||
"rising": "Stigande",
|
||
"falling": "Fallande",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"price_trend_2h": {
|
||
"name": "Pristrend (2h)",
|
||
"state": {
|
||
"rising": "Stigande",
|
||
"falling": "Fallande",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"price_trend_3h": {
|
||
"name": "Pristrend (3h)",
|
||
"state": {
|
||
"rising": "Stigande",
|
||
"falling": "Fallande",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"price_trend_4h": {
|
||
"name": "Pristrend (4h)",
|
||
"state": {
|
||
"rising": "Stigande",
|
||
"falling": "Fallande",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"price_trend_5h": {
|
||
"name": "Pristrend (5h)",
|
||
"state": {
|
||
"rising": "Stigande",
|
||
"falling": "Fallande",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"price_trend_6h": {
|
||
"name": "Pristrend (6h)",
|
||
"state": {
|
||
"rising": "Stigande",
|
||
"falling": "Fallande",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"price_trend_8h": {
|
||
"name": "Pristrend (8h)",
|
||
"state": {
|
||
"rising": "Stigande",
|
||
"falling": "Fallande",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"price_trend_12h": {
|
||
"name": "Pristrend (12h)",
|
||
"state": {
|
||
"rising": "Stigande",
|
||
"falling": "Fallande",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"current_price_trend": {
|
||
"name": "Aktuell pristrend",
|
||
"state": {
|
||
"rising": "Stigande",
|
||
"falling": "Fallande",
|
||
"stable": "Stabil"
|
||
}
|
||
},
|
||
"next_price_trend_change": {
|
||
"name": "NÀsta pristrendÀndring"
|
||
},
|
||
"daily_rating": {
|
||
"name": "Dagligt prisbetyg"
|
||
},
|
||
"monthly_rating": {
|
||
"name": "MÄnatligt prisbetyg"
|
||
},
|
||
"data_lifecycle_status": {
|
||
"name": "Datalivscykelstatus",
|
||
"state": {
|
||
"cached": "Cachad",
|
||
"fresh": "FĂ€rsk",
|
||
"refreshing": "Uppdaterar",
|
||
"searching_tomorrow": "Söker morgondag",
|
||
"turnover_pending": "VÀntar pÄ övergÄng",
|
||
"error": "Fel"
|
||
}
|
||
},
|
||
"today_volatility": {
|
||
"name": "Dagens prisvolatilitet",
|
||
"state": {
|
||
"low": "LÄg",
|
||
"moderate": "MÄttlig",
|
||
"high": "Hög",
|
||
"very_high": "Mycket hög"
|
||
}
|
||
},
|
||
"tomorrow_volatility": {
|
||
"name": "Morgondagens prisvolatilitet",
|
||
"state": {
|
||
"low": "LÄg",
|
||
"moderate": "MÄttlig",
|
||
"high": "Hög",
|
||
"very_high": "Mycket hög"
|
||
}
|
||
},
|
||
"next_24h_volatility": {
|
||
"name": "NĂ€sta 24h prisvolatilitet",
|
||
"state": {
|
||
"low": "LÄg",
|
||
"moderate": "MÄttlig",
|
||
"high": "Hög",
|
||
"very_high": "Mycket hög"
|
||
}
|
||
},
|
||
"today_tomorrow_volatility": {
|
||
"name": "Idag+Imorgon prisvolatilitet",
|
||
"state": {
|
||
"low": "LÄg",
|
||
"moderate": "MÄttlig",
|
||
"high": "Hög",
|
||
"very_high": "Mycket hög"
|
||
}
|
||
},
|
||
"best_price_end_time": {
|
||
"name": "BĂ€sta pris slutar"
|
||
},
|
||
"best_price_period_duration": {
|
||
"name": "BĂ€sta pris varaktighet"
|
||
},
|
||
"best_price_remaining_minutes": {
|
||
"name": "BÀsta pris ÄterstÄende tid"
|
||
},
|
||
"best_price_progress": {
|
||
"name": "BĂ€sta pris framsteg"
|
||
},
|
||
"best_price_next_start_time": {
|
||
"name": "BĂ€sta pris startar"
|
||
},
|
||
"best_price_next_in_minutes": {
|
||
"name": "BĂ€sta pris startar om"
|
||
},
|
||
"peak_price_end_time": {
|
||
"name": "Topppris slutar"
|
||
},
|
||
"peak_price_period_duration": {
|
||
"name": "Topppris varaktighet"
|
||
},
|
||
"peak_price_remaining_minutes": {
|
||
"name": "Topppris ÄterstÄende tid"
|
||
},
|
||
"peak_price_progress": {
|
||
"name": "Topppris framsteg"
|
||
},
|
||
"peak_price_next_start_time": {
|
||
"name": "Topppris startar"
|
||
},
|
||
"peak_price_next_in_minutes": {
|
||
"name": "Topppris startar om"
|
||
},
|
||
"home_type": {
|
||
"name": "Hemtyp",
|
||
"state": {
|
||
"apartment": "LĂ€genhet",
|
||
"rowhouse": "Radhus",
|
||
"house": "Hus",
|
||
"cottage": "Stuga"
|
||
}
|
||
},
|
||
"home_size": {
|
||
"name": "Hemstorlek"
|
||
},
|
||
"main_fuse_size": {
|
||
"name": "HuvudsÀkringsstorlek"
|
||
},
|
||
"number_of_residents": {
|
||
"name": "Antal boende"
|
||
},
|
||
"primary_heating_source": {
|
||
"name": "PrimÀr vÀrmekÀlla",
|
||
"state": {
|
||
"air2air_heatpump": "Luft-till-luft vÀrmepump",
|
||
"air2water_heatpump": "Luft-till-vatten vÀrmepump",
|
||
"boiler": "Panna",
|
||
"central_heating": "CentralvÀrme",
|
||
"district_heating": "FjÀrrvÀrme",
|
||
"district": "FjÀrrvÀrme",
|
||
"electric_boiler": "Elpanna",
|
||
"electricity": "El",
|
||
"floor": "GolvvÀrme",
|
||
"gas": "Gas",
|
||
"ground_heatpump": "BergvÀrmepump",
|
||
"ground": "BergvÀrmepump",
|
||
"oil": "Olja",
|
||
"other": "Annat",
|
||
"waste": "SpillvÀrme"
|
||
}
|
||
},
|
||
"grid_company": {
|
||
"name": "NĂ€tbolag"
|
||
},
|
||
"grid_area_code": {
|
||
"name": "NÀtomrÄdeskod"
|
||
},
|
||
"price_area_code": {
|
||
"name": "PrisomrÄdeskod"
|
||
},
|
||
"consumption_ean": {
|
||
"name": "Förbruknings-EAN"
|
||
},
|
||
"production_ean": {
|
||
"name": "Produktions-EAN"
|
||
},
|
||
"energy_tax_type": {
|
||
"name": "Energiskattetyp"
|
||
},
|
||
"vat_type": {
|
||
"name": "Momstyp"
|
||
},
|
||
"estimated_annual_consumption": {
|
||
"name": "BerÀknad Ärlig förbrukning"
|
||
},
|
||
"subscription_status": {
|
||
"name": "Abonnemangsstatus",
|
||
"state": {
|
||
"running": "Aktiv",
|
||
"ended": "Avslutad",
|
||
"pending": "VĂ€ntande",
|
||
"unknown": "OkÀnd"
|
||
}
|
||
},
|
||
"chart_data_export": {
|
||
"name": "Diagramdataexport",
|
||
"state": {
|
||
"pending": "VĂ€ntande",
|
||
"ready": "Redo",
|
||
"error": "Fel"
|
||
}
|
||
},
|
||
"chart_metadata": {
|
||
"name": "Diagrammetadata",
|
||
"state": {
|
||
"pending": "VĂ€ntande",
|
||
"ready": "Redo",
|
||
"error": "Fel"
|
||
}
|
||
}
|
||
},
|
||
"binary_sensor": {
|
||
"peak_price_period": {
|
||
"name": "Topprisperiod"
|
||
},
|
||
"best_price_period": {
|
||
"name": "BĂ€sta Prisperiod"
|
||
},
|
||
"connection": {
|
||
"name": "Tibber API-anslutning"
|
||
},
|
||
"tomorrow_data_available": {
|
||
"name": "Morgondagens data tillgÀnglig"
|
||
},
|
||
"has_ventilation_system": {
|
||
"name": "Har ventilationssystem"
|
||
},
|
||
"realtime_consumption_enabled": {
|
||
"name": "Realtidsförbrukning aktiverad"
|
||
}
|
||
}
|
||
},
|
||
"issues": {
|
||
"new_homes_available": {
|
||
"title": "Nya Tibber-hem upptÀckta",
|
||
"description": "Vi upptÀckte {count} nytt/nya hem pÄ ditt Tibber-konto: {homes}. Du kan lÀgga till dem i Home Assistant genom Tibber-integrationskonfigurationen."
|
||
},
|
||
"homes_removed": {
|
||
"title": "Tibber-hem borttagna",
|
||
"description": "Vi upptÀckte att {count} hem har tagits bort frÄn ditt Tibber-konto: {homes}. Granska din Tibber-integrationskonfiguration."
|
||
},
|
||
"tomorrow_data_missing": {
|
||
"title": "Morgondagens prisdata saknas för {home_name}",
|
||
"description": "Morgondagens elprisdata Àr fortfarande otillgÀnglig efter {warning_hour}:00. Detta Àr ovanligt, eftersom Tibber vanligtvis publicerar morgondagens priser pÄ eftermiddagen (runt 13:00-14:00 CET).\n\nMöjliga orsaker:\n- Tibber har Ànnu inte publicerat morgondagens priser\n- TillfÀlliga API-problem\n- Din elleverantör har inte skickat priser till Tibber\n\nDetta problem löser sig automatiskt nÀr morgondagens data blir tillgÀnglig. Om detta kvarstÄr efter 20:00, kontrollera Tibber-appen eller kontakta Tibber support."
|
||
},
|
||
"rate_limit_exceeded": {
|
||
"title": "API-hastighetsgrÀns överskriden för {home_name}",
|
||
"description": "Tibber API har hastighetsbegrÀnsat denna integration efter {error_count} konsekutiva fel. Detta betyder att förfrÄgningar görs för ofta.\n\nIntegrationen kommer automatiskt att försöka igen med ökande fördröjningar. Detta problem löser sig nÀr hastighetsgrÀnsen löper ut.\n\nOm detta kvarstÄr i flera timmar, övervÀg:\n- Kontrollera om flera Home Assistant-instanser anvÀnder samma API-token\n- Verifiera att inga andra applikationer anvÀnder din Tibber API-token kraftigt\n- Minska uppdateringsfrekvensen om du har anpassat den"
|
||
},
|
||
"home_not_found": {
|
||
"title": "Hem {home_name} hittades inte i Tibber-konto",
|
||
"description": "Hemmet som konfigurerats i denna integration (post-ID: {entry_id}) Ă€r inte lĂ€ngre tillgĂ€ngligt i ditt Tibber-konto. Detta hĂ€nder vanligtvis nĂ€r:\n- Hemmet togs bort frĂ„n ditt Tibber-konto\n- Hemmet flyttades till ett annat Tibber-konto\n- Ă
tkomst till detta hem Ă„terkallades\n\nTa bort denna integrationspost och lĂ€gg till den igen om hemmet fortfarande ska övervakas. För att ta bort denna post, gĂ„ till InstĂ€llningar â Enheter & TjĂ€nster â Tibber-priser och radera {home_name}-konfigurationen."
|
||
}
|
||
},
|
||
"services": {
|
||
"get_price": {
|
||
"name": "HĂ€mta prisdata",
|
||
"description": "HÀmta prisdata för ett specifikt tidsintervall med automatisk routing. Utvecklings- och testservice för price_info_for_range API-funktionen. AnvÀnder automatiskt PRICE_INFO, PRICE_INFO_RANGE eller bÄda baserat pÄ tidsintervallets grÀnser.",
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Entry-ID",
|
||
"description": "Config entry-ID för Tibber-integrationen."
|
||
},
|
||
"start_time": {
|
||
"name": "Starttid",
|
||
"description": "Start för tidsintervallet (inklusivt, tidszonmedveten)."
|
||
},
|
||
"end_time": {
|
||
"name": "Sluttid",
|
||
"description": "Slut för tidsintervallet (exklusivt, tidszonmedveten)."
|
||
}
|
||
}
|
||
},
|
||
"get_apexcharts_yaml": {
|
||
"name": "HĂ€mta ApexCharts Card YAML",
|
||
"description": "â ïž VIKTIGT: Denna service genererar en GRUNDLĂGGANDE EXEMPELKONFIGURATION för ApexCharts Card som en startpunkt. Det Ă€r INTE en komplett lösning för alla ApexCharts-funktioner. Denna integration Ă€r primĂ€rt en DATALEVERANTĂR. Den genererade YAML:en demonstrerar hur man anvĂ€nder `get_chartdata`-servicen för att hĂ€mta prisdata. PĂ„ grund av den segmenterade naturen hos vĂ„r data (olika tidsperioder per serie) och anvĂ€ndningen av Home Assistants service-API istĂ€llet för entitetsattribut Ă€r mĂ„nga avancerade ApexCharts-funktioner (som in_header, vissa transformationer) inte kompatibla eller krĂ€ver manuell anpassning. Du Ă€r vĂ€lkommen att anpassa den genererade YAML:en för dina specifika behov, men förstĂ„ att omfattande ApexCharts-konfigurationsstöd ligger utanför denna integrations omfĂ„ng. Community-bidrag med förbĂ€ttrade konfigurationer uppskattas alltid - om du hittar en bĂ€ttre konfiguration som fungerar, dela den sĂ„ att alla kan dra nytta av den! För direkt dataĂ„tkomst för att bygga dina egna diagram, anvĂ€nd `get_chartdata`-servicen istĂ€llet.",
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Entry-ID",
|
||
"description": "Config entry-ID för Tibber-integrationen."
|
||
},
|
||
"day": {
|
||
"name": "Dag",
|
||
"description": "Vilken dag som ska visualiseras (standard: Glidande fönster). Fasta dagalternativ (IgÄr/Idag/Imorgon) visar 24h-spann utan ytterligare beroenden. Dynamiska alternativ krÀver config-template-card: Glidande fönster visar ett fast 48h-fönster som automatiskt skiftar mellan igÄr+idag och idag+imorgon baserat pÄ datatillgÀnglighet. Glidande fönster (Auto-Zoom) beter sig likadant men zoomar dessutom automatiskt in (2h tillbakablick + ÄterstÄende tid till midnatt, graph_span minskar var 15:e minut)."
|
||
},
|
||
"level_type": {
|
||
"name": "NivÄtyp",
|
||
"description": "VÀlj vilken prisnivÄklassificering som ska visualiseras: 'rating_level' (lÄg/normal/hög baserat pÄ dina konfigurerade tröskelvÀrden) eller 'level' (Tibber API-nivÄer: mycket billigt/billigt/normalt/dyrt/mycket dyrt)."
|
||
},
|
||
"highlight_best_price": {
|
||
"name": "Markera bÀsta prisperioder",
|
||
"description": "LÀgg till ett halvtransparent grönt överlag för att markera de bÀsta prisperioderna i diagrammet. Detta gör det enkelt att visuellt identifiera de optimala tiderna för energiförbrukning."
|
||
}
|
||
}
|
||
},
|
||
"get_chartdata": {
|
||
"name": "HĂ€mta diagramdata",
|
||
"description": "Returnerar prisdata i ett enkelt diagramvÀnligt format som Àr kompatibelt med Tibber Core-integrationens utdatastruktur. Perfekt för anvÀndning med populÀra diagramkort som ha-price-timeline-card, ApexCharts Card, Plotly Graph Card, Mini Graph Card eller det inbyggda History Graph Card. FÀltnamn och datastruktur kan anpassas för att matcha dina specifika diagramkrav.",
|
||
"sections": {
|
||
"general": {
|
||
"name": "AllmÀnt",
|
||
"description": "AllmÀnna instÀllningar för att hÀmta diagramdata."
|
||
},
|
||
"selection": {
|
||
"name": "Urval",
|
||
"description": "VĂ€lj vilken data som ska inkluderas i utdatan."
|
||
},
|
||
"filters": {
|
||
"name": "Filter",
|
||
"description": "Filtrera data baserat pÄ prisnivÄer, betygsnivÄer eller specialperioder."
|
||
},
|
||
"transformation": {
|
||
"name": "Transformera data",
|
||
"description": "Transformera datautdatan för bÀttre diagramkompatibilitet."
|
||
},
|
||
"format": {
|
||
"name": "Format",
|
||
"description": "Anpassa utdataformatet."
|
||
},
|
||
"arrays_of_arrays": {
|
||
"name": "Avancerade utdatainstÀllningar: Array av arrays",
|
||
"description": "InstÀllningar för utdataformat nÀr en array av arrays anvÀnds."
|
||
},
|
||
"arrays_of_objects": {
|
||
"name": "Avancerade utdatainstÀllningar: Array av objekt",
|
||
"description": "InstÀllningar för utdataformat nÀr en array av objekt anvÀnds."
|
||
}
|
||
},
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Entry-ID",
|
||
"description": "Config entry-ID för Tibber-integrationen."
|
||
},
|
||
"day": {
|
||
"name": "Dag",
|
||
"description": "Vilken/vilka dag(ar) att hÀmta priser för. Du kan vÀlja flera dagar. Om inget anges returneras ett glidande 2-dagarsfönster: idag+imorgon (nÀr morgondagens data finns tillgÀnglig) eller igÄr+idag (nÀr morgondagens data Ànnu inte Àr tillgÀnglig). Detta ger kontinuerlig diagramvisning utan luckor."
|
||
},
|
||
"resolution": {
|
||
"name": "Upplösning",
|
||
"description": "Tidsupplösning för returnerad data. Alternativ: 'interval' (standard, 15-minutersintervall, 96 punkter per dag), 'hourly' (timmedelvÀrden, 24 punkter per dag)."
|
||
},
|
||
"output_format": {
|
||
"name": "Utdataformat",
|
||
"description": "Utdataformat för returnerad data. Alternativ: 'array_of_objects' (standard, array av objekt med anpassningsbara fÀltnamn), 'array_of_arrays' (array av [tidstÀmpel, pris]-arrays med avslutande null-punkt för stegdiagram)."
|
||
},
|
||
"array_fields": {
|
||
"name": "Array-fÀlt",
|
||
"description": "Definiera vilka fÀlt som ska inkluderas. AnvÀnd fÀltnamn inom klammerparenteser, separerade med kommatecken. TillgÀngliga fÀlt: start_time, price_per_kwh, level, rating_level, average. FÀlt kommer automatiskt att aktiveras Àven om include_*-alternativ inte Àr instÀllda. LÀmna tomt för standard (endast tidstÀmpel och pris)."
|
||
},
|
||
"subunit_currency": {
|
||
"name": "Underenhetsvaluta",
|
||
"description": "Returnera priser i underenhetsvaluta (cent för EUR, Þre för NOK/SEK) istÀllet för basvalutaenheter. Inaktiverad som standard."
|
||
},
|
||
"round_decimals": {
|
||
"name": "Avrunda decimaler",
|
||
"description": "Antal decimaler att avrunda priser till (0-10). Om inget anges anvÀnds standardprecision (4 decimaler för basvaluta, 2 för underenhetsvaluta)."
|
||
},
|
||
"data_key": {
|
||
"name": "Datanyckel",
|
||
"description": "Anpassat namn för datanyckeln pÄ toppnivÄ i svaret. Standard Àr 'data' om inget anges."
|
||
},
|
||
"include_level": {
|
||
"name": "Inkludera nivÄ",
|
||
"description": "Inkludera Tibbers prisnivÄfÀlt (mycket billigt/billigt/normalt/dyrt/mycket dyrt) i varje datapunkt."
|
||
},
|
||
"include_rating_level": {
|
||
"name": "Inkludera betygsnivÄ",
|
||
"description": "Inkludera det berÀknade betygsnivÄfÀltet (lÄg/normal/hög) baserat pÄ dina konfigurerade tröskelvÀrden i varje datapunkt."
|
||
},
|
||
"include_average": {
|
||
"name": "Inkludera medelvÀrde",
|
||
"description": "Inkludera dagligt medelpris i varje datapunkt för jÀmförelse."
|
||
},
|
||
"level_filter": {
|
||
"name": "NivÄfilter",
|
||
"description": "Filtrera intervaller för att endast inkludera specifika Tibber-prisnivÄer (mycket billigt/billigt/normalt/dyrt/mycket dyrt). Om inget anges inkluderas alla nivÄer."
|
||
},
|
||
"rating_level_filter": {
|
||
"name": "BetygsnivÄfilter",
|
||
"description": "Filtrera intervaller för att endast inkludera specifika betygsnivÄer (lÄg/normal/hög). Om inget anges inkluderas alla betygsnivÄer."
|
||
},
|
||
"period_filter": {
|
||
"name": "Periodfilter",
|
||
"description": "Filtrera intervaller för att endast inkludera de inom BÀsta pris- eller Topppris-perioder. Alternativ: 'best_price' (endast intervaller i BÀsta pris-perioder), 'peak_price' (endast intervaller i Topppris-perioder). Om inget anges inkluderas alla intervaller. Detta anvÀnder förberÀknad perioddata frÄn binÀra sensorer."
|
||
},
|
||
"insert_nulls": {
|
||
"name": "Infoga NULL-vÀrden",
|
||
"description": "Kontrollera infogning av NULL-vÀrden för filtrerad data. 'none' (standard): Inga NULL-vÀrden, endast matchande intervaller. 'segments': LÀgg till NULL-punkter vid segmentgrÀnser för rena luckor i diagram (rekommenderas för stegdiagram). 'all': Infoga NULL för alla tidstÀmplar dÀr filtret inte matchar (anvÀndbart för kontinuerlig tidsserievisualisering)."
|
||
},
|
||
"connect_segments": {
|
||
"name": "Anslut segment",
|
||
"description": "[ENDAST MED 'Infoga NULL-vÀrden'] NÀr aktiverad lÀggs anslutande punkter till vid segmentgrÀnser för att visuellt ansluta olika prisnivÄsegment i stegdiagram. NÀr priset gÄr NER vid en grÀns lÀggs en punkt med det lÀgre priset till i slutet av det aktuella segmentet. NÀr priset gÄr UPP lÀggs en hÄllpunkt till innan luckan. Detta skapar smÀrre visuella övergÄngar mellan segment istÀllet för abrupta luckor."
|
||
},
|
||
"add_trailing_null": {
|
||
"name": "LĂ€gg till avslutande null-punkt",
|
||
"description": "LÀgg till en sista datapunkt med null-vÀrden (förutom tidstÀmpel) i slutet. Vissa diagrambibliotek behöver detta för att förhindra extrapolering/interpolering till vyportens kant nÀr steglinje-rendering anvÀnds. LÀmna inaktiverad om inte ditt diagram krÀver det."
|
||
},
|
||
"start_time_field": {
|
||
"name": "StarttidsfÀltnamn",
|
||
"description": "Anpassat namn för starttidsfÀltet i utdatan. Standard Àr 'start_time' om inget anges."
|
||
},
|
||
"end_time_field": {
|
||
"name": "SluttidsfÀltnamn",
|
||
"description": "Anpassat namn för sluttidsfÀltet i utdatan. Standard Àr 'end_time' om inget anges. AnvÀnds endast med period_filter."
|
||
},
|
||
"price_field": {
|
||
"name": "PrisfÀltnamn",
|
||
"description": "Anpassat namn för prisfÀltet i utdatan. Standard Àr 'price_per_kwh' om inget anges."
|
||
},
|
||
"level_field": {
|
||
"name": "NivÄfÀltnamn",
|
||
"description": "Anpassat namn för nivÄfÀltet i utdatan. Standard Àr 'level' om inget anges. AnvÀnds endast nÀr include_level Àr aktiverad."
|
||
},
|
||
"rating_level_field": {
|
||
"name": "BetygsnivÄfÀltnamn",
|
||
"description": "Anpassat namn för betygsnivÄfÀltet i utdatan. Standard Àr 'rating_level' om inget anges. AnvÀnds endast nÀr include_rating_level Àr aktiverad."
|
||
},
|
||
"average_field": {
|
||
"name": "MedelvÀrdesfÀltnamn",
|
||
"description": "Anpassat namn för medelvÀrdesfÀltet i utdatan. Standard Àr 'average' om inget anges. AnvÀnds endast nÀr include_average Àr aktiverad."
|
||
},
|
||
"metadata": {
|
||
"name": "Metadata",
|
||
"description": "Kontrollera inkludering av metadata i svaret. 'include' (standard): Returnerar bÄde diagramdata och metadata med prisstatistik, valutainfo, Y-axelförslag och tidsintervall. 'only': Returnerar endast metadata utan att bearbeta diagramdata (snabbt, anvÀndbart för dynamisk Y-axelkonfiguration). 'none': Returnerar endast diagramdata utan metadata."
|
||
}
|
||
}
|
||
},
|
||
"refresh_user_data": {
|
||
"name": "Uppdatera anvÀndardata",
|
||
"description": "Tvingar en uppdatering av anvÀndardata (hem, profilinformation) frÄn Tibber API. Detta kan vara anvÀndbart efter att ha gjort Àndringar i ditt Tibber-konto eller vid felsökning av anslutningsproblem.",
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Entry-ID",
|
||
"description": "Config entry-ID för Tibber-integrationen."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"selector": {
|
||
"account_choice": {
|
||
"options": {
|
||
"new_token": "LĂ€gg till ny Tibber-konto API-token"
|
||
}
|
||
},
|
||
"day": {
|
||
"options": {
|
||
"yesterday": "IgÄr",
|
||
"today": "Idag",
|
||
"tomorrow": "Imorgon",
|
||
"rolling_window": "Glidande fönster",
|
||
"rolling_window_autozoom": "Glidande fönster (Auto-Zoom)"
|
||
}
|
||
},
|
||
"resolution": {
|
||
"options": {
|
||
"interval": "Intervall (15 min)",
|
||
"hourly": "Varje timme"
|
||
}
|
||
},
|
||
"output_format": {
|
||
"options": {
|
||
"array_of_objects": "Array av objekt",
|
||
"array_of_arrays": "Array av arrays"
|
||
}
|
||
},
|
||
"level_type": {
|
||
"options": {
|
||
"rating_level": "BetygnivÄ (lÄg/normal/hög)",
|
||
"level": "Tibber-nivÄ (mycket billigt till mycket dyrt)"
|
||
}
|
||
},
|
||
"level_filter": {
|
||
"options": {
|
||
"very_cheap": "Mycket billigt",
|
||
"cheap": "Billigt",
|
||
"normal": "Normalt",
|
||
"expensive": "Dyrt",
|
||
"very_expensive": "Mycket dyrt"
|
||
}
|
||
},
|
||
"rating_level_filter": {
|
||
"options": {
|
||
"low": "LÄg",
|
||
"normal": "Normal",
|
||
"high": "Hög"
|
||
}
|
||
},
|
||
"insert_nulls": {
|
||
"options": {
|
||
"none": "Ingen",
|
||
"segments": "Segment",
|
||
"all": "Alla"
|
||
}
|
||
},
|
||
"period_filter": {
|
||
"options": {
|
||
"best_price": "BĂ€sta prisperioder",
|
||
"peak_price": "Topprisperioder"
|
||
}
|
||
},
|
||
"metadata": {
|
||
"options": {
|
||
"include": "Inkludera (data + metadata)",
|
||
"only": "Endast metadata",
|
||
"none": "Ingen (endast data)"
|
||
}
|
||
},
|
||
"volatility": {
|
||
"options": {
|
||
"low": "LÄg",
|
||
"moderate": "MÄttlig",
|
||
"high": "Hög",
|
||
"very_high": "Mycket hög"
|
||
}
|
||
},
|
||
"current_interval_price_level": {
|
||
"options": {
|
||
"any": "Alla",
|
||
"very_cheap": "Mycket billigt",
|
||
"cheap": "Billigt",
|
||
"normal": "Normalt",
|
||
"expensive": "Dyrt",
|
||
"very_expensive": "Mycket dyrt"
|
||
}
|
||
},
|
||
"currency_display_mode": {
|
||
"options": {
|
||
"base": "Basvaluta (âŹ, kr)",
|
||
"subunit": "Underenhetsvaluta (ct, Ăžre)"
|
||
}
|
||
},
|
||
"average_sensor_display": {
|
||
"options": {
|
||
"median": "Median",
|
||
"mean": "Aritmetiskt medelvÀrde"
|
||
}
|
||
}
|
||
},
|
||
"title": "Tibber Prisinformation & Betyg"
|
||
}
|