def connection(self): """ Lazy initialization of the connection object """ if self._connection: return self._connection elif self.address: adapter = pygatt.backends.GATTToolBackend() adapter.start(False) self._connection = adapter.connect(self.address, address_type='random') self.sense = MorseSense(self._connection, self.sensor_state) self.sense.start() return self._connection else: return None