dyson_pure_link.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:WeatherStation 作者: UBayouski 项目源码 文件源码
def connect_device(self):
        """
        Connects to device using provided connection arguments

        Returns: True/False depending on the result of connection
        """
        if not self.config:
            self.parse_config()

        self.client = mqtt.Client(clean_session=True, protocol=mqtt.MQTTv311, userdata=self)
        self.client.username_pw_set(self.serial_number, self._hashed_password())
        self.client.on_connect = self.on_connect
        self.client.on_disconnect = self.on_disconnect
        self.client.on_message = self.on_message
        self.client.connect(self.ip_address, port=self.port_number)
        self.client.loop_start()

        try:
            if self.connected.get(timeout=self.connectivity_timeout):
                self._request_state()

                try:
                    self.state_data = self.state_data_available.get(timeout=5)
                    self.sensor_data = self.sensor_data_available.get(timeout=5)

                    # Return True in case of successful connect and data retrieval
                    return True
                except Empty:
                    self.errors.append(DataRetrieveError())
        except Empty:
            self.errors.append(ConnectionError(99))

        # If any issue occurred return False
        self.client = None
        return False
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号