Просмотр исходного кода

Device: when stopping or pausing, force non-persistent connection

This is done for the side-effect that underlying library will call close()
on the socket when setting persistent connection to false, in the hope that
it might solve some reconfiguration problems when devices are not responding.

Issue #1804, #1013, Discussion #2354 among others.
Jason Rumney 1 год назад
Родитель
Сommit
3fafb5fee2
1 измененных файлов с 6 добавлено и 0 удалено
  1. 6 0
      custom_components/tuya_local/device.py

+ 6 - 0
custom_components/tuya_local/device.py

@@ -178,6 +178,9 @@ class TuyaLocalDevice(object):
         self._children.clear()
         self._force_dps.clear()
         if self._refresh_task:
+            self._api.set_socketPersistent(False)
+            if self._api.parent:
+                self._api.parent.set_socketPersistent(False)
             await self._refresh_task
         _LOGGER.debug("Monitor loop for %s stopped", self.name)
         self._refresh_task = None
@@ -251,6 +254,9 @@ class TuyaLocalDevice(object):
 
     def pause(self):
         self._temporary_poll = True
+        self._api.setSocketPersistent(false)
+        if self._api.parent:
+            self._api.parent.setSocketPersistent(false)
 
     def resume(self):
         self._temporary_poll = False