diff --git a/homeassistant/components/openweathermap/__init__.py b/homeassistant/components/openweathermap/__init__.py
index fa51b91dc6d0e0698a9b9be2d931d7d8217574a4..40ddf0ff37e57e1a43ffcd2e773644e4c068ffd0 100644
--- a/homeassistant/components/openweathermap/__init__.py
+++ b/homeassistant/components/openweathermap/__init__.py
@@ -11,7 +11,7 @@ from homeassistant.config_entries import ConfigEntry
 from homeassistant.const import CONF_API_KEY, CONF_LANGUAGE, CONF_MODE, CONF_NAME
 from homeassistant.core import HomeAssistant
 
-from .const import CONFIG_FLOW_VERSION, OWM_MODE_V25, PLATFORMS
+from .const import CONFIG_FLOW_VERSION, DEFAULT_OWM_MODE, OWM_MODES, PLATFORMS
 from .coordinator import WeatherUpdateCoordinator
 from .repairs import async_create_issue, async_delete_issue
 from .utils import build_data_and_options
@@ -39,7 +39,7 @@ async def async_setup_entry(
     language = entry.options[CONF_LANGUAGE]
     mode = entry.options[CONF_MODE]
 
-    if mode == OWM_MODE_V25:
+    if mode not in OWM_MODES:
         async_create_issue(hass, entry.entry_id)
     else:
         async_delete_issue(hass, entry.entry_id)
@@ -70,7 +70,7 @@ async def async_migrate_entry(
     _LOGGER.debug("Migrating OpenWeatherMap entry from version %s", version)
 
     if version < 5:
-        combined_data = {**data, **options, CONF_MODE: OWM_MODE_V25}
+        combined_data = {**data, **options, CONF_MODE: DEFAULT_OWM_MODE}
         new_data, new_options = build_data_and_options(combined_data)
         config_entries.async_update_entry(
             entry,
diff --git a/homeassistant/components/openweathermap/const.py b/homeassistant/components/openweathermap/const.py
index de317709f5b028c968657fa48ffdc7bbc01ca467..fbd2cb1aee2527b775c270e7a5ca9e12e370764d 100644
--- a/homeassistant/components/openweathermap/const.py
+++ b/homeassistant/components/openweathermap/const.py
@@ -62,10 +62,8 @@ FORECAST_MODE_ONECALL_DAILY = "onecall_daily"
 OWM_MODE_FREE_CURRENT = "current"
 OWM_MODE_FREE_FORECAST = "forecast"
 OWM_MODE_V30 = "v3.0"
-OWM_MODE_V25 = "v2.5"
 OWM_MODES = [
     OWM_MODE_V30,
-    OWM_MODE_V25,
     OWM_MODE_FREE_CURRENT,
     OWM_MODE_FREE_FORECAST,
 ]
diff --git a/homeassistant/components/openweathermap/manifest.json b/homeassistant/components/openweathermap/manifest.json
index 14313a5a77e846a4bc8bf7ebb1b2483612d1742e..88510aaae8ca77284d07853c0da34d00913c2d38 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.2.1"]
+  "requirements": ["pyopenweathermap==0.2.2"]
 }
diff --git a/homeassistant/components/openweathermap/weather.py b/homeassistant/components/openweathermap/weather.py
index a6ad163e1c8e94c4134c12aeb96ed2d1ae5d5374..12d883c871aced44a8a6c8163f87df1274d86236 100644
--- a/homeassistant/components/openweathermap/weather.py
+++ b/homeassistant/components/openweathermap/weather.py
@@ -42,7 +42,6 @@ from .const import (
     DOMAIN,
     MANUFACTURER,
     OWM_MODE_FREE_FORECAST,
-    OWM_MODE_V25,
     OWM_MODE_V30,
 )
 from .coordinator import WeatherUpdateCoordinator
@@ -106,7 +105,7 @@ class OpenWeatherMapWeather(SingleCoordinatorWeatherEntity[WeatherUpdateCoordina
         )
         self.mode = mode
 
-        if mode in (OWM_MODE_V30, OWM_MODE_V25):
+        if mode == OWM_MODE_V30:
             self._attr_supported_features = (
                 WeatherEntityFeature.FORECAST_DAILY
                 | WeatherEntityFeature.FORECAST_HOURLY
diff --git a/requirements_all.txt b/requirements_all.txt
index f2da895114f82ce3c7b5b99a683eacd60b2f4c38..8946b355e03ff2e15ff982eb356529d199228f48 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -2179,7 +2179,7 @@ pyombi==0.1.10
 pyopenuv==2023.02.0
 
 # homeassistant.components.openweathermap
-pyopenweathermap==0.2.1
+pyopenweathermap==0.2.2
 
 # homeassistant.components.opnsense
 pyopnsense==0.4.0
diff --git a/requirements_test_all.txt b/requirements_test_all.txt
index c328478338d3343c1a0b1161b78ea3e95a8ad9d9..e0f26ae9e982140526cdb02fe5831a7d7ca57994 100644
--- a/requirements_test_all.txt
+++ b/requirements_test_all.txt
@@ -1778,7 +1778,7 @@ pyoctoprintapi==0.1.12
 pyopenuv==2023.02.0
 
 # homeassistant.components.openweathermap
-pyopenweathermap==0.2.1
+pyopenweathermap==0.2.2
 
 # homeassistant.components.opnsense
 pyopnsense==0.4.0
diff --git a/tests/components/openweathermap/test_weather.py b/tests/components/openweathermap/test_weather.py
index 5d3565d6ca99804ab2a139830206a369ffba025c..e9817e739ace17ae5b59232dc21596ddab32d1ab 100644
--- a/tests/components/openweathermap/test_weather.py
+++ b/tests/components/openweathermap/test_weather.py
@@ -6,7 +6,7 @@ from syrupy import SnapshotAssertion
 from homeassistant.components.openweathermap.const import (
     DEFAULT_LANGUAGE,
     DOMAIN,
-    OWM_MODE_V25,
+    OWM_MODE_FREE_CURRENT,
     OWM_MODE_V30,
 )
 from homeassistant.components.openweathermap.weather import SERVICE_GET_MINUTE_FORECAST
@@ -52,9 +52,9 @@ def mock_config_entry(mode: str) -> MockConfigEntry:
 
 
 @pytest.fixture
-def mock_config_entry_v25() -> MockConfigEntry:
-    """Create a mock OpenWeatherMap v2.5 config entry."""
-    return mock_config_entry(OWM_MODE_V25)
+def mock_config_entry_free_current() -> MockConfigEntry:
+    """Create a mock OpenWeatherMap FREE_CURRENT config entry."""
+    return mock_config_entry(OWM_MODE_FREE_CURRENT)
 
 
 @pytest.fixture
@@ -97,15 +97,15 @@ async def test_get_minute_forecast(
 
 
 @patch(
-    "pyopenweathermap.client.onecall_client.OWMOneCallClient.get_weather",
+    "pyopenweathermap.client.free_client.OWMFreeClient.get_weather",
     AsyncMock(return_value=static_weather_report),
 )
 async def test_mode_fail(
     hass: HomeAssistant,
-    mock_config_entry_v25: MockConfigEntry,
+    mock_config_entry_free_current: MockConfigEntry,
 ) -> None:
     """Test that Minute forecasting fails when mode is not v3.0."""
-    await setup_mock_config_entry(hass, mock_config_entry_v25)
+    await setup_mock_config_entry(hass, mock_config_entry_free_current)
 
     # Expect a ServiceValidationError when mode is not OWM_MODE_V30
     with pytest.raises(