Files
heating-mpc-ha/custom_components/heating_mpc/strings.json
T
buzeraandClaude Opus 5.5 d2bd398a0f Show learning activity with Learning Progress and Last Sample sensors
During a first test the Status entity only said "learning" for the
first half hour (the radiator-lag wait after a restart), and the
attributes explaining why were hard to find. Add two sensors:

- Learning Progress (%): for the least trained room, the mean of its
  three readiness requirements (200 samples, 30 ON, 30 OFF), each capped
  at 100 %; 100 % means ready. Attributes show the counts.
- Last Sample: an enum of the last poll's learning outcome, with English
  and Romanian state names (e.g. "Waiting for radiators to settle"). Its
  history shows when learning happens.

Polls blocked by missing shared inputs now report waiting_for_inputs.
Readiness thresholds move to const.py.

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

125 lines
6.4 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 — room inputs",
"description": "Choose thermostat, read-only relay and room sensors. This integration NEVER commands the heater.",
"data": {
"climate_entity": "Existing Generic Thermostat",
"heater_entity": "Physical heating switch (read-only)",
"room_entities": "Individual room temperature sensors",
"room_max_age_minutes": "Maximum room sensor report age (minutes)",
"weather_max_age_minutes": "Maximum weather sensor report age (minutes)",
"room_stale_use_last_value": "Keep using the last value of a room sensor that stopped reporting"
},
"data_description": {
"room_stale_use_last_value": "Off: a room sensor older than its report-age limit is left out and the other rooms are re-weighted. On: its last value is still used, for up to 24 hours without a report; for sensors that report only when the value changes. Unavailable or invalid room sensors are always left out. Nothing pauses unless no room is usable."
}
},
"weather": {
"title": "Primary weather sources",
"description": "Choose as many sensors per metric as needed and arrange them in priority order. If the preferred source is unavailable, the next one is used automatically. Outdoor temperature is mandatory; wind and cloud coverage are diagnostic-only in this version.",
"data": {
"outside_temperature_sources": "Outdoor temperature sources (ordered: preferred first)",
"outside_wind_sources": "Wind speed sources (optional)",
"outside_clouds_sources": "Cloud coverage sources (optional)"
}
},
"weather_extra": {
"title": "Additional weather sources",
"description": "Additional weather inputs are optional and used only for comparison/diagnostics in v0.2; they do not yet change MPC predictions.",
"data": {
"outside_humidity_sources": "Outdoor humidity sources (optional)",
"outside_feelslike_sources": "Feels-like temperature sources (optional)",
"outside_pressure_sources": "Atmospheric pressure sources (optional)",
"outside_visibility_sources": "Visibility sources (optional)",
"outside_rain_sources": "Rain sources (optional)",
"outside_snow_sources": "Snow sources (optional)"
}
},
"weights": {
"title": "Room priorities",
"description": "Each room has a relative comfort weight between 0.1 and 10; sensor entity is shown by each field."
}
},
"error": {
"invalid_rooms": "Select 1–12 distinct room sensors.",
"invalid_weather": "Select at least one outdoor temperature sensor, distinct from room sensors."
},
"abort": {
"already_configured": "Heating MPC is already configured."
}
},
"options": {
"step": {
"init": {
"title": "Heating MPC options",
"description": "Change room sensors and controller settings. This integration remains shadow-only.",
"data": {
"climate_entity": "Existing Generic Thermostat",
"heater_entity": "Physical heating switch (read-only)",
"room_entities": "Individual room temperature sensors",
"horizon_minutes": "Prediction horizon (minutes)",
"minimum_on_minutes": "Minimum ON time (minutes)",
"minimum_off_minutes": "Minimum OFF time (minutes)",
"switching_cost": "Switching cost",
"heating_cost": "Heating runtime cost",
"comfort_band": "Comfort tolerance (°C)",
"room_max_age_minutes": "Maximum room sensor report age (minutes)",
"weather_max_age_minutes": "Maximum weather sensor report age (minutes)",
"room_stale_use_last_value": "Keep using the last value of a room sensor that stopped reporting"
},
"data_description": {
"room_stale_use_last_value": "Off: a room sensor older than its report-age limit is left out and the other rooms are re-weighted. On: its last value is still used, for up to 24 hours without a report; for sensors that report only when the value changes. Unavailable or invalid room sensors are always left out. Nothing pauses unless no room is usable."
}
},
"weather": {
"title": "Weather source priority",
"description": "Choose as many sensors per metric as needed and arrange them in priority order. If the preferred source is unavailable, the next one is used automatically. Outdoor temperature is mandatory; wind and cloud coverage are diagnostic-only in this version.",
"data": {
"outside_temperature_sources": "Outdoor temperature sources (ordered: preferred first)",
"outside_wind_sources": "Wind speed sources (optional)",
"outside_clouds_sources": "Cloud coverage sources (optional)"
}
},
"weather_extra": {
"title": "Additional weather sensors",
"description": "Additional weather inputs are optional and used only for comparison/diagnostics in v0.2; they do not yet change MPC predictions.",
"data": {
"outside_humidity_sources": "Outdoor humidity sources (optional)",
"outside_feelslike_sources": "Feels-like temperature sources (optional)",
"outside_pressure_sources": "Atmospheric pressure sources (optional)",
"outside_visibility_sources": "Visibility sources (optional)",
"outside_rain_sources": "Rain sources (optional)",
"outside_snow_sources": "Snow sources (optional)"
}
},
"weights": {
"title": "Room priorities",
"description": "Weights determine relative comfort importance, not physics coefficients."
}
},
"error": {
"invalid_rooms": "Select 1–12 distinct room sensors.",
"invalid_weather": "Select at least one outdoor temperature sensor, distinct from room sensors."
}
},
"entity": {
"sensor": {
"last_sample": {
"state": {
"waiting_for_inputs": "Waiting for inputs",
"first_sample": "First sample",
"learned": "Learned",
"partly_rejected": "Partly rejected (outlier)",
"interval_out_of_range": "Irregular interval",
"relay_changed": "Relay switched",
"outside_source_changed": "Outdoor source changed",
"lag_uncertain": "Waiting for radiators to settle"
}
}
}
}
}