This function allows an entity to subscribe for data from the devices specified in the bind operation. It
        creates a thread with an event loop to manager the tasks created in start_subscribe_worker.

        Args:
            devices_to_bind (list): an array of devices to listen to

def subscribe(self, devices_to_bind=[]):
        """ This function allows an entity to subscribe for data from the devices specified in the bind operation. It
        creates a thread with an event loop to manager the tasks created in start_subscribe_worker.

        Args:
            devices_to_bind (list): an array of devices to listen to
        """
        if self.entity_api_key == "":
            return {'status': 'failure', 'response': 'No API key found in request'}
        self.bind(devices_to_bind)
        loop = asyncio.new_event_loop()
        t1 = threading.Thread(target=self.start_subscribe_worker, args=(loop,))
        t1.daemon = True
        t1.start()