diff --git a/homeassistant/components/openweathermap/coordinator.py b/homeassistant/components/openweathermap/coordinator.py
index f7672a1290bc5153463b3a8c8b287de766405bd3..3ef0eda0c8fbd71611803718c11d85d42d8dbfcd 100644
--- a/homeassistant/components/openweathermap/coordinator.py
+++ b/homeassistant/components/openweathermap/coordinator.py
@@ -192,12 +192,13 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
     @staticmethod
     def _get_precipitation_value(precipitation):
         """Get precipitation value from weather data."""
-        if "all" in precipitation:
-            return round(precipitation["all"], 2)
-        if "3h" in precipitation:
-            return round(precipitation["3h"], 2)
-        if "1h" in precipitation:
-            return round(precipitation["1h"], 2)
+        if precipitation is not None:
+            if "all" in precipitation:
+                return round(precipitation["all"], 2)
+            if "3h" in precipitation:
+                return round(precipitation["3h"], 2)
+            if "1h" in precipitation:
+                return round(precipitation["1h"], 2)
         return 0
 
     def _get_condition(self, weather_code, timestamp=None):
diff --git a/homeassistant/components/openweathermap/manifest.json b/homeassistant/components/openweathermap/manifest.json
index 199e750ad4f3fa9b5f2d181e26b995a8cc509a2a..14313a5a77e846a4bc8bf7ebb1b2483612d1742e 100644
--- a/homeassistant/components/openweathermap/manifest.json
+++ b/homeassistant/components/openweathermap/manifest.json
@@ -6,5 +6,5 @@
   "documentation": "https://www.home-assistant.io/integrations/openweathermap",
   "iot_class": "cloud_polling",
   "loggers": ["pyopenweathermap"],
-  "requirements": ["pyopenweathermap==0.1.1"]
+  "requirements": ["pyopenweathermap==0.2.1"]
 }
diff --git a/requirements_all.txt b/requirements_all.txt
index 1585b35f3dda0b1a5362256b7a7d4b3f7ae2313b..1fa221b60fe56f7a67e624575650239c2f07462a 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -2113,7 +2113,7 @@ pyombi==0.1.10
 pyopenuv==2023.02.0
 
 # homeassistant.components.openweathermap
-pyopenweathermap==0.1.1
+pyopenweathermap==0.2.1
 
 # homeassistant.components.opnsense
 pyopnsense==0.4.0
diff --git a/requirements_test_all.txt b/requirements_test_all.txt
index de1c7c0b915cc3384415a3a5a6fa228665fabc38..e5b2ea0b9731fb2ceb8cfef2620b74f16730ab46 100644
--- a/requirements_test_all.txt
+++ b/requirements_test_all.txt
@@ -1700,7 +1700,7 @@ pyoctoprintapi==0.1.12
 pyopenuv==2023.02.0
 
 # homeassistant.components.openweathermap
-pyopenweathermap==0.1.1
+pyopenweathermap==0.2.1
 
 # homeassistant.components.opnsense
 pyopnsense==0.4.0
diff --git a/tests/components/openweathermap/test_config_flow.py b/tests/components/openweathermap/test_config_flow.py
index f18aa432e2f1e12f099decbdebd88d2ec103f27d..aec343607544a837d5a78087c9d3d4e76070eaa5 100644
--- a/tests/components/openweathermap/test_config_flow.py
+++ b/tests/components/openweathermap/test_config_flow.py
@@ -7,6 +7,7 @@ from pyopenweathermap import (
     CurrentWeather,
     DailyTemperature,
     DailyWeatherForecast,
+    MinutelyWeatherForecast,
     RequestError,
     WeatherCondition,
     WeatherReport,
@@ -105,7 +106,12 @@ def _create_mocked_owm_factory(is_valid: bool):
         rain=0,
         snow=0,
     )
-    weather_report = WeatherReport(current_weather, [], [daily_weather_forecast])
+    minutely_weather_forecast = MinutelyWeatherForecast(
+        date_time=1728672360, precipitation=2.54
+    )
+    weather_report = WeatherReport(
+        current_weather, [minutely_weather_forecast], [], [daily_weather_forecast]
+    )
 
     mocked_owm_client = MagicMock()
     mocked_owm_client.validate_key = AsyncMock(return_value=is_valid)