tiandeyu / mijia_curtain

Duya cover Mijia Platform integration with Homeassistant
94 stars 20 forks source link

core核心2023.12.3下日志不停报错,希望大佬能改进下,另外还有无法生成Id就无法分配房间,也希望大佬一并解决下,麻烦了。 #18

Open jarod360 opened 10 months ago

jarod360 commented 10 months ago

报错日志取下: 此错误来自自定义集成。

Logger: custom_components.mijia_curtain.cover Source: custom_components/mijia_curtain/cover.py:489 Integration: mijia_curtain (documentation) First occurred: 00:04:44 (1 occurrences) Last logged: 00:04:44

Get property target-position exception Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 193, in send data, addr = s.recvfrom(4096) ^^^^^^^^^^^^^^^^ TimeoutError: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/config/custom_components/mijia_curtain/cover.py", line 489, in get_property results = self.miotDevice.get_property_by(siid, piid) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/miio/click_common.py", line 184, in _wrap return func(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/miio/miot_device.py", line 117, in get_property_by return self.send( ^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/miio/device.py", line 107, in send return self._protocol.send( ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 233, in send return self.send( ^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 161, in send self.send_handshake() File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 74, in send_handshake raise DeviceException("Unable to discover the device %s" % self.ip) miio.exceptions.DeviceException: Unable to discover the device 192.168.0.90

jarod360 commented 10 months ago

或者大佬推荐个比较稳定的老版本homeassistant用也可以

jarod360 commented 10 months ago

不会改代码,只好让chatgpt修改,经过测试,经过如下修改可以生成unique_id,设备可以生成ID,注册为设备。修改代码如下,老大抽空加上吧。 import re # 添加导入re模块

... (您现有代码的其余部分)

class MijiaCurtain(CoverEntity): def init(self, name, host, token, model): self._name = name self._current_position = 0 self._target_position = 0 self._action = 0

    # 生成唯一ID
    self._unique_id = self.generate_unique_id(host)

    # 其余的初始化代码保持不变...

def generate_unique_id(self, host):
    # 从IP地址中去掉 . 并生成唯一ID
    ip_numbers = re.sub(r'\.', '', host)  # 去掉 .

    # 生成唯一ID
    unique_id = f"smartj{ip_numbers}"
    return unique_id

@property
def unique_id(self):
    return self._unique_id

# 其余的代码保持不变...
tiandeyu commented 10 months ago

感谢支持,已经添加 ChatGPT牛皮,但是用ip不是很合适,改用了UUID

jarod360 commented 10 months ago

嗯,我是不知道,那个合适,测试了能用就没管。