diff --git a/matter_server/server/device_controller.py b/matter_server/server/device_controller.py index 033382a9..c45d60ec 100644 --- a/matter_server/server/device_controller.py +++ b/matter_server/server/device_controller.py @@ -1187,9 +1187,11 @@ def _on_mdns_operational_node_state( # mdns events for matter devices arrive in bursts of (duplicate) messages # so we debounce this as we only use the mdns messages for operational node discovery # and we have other logic in place to determine node aliveness + now = time.time() last_seen = self._node_last_seen.get(node_id, 0) - if node.available and time.time() - last_seen < MAX_NODE_SUBSCRIPTION_CEILING: + if node.available and now - last_seen < 60: return + self._node_last_seen[node_id] = now # we treat UPDATE state changes as ADD if the node is marked as # unavailable to ensure we catch a node being operational