Skip to content

Commit

Permalink
Log error on MQTT config fail
Browse files Browse the repository at this point in the history
  • Loading branch information
azerty9971 committed Jan 28, 2025
1 parent 52d4a63 commit e1dbc6a
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,34 +18,22 @@
)

from ..xt_tuya_iot_mq import (
XTIOTOpenMQ
XTIOTOpenMQ,
XTIOTTuyaMQConfig,
)

from ....util import (
log_stack,
)
from ....const import (
LOGGER # noqa: F401
)

class XTIOTIPCTuyaMQConfig(TuyaMQConfig):
def __init__(self, mqConfigResponse: dict[str, Any] = {}) -> None:
"""Init TuyaMQConfig."""
self.url: str = None
self.client_id: str = None
self.username: str = None
self.password: str = None
self.source_topic: dict = None
self.sink_topic: dict = None
self.expire_time: int = 0
super().__init__(mqConfigResponse)


class XTIOTOpenMQIPC(XTIOTOpenMQ):
def __init__(self, api: TuyaOpenAPI) -> None:
self.mq_config: XTIOTIPCTuyaMQConfig = None
self.mq_config: XTIOTTuyaMQConfig = None
super().__init__(api)

def _get_mqtt_config(self) -> Optional[XTIOTIPCTuyaMQConfig]:
def _get_mqtt_config(self) -> Optional[XTIOTTuyaMQConfig]:
if not self.api.is_connect():
return None
response = self.api.post(
Expand All @@ -64,10 +52,10 @@ def _get_mqtt_config(self) -> Optional[XTIOTIPCTuyaMQConfig]:
)

if response.get("success", False) is False:
log_stack(f"_get_mqtt_config failed: {response}")
LOGGER.warning(f"_get_mqtt_config failed: {response}", stack_info=True)
return None

return XTIOTIPCTuyaMQConfig(response)
return XTIOTTuyaMQConfig(response)

def _on_connect(self, mqttc: mqtt.Client, user_data: Any, flags, rc):
if rc == 0:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,62 @@
from __future__ import annotations

from typing import Optional
from typing import Optional, Any
import uuid

from tuya_iot import (
TuyaOpenMQ,
TuyaOpenAPI,
)
from tuya_iot.openmq import (
TuyaMQConfig,
TO_C_CUSTOM_MQTT_CONFIG_API,
AuthType,
TO_C_SMART_HOME_MQTT_CONFIG_API,
)

from ...const import (
LOGGER, # noqa: F401
)

class XTIOTTuyaMQConfig(TuyaMQConfig):
def __init__(self, mqConfigResponse: dict[str, Any] = {}) -> None:
"""Init TuyaMQConfig."""
self.url: str = None
self.client_id: str = None
self.username: str = None
self.password: str = None
self.source_topic: dict = None
self.sink_topic: dict = None
self.expire_time: int = 0
super().__init__(mqConfigResponse)

class XTIOTOpenMQ(TuyaOpenMQ):
def __init__(self, api: TuyaOpenAPI) -> None:
super().__init__(api)

def _get_mqtt_config(self) -> Optional[TuyaMQConfig]:
def _get_mqtt_config(self) -> Optional[XTIOTTuyaMQConfig]:
if not self.api.is_connect():
return None
return super()._get_mqtt_config()
response = self.api.post(
TO_C_CUSTOM_MQTT_CONFIG_API
if (self.api.auth_type == AuthType.CUSTOM)
else TO_C_SMART_HOME_MQTT_CONFIG_API,
{
"uid": self.api.token_info.uid,
"link_id": f"tuya-iot-app-sdk-python.{uuid.uuid1()}",
"link_type": "mqtt",
"topics": "ipc",
"msg_encrypted_version": "2.0"
if (self.api.auth_type == AuthType.CUSTOM)
else "1.0",
},
)

if response.get("success", False) is False:
LOGGER.debug(f"_get_mqtt_config failed: {response}", stack_info=True)
return None

return XTIOTTuyaMQConfig(response)

"""def _on_connect(self, mqttc: mqtt.Client, user_data: Any, flags, rc):
if rc == 0:
Expand Down

0 comments on commit e1dbc6a

Please sign in to comment.