Files
heating-mpc-ha/custom_components/heating_mpc/translations/ro.json
T
buzeraandClaude Opus 5.5 00e70c612b Model electrical heat sources (UPS, gaming PC) per zone
Electrical equipment heats its room, and a gaming session can add
hundreds of watts, which the 3-parameter model attributed to the boiler
or the bias term.

heat_sources.py adds heat sources as config subentries ("Add heat
source"): an active-power sensor (W/kW; VA and % rejected), the zone,
the share that becomes heat, an automatic baseline (20th percentile of
24 h, so the persistent UPS load is not double counted with the bias
term) or a manual one, an optional "included in" parent (the UPS total
minus a separately measured PC, one level deep) and a first-order
thermal response time. The heat during each interval is the power held
from its start, like the radiator lag. After startup or an outage a
source's response must run two time constants before it counts as
settled.

zone_model.py layers each zone: the base model is kept unchanged as the
fallback and comparison, and an extended FeatureLearner adds "internal"
(kW above baseline after the response) and neighbour coupling for
adjacent zones. It learns only intervals where all its inputs are
known, and is used for forecasts once as trained as the base. The
optimizer accepts a multi-zone step model; forecasts let extra power
fade to baseline with a configurable half-life (default 30 min).

On a synthetic office with thermostat cycling and gaming sessions the
extended model recovers the electrical, boiler and loss coefficients
within 10 %. Status lists each source's power, effective power,
baseline, variable and responding heat; models show the extended
coefficients with confidence. Saved models gain optional zone_models
and heat_sources keys.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 02:39:18 +02:00

250 lines
14 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"title": "Heating MPC",
"config": {
"step": {
"user": {
"title": "Heating MPC — configurare camere",
"description": "Selectează termostatul, releul de monitorizat și senzorii camerelor. Integrarea NU comandă centrala.",
"data": {
"climate_entity": "Termostatul Generic Thermostat existent",
"heater_entity": "Releul fizic (numai citire)",
"room_entities": "Senzorii individuali din camere",
"room_max_age_minutes": "Vârsta maximă a raportării senzorilor interiori (minute)",
"weather_max_age_minutes": "Vârsta maximă a raportării senzorilor meteo (minute)",
"room_stale_use_last_value": "Folosește în continuare ultima valoare a unui senzor de cameră care nu mai raportează"
},
"data_description": {
"room_stale_use_last_value": "Dezactivat: un senzor de cameră mai vechi decât limita de raportare este ignorat, iar ponderile celorlalte camere sunt recalculate. Activat: ultima lui valoare este folosită în continuare, cel mult 24 de ore fără raportare; pentru senzorii care raportează doar la schimbarea valorii. Senzorii de cameră indisponibili sau invalizi sunt mereu ignorați. Nimic nu se oprește decât dacă nicio cameră nu poate fi folosită."
}
},
"weather": {
"title": "Surse meteo principale",
"description": "Alege câți senzori dorești pentru fiecare variabilă și ordonează-i după prioritate. Când prima sursă este indisponibilă, integrarea încearcă automat următoarea. Temperatura exterioară este obligatorie; vântul și nebulozitatea sunt acum doar diagnostice.",
"data": {
"outside_temperature_sources": "Senzori temperatură exterioară (prioritatea: primul selectat)",
"outside_wind_sources": "Senzori viteză vânt (opțional)",
"outside_clouds_sources": "Senzori nebulozitate (opțional)"
}
},
"weather_extra": {
"title": "Surse meteo suplimentare",
"description": "Datele suplimentare sunt opționale și doar pentru afișare și comparație în v0.2, nu intră încă în optimizarea MPC.",
"data": {
"outside_humidity_sources": "Senzori umiditate exterioară (opțional)",
"outside_feelslike_sources": "Senzori temperatură resimțită (opțional)",
"outside_pressure_sources": "Senzori presiune atmosferică (opțional)",
"outside_visibility_sources": "Senzori vizibilitate (opțional)",
"outside_rain_sources": "Senzori precipitații ploaie (opțional)",
"outside_snow_sources": "Senzori precipitații ninsoare (opțional)"
}
},
"weights": {
"title": "Ponderile camerelor",
"description": "Fiecare senzor ales devine o zonă proprie, cu această pondere de confort. Ulterior poți grupa senzorii unei camere într-o singură zonă cu Adaugă zonă sau modificând o zonă."
}
},
"error": {
"invalid_rooms": "Selectează 1–12 senzori diferiți.",
"invalid_weather": "Alege cel puțin un senzor de temperatură exterioară, diferit de senzorii camerelor."
},
"abort": {
"already_configured": "Heating MPC este deja configurat."
}
},
"options": {
"step": {
"init": {
"title": "Configurare Heating MPC",
"description": "Modifică senzorii, ponderile și optimizatorul. Rămâne activ doar modul de observație.",
"data": {
"climate_entity": "Termostatul Generic Thermostat existent",
"heater_entity": "Releul fizic (numai citire)",
"horizon_minutes": "Orizontul predicției (minute)",
"minimum_on_minutes": "Durată minimă ON (minute)",
"minimum_off_minutes": "Durată minimă OFF (minute)",
"switching_cost": "Penalizare comutări",
"heating_cost": "Penalizare durată încălzire",
"comfort_band": "Toleranță confort (°C)",
"room_max_age_minutes": "Vârsta maximă a raportării senzorilor interiori (minute)",
"weather_max_age_minutes": "Vârsta maximă a raportării senzorilor meteo (minute)",
"room_stale_use_last_value": "Folosește în continuare ultima valoare a unui senzor de cameră care nu mai raportează",
"internal_heat_half_life_minutes": "Căldură electrică suplimentară: timp de înjumătățire în prognoză (minute)"
},
"data_description": {
"room_stale_use_last_value": "Dezactivat: un senzor de cameră mai vechi decât limita de raportare este ignorat, iar ponderile celorlalte camere sunt recalculate. Activat: ultima lui valoare este folosită în continuare, cel mult 24 de ore fără raportare; pentru senzorii care raportează doar la schimbarea valorii. Senzorii de cameră indisponibili sau invalizi sunt mereu ignorați. Nimic nu se oprește decât dacă nicio cameră nu poate fi folosită.",
"internal_heat_half_life_minutes": "Prognozele presupun că puterea peste consumul de bază scade cu acest timp de înjumătățire, de exemplu la finalul unei sesiuni de jocuri. 0 presupune că se oprește acum."
}
},
"weather": {
"title": "Prioritatea surselor meteo",
"description": "Alege câți senzori dorești pentru fiecare variabilă și ordonează-i după prioritate. Când prima sursă este indisponibilă, integrarea încearcă automat următoarea. Temperatura exterioară este obligatorie; vântul și nebulozitatea sunt acum doar diagnostice.",
"data": {
"outside_temperature_sources": "Senzori temperatură exterioară (prioritatea: primul selectat)",
"outside_wind_sources": "Senzori viteză vânt (opțional)",
"outside_clouds_sources": "Senzori nebulozitate (opțional)"
}
},
"weather_extra": {
"title": "Senzori meteo suplimentari",
"description": "Datele suplimentare sunt opționale și doar pentru afișare și comparație în v0.2, nu intră încă în optimizarea MPC.",
"data": {
"outside_humidity_sources": "Senzori umiditate exterioară (opțional)",
"outside_feelslike_sources": "Senzori temperatură resimțită (opțional)",
"outside_pressure_sources": "Senzori presiune atmosferică (opțional)",
"outside_visibility_sources": "Senzori vizibilitate (opțional)",
"outside_rain_sources": "Senzori precipitații ploaie (opțional)",
"outside_snow_sources": "Senzori precipitații ninsoare (opțional)"
}
}
},
"error": {
"invalid_weather": "Alege cel puțin un senzor de temperatură exterioară, diferit de senzorii camerelor."
}
},
"entity": {
"sensor": {
"last_sample": {
"state": {
"waiting_for_inputs": "Așteaptă datele de intrare",
"first_sample": "Prima măsurătoare",
"sensors_changed": "Senzorii zonei s-au schimbat",
"learned": "Învățat",
"partly_rejected": "Respins parțial (valoare aberantă)",
"interval_out_of_range": "Interval neregulat",
"relay_changed": "Releul a comutat",
"outside_source_changed": "Sursa exterioară s-a schimbat",
"lag_uncertain": "Așteaptă stabilizarea caloriferelor"
}
}
}
},
"config_subentries": {
"zone": {
"entry_type": "Zonă",
"initiate_flow": {
"user": "Adaugă zonă",
"reconfigure": "Modifică zona"
},
"step": {
"user": {
"title": "Zonă termică",
"description": "O cameră sau o zonă a apartamentului. Ponderile senzorilor combină mai mulți senzori din aceeași cameră; ponderea de confort spune cât de importantă este zona pentru MPC. Niciuna nu modifică proprietățile termice învățate ale zonei.",
"data": {
"name": "Nume",
"sensors": "Senzori de temperatură",
"comfort_weight": "Pondere de confort",
"target_offset": "Abatere de la țintă (°C)",
"neighbors": "Zone învecinate (schimb de căldură)"
},
"data_description": {
"comfort_weight": "Importanța relativă pentru MPC (0,1–10).",
"target_offset": "Se adaugă la temperatura țintă a termostatului pentru această zonă.",
"neighbors": "Zonele cu care această zonă face schimb de căldură, de exemplu printr-un perete sau o ușă deschisă. Coeficientul este învățat doar dacă datele îl susțin."
}
},
"sensor_weights": {
"title": "Ponderile senzorilor",
"description": "Cât contează fiecare senzor în temperatura zonei (0,1–10)."
},
"reconfigure": {
"title": "Zonă termică",
"description": "O cameră sau o zonă a apartamentului. Ponderile senzorilor combină mai mulți senzori din aceeași cameră; ponderea de confort spune cât de importantă este zona pentru MPC. Niciuna nu modifică proprietățile termice învățate ale zonei.",
"data": {
"name": "Nume",
"sensors": "Senzori de temperatură",
"comfort_weight": "Pondere de confort",
"target_offset": "Abatere de la țintă (°C)",
"neighbors": "Zone învecinate (schimb de căldură)"
},
"data_description": {
"comfort_weight": "Importanța relativă pentru MPC (0,1–10).",
"target_offset": "Se adaugă la temperatura țintă a termostatului pentru această zonă.",
"neighbors": "Zonele cu care această zonă face schimb de căldură, de exemplu printr-un perete sau o ușă deschisă. Coeficientul este învățat doar dacă datele îl susțin."
}
}
},
"error": {
"zone_name_required": "Introdu un nume.",
"zone_sensors": "Alege între 1 și 6 senzori diferiți.",
"sensor_in_other_zone": "Un senzor ales aparține deja altei zone.",
"sensor_is_weather_source": "Un senzor ales este folosit ca sursă de temperatură exterioară.",
"too_many_zones": "Sunt permise cel mult 12 zone."
},
"abort": {
"reconfigure_successful": "Zona a fost actualizată."
}
},
"heat_source": {
"entry_type": "Sursă de căldură",
"initiate_flow": {
"user": "Adaugă sursă de căldură",
"reconfigure": "Modifică sursa de căldură"
},
"step": {
"user": {
"title": "Sursă electrică de căldură",
"description": "Echipamente a căror putere electrică ajunge căldură într-o zonă, de exemplu un UPS cu calculatoare. Se modelează doar variația peste un consum de bază persistent: partea constantă face deja parte din comportamentul învățat al zonei. Folosește putere activă (W sau kW), nu VA sau procent de încărcare.",
"data": {
"name": "Nume",
"sensor": "Senzor de putere activă",
"zone": "Zonă",
"heat_fraction": "Partea din putere care devine căldură în zonă",
"baseline_mode": "Consum de bază",
"baseline_w": "Consum de bază manual (W)",
"included_in": "Inclusă deja în măsurătoarea pentru",
"response_minutes": "Timp de răspuns termic (minute)",
"enabled": "Activă"
},
"data_description": {
"heat_fraction": "1,0 când echipamentul este în această zonă. Micșorează valoarea dacă o parte din căldură ajunge în altă parte, de exemplu pe o ventilație.",
"baseline_mode": "Automat folosește partea de jos a ultimelor 24 de ore (consumul persistent).",
"included_in": "Alege UPS-ul sau contorul a cărui citire conține deja acest dispozitiv, ca puterea să nu fie numărată de două ori.",
"response_minutes": "Cât de repede simte zona o schimbare de putere: aerul, mobila și echipamentele au nevoie de timp să se încălzească."
}
},
"reconfigure": {
"title": "Sursă electrică de căldură",
"description": "Echipamente a căror putere electrică ajunge căldură într-o zonă, de exemplu un UPS cu calculatoare. Se modelează doar variația peste un consum de bază persistent: partea constantă face deja parte din comportamentul învățat al zonei. Folosește putere activă (W sau kW), nu VA sau procent de încărcare.",
"data": {
"name": "Nume",
"sensor": "Senzor de putere activă",
"zone": "Zonă",
"heat_fraction": "Partea din putere care devine căldură în zonă",
"baseline_mode": "Consum de bază",
"baseline_w": "Consum de bază manual (W)",
"included_in": "Inclusă deja în măsurătoarea pentru",
"response_minutes": "Timp de răspuns termic (minute)",
"enabled": "Activă"
},
"data_description": {
"heat_fraction": "1,0 când echipamentul este în această zonă. Micșorează valoarea dacă o parte din căldură ajunge în altă parte, de exemplu pe o ventilație.",
"baseline_mode": "Automat folosește partea de jos a ultimelor 24 de ore (consumul persistent).",
"included_in": "Alege UPS-ul sau contorul a cărui citire conține deja acest dispozitiv, ca puterea să nu fie numărată de două ori.",
"response_minutes": "Cât de repede simte zona o schimbare de putere: aerul, mobila și echipamentele au nevoie de timp să se încălzească."
}
}
},
"error": {
"source_name_required": "Introdu un nume.",
"sensor_in_other_source": "Acest senzor de putere este folosit deja de altă sursă.",
"invalid_parent_source": "Sursa părinte trebuie să existe și să nu fie ea însăși inclusă în alta.",
"source_has_children": "Alte surse sunt incluse în aceasta, deci nu poate fi inclusă în alta.",
"baseline_required": "Introdu consumul de bază manual în W.",
"too_many_sources": "Sunt permise cel mult 16 surse de căldură."
},
"abort": {
"reconfigure_successful": "Sursa de căldură a fost actualizată.",
"no_zones": "Adaugă mai întâi o zonă."
}
}
},
"selector": {
"baseline_mode": {
"options": {
"auto": "Automat (minimul ultimelor 24 de ore)",
"manual": "Valoare manuală"
}
}
}
}