def __init__(self): self._connection_event_callbacks_lock = lock_factory.build_rlock() self._connection_event_callbacks = [] self._lock = lock_factory.build_rlock() self._status_condition = Condition(self._lock) self._status = ClientStatus.INITIALIZED
def __init__(self, cloud_client, device_uuid, **kwargs): self.__cloud_client = cloud_client self._state_lock = lock_factory.build_rlock() self.__event_handlers_lock = lock_factory.build_rlock() self.__event_handlers = [] self.uuid = device_uuid self._channels = kwargs.get('channels', []) # Information about device self.name = kwargs.get('devName') self.type = kwargs.get('deviceType') self.fwversion = kwargs.get('fmwareVersion') self.hwversion = kwargs.get('hdwareVersion') self.online = kwargs.get('onlineStatus') == 1 self._abilities = None
def __init__(self, cloud_credentials, discovery_interval, auto_reconnect): self._cloud_creds = cloud_credentials self._http_client = MerossHttpClient(cloud_credentials=self._cloud_creds) self._devices_lock = lock_factory.build_rlock() self._devices = dict() self._event_callbacks_lock = lock_factory.build_rlock() self._event_callbacks = [] # Instantiate the mqtt cloud client self._cloud_client = MerossCloudClient(cloud_credentials=self._cloud_creds, push_message_callback=self._dispatch_push_notification, auto_reconnect=auto_reconnect) self._cloud_client.connection_status.register_connection_event_callback(callback=self._fire_event) self._device_discoverer = None self._stop_discovery = Event() self._device_discovery_done = Event() self._discovery_interval = discovery_interval
def __init__( self, cloud_credentials, # type: MerossCloudCreds push_message_callback=None, # type: callable auto_reconnect=True, # type: bool **kwords): self.connection_status = ConnectionStatusManager() self._cloud_creds = cloud_credentials self._auto_reconnect = auto_reconnect self._pending_response_messages = dict() self._pending_responses_lock = lock_factory.build_rlock() self._push_message_callback = push_message_callback self._subscription_count = AtomicCounter(0) if "domain" in kwords: self._domain = kwords['domain'] else: self._domain = "iot.meross.com" # Lookup port and certificate for MQTT server self._port = kwords.get('port', MerossCloudClient._DEFAULT_PORT) self._ca_cert = kwords.get('ca_cert', None) self._generate_client_and_app_id() # Password is calculated as the MD5 of USERID concatenated with KEY md5_hash = md5() clearpwd = "%s%s" % (self._cloud_creds.user_id, self._cloud_creds.key) md5_hash.update(clearpwd.encode("utf8")) hashed_password = md5_hash.hexdigest() # Start the mqtt client self._mqtt_client = mqtt.Client( client_id=self._client_id, protocol=mqtt.MQTTv311 ) # ex. app-id -> app:08d4c9f99da40203ebc798a76512ec14 self._mqtt_client.on_connect = self._on_connect self._mqtt_client.on_message = self._on_message self._mqtt_client.on_disconnect = self._on_disconnect self._mqtt_client.on_subscribe = self._on_subscribe # Avoid login if user_id is None if self._cloud_creds.user_id is not None: self._mqtt_client.username_pw_set( username=self._cloud_creds.user_id, password=hashed_password) self._mqtt_client.tls_set(ca_certs=self._ca_cert, certfile=None, keyfile=None, cert_reqs=ssl.CERT_REQUIRED, tls_version=ssl.PROTOCOL_TLS, ciphers=None)
def __init__(self, cloud_client, device_uuid, **kwords): super(GenericHub, self).__init__(cloud_client, device_uuid, **kwords) self._subdev_lock = lock_factory.build_rlock() self._state = {} self._sub_devices = {}
def __init__(self, initialValue): self._lock = lock_factory.build_rlock() self._val = initialValue