8000 S4 Обогрев · Issue #27 · TionAPI/tion_python · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

S4 Обогрев #27

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
andlommy opened this issue Jun 20, 2021 · 16 comments · Fixed by #31
Closed

S4 Обогрев #27

andlommy opened this issue Jun 20, 2021 · 16 comments · Fixed by #31
Labels
4S Tion 4S related bug Something isn't working

Comments

@andlommy
Copy link
andlommy commented Jun 20, 2021

Версия модуля: 1.3.1
Модель бризера: S4
Версия прошивки (если известна): 02D0

Описание проблемы

Включение бризера в режим "fan only" приводит к включению отопления
Переключение из отопления в fan only оставляет режим отопления.

ИМХО у этих бризеров некий косяк с режимом отопления, т.к. похожие глюки есть при работы со штатным приложением Tion (неожиданное включение режима обогрева при совершении действий не связаных с включением режима обогрева).

Логи могу послать, если подскажете как их в HA включить для этого модуля

@andlommy andlommy added the bug Something isn't working label Jun 20, 2021
@andlommy
Copy link
Author
andlommy commented Jun 20, 2021

вот некие логи (переключал из heat в fan)

2021-06-20 11:32:46 DEBUG (MainThread) [tion_btle.tion] Connecting
2021-06-20 11:32:50 DEBUG (MainThread) [tion_btle.tion] Enabling notification
2021-06-20 11:32:50 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-06-20 11:32:50 DEBUG (MainThread) [tion_btle.tion] Will write b'\x01\x00' to 19 handle
2021-06-20 11:32:50 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-06-20 11:32:50 DEBUG (MainThread) [tion_btle.tion] Delegation enabled
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] First read done. Data is c000000000000600d54c
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] enable_notification is done
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa1323217d674ac183b9a00bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003a1b313217d674ac8987abc62fd1000004
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 401f20182312fb5600ff1c54000437ed00a15e00
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c000000000000600eee1
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Will write bytearray(b'\x00\x17\x00:\xa202\x92\x06\xfe\x94~\xdb\\Q\x17\x00\x00\x00\x04\xb5\x00\xbb\xaa')
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Writing 0017003aa230329206fe947edb5c511700000004 to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Writing c0b500bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Disabling notifications
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Will write b'\x00\x00' to 19 handle
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] disable_notification is done
2021-06-20 11:32:51 DEBUG (MainThread) [tion_btle.tion] Connecting
2021-06-20 11:32:53 DEBUG (MainThread) [tion_btle.tion] Enabling notification
2021-06-20 11:32:53 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-06-20 11:32:53 DEBUG (MainThread) [tion_btle.tion] Will write b'\x01\x00' to 19 handle
2021-06-20 11:32:53 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-06-20 11:32:53 DEBUG (MainThread) [tion_btle.tion] Delegation enabled
2021-06-20 11:32:53 DEBUG (MainThread) [tion_btle.tion] First read done. Data is c0000000000006005234
2021-06-20 11:32:53 DEBUG (MainThread) [tion_btle.tion] enable_notification is done
2021-06-20 11:32:53 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-20 11:32:53 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa13232b09f41efc398641abbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-20 11:32:53 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003a863132b09f41ef7edb5c512fd1000004
2021-06-20 11:32:53 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 401f20182314fb5600011d54000237ed00ab5e00
2021-06-20 11:32:53 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c000000000000600563d
2021-06-20 11:32:54 DEBUG (MainThread) [tion_btle.tion] Disabling notifications
2021-06-20 11:32:54 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-06-20 11:32:54 DEBUG (MainThread) [tion_btle.tion] Will write b'\x00\x00' to 19 handle
2021-06-20 11:32:54 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-06-20 11:32:54 DEBUG (MainThread) [tion_btle.tion] disable_notification is done

@IATkachenko IATkachenko added the 4S Tion 4S related label Jun 20, 2021
@IATkachenko
Copy link
Collaborator

@andlommy, добрый день.

То что бризер включается в режиме отопления -- правильно. Это особенность управления компонентом climate из HomeAssistant: для него "включить" означает перевести прибор в режим heating.

Вторая часть выглядит более подозрительно.

Есть подозрение что я перепутал маркер того включен ли нагреватель.
Но тогда бы при включении режима обогрева он бы выключелся (те поведение было бы полностью зеркальное), а тут фигня какая-то: обогрев включается, но никак не отключается.

Команда при переключении heat->fan выглядит правильно.
Можно еще посмотреть на переключение fan->heat?

Когда модуль(или HA) говорит что обогрев включен, включен ли обогрев на самом деле?

Те тест нужен примерно такой:

  1. приложением включить бризер.
  2. посмотреть что говорит про нагреватель приложение
  3. посмотреть совпадает ли это с тем что говорит HA
  4. переключить обогрев приложением
  5. посмотреть что про это говорит HA

Итого:
хочется понять две вещи:

  1. Правильно ли компонент детектирует состояние нагревателя
  2. переключается ли нагреватель при переключении fan->heat->fan->heat

ps. Чтобы получить полные логи нужно в configuration.yaml

logger:
  default: warning
  logs:
    tion_btle: debug
    tion_btle.tion: debug
    tion_btle.s4: debug
    custom_components.tion: debug

@andlommy
Copy link
Author

В 30градусную жару определить включен ли обогрев несколько проблемно :)
Приложение по поводу нагрева глючит нисколько не меньше, при чем Тион пока тоже не уверены что происходит. :)
Завтра попробую погонять это еще и отпишусь

@IATkachenko
Copy link
Collaborator

Я исхожу из того что приложение нам не врет (если не верить приложению, то кому верить-то?) и пытаюсь получить такое же поведение, как в приложении.

@andlommy
Copy link
Author

Я уже Тиону отослал пачку видео о том, как приложение в один момент говорит что обогрев выключен, затем ни с того ни и сего говорит что обогрев включен. При чем на одном телефоне обогрев не выключить совсем, на другом выключается, но стабильности оч. мало :( Покопаю пришлю логов. Логи показывают расшифровку статуса устройства?

@IATkachenko
Copy link
Collaborator

Да, там все видно. Got data in 18 response -- это ответ бризера на запрос статуса, который потом модуль расшифровывает.

В вашем логе я вижу что состояние бризера при переключении hteat->fan не меняется.
Мне сейчас самое интересно -- переключение fan->heat: если в режиме вентиляции оказывается обогрев включен, не выключится ли он.

@andlommy
Copy link
Author

C обогревом есть 2 параметра "включить обогрев" и второй - до какой температуры нагревать. Сейчас это мало актуально, потому что на бризере в-основном "выскакивает" температура обогрева в 25, то есть при 30 на улице он не работает, но в другое время года, когда 10-15 ночью, то бризер вдруг начинает греть. Завтра попробую заставить его греть и попереключать режимы. Проблема, что настройкам приложения верить сложно
Можете плиз в дебаг добавить расшифровку ответа бризера (чтобы было более легкочитаемо, и чтобы можно было сразу видеть что отвечает бризер).

@IATkachenko
Copy link
Collaborator

C обогревом есть 2 параметра "включить обогрев" и второй - до какой температуры нагревать.

Мой 3S устроен точно так же

Сейчас это мало актуально, потому что на бризере в-основном "выскакивает" температура обогрева в 25, то есть при 30 на улице он не работает, но в другое время года, когда 10-15 ночью, то бризер вдруг начинает греть. Завтра попробую заставить его греть и попереключать режимы. Проблема, что настройкам приложения верить сложно

Я сейчас подозреваю что в модуле некорректно реализовано включение нагревтеля: в этом месте инвертировано условие. Поэтому мне интересно понять: выключается ли нагреватель при переключении fan->heat
То что включенный нагреватель определяется корректно я не сильно сомневаюсь.
(на всякий случай, бризер работает так: если нагреватель включен и входящий воздух ниже целевой температуры больше чем на 5 градусов -- включается нагрев, а в HA это делится на два параметра: режим работы (нагрев/вентиляция/выключено, которые и переключаются в интерфейсе HA) и текущее состояние (воздух подогревается, воздух не подогревается, выключено), те HA/модуль не говорят бризеру греть воздух "прямо сейчас", а просто переводят его в режим подогрева входящего воздуха, а бризер сам решает греть прямо сейчас или нет)

Можете плиз в дебаг добавить расшифровку ответа бризера (чтобы было более легкочитаемо, и чтобы можно было сразу видеть что отвечает бризер).

Лог только добавляет больше технической информации, по сравнению с тем что показывает HA: в HA данные отдаются корректно.
Если вы можете запускать тесты в консоли, то лучше воспользоваться скриптом примерно такого вида:

import logging
import sys
from tion_btle.s4 import S4


def read_state(tion: S4):
    result = tion.get()

    _LOGGER.debug("Result is %s " % result)

    _LOGGER.info("Initial state: device is %s, light is %s, sound is %s, heater is %s, fan_speed is %d, target_temp is %d",
                 tion.state,
                 tion.light,
                 tion.sound,
                 tion.heater,
                 tion.fan_speed,
                 tion.target_temp)

logging.basicConfig(level=logging.DEBUG)
_LOGGER = logging.getLogger(__name__)
_LOGGER.setLevel("DEBUG")

mac = sys.argv[1]
device = S4(mac)
read_state(device)

Запуск скрипта будет выдавать текущее состояние бризера и тонну дебага.

@andlommy
Copy link
Author
andlommy commented Jun 21, 2021

Включаться он включается

До:
DEBUG:main:Result is {'state': 'on', 'heater': 'off', 'heating': 'off', 'sound': 'off', 'mode': 'outside', 'out_temp': 34, 'in_temp': 34, 'heater_temp': 25, 'fan_speed': 3, 'filter_remain': 178.95618055555556, 'time': '15:36', 'request_error_code': 0, 'model': 'S4', 'light': 'off'}

После переключения на "обогрев":

DEBUG:main:Result is {'state': 'on', 'heater': 'on', 'heating': 'off', 'sound': 'off', 'mode': 'outside', 'out_temp': 34, 'in_temp': 34, 'heater_temp': 25, 'fan_speed': 3, 'filter_remain': 178.95546296296297, 'time': '15:37', 'request_error_code': 0, 'model': 'S4', 'light': 'off'}

А вот выключаться уже не выключается:

2021-06-21 15:39:58 DEBUG (MainThread) [tion_btle.tion] Connecting
2021-06-21 15:40:00 DEBUG (MainThread) [tion_btle.tion] Enabling notification
2021-06-21 15:40:00 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-06-21 15:40:00 DEBUG (MainThread) [tion_btle.tion] Will write b'\x01\x00' to 19 handle
2021-06-21 15:40:00 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-06-21 15:40:00 DEBUG (MainThread) [tion_btle.tion] Delegation enabled
2021-06-21 15:40:01 DEBUG (MainThread) [tion_btle.tion] First read done. Data is c000000000000600e6ac
2021-06-21 15:40:01 DEBUG (MainThread) [tion_btle.tion] enable_notification is done
2021-06-21 15:40:01 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-21 15:40:01 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa132329a13a5a593903a46bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-21 15:40:01 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003a6431329a13a5a513cf5b0929d1001903
2021-06-21 15:40:01 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 40222218234145580007675500fceceb00d73b06
2021-06-21 15:40:01 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c000000000000600f9eb
2021-06-21 15:40:02 DEBUG (MainThread) [tion_btle.tion] Disabling notifications
2021-06-21 15:40:02 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-06-21 15:40:02 DEBUG (MainThread) [tion_btle.tion] Will write b'\x00\x00' to 19 handle
2021-06-21 15:40:02 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-06-21 15:40:02 DEBUG (MainThread) [tion_btle.tion] disable_notification is done
2021-06-21 15:40:02 DEBUG (SyncWorker_0) [homeassistant.components.bluetooth_tracker.device_tracker] Scanning 74:45:CE:48:34:0A
2021-06-21 15:40:02 DEBUG (MainThread) [homeassistant.components.bluetooth_tracker.device_tracker] Previous execution of update_bluetooth is taking longer than the scheduled update of interval 0:00:12
2021-06-21 15:40:07 DEBUG (
8000
SyncWorker_8) [homeassistant.components.bluetooth_tracker.device_tracker] Scanning 40:2F:86:E0:97:0D
2021-06-21 15:40:10 DEBUG (SyncWorker_6) [homeassistant.components.bluetooth_tracker.device_tracker] Scanning 1C:52:16:44:E7:0C
2021-06-21 15:40:14 DEBUG (MainThread) [homeassistant.components.bluetooth_tracker.device_tracker] Previous execution of update_bluetooth is taking longer than the scheduled update of interval 0:00:12
2021-06-21 15:40:15 DEBUG (SyncWorker_3) [homeassistant.components.bluetooth_tracker.device_tracker] Scanning F4:FE:FB:44:DE:29
2021-06-21 15:40:15 DEBUG (SyncWorker_5) [homeassistant.components.bluetooth_tracker.device_tracker] Scanning 34:2E:B6:9F:ED:B0
2021-06-21 15:40:20 DEBUG (MainThread) [tion_btle.tion] Connecting
2021-06-21 15:40:22 DEBUG (MainThread) [tion_btle.tion] Enabling notification
2021-06-21 15:40:22 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-06-21 15:40:22 DEBUG (MainThread) [tion_btle.tion] Will write b'\x01\x00' to 19 handle
2021-06-21 15:40:22 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-06-21 15:40:22 DEBUG (MainThread) [tion_btle.tion] Delegation enabled
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] First read done. Data is c000000000000600f9eb
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] enable_notification is done
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa13232e78de5d0efd54fc5bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003a783132e78de5d013cf5b092931001903
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 4022221824564558001c675500e7eceb002b3c06
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c00000000000060057f5
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Will write bytearray(b'\x00\x17\x00:\xe802\x8f\x11\x104\x19\xa7j\xeb\x11\x00\x00\x19\x03\xb5\x00\xbb\xaa')
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Writing 0017003ae830328f11103419a76aeb1100001903 to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Writing c0b500bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Disabling notifications
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Will write b'\x00\x00' to 19 handle
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] disable_notification is done
2021-06-21 15:40:23 DEBUG (MainThread) [tion_btle.tion] Connecting
2021-06-21 15:40:24 DEBUG (MainThread) [tion_btle.tion] Enabling notification
2021-06-21 15:40:24 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-06-21 15:40:24 DEBUG (MainThread) [tion_btle.tion] Will write b'\x01\x00' to 19 handle
2021-06-21 15:40:24 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-06-21 15:40:24 DEBUG (MainThread) [tion_btle.tion] Delegation enabled
2021-06-21 15:40:24 DEBUG (MainThread) [tion_btle.tion] First read done. Data is c0000000000006004538
2021-06-21 15:40:24 DEBUG (MainThread) [tion_btle.tion] enable_notification is done
2021-06-21 15:40:24 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-21 15:40:24 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa132324fcdef502ec925dcbbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-21 15:40:24 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003ae631324fcdef5019a76aeb2931001903
2021-06-21 15:40:24 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 4022221823584558001e675500e5eceb00333c06
2021-06-21 15:40:24 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c000000000000600da84
2021-06-21 15:40:25 DEBUG (MainThread) [tion_btle.tion] Disabling notifications
2021-06-21 15:40:25 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-06-21 15:40:25 DEBUG (MainThread) [tion_btle.tion] Will write b'\x00\x00' to 19 handle
2021-06-21 15:40:25 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-06-21 15:40:25 DEBUG (MainThread) [tion_btle.tion] disable_notification is done

Дебаг лог переключения с fan на heating:

2021-06-21 15:43:40 DEBUG (MainThread) [tion_btle.tion] Connecting
2021-06-21 15:43:44 DEBUG (MainThread) [tion_btle.tion] Enabling notification
2021-06-21 15:43:44 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-06-21 15:43:44 DEBUG (MainThread) [tion_btle.tion] Will write b'\x01\x00' to 19 handle
2021-06-21 15:43:44 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-06-21 15:43:44 DEBUG (MainThread) [tion_btle.tion] Delegation enabled
2021-06-21 15:43:44 DEBUG (MainThread) [tion_btle.tion] First read done. Data is c00000000000060090b8
2021-06-21 15:43:44 DEBUG (MainThread) [tion_btle.tion] enable_notification is done
2021-06-21 15:43:44 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-21 15:43:44 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa132320a604300daded403bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-21 15:43:44 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003a5c31320a604300fa64ed0f3931001903
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 40222218241f465800e56755001eeceb004f3f06
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c0000000000006007d0c
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Will write bytearray(b'\x00\x17\x00:\x9f02\x9f:\x10\xd6H\xfa\x84\xfb\x19\x00\x00\x19\x03\xb5\x00\xbb\xaa')
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Writing 0017003a9f30329f3a10d648fa84fb1900001903 to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Writing c0b500bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa1323297cc9469e9dbec03bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003ace31329f3a10d648fa84fb3931001903
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 40222218231f465800e56755001eeceb004f3f06
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c000000000000600182f
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003a14313297cc946948fa84fb3931001903
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 40222218231f465800e56755001eeceb004f3f06
2021-06-21 15:43:45 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c0000000000006005d86
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa13232cd5b7f84e2109554bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Will write bytearray(b'\x00\x17\x00:X02P\xb7\xde\x1bj\x08\xd2J\x11\x00\x00\x19\x03\xb5\x00\xbb\xaa')
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Writing 0017003a58303250b7de1b6a08d24a1100001903 to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Writing c0b500bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Doing _try_write. Attempt 1/3
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa13232439ca8c2d1b8c23bbbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003a9b3132cd5b7f8448fa84fb3931001903
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 402222182320465800e66755001deceb00533f06
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c0000000000006001311
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003a9c313250b7de1b6a08d24a2931001903
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 402222182320465800e66755001deceb00533f06
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c000000000000600857e
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003a9d3132439ca8c26a08d24a2931001903
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 402222182320465800e66755001deceb00533f06
2021-06-21 15:43:46 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c000000000000600acdc
2021-06-21 15:43:47 DEBUG (MainThread) [tion_btle.tion] Disabling notifications
2021-06-21 15:43:47 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-06-21 15:43:47 DEBUG (MainThread) [tion_btle.tion] Will write b'\x00\x00' to 19 handle
2021-06-21 15:43:47 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-06-21 15:43:47 DEBUG (MainThread) [tion_btle.tion] disable_notification is done

При чем ощущение, что оно сначала как будто отрабатывает, а потом сбрасывается назад

@IATkachenko
Copy link
Collaborator

Поехали....

(1 ) -> 8010003aa1 3232 9a13a5a5 93903a46 bbaa -- запросили состояние. 
(1*) <- 002f003a64 3132 9a13a5a5 13cf5b09 29 d1001903` -- нагреватель **off**
(2 ) -> 8010003aa1 3232 e78de5d0 efd54fc5 bbaa -- запросили состояние. 
(2*) <- 002f003a78 3132 e78de5d0 13cf5b09 29 31001903 --  29 нагреватель **off**
(3 ) -> 0017003ae8 3032 8f111034 19a76aeb 11 00001903 ... -- set нагреватель off
(4 ) -> 8010003aa1 3232 4fcdef50 2ec925dc bbaa -- запросили состояние
(2*) <- 002f003a78 3132 e78de5d0 13cf5b09 29 31001903` -- ответ 29 нагреватель **off**

Но последний ответ пришел не на запрос 4, а на запрос 2 и должно быть еще несколько ответов
Те что тут происходит до конца не понятно.

Дальше fan->heat ...
Лог очень странный. Там происходит :

  • connect
  • запрос - ответ - set - запрос - ответ (это нормально)
  • ответ - запрос - set - запрос - ответ - ответ - ответ (а вот это не нормально)
  • disconnect
    Если идти по истории состояний:
(1 ) -> 8010003aa1 3232 0a604300 daded403 bbaa  -- get
(1*) <- 002f003a5c 3132 0a604300 fa64ed0f 39 31001903
(2 ) -> 0017003a9f 3032 9f3a10d6 48fa84fb 19 00001903  -- set переключение fan -> heating
(3 ) -> 8010003aa1 3232 97cc9469 e9dbec03 bbaa --get 
(2*) <- 002f003ace 3132 9f3a10d6 48fa84fb 39 31001903 -- нагреватель on
(2*) <- 002f003a14 3132 97cc9469 48fa84fb 39 31001903 -- нагреватель on
(4 ) -> 8010003aa1 3232 0a604300 daded403 bbaa -- get 
(5 ) -> 0017003a58 3032 50b7de1b 6a08d24a 11 00001903 -- set и опять переключение heating -> fan
(6 ) -> 8010003aa1 3232 439ca8c2 d1b8c23b bbaa -- get 
(2*) <- 002f003a9b 3132 cd5b7f84 48fa84fb 39 31001903 -- нагреватель on
(5*) <- 002f003a9c 3132 50b7de1b 6a08d24a 29 31001903 -- нагреватель off
(5*) <- 002f003a9d 3132 439ca8c2 6a08d24a 29 31001903-- нагреватель off

Похоже что:

  1. на каждый запрос он генерит ответ.
  2. действительно перепутано переключение (на set-запрос 5 он отвечает выключенным нагревателем, а на set-запрос 2 -- включенным).

Как боросться с 2 -- более менее понятно: если у вас есть возможность править код на сервере, приведите в tion_lite/s4.py 79 строку (внутри _encode_request->encode_state) к виду:

                (not self._encode_state(request["heater"]) << 3) | \

И при тестах делайте паузы между переключениями побольше, секунд 10-20.

А вот что делать с 1 я пока не знаю... Но пара идей тоже есть.

@IATkachenko
Copy link
Collaborator

@Zorgino, если у вас 4S, не могли бы помочь с тестировнием: проверить мою правку в конце последнего комментария и рассказать о результатах?

@makp0
Copy link
makp0 commented Oct 22, 2021

не помогло

2021-10-22 17:56:25 DEBUG (MainThread) [tion_btle.tion] Connecting
2021-10-22 17:56:26 DEBUG (MainThread) [tion_btle.tion] Enabling notification
2021-10-22 17:56:26 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-10-22 17:56:26 DEBUG (MainThread) [tion_btle.tion] Will write b'\x01\x00' to 19 handle with withResponse=False
2021-10-22 17:56:26 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-10-22 17:56:26 DEBUG (MainThread) [tion_btle.tion] Delegation enabled
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] First read done. Data is c001000000000616f5c8
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] enable_notification is done
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.s4.S4 object at 0x7f8b500cfc18>,),kwargs={'request': bytearray(b'\x80\x10\x00:\xa122/K\xe6jT^\xfa\n\xbb\xaa')})
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa132322f4be66a545efa0abbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Collecting data
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003afc31322f4be66af0156bc52d01001502
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 400f151624d096b8007df95300b0549900face2e
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c0010000000006052c2b
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.light_family] Got 002f003afc31322f4be66af0156bc52d01001502 from tion
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.light_family] Got 400f151624d096b8007df95300b0549900face2e from tion
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.light_family] Got c0010000000006052c2b from tion
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.s4] Data is 2d010015020f151624d096b8007df95300b0549900face2e01000000000605
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Will write bytearray(b'\x00\x17\x00:\xfb02\x90\xe03i\xa1\xa1\xde\r\x15\x00\x00\x15\x02\xb5\x00\xbb\xaa')
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.light_family] Doing write: request=0017003afb303290e03369a1a1de0d1500001502
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.s4.S4 object at 0x7f8b500cfc18>, bytearray(b'\x00\x17\x00:\xfb02\x90\xe03i\xa1\xa1\xde\r\x15\x00\x00\x15\x02')),kwargs={})
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Writing 0017003afb303290e03369a1a1de0d1500001502 to 98f00002-3788-83ea-453e-f52244709ddb
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.light_family] Doing write: request=c0b500bbaa
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.s4.S4 object at 0x7f8b500cfc18>, bytearray(b'\xc0\xb5\x00\xbb\xaa')),kwargs={})
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Writing c0b500bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Connecting
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Enabling notification
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Will write b'\x01\x00' to 19 handle with withResponse=False
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-10-22 17:56:27 DEBUG (MainThread) [tion_btle.tion] Delegation enabled
2021-10-22 17:56:28 DEBUG (MainThread) [tion_btle.tion] First read done. Data is c001000000000605f90e
2021-10-22 17:56:28 DEBUG (MainThread) [tion_btle.tion] enable_notification is done
2021-10-22 17:56:28 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.s4.S4 object at 0x7f8b500cfc18>,),kwargs={'request': bytearray(b'\x80\x10\x00:\xa122/rP\xa1[\x91\xef\x81\xbb\xaa')})
2021-10-22 17:56:28 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa132322f7250a15b91ef81bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-10-22 17:56:28 DEBUG (MainThread) [tion_btle.tion] Collecting data
2021-10-22 17:56:28 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003a7931322f7250a1a1a1de0d2d01001502
2021-10-22 17:56:28 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 4010151624d196b8007ef95300af549900fdce2e
2021-10-22 17:56:28 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c001000000000605bd2f
2021-10-22 17:56:28 DEBUG (MainThread) [tion_btle.light_family] Got 002f003a7931322f7250a1a1a1de0d2d01001502 from tion
2021-10-22 17:56:28 DEBUG (MainThread) [tion_btle.light_family] Got 4010151624d196b8007ef95300af549900fdce2e from tion
2021-10-22 17:56:28 DEBUG (MainThread) [tion_btle.light_family] Got c001000000000605bd2f from tion
2021-10-22 17:56:28 DEBUG (MainThread) [tion_btle.
8000
s4] Data is 2d0100150210151624d196b8007ef95300af549900fdce2e01000000000605
2021-10-22 17:56:56 DEBUG (MainThread) [tion_btle.tion] Connecting
2021-10-22 17:56:57 DEBUG (MainThread) [tion_btle.tion] Enabling notification
2021-10-22 17:56:57 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-10-22 17:56:57 DEBUG (MainThread) [tion_btle.tion] Will write b'\x01\x00' to 19 handle with withResponse=False
2021-10-22 17:56:57 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-10-22 17:56:57 DEBUG (MainThread) [tion_btle.tion] Delegation enabled
2021-10-22 17:56:57 DEBUG (MainThread) [tion_btle.tion] First read done. Data is c001000000000605bd2f
2021-10-22 17:56:57 DEBUG (MainThread) [tion_btle.tion] enable_notification is done
2021-10-22 17:56:57 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.s4.S4 object at 0x7f8b500cfc18>,),kwargs={'request': bytearray(b'\x80\x10\x00:\xa122\xc2S\xc6\x1dQ\x00\x97\x16\xbb\xaa')})
2021-10-22 17:56:57 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa13232c253c61d51009716bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-10-22 17:56:57 DEBUG (MainThread) [tion_btle.tion] Collecting data
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003a5b3132c253c61da1a1de0d2d81001502
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 400f151624ef96b8009cf953009154990057cf2e
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c0010000000006162361
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.light_family] Got 002f003a5b3132c253c61da1a1de0d2d81001502 from tion
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.light_family] Got 400f151624ef96b8009cf953009154990057cf2e from tion
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.light_family] Got c0010000000006162361 from tion
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.s4] Data is 2d810015020f151624ef96b8009cf953009154990057cf2e01000000000616
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Will write bytearray(b'\x00\x17\x00:=023\x968y\x98\xa7\x06w\x15\x00\x00\x15\x02\xb5\x00\xbb\xaa')
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.light_family] Doing write: request=0017003a3d30323396387998a706771500001502
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.s4.S4 object at 0x7f8b500cfc18>, bytearray(b'\x00\x17\x00:=023\x968y\x98\xa7\x06w\x15\x00\x00\x15\x02')),kwargs={})
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Writing 0017003a3d30323396387998a706771500001502 to 98f00002-3788-83ea-453e-f52244709ddb
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.light_family] Doing write: request=c0b500bbaa
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.s4.S4 object at 0x7f8b500cfc18>, bytearray(b'\xc0\xb5\x00\xbb\xaa')),kwargs={})
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Writing c0b500bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Connecting
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Enabling notification
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Notify handler is 18
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Will write b'\x01\x00' to 19 handle with withResponse=False
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Result is {'rsp': ['wr']}
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Delegation enabled
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] First read done. Data is c00100000000060e5d62
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] enable_notification is done
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Trying 0/3: _try_write(args=(<tion_btle.s4.S4 object at 0x7f8b500cfc18>,),kwargs={'request': bytearray(b'\x80\x10\x00:\xa122\x7ft\xac\tP\xd0F\xa2\xbb\xaa')})
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Writing 8010003aa132327f74ac0950d046a2bbaa to 98f00002-3788-83ea-453e-f52244709ddb
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Collecting data
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 002f003a0531327f74ac0998a706772d81001502
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response 400f151624f096b8009df95300905499005acf2e
2021-10-22 17:56:58 DEBUG (MainThread) [tion_btle.tion] Got data in 18 response c00100000000060e1610
2021-10-22 17:56:59 DEBUG (MainThread) [tion_btle.light_family] Got 002f003a0531327f74ac0998a706772d81001502 from tion
2021-10-22 17:56:59 DEBUG (MainThread) [tion_btle.light_family] Got 400f151624f096b8009df95300905499005acf2e from tion
2021-10-22 17:56:59 DEBUG (MainThread) [tion_btle.light_family] Got c00100000000060e1610 from tion
2021-10-22 17:56:59 DEBUG (MainThread) [tion_btle.s4] Data is 2d810015020f151624f096b8009df95300905499005acf2e0100000000060e

@IATkachenko
Copy link
Collaborator

Те (уже 68) строка tion_lite/s4.py имеет вид

(not self._encode_state(request["heater"]) << 3) | \

и по команде "включить обогрев" он не включился? Ну и если включить с пульта, то и выключить нельзя.
И без этого изменения тоже не работало?

У вас, кстати, второй части проблемы (что бризер в ответ на запрос состояния выдает результаты всех предыдущих запросов) не видно.

@IATkachenko
Copy link
Collaborator
IATkachenko commented Oct 22, 2021

Собственно существенная часть ответов:

2d 01 00 15 02 0f 15
2d 01 00 15 02 10 15
2d 81 00 15 02 0f 15 
2d 81 00 15 02 0f 15 

вторая скорость вентилятора, 15-16 входящая, 15 целевая, 15 выходящая.
По состояниям.
Я правильно понимаю что во время теста:

  1. бризер включен
  2. звук выключен
  3. подсветка включена
  4. нагреватель включен
    и именно это (включен нагреватель и включен бризер) показывает HA?

@IATkachenko
Copy link
Collaborator

А в ходе теста вы устанавливаете состояние 0x15, которое, с учетом правки означает

  1. бризер включен
  2. звук выключен
  3. подсветка включена
  4. нагреватель включен.

Я немного запутался. Ну или правка не была применена, тогда 15 состояние -- выключенный нагреватель и это, дествительно, не работает, потому что нужна правка.

IATkachenko added a commit that referenced this issue Oct 22, 2021
Tion 4S use reversed heater logic, so we must revert it in encoder.

Fix #27
@IATkachenko
Copy link
Collaborator

Разобрался. @Zorgino, спасибо за возможность потестироваться.

IATkachenko added a commit that referenced this issue Oct 22, 2021
Tion 4S use reversed heater logic, so we must revert it in encoder.

Fix #27
IATkachenko added a commit to TionAPI/HA-tion that referenced this issue Oct 22, 2021
Bump required version of tion-btle to apply fixes in module.
There was bug found in TionAPI/tion_python#27 that was fixed in 1.3.4.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
4S Tion 4S related bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants
0