ClusterM / skykettle-ha

Redmond SkyKettle integration for Home Assistant
GNU General Public License v3.0
94 stars 16 forks source link

Не подключается к RK-M171S #19

Closed Nemiroff closed 2 years ago

Nemiroff commented 2 years ago

Pairing происходит успешно, но устройство не доступно. в логах:


2022-07-09 17:58:38 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Writing command 6e, data: [7e 7b c9 62 50 46 00 00]
2022-07-09 17:58:40 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Disconnected
2022-07-09 17:58:40 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Terminated
2022-07-09 17:58:40 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Timeout, retry #2
2022-07-09 17:58:40 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Updating
2022-07-09 17:58:40 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Starting "gatttool"...
2022-07-09 17:58:41 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] "gatttool" started
2022-07-09 17:58:41 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Attempting to connect...
2022-07-09 17:58:41 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Connected to the Kettle
2022-07-09 17:58:41 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Writing command ff, data: [6a b9 3c d1 aa 3d 59 72]
2022-07-09 17:58:41 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Received: 01
2022-07-09 17:58:41 DEBUG (MainThread) [custom_components.skykettle.skykettle] Auth: ok=True
2022-07-09 17:58:41 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Auth ok
2022-07-09 17:58:41 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Writing command 6e, data: [81 7b c9 62 50 46 00 00]
2022-07-09 17:58:43 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Disconnected
2022-07-09 17:58:43 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Terminated
2022-07-09 17:58:43 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Timeout, retry #3
2022-07-09 17:58:43 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Updating
2022-07-09 17:58:43 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Starting "gatttool"...
2022-07-09 17:58:44 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] "gatttool" started
2022-07-09 17:58:44 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Attempting to connect...
2022-07-09 17:58:44 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Connected to the Kettle
2022-07-09 17:58:44 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Writing command ff, data: [6a b9 3c d1 aa 3d 59 72]
2022-07-09 17:58:44 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Received: 01
2022-07-09 17:58:44 DEBUG (MainThread) [custom_components.skykettle.skykettle] Auth: ok=True
2022-07-09 17:58:44 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Auth ok
2022-07-09 17:58:44 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Writing command 6e, data: [84 7b c9 62 50 46 00 00]
2022-07-09 17:58:46 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Disconnected
2022-07-09 17:58:46 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Terminated
2022-07-09 17:58:46 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Timeout, retry #4
2022-07-09 17:58:46 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Updating
2022-07-09 17:58:46 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Starting "gatttool"...
2022-07-09 17:58:47 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] "gatttool" started
2022-07-09 17:58:47 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Attempting to connect...
2022-07-09 17:58:47 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Connected to the Kettle
2022-07-09 17:58:47 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Writing command ff, data: [6a b9 3c d1 aa 3d 59 72]

Logger: homeassistant
Source: custom_components/skykettle/kettle_connection.py:456
Integration: SkyKettle ([documentation](https://github.com/ClusterM/skykettle-ha/blob/master/README.md), [issues](https://github.com/ClusterM/skykettle-ha/issues))
First occurred: 17:58:49 (8 occurrences)
Last logged: 18:01:52

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 519, in async_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 573, in _async_write_ha_state
    attr.update(self.extra_state_attributes or {})
  File "/config/custom_components/skykettle/water_heater.py", line 100, in extra_state_attributes
    sw_version = self.kettle.sw_version
  File "/config/custom_components/skykettle/kettle_connection.py", line 456, in sw_version
    return self._sw_version
AttributeError: 'KettleConnection' object has no attribute '_sw_version'
ClusterM commented 2 years ago

Приветствую. Похоже, у этого чайника отличается протокол. Можете попробовать сделать запись трафика?

Nemiroff commented 2 years ago

Интеграция от mavrikkk работала. У чайника нет подсветки. Запись логов с чего сделать? с гейта или клиента? Закоментил синхронизацию времени, что то появилось


2022-07-09 18:27:00 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Auth ok
2022-07-09 18:27:00 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Writing command 01, data: []
2022-07-09 18:27:00 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Received: 04 05
2022-07-09 18:27:00 DEBUG (MainThread) [custom_components.skykettle.skykettle] Version: 4.5
2022-07-09 18:27:00 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Writing command 06, data: []
2022-07-09 18:27:01 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Received: 00 00 00 00 00 0c 00 00 00 00 20 00 00 00 00 00
2022-07-09 18:27:01 DEBUG (MainThread) [custom_components.skykettle.skykettle] Status: mode=0 (Boil), is_on=False, target_temp=0, current_temp=12, sound_enabled=False, color_interval=0, boil_time=-128
2022-07-09 18:27:01 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Writing command 47, data: [00]
2022-07-09 18:27:01 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Received: 00 00 17 67 00 00 ff 3e 00 00 d9 01 00 00 00 00
2022-07-09 18:27:01 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Writing command 50, data: [00]
2022-07-09 18:27:01 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Received: 00 00 00 8f 00 00 00 00 00 00 00 00 00 00 00 00
2022-07-09 18:27:01 DEBUG (MainThread) [custom_components.skykettle.skykettle] Stats: ontime=7:19:51, energy_wh=16127, user_on_count=143, heater_on_count=473
2022-07-09 18:27:01 DEBUG (MainThread) [custom_components.skykettle.kettle_connection] Writing command 35, data: [00]```
ClusterM commented 2 years ago

Протокол действительно сильно отличается, судя по всему. Надо дампить трафик и реверсить.

Nemiroff commented 2 years ago

btsnoop_hci.log

ClusterM commented 2 years ago

Посмотрю, но без самого устройства на руках разве что самые базовые функции сделать можно.

Nemiroff commented 2 years ago

А там больше ничего и не надо. Подключиться, Подогреть до (30-95С), Вскипятить, Вскипятить и подогреть.

ClusterM commented 2 years ago

Попробуйте установить версию из master. Возможно, придётся заново добавить устройство. Пока что всё очень экспериментально. При любом исходе хочется увидеть debug лог. Можете сказать, какие вообще есть функции и настройки у этого чайника в официальном приложении? Например, можно ли включать и выключать звук?

ClusterM commented 2 years ago

btsnoop_hci.log

Если вы запишете более подробный лог, где по очереди включаете режимы (подогрев, кипячение, кипячение+подогрев, выключение), то сообщество будет вам очень благодавно! Не один я пытаюсь изучить эту модель.

ClusterM commented 2 years ago

Тут в соседней ветке говорят о такой проблеме: https://github.com/home-assistant/operating-system/issues/1935 Может в ней дело?

ARNik commented 2 years ago

Та же проблема. Не работает RK-M171S. Раньше использовал https://github.com/mavrikkk/ha_kettler и все работало. С обновлением Home Assistant решил попробовать эту интеграцию, но печалька. Чайник находится и спаривается удачно, но после подключения не работает управление.

ClusterM commented 2 years ago

Та же проблема. Не работает RK-M171S. Раньше использовал https://github.com/mavrikkk/ha_kettler и все работало. С обновлением Home Assistant решил попробовать эту интеграцию, но печалька. Чайник находится и спаривается удачно, но после подключения не работает управление.

Можно логи?

Nemiroff commented 2 years ago

И так, добрался опять. В логе выше я как раз включал чайник по всем режимам, которых у чайника всего 3: Кипячение, Подогрев и Кипячение и подогрев.


File "/config/custom_components/skykettle/kettle_connection.py", line 185, in update
self._status = await self.get_status()
File "/config/custom_components/skykettle/skykettle.py", line 193, in get_status
status = Status(mode=mode,
NameError: name 'Status' is not defined
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/config/custom_components/skykettle/kettle_connection.py", line 185, in update
self._status = await self.get_status()
File "/config/custom_components/skykettle/skykettle.py", line 193, in get_status
status = Status(mode=mode,
NameError: name 'Status' is not defined
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/config/custom_components/skykettle/kettle_connection.py", line 185, in update
self._status = await self.get_status()
File "/config/custom_components/skykettle/skykettle.py", line 193, in get_status
status = Status(mode=mode,
NameError: name 'Status' is not defined
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/config/custom_components/skykettle/kettle_connection.py", line 185, in update
self._status = await self.get_status()
File "/config/custom_components/skykettle/skykettle.py", line 193, in get_status
status = Status(mode=mode,
NameError: name 'Status' is not defined
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/config/custom_components/skykettle/kettle_connection.py", line 185, in update
self._status = await self.get_status()
File "/config/custom_components/skykettle/skykettle.py", line 193, in get_status
status = Status(mode=mode,
NameError: name 'Status' is not defined
Nemiroff commented 2 years ago

Поправив ошибку выше, появился статус чайника. Boil, Heat, Boil + Heat работает. Единственное температура стартует с 25. Чайник умеет с 30 до 95 с шагом в 5 градусов. С приложения вроде возможно выставить любую от 30 до 100 с шагом в 1 градус

ClusterM commented 2 years ago

Поправив ошибку выше, появился статус чайника. Boil, Heat, Boil + Heat работает. Единственное температура стартует с 25. Чайник умеет с 30 до 95 с шагом в 5 градусов. С приложения вроде возможно выставить любую от 30 до 100 с шагом в 1 градус

25 градусов просто автоматически выключает чайник, если мне не изменяет память.

Nemiroff commented 2 years ago

Ну вот теперь работает. Думаю можно закрыть Issue.