diff --git a/custom_components/tuya_local_ble/const.py b/custom_components/tuya_local_ble/const.py
index 2b13c6e..89bd7fc 100644
--- a/custom_components/tuya_local_ble/const.py
+++ b/custom_components/tuya_local_ble/const.py
@@ -10,6 +10,10 @@ DEVICE_METADATA_UUIDS: Final = "uuids"
 DEVICE_DEF_MANUFACTURER: Final = "Tuya"
 SET_DISCONNECTED_DELAY = 10 * 60
 
+# How often to wake a sleepy device (see SLEEPY_CATEGORIES) to refresh its
+# state and battery. Between polls the link stays down so the device can sleep.
+LOCK_POLL_INTERVAL_SECONDS = 60 * 60
+
 CONF_UUID: Final = "uuid"
 CONF_LOCAL_KEY: Final = "local_key"
 CONF_CATEGORY: Final = "category"
diff --git a/custom_components/tuya_local_ble/devices.py b/custom_components/tuya_local_ble/devices.py
index 1b0424e..891f768 100644
--- a/custom_components/tuya_local_ble/devices.py
+++ b/custom_components/tuya_local_ble/devices.py
@@ -1,6 +1,7 @@
 """The Tuya BLE integration."""
 from __future__ import annotations
 from dataclasses import dataclass
+from datetime import timedelta
 
 import logging
 from homeassistant.const import CONF_ADDRESS, CONF_DEVICE_ID
@@ -30,6 +31,7 @@ from .const import (
     DEVICE_DEF_MANUFACTURER,
     DOMAIN,
     FINGERBOT_BUTTON_EVENT,
+    LOCK_POLL_INTERVAL_SECONDS,
     SET_DISCONNECTED_DELAY,
 )
 
@@ -96,6 +98,13 @@ class TuyaBLECoordinator(DataUpdateCoordinator[None]):
             hass,
             _LOGGER,
             name=DOMAIN,
+            # Sleepy devices don't push over a held link; poll them occasionally
+            # to refresh state/battery. Others keep pushing and need no polling.
+            update_interval=(
+                timedelta(seconds=LOCK_POLL_INTERVAL_SECONDS)
+                if device.is_sleepy
+                else None
+            ),
         )
         self._device = device
         self._disconnected: bool = True
@@ -143,6 +152,11 @@ class TuyaBLECoordinator(DataUpdateCoordinator[None]):
     @callback
     def _async_handle_disconnect(self) -> None:
         """Trigger the callbacks for disconnected."""
+        if self._device.is_sleepy:
+            # Sleepy devices drop the link between commands by design, so a
+            # disconnect is not an outage. Keep the entity available and let the
+            # periodic refresh below detect a device that is genuinely gone.
+            return
         if self._unsub_disconnect is None:
             delay: float = SET_DISCONNECTED_DELAY
             self._unsub_disconnect = async_call_later(
@@ -150,11 +164,26 @@ class TuyaBLECoordinator(DataUpdateCoordinator[None]):
             )
 
     async def _async_update_data(self):
-        """Fetch data from API endpoint.
+        """Periodically wake a sleepy device to refresh its state and battery.
 
-        This is the place to pre-process the data to lookup tables
-        so entities can quickly look up their data.
+        Non-sleepy devices push updates over a held connection, so nothing to do
+        for them here. For sleepy devices this establishes an on-demand
+        connection (which makes the device report its datapoints) and then lets
+        it drop back to sleep.
         """
+        if not self._device.is_sleepy:
+            return
+        try:
+            await self._device.update()
+        except Exception as err:  # noqa: BLE001 - keep the coordinator alive
+            _LOGGER.debug(
+                "%s: periodic refresh failed: %s",
+                self._device.address,
+                err,
+            )
+            if not self._disconnected:
+                self._disconnected = True
+                self.async_update_listeners()
 
 
 @dataclass
diff --git a/custom_components/tuya_local_ble/tuya_ble/const.py b/custom_components/tuya_local_ble/tuya_ble/const.py
index c73f268..9f855cc 100644
--- a/custom_components/tuya_local_ble/tuya_ble/const.py
+++ b/custom_components/tuya_local_ble/tuya_ble/const.py
@@ -21,6 +21,12 @@ MANUFACTURER_DATA_ID = 0x07D0
 
 RESPONSE_WAIT_TIMEOUT = 60
 
+# Product categories whose devices deliberately drop the BLE connection to
+# sleep (e.g. battery locks). For these the integration connects on demand
+# instead of holding the link open and reconnecting after every drop, which
+# would otherwise keep the device's radio awake around the clock.
+SLEEPY_CATEGORIES = frozenset({"jtmspro"})
+
 
 class TuyaBLECode(Enum):
     FUN_SENDER_DEVICE_INFO = 0x0000
diff --git a/custom_components/tuya_local_ble/tuya_ble/tuya_ble.py b/custom_components/tuya_local_ble/tuya_ble/tuya_ble.py
index 55bd644..c54782f 100644
--- a/custom_components/tuya_local_ble/tuya_ble/tuya_ble.py
+++ b/custom_components/tuya_local_ble/tuya_ble/tuya_ble.py
@@ -31,6 +31,7 @@ from .const import (
     MANUFACTURER_DATA_ID,
     RESPONSE_WAIT_TIMEOUT,
     SERVICE_UUID,
+    SLEEPY_CATEGORIES,
     TuyaBLECode,
     TuyaBLEDataPointType,
 )
@@ -381,6 +382,15 @@ class TuyaBLEDevice:
         else:
             return ""
 
+    @property
+    def is_sleepy(self) -> bool:
+        """Whether the device drops the BLE link on its own to save power.
+
+        Such devices (e.g. battery locks) are handled on demand: the link is
+        not held open or eagerly reconnected, so their radio can deep-sleep.
+        """
+        return self.category in SLEEPY_CATEGORIES
+
     @property
     def device_id(self) -> str:
         if self._device_info is not None:
@@ -531,6 +541,18 @@ class TuyaBLEDevice:
             self.rssi,
         )
         if was_paired:
+            if self.is_sleepy:
+                # Battery locks and similar devices drop the link on their own
+                # to sleep. Reconnecting immediately would keep their radio
+                # awake around the clock, so let it sleep; the connection is
+                # re-established on demand for commands and periodic refresh.
+                _LOGGER.debug(
+                    "%s: sleepy device disconnected, staying disconnected"
+                    " (on-demand mode); RSSI: %s",
+                    self.address,
+                    self.rssi,
+                )
+                return
             _LOGGER.debug(
                 "%s: Scheduling reconnect; RSSI: %s",
                 self.address,
