mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-03-29 21:03:40 +00:00
Extends trend sensors from 3-level (rising/stable/falling) to 5-level scale (strongly_rising/rising/stable/falling/strongly_falling) for finer granularity. Changes: - Add PRICE_TREND_MAPPING with integer values (-2, -1, 0, +1, +2) matching PRICE_LEVEL_MAPPING pattern for consistent automation comparisons - Add configurable thresholds for strongly_rising (default: 6%) and strongly_falling (default: -6%) independent from base thresholds - Update calculate_price_trend() to return 3-tuple: (trend_state, diff_pct, trend_value) - Add trend_value attribute to all trend sensors for numeric comparisons - Update sensor entity descriptions with 5-level options - Add validation with cross-checks (strongly_rising > rising, etc.) - Update icons: chevron-double-up/down for strong trends, trending-up/down for normal Files changed: - const.py: PRICE_TREND_* constants, PRICE_TREND_MAPPING, config constants - utils/price.py: Extended calculate_price_trend() signature and return value - sensor/calculators/trend.py: Pass new thresholds, handle 3-tuple return - sensor/definitions.py: 5-level options for all 9 trend sensors - sensor/core.py: 5-level icon mapping - entity_utils/icons.py: 5-level trend icons - config_flow_handlers/: validators, schemas, options_flow for new settings - translations/*.json: Labels and error messages (en, de, nb, sv, nl) - tests/test_percentage_calculations.py: Updated for 3-tuple return Impact: Users get more nuanced trend information for automation decisions. New trend_value attribute enables numeric comparisons (e.g., > 0 for any rise). Existing automations using "rising"/"falling"/"stable" continue to work.
1198 lines
71 KiB
JSON
1198 lines
71 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 kraftigt, stiger, är stabila, faller eller faller kraftigt.**",
|
||
"data": {
|
||
"price_trend_threshold_rising": "Stigande tröskel",
|
||
"price_trend_threshold_strongly_rising": "Kraftigt stigande tröskel",
|
||
"price_trend_threshold_falling": "Fallande tröskel",
|
||
"price_trend_threshold_strongly_falling": "Kraftigt 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: 3 betyder att genomsnittet är minst 3% högre → priserna kommer att stiga. Typiska värden: 3-10%. Standard: 3%",
|
||
"price_trend_threshold_strongly_rising": "Procentandel som genomsnittet av de nästa N timmarna måste vara över det aktuella priset för att kvalificera som 'kraftigt stigande' trend. Måste vara högre än stigande tröskel. Typiska värden: 6-20%. Standard: 6%",
|
||
"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: -3 betyder att genomsnittet är minst 3% lägre → priserna kommer att falla. Typiska värden: -3 till -10%. Standard: -3%",
|
||
"price_trend_threshold_strongly_falling": "Procentandel (negativ) som genomsnittet av de nästa N timmarna måste vara under det aktuella priset för att kvalificera som 'kraftigt fallande' trend. Måste vara lägre (mer negativ) än fallande tröskel. Typiska värden: -6 till -20%. Standard: -6%"
|
||
},
|
||
"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%",
|
||
"invalid_price_trend_strongly_rising": "Kraftigt stigande trendtröskel måste vara mellan 2% och 100%",
|
||
"invalid_price_trend_strongly_falling": "Kraftigt fallande trendtröskel måste vara mellan -100% och -2%",
|
||
"invalid_trend_strongly_rising_less_than_rising": "Kraftigt stigande-tröskel måste vara högre än stigande-tröskel",
|
||
"invalid_trend_strongly_falling_greater_than_falling": "Kraftigt fallande-tröskel måste vara lägre (mer negativ) än fallande-tröskel"
|
||
},
|
||
"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": {
|
||
"strongly_rising": "Kraftigt stigande",
|
||
"rising": "Stigande",
|
||
"stable": "Stabil",
|
||
"falling": "Fallande",
|
||
"strongly_falling": "Kraftigt fallande"
|
||
}
|
||
},
|
||
"price_trend_2h": {
|
||
"name": "Pristrend (2h)",
|
||
"state": {
|
||
"strongly_rising": "Kraftigt stigande",
|
||
"rising": "Stigande",
|
||
"stable": "Stabil",
|
||
"falling": "Fallande",
|
||
"strongly_falling": "Kraftigt fallande"
|
||
}
|
||
},
|
||
"price_trend_3h": {
|
||
"name": "Pristrend (3h)",
|
||
"state": {
|
||
"strongly_rising": "Kraftigt stigande",
|
||
"rising": "Stigande",
|
||
"stable": "Stabil",
|
||
"falling": "Fallande",
|
||
"strongly_falling": "Kraftigt fallande"
|
||
}
|
||
},
|
||
"price_trend_4h": {
|
||
"name": "Pristrend (4h)",
|
||
"state": {
|
||
"strongly_rising": "Kraftigt stigande",
|
||
"rising": "Stigande",
|
||
"stable": "Stabil",
|
||
"falling": "Fallande",
|
||
"strongly_falling": "Kraftigt fallande"
|
||
}
|
||
},
|
||
"price_trend_5h": {
|
||
"name": "Pristrend (5h)",
|
||
"state": {
|
||
"strongly_rising": "Kraftigt stigande",
|
||
"rising": "Stigande",
|
||
"stable": "Stabil",
|
||
"falling": "Fallande",
|
||
"strongly_falling": "Kraftigt fallande"
|
||
}
|
||
},
|
||
"price_trend_6h": {
|
||
"name": "Pristrend (6h)",
|
||
"state": {
|
||
"strongly_rising": "Kraftigt stigande",
|
||
"rising": "Stigande",
|
||
"stable": "Stabil",
|
||
"falling": "Fallande",
|
||
"strongly_falling": "Kraftigt fallande"
|
||
}
|
||
},
|
||
"price_trend_8h": {
|
||
"name": "Pristrend (8h)",
|
||
"state": {
|
||
"strongly_rising": "Kraftigt stigande",
|
||
"rising": "Stigande",
|
||
"stable": "Stabil",
|
||
"falling": "Fallande",
|
||
"strongly_falling": "Kraftigt fallande"
|
||
}
|
||
},
|
||
"price_trend_12h": {
|
||
"name": "Pristrend (12h)",
|
||
"state": {
|
||
"strongly_rising": "Kraftigt stigande",
|
||
"rising": "Stigande",
|
||
"stable": "Stabil",
|
||
"falling": "Fallande",
|
||
"strongly_falling": "Kraftigt fallande"
|
||
}
|
||
},
|
||
"current_price_trend": {
|
||
"name": "Aktuell pristrend",
|
||
"state": {
|
||
"strongly_rising": "Kraftigt stigande",
|
||
"rising": "Stigande",
|
||
"stable": "Stabil",
|
||
"falling": "Fallande",
|
||
"strongly_falling": "Kraftigt fallande"
|
||
}
|
||
},
|
||
"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"
|
||
}
|