diff --git a/homeassistant/components/meteo_lt/weather.py b/homeassistant/components/meteo_lt/weather.py index 902a899dbc3f05..ec48bbf2a12515 100644 --- a/homeassistant/components/meteo_lt/weather.py +++ b/homeassistant/components/meteo_lt/weather.py @@ -139,7 +139,7 @@ async def async_forecast_daily(self) -> list[Forecast] | None: forecasts_by_date[date].append(timestamp) daily_forecasts = [] - for date in sorted(forecasts_by_date.keys())[:5]: + for date in sorted(forecasts_by_date.keys()): day_forecasts = forecasts_by_date[date] if not day_forecasts: continue @@ -186,5 +186,5 @@ async def async_forecast_hourly(self) -> list[Forecast] | None: return None return [ self._convert_forecast_data(forecast_data) - for forecast_data in self.coordinator.data.forecast_timestamps[:24] + for forecast_data in self.coordinator.data.forecast_timestamps ] diff --git a/homeassistant/components/modbus/sensor.py b/homeassistant/components/modbus/sensor.py index 9cc3695a4cfaf1..c1fc97e137734c 100644 --- a/homeassistant/components/modbus/sensor.py +++ b/homeassistant/components/modbus/sensor.py @@ -88,6 +88,8 @@ def __init__( self._attr_device_class = entry.get(CONF_DEVICE_CLASS) if self._precision > 0 or self._scale != int(self._scale): self._value_is_int = False + if self._precision > 0 and self._data_type not in ["string", "custom"]: + self._attr_suggested_display_precision = self._precision async def async_setup_slaves( self, hass: HomeAssistant, slave_count: int, entry: dict[str, Any] diff --git a/homeassistant/components/reolink/manifest.json b/homeassistant/components/reolink/manifest.json index 7fd8566acec5d8..d5e661e42e3d52 100644 --- a/homeassistant/components/reolink/manifest.json +++ b/homeassistant/components/reolink/manifest.json @@ -19,5 +19,5 @@ "iot_class": "local_push", "loggers": ["reolink_aio"], "quality_scale": "platinum", - "requirements": ["reolink-aio==0.16.4"] + "requirements": ["reolink-aio==0.16.5"] } diff --git a/requirements_all.txt b/requirements_all.txt index 3dcc54270a9711..a9a7cb1232bce8 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -2694,7 +2694,7 @@ renault-api==0.5.0 renson-endura-delta==1.7.2 # homeassistant.components.reolink -reolink-aio==0.16.4 +reolink-aio==0.16.5 # homeassistant.components.idteck_prox rfk101py==0.0.1 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 6602be40ec8f6c..29c8152383419c 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -2236,7 +2236,7 @@ renault-api==0.5.0 renson-endura-delta==1.7.2 # homeassistant.components.reolink -reolink-aio==0.16.4 +reolink-aio==0.16.5 # homeassistant.components.rflink rflink==0.0.67 diff --git a/tests/components/meteo_lt/fixtures/forecast.json b/tests/components/meteo_lt/fixtures/forecast.json index d289adb13944ac..fef864b3981a9f 100644 --- a/tests/components/meteo_lt/fixtures/forecast.json +++ b/tests/components/meteo_lt/fixtures/forecast.json @@ -48,6 +48,84 @@ "relativeHumidity": 65, "totalPrecipitation": 0.1, "conditionCode": "cloudy" + }, + { + "forecastTimeUtc": "2025-09-26 10:00:00", + "airTemperature": 15.0, + "feelsLikeTemperature": 15.0, + "windSpeed": 3, + "windGust": 9, + "windDirection": 35, + "cloudCover": 30, + "seaLevelPressure": 1030, + "relativeHumidity": 60, + "totalPrecipitation": 0.2, + "conditionCode": "cloudy" + }, + { + "forecastTimeUtc": "2025-09-27 10:00:00", + "airTemperature": 16.0, + "feelsLikeTemperature": 16.0, + "windSpeed": 4, + "windGust": 10, + "windDirection": 40, + "cloudCover": 35, + "seaLevelPressure": 1029, + "relativeHumidity": 55, + "totalPrecipitation": 0.3, + "conditionCode": "rainy" + }, + { + "forecastTimeUtc": "2025-09-28 10:00:00", + "airTemperature": 17.0, + "feelsLikeTemperature": 17.0, + "windSpeed": 5, + "windGust": 11, + "windDirection": 45, + "cloudCover": 40, + "seaLevelPressure": 1028, + "relativeHumidity": 50, + "totalPrecipitation": 0.4, + "conditionCode": "rainy" + }, + { + "forecastTimeUtc": "2025-09-29 10:00:00", + "airTemperature": 18.0, + "feelsLikeTemperature": 18.0, + "windSpeed": 6, + "windGust": 12, + "windDirection": 50, + "cloudCover": 45, + "seaLevelPressure": 1027, + "relativeHumidity": 45, + "totalPrecipitation": 0.5, + "conditionCode": "rainy" + }, + { + "forecastTimeUtc": "2025-09-30 10:00:00", + "airTemperature": 19.0, + "feelsLikeTemperature": 19.0, + "windSpeed": 7, + "windGust": 13, + "windDirection": 55, + "cloudCover": 50, + "seaLevelPressure": 1026, + "relativeHumidity": 40, + "totalPrecipitation": 0.6, + "conditionCode": "rainy" + }, + { + "forecastTimeUtc": "2025-10-01 10:00:00", + "airTemperature": 20.0, + "feelsLikeTemperature": 20.0, + "windSpeed": 8, + "windGust": 14, + "windDirection": 60, + "cloudCover": 55, + "seaLevelPressure": 1025, + "relativeHumidity": 35, + "totalPrecipitation": 0.7, + "conditionCode": "rainy" } ] } diff --git a/tests/components/meteo_lt/test_weather.py b/tests/components/meteo_lt/test_weather.py index 27a6c549c03737..1a6c0e59a4669f 100644 --- a/tests/components/meteo_lt/test_weather.py +++ b/tests/components/meteo_lt/test_weather.py @@ -34,3 +34,34 @@ async def test_weather_entity( await hass.async_block_till_done() await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id) + + +@pytest.mark.freeze_time("2025-09-25 9:00:00") +async def test_forecast_no_limits( + hass: HomeAssistant, + mock_config_entry: MockConfigEntry, +) -> None: + """Test that forecast returns all available data from API without limits.""" + mock_config_entry.add_to_hass(hass) + await hass.config_entries.async_setup(mock_config_entry.entry_id) + await hass.async_block_till_done() + + result = await hass.services.async_call( + "weather", + "get_forecasts", + {"entity_id": "weather.vilnius", "type": "hourly"}, + blocking=True, + return_response=True, + ) + hourly_forecasts = result["weather.vilnius"]["forecast"] + assert len(hourly_forecasts) == 9 + + result = await hass.services.async_call( + "weather", + "get_forecasts", + {"entity_id": "weather.vilnius", "type": "daily"}, + blocking=True, + return_response=True, + ) + daily_forecasts = result["weather.vilnius"]["forecast"] + assert len(daily_forecasts) == 7