Open jarod360 opened 10 months ago
或者大佬推荐个比较稳定的老版本homeassistant用也可以
不会改代码,只好让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
# 其余的代码保持不变...
感谢支持,已经添加 ChatGPT牛皮,但是用ip不是很合适,改用了UUID
嗯,我是不知道,那个合适,测试了能用就没管。
报错日志取下: 此错误来自自定义集成。
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