В логах вот такое
Source: custom_components/skykettle/kettle_connection.py:140
Integration: SkyKettle ([documentation](https://github.com/ClusterM/skykettle-ha/blob/master/README.md), [issues](https://github.com/ClusterM/skykettle-ha/issues))
First occurred: 10:36:17 PM (1 occurrences)
Last logged: 10:36:17 PM
Can't terminate, error (AttributeError): 'NoneType' object has no attribute 'isalive'```
```Logger: custom_components.skykettle.kettle_connection
Source: custom_components/skykettle/kettle_connection.py:278
Integration: SkyKettle ([documentation](https://github.com/ClusterM/skykettle-ha/blob/master/README.md), [issues](https://github.com/ClusterM/skykettle-ha/issues))
First occurred: 10:36:28 PM (2 occurrences)
Last logged: 10:48:52 PM
Can't set mode to (4, 85) for 30 seconds, stop trying```
```Logger: custom_components.skykettle.kettle_connection
Source: custom_components/skykettle/kettle_connection.py:291
Integration: SkyKettle ([documentation](https://github.com/ClusterM/skykettle-ha/blob/master/README.md), [issues](https://github.com/ClusterM/skykettle-ha/issues))
First occurred: 10:33:51 PM (41 occurrences)
Last logged: 10:51:39 PM
Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 112, in get_status r = await self.command(SkyKettle.COMMAND_GET_STATUS) File "/config/custom_components/skykettle/kettle_connection.py", line 81, in command raise IOError("Disconnected") OSError: Disconnected During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 112, in get_status r = await self.command(SkyKettle.COMMAND_GET_STATUS) File "/config/custom_components/skykettle/kettle_connection.py", line 81, in command raise IOError("Disconnected") OSError: Disconnected During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 112, in get_status r = await self.command(SkyKettle.COMMAND_GET_STATUS) File "/config/custom_components/skykettle/kettle_connection.py", line 81, in command raise IOError("Disconnected") OSError: Disconnected During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes
Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 178, in update await self._connect_if_need() File "/config/custom_components/skykettle/kettle_connection.py", line 158, in _connect_if_need raise ex File "/config/custom_components/skykettle/kettle_connection.py", line 154, in _connect_if_need await self._connect() File "/config/custom_components/skykettle/kettle_connection.py", line 105, in _connect await self._child.expect(r"Connection successful.*?\[LE\]> ", async_=True) File "/usr/local/lib/python3.9/site-packages/pexpect/_async.py", line 28, in expect_async return expecter.timeout(e) File "/usr/local/lib/python3.9/site-packages/pexpect/expect.py", line 144, in timeout raise exc pexpect.exceptions.TIMEOUT: <pexpect.pty_spawn.spawn object at 0x7f77fdc580> command: /usr/bin/gatttool args: ['/usr/bin/gatttool', '-I', '-t', 'random', '-b', 'D3:A5:D5:66:8C:75'] buffer (last 100 chars): b'91mError: \x1b[0mconnect to D3:A5:D5:66:8C:75: Function not implemented (38)\r\n[D3:A5:D5:66:8C:75][LE]> ' before (last 100 chars): b'91mError: \x1b[0mconnect to D3:A5:D5:66:8C:75: Function not implemented (38)\r\n[D3:A5:D5:66:8C:75][LE]> ' after: <class 'pexpect.exceptions.TIMEOUT'> match: None match_index: None exitstatus: None flag_eof: False pid: 443 child_fd: 68 closed: False timeout: 1.5 delimiter: <class 'pexpect.exceptions.EOF'> logfile: None logfile_read: None logfile_send: None maxread: 2000 ignorecase: False searchwindowsize: None delaybeforesend: 0.05 delayafterclose: 0.1 delayafterterminate: 0.1 searcher: searcher_re: 0: re.compile(b'Connection successful.*?\\[LE\\]> ') During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes
Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes
Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 178, in update await self._connect_if_need() File "/config/custom_components/skykettle/kettle_connection.py", line 158, in _connect_if_need raise ex File "/config/custom_components/skykettle/kettle_connection.py", line 154, in _connect_if_need await self._connect() File "/config/custom_components/skykettle/kettle_connection.py", line 105, in _connect await self._child.expect(r"Connection successful.*?\[LE\]> ", async_=True) File "/usr/local/lib/python3.9/site-packages/pexpect/_async.py", line 28, in expect_async return expecter.timeout(e) File "/usr/local/lib/python3.9/site-packages/pexpect/expect.py", line 144, in timeout raise exc pexpect.exceptions.TIMEOUT: <pexpect.pty_spawn.spawn object at 0x7f785af610> command: /usr/bin/gatttool args: ['/usr/bin/gatttool', '-I', '-t', 'random', '-b', 'D3:A5:D5:66:8C:75'] buffer (last 100 chars): b'91mError: \x1b[0mconnect to D3:A5:D5:66:8C:75: Function not implemented (38)\r\n[D3:A5:D5:66:8C:75][LE]> ' before (last 100 chars): b'91mError: \x1b[0mconnect to D3:A5:D5:66:8C:75: Function not implemented (38)\r\n[D3:A5:D5:66:8C:75][LE]> ' after: <class 'pexpect.exceptions.TIMEOUT'> match: None match_index: None exitstatus: None flag_eof: False pid: 457 child_fd: 30 closed: False timeout: 1.5 delimiter: <class 'pexpect.exceptions.EOF'> logfile: None logfile_read: None logfile_send: None maxread: 2000 ignorecase: False searchwindowsize: None delaybeforesend: 0.05 delayafterclose: 0.1 delayafterterminate: 0.1 searcher: searcher_re: 0: re.compile(b'Connection successful.*?\\[LE\\]> ') During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes
Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 178, in update await self._connect_if_need() File "/config/custom_components/skykettle/kettle_connection.py", line 158, in _connect_if_need raise ex File "/config/custom_components/skykettle/kettle_connection.py", line 154, in _connect_if_need await self._connect() File "/config/custom_components/skykettle/kettle_connection.py", line 105, in _connect await self._child.expect(r"Connection successful.*?\[LE\]> ", async_=True) File "/usr/local/lib/python3.9/site-packages/pexpect/_async.py", line 28, in expect_async return expecter.timeout(e) File "/usr/local/lib/python3.9/site-packages/pexpect/expect.py", line 144, in timeout raise exc pexpect.exceptions.TIMEOUT: <pexpect.pty_spawn.spawn object at 0x7f78fa4a90> command: /usr/bin/gatttool args: ['/usr/bin/gatttool', '-I', '-t', 'random', '-b', 'D3:A5:D5:66:8C:75'] buffer (last 100 chars): b'91mError: \x1b[0mconnect to D3:A5:D5:66:8C:75: Function not implemented (38)\r\n[D3:A5:D5:66:8C:75][LE]> ' before (last 100 chars): b'91mError: \x1b[0mconnect to D3:A5:D5:66:8C:75: Function not implemented (38)\r\n[D3:A5:D5:66:8C:75][LE]> ' after: <class 'pexpect.exceptions.TIMEOUT'> match: None match_index: None exitstatus: None flag_eof: False pid: 461 child_fd: 40 closed: False timeout: 1.5 delimiter: <class 'pexpect.exceptions.EOF'> logfile: None logfile_read: None logfile_send: None maxread: 2000 ignorecase: False searchwindowsize: None delaybeforesend: 0.05 delayafterclose: 0.1 delayafterterminate: 0.1 searcher: searcher_re: 0: re.compile(b'Connection successful.*?\\[LE\\]> ') During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/skykettle/kettle_connection.py", line 183, in update self._status = await self.get_status() File "/config/custom_components/skykettle/skykettle.py", line 113, in get_status status = SkyKettle.Status(*unpack("<BxBx?BHBxxxxBxx", r)) struct.error: unpack requires a buffer of 16 bytes```
bug need more info