Closed superwangmeng closed 1 year ago
。。。重启HA,改代码都失效了,目前不知道是否重启空调室内机或者重新配对云控二代是否有用。
跟你一个问题,实体显示不可用,把实体删了。。现在找不回来了。。尴尬
。。。重启HA,改代码都失效了,目前不知道是否重启空调室内机或者重新配对云控二代是否有用。
兄弟你云控版本是不是也是V13
我感觉好像是更新完云控版本后出现的问题
兄弟我莫名其妙又好了,host那行删掉好像稳定一点。
我遇到的报错是扫描不到设备: 错误代码如下: File "/usr/local/lib/python3.10/threading.py", line 1016, in _bootstrap_inner self.run() File "/usr/local/lib/python3.10/threading.py", line 953, in run self._target(*self._args, **self._kwargs) File "/config/custom_components/gree2/climate.py", line 214, in socket_listen self.stop_listen() File "/config/custom_components/gree2/climate.py", line 139, in stop_listen self._thread.join() File "/usr/local/lib/python3.10/threading.py", line 1093, in join raise RuntimeError("cannot join current thread")
我是格力云控一代,也遇到这问题几次,看起来问题发生的契机是重载配置文件的时候,之前是使用定期备份的 ha core 来恢复。
刚试了一下
我感觉是删除 host 那行好的
update 一下,最近在配置,频繁重启 HA, 又遇到实体失效的问题。
在本地写了简单的 python socket 广播脚本,发现实体失效一般是,重启后,gree2 在初始化时会发送 {"t": "scan"} 的广播包到
尝试把 default 的 BROADCAST_ADDRESS
地址从 <broadcast>
改成 255.255.255.255
成功率会高一些
但整体感觉还是云控的响应问题,所以最好空调断电重启一下。。
最新版主要就是解决重启实体失效的问题,但是由于要等云控主动连接fake server,重启后还是需要等一段时间实体才会生效
我之前观察测试了几次,发现重启后实体失效的情况一般都是发生在重启后,往局域网广播时,收不到云控的返回。还是感觉问题在云控上面,所以最佳的办法还是先尝试重启云控(重启空调电路)
我加了广播的重试,观察过了,重置后的第一次连接跟断开云控的外网连接、也就是断开跟格力服务器的通信之后,广播是有回应的,重启空调电路倒是没试过,估计也可行。但是这个版本主要做的就是在内网伪造格力的云服务器,这样不需要重启或重置也可以一直使用的,问题就是格力app没法再控制空调了
HA使用一段时间之后,突然实体就失效,不重启HA的话,实体不会报错就是操作无效,重启HA之后显示实体不可用,但是稍微重新修改一下configuration.yaml之后又可以了(实际没修改,就是删了代码重新加一遍)。
我的代码如下: climate:
我之前还以为是没设置IP地址造成的失联,后来设置了IP地址问题依旧,出现的时间目前还不确定,已经赶上三次了。
唯一看到的HA日志报错日志如下,还请大佬看看: 此错误来自自定义集成。
Logger: root Source: custom_components/gree2/climate.py:178 Integration: gree2 (documentation, issues) First occurred: 02:06:04 (1 occurrences) Last logged: 02:06:04
Uncaught thread exception Traceback (most recent call last): File "/usr/local/lib/python3.10/threading.py", line 1016, in _bootstrap_inner self.run() File "/usr/local/lib/python3.10/threading.py", line 953, in run self._target(*self._args, **self._kwargs) File "/config/custom_components/gree2/climate.py", line 178, in socket_listen _LOGGER.info('socket received from {}:{}'.format(address, data.decode('utf-8'))) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xde in position 93: invalid continuation byte