mavrikkk / ha_kettler

allows you to connect Redmond SkyKettle, SkyCooker and SkyHeat to your Home Assistant. see README to know further
132 stars 51 forks source link

Поддержка более старых моделей чайников и мультиварки с Bluetooth #16

Closed vring0 closed 4 years ago

vring0 commented 4 years ago

Добрый день! Ранее я видел, что Вас просили добавить поддержку старых моделей чайников. Так как у них более качественная сборка, я как раз такую купил и реализовал интеграцию через gattool в linux, а также у меня была давно мультиварка m800s, я тоже её решил интегрировать в систему УД. Уже после проделанной работы я наткнулся недавно на Ваш компонент и не увидел поддержки других моделей redmond, я предлагаю помощь чтобы добавить их. У меня уже есть все перехваченные пакеты управления и всё протестировано. Будет замечательно если Вы согласитесь расширить свой компонент, я думаю что многие используют данные модели мультиварок и чайников.

mavrikkk commented 4 years ago

В моем профиле есть Форк для m216s. Там и сенсоры видны и включение работает. Но лог кишит дисконектами

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

mavrikkk commented 4 years ago

тут попытка протестировать все возможности для новых чайников

https://pastebin.com/HdE86P2J

ссылка исправлена...пропустил пару моментов

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

@tayanov @3AXAPOB @fr00kt

3AXAPOB commented 4 years ago

Скрипт отработал без ошибок. Чайник включился:

  1. на простой нагрев
  2. на нагрев до 80
  3. включился на НАГРЕВ в start mode LIGHTS.

На команду выключения выключался.

Полный лог https://pastebin.com/jRGTUcZM

mavrikkk commented 4 years ago

3. включился на НАГРЕВ в start mode LIGHTS

ыыы...значит у вас другая команда ((

mavrikkk commented 4 years ago
  1. чтение цветов для режима кипячения прошло успешно...этой же командой можно читать цвета в режиме подсветки...
  2. запись цветов - хз...команда прошла...но чтоб узнать успешность, надо было сначала записать, а потом прочитать, а я наоборот сделал...
  3. так что по идее и сам режим подсветки должен как то похоже включаться...
  4. еще нужно проверить одну оптимизацию...нужно исправить команды так, чтоб запрос статуса был только тогда, когда чайник выключен...ибо когда он включен - он и так сам шлет свой статус без конца...интересно, что получится
3AXAPOB commented 4 years ago

подсветка у меня включилась но вместе с ней и кипячение

хотя лично мне подсветка не нужна, она на этом чайнике не такая интересная как на стеклянных чайниках. просто маленькая полоска на ручке.

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

я готов, что делать?

tayanov commented 4 years ago

подсветка у меня включилась но вместе с ней и кипячение

+1. То же начинал кипятить при включении подсветки. Я бы хотел оставить подсветку конечно. Просто добавить ее включение по умолчанию или выключение

mavrikkk commented 4 years ago

как у вас подсветка работает с родного приложения? в моем чайнике подсветка служит для 4 целей:

  1. индикация текущей температуры плюс индикация режима синхронизации... Просто показывает, что чайник синхронизирован с приложением по времени, при этом подсветка неспеша пульсирует цветом...в зависимости от текущей температуры воды цвет пульсации меняется от синего к красному. можно включить или отключить. можно поменять цвета. этот режим я называю backlight mode.

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

  3. режим ночник. либо горит цветом, либо плавно меняет цвета, как настроишь...можно менять цвета, можно включать, отключать. ИМЕННО этот режим я называю lighting mode.

  4. цветомузыка...работает только на родном приложении...используется микрофон смартфона для распознавания текущей мелодии и включения подсветки чайника в такт музыке. слегка притормаживает. вообще не использую этот режим в силу технических причин.

mavrikkk commented 4 years ago

а то просто может в вашей модели вообще по другому все сделано

mavrikkk commented 4 years ago

я готов, что делать?

думаю, что именно это - бредовая идея...ведь чайник можно выключить и ручками...а HA об этом некоторое время знать не будет...и при очередном сеансе синхронизации будет думать, что чайник все еще включен и не запросит статус... чисто для проверки я поправил только запрос статуса сразу после включения... ну и доработал режим проверки работы с цветами, чтобы проверить вот: https://pastebin.com/wx6zsubK

mavrikkk commented 4 years ago

так ни от кого и не получил вывод скрипта

https://pastebin.com/PSszEaUg

нужно модельный ряд пополнять @vring0 @tayanov @3AXAPOB

tayanov commented 4 years ago

так ни от кого и не получил вывод скрипта

https://pastebin.com/PSszEaUg

нужно модельный ряд пополнять @vring0 @tayanov @3AXAPOB

user@cluster:~$ python3 k.py {} Это весь вывод ... чяднт?

mavrikkk commented 4 years ago

от рута запуск

tayanov commented 4 years ago

от рута запуск От рута ругается на пакет bluepy. Хотя последний и от рута установлен и от юзера. Питон тугой блин.

mavrikkk commented 4 years ago

хм, ищите проблему у себя... я от рута ставил

pip3 install bluepy

3AXAPOB commented 4 years ago

ну и доработал режим проверки работы с цветами, чтобы проверить вот: https://pastebin.com/wx6zsubK

Вот вывод скрипта https://pastebin.com/D7YcTYJE

Все отработало нормально без вопросов. Включился, выключился, Подсветка загорелась (я не понял начал он кипятить или нет (вроде не начал), после завершения работы скрипта подсветка осталась работать)

УПД: увеличил слип при включении подсветки - начал кипятить.

mavrikkk commented 4 years ago

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

mavrikkk commented 4 years ago

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

mavrikkk commented 4 years ago

и скиньте уже вывод этого скрипта:

https://pastebin.com/PSszEaUg

тогда ваши модели добавлю в модуль

3AXAPOB commented 4 years ago

и скиньте уже вывод этого скрипта:

{'None': '75:48:8e:50:02:26', 'RK-M216S': 'e0:c2:75:ee:3f:2c'}

UPD:

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

По завершении работы скрипта подсветка отключилась. Вот вывод https://pastebin.com/RLmz02HZ

vring0 commented 4 years ago

так ни от кого и не получил вывод скрипта

https://pastebin.com/PSszEaUg

нужно модельный ряд пополнять @vring0 @tayanov @3AXAPOB {'RK-G211S': 'fd:f4:12:e4:44:ba', 'RMC-M800S': 'cc:f1:0c:4a:3b:2d', 'RK-M173S': 'd4:e3:40:73:99:f9', 'None': '5d:b0:bc:be:99:f4', 'Mi Band 3': 'cb:2d:b9:e0:77:0d'}

vring0 commented 4 years ago

hex байты статуса и управления мультиваркой сюда кидать или новую вопрос открыть?

tayanov commented 4 years ago

и скиньте уже вывод этого скрипта:

https://pastebin.com/PSszEaUg

тогда ваши модели добавлю в модуль

Ну от рута в ошибку. От юзера вот такой вывод и все : {} . Может я вручную как то данные вырву?

mavrikkk commented 4 years ago

и скиньте уже вывод этого скрипта: https://pastebin.com/PSszEaUg тогда ваши модели добавлю в модуль

Ну от рута в ошибку. От юзера вот такой вывод и все : {} . Может я вручную как то данные вырву?

от рута timeout 3 hcitool lescan

mavrikkk commented 4 years ago

hex байты статуса и управления мультиваркой сюда кидать или новую вопрос открыть?

новую ветку... по идее должно получиться в этот же модуль запихать

mavrikkk commented 4 years ago

так ни от кого и не получил вывод скрипта https://pastebin.com/PSszEaUg нужно модельный ряд пополнять @vring0 @tayanov @3AXAPOB {'RK-G211S': 'fd:f4:12:e4:44:ba', 'RMC-M800S': 'cc:f1:0c:4a:3b:2d', 'RK-M173S': 'd4:e3:40:73:99:f9', 'None': '5d:b0:bc:be:99:f4', 'Mi Band 3': 'cb:2d:b9:e0:77:0d'}

ага, добавлю

mavrikkk commented 4 years ago

По завершении работы скрипта подсветка отключилась. Вот вывод

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

mavrikkk commented 4 years ago

остался вопрос с режимом ночника... не включается без подогрева у вас...а с родного приложения можно включить ночник без включения самого чайника?

tayanov commented 4 years ago

D1:85:C5:68:85:E5 RK-M216S

tayanov commented 4 years ago

по мне подсветка это индикация включения, горит, кипятит. Или так, моргает согласно температуре, температура меньше 40 скажем, выключить подсветку вовсе....

mavrikkk commented 4 years ago

пробуйте новую версию...только что выложил...

  1. теперь чайник выбирается прям в конфиге, не нужно вручную мак вводить
  2. там же добавлен параметр, отвечающий за подсветку...кому не нужна постоянная подсветка ставьте False
  3. Там же удобно производить первое подключение к устройству.
  4. У меня работает СУПЕР стабильно. За 2 дня ни единой проблемы или отвала. Я даже сократил время синхронизации по умолчанию ровно в 2 раза...теперь 30 сек...
  5. Теоретически добавил и более старые и более новые чайники (те, кто присылал мне модели) Другие модели мне тестировать не на чем...так что...пробуйте вы...
tayanov commented 4 years ago

Вот что в логах: five attempts of modeUpdate failed five attempts of modeOn failed five attempts of startNightColor failed

Блютус как hci0 был найден.

Чайник нашелся, появился. Сенсор показал время, Чайник отображает температуру. Но включение не сработало. По ощущениям произошел отвал вебморды на пару минут. Жаль что имя не берется из сканирования, а определяется как 200, хотя у меня 216

Кажется будто что бт отваливается. Ибо из консоли сканирования бывает I/O error. перетыкнешь и норм.

3AXAPOB commented 4 years ago

Чайник подключился но отказывается включаться

Уровень: WARNING Logger: custom_components.r4s_kettler Source: custom_components/r4s_kettler/init.py:415 Integration: r4s_kettler (documentation) First occurred: 13:37:13 (2 occurrences) Last logged: 13:37:55

five attempts of modeOn failed

mavrikkk commented 4 years ago

Жаль что имя не берется из сканирования, а определяется как 200, хотя у меня 216

ну это наименьшая из проблем )) поправить легко, это вас утешит? )))

Чайник отображает температуру. Но включение не сработало.

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

vring0 commented 4 years ago

пробуйте новую версию...только что выложил...

  1. теперь чайник выбирается прям в конфиге, не нужно вручную мак вводить
  2. там же добавлен параметр, отвечающий за подсветку...кому не нужна постоянная подсветка ставьте False
  3. Там же удобно производить первое подключение к устройству.
  4. У меня работает СУПЕР стабильно. За 2 дня ни единой проблемы или отвала. Я даже сократил время синхронизации по умолчанию ровно в 2 раза...теперь 30 сек...
  5. Теоретически добавил и более старые и более новые чайники (те, кто присылал мне модели) Другие модели мне тестировать не на чем...так что...пробуйте вы...

У меня все хорошо!

mavrikkk commented 4 years ago

У меня все хорошо!

отлично! старые устройства рулят ))

mavrikkk commented 4 years ago

Чайник подключился но отказывается включаться

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

  1. либо протокол немного хитрее, чем мы тут представляем...
  2. либо все дело в изюминке чайника, что он начинает срать нон стоп своим статусом при любой попытке его включить...
  3. либо я где то очепятку допустил, когда правил модуль для вашего устройства...

скрипт работал же без проблем? постоянно, стабильно, без отвалов? или тоже глючил? я про тот, который выше кидал на тест

mavrikkk commented 4 years ago

five attempts of startNightColor failed

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

mavrikkk commented 4 years ago

отключил ночник для 216...пара мелочей еще...можете перекачать и проверить... ОСТАЛЬНЫМ качать НЕТ смысла

mksmo commented 4 years ago

Попробовал подключить RK-M171S, homeassistant начинает перезапускаться при добавлении интеграции, при добавлении в Lovelace и при попытке управления. Для подключения использовал встроенный бт модуль. Завтра протестирую на usb bt

vring0 commented 4 years ago

Попробовал подключить RK-M171S, homeassistant начинает перезапускаться при добавлении интеграции, при добавлении в Lovelace и при попытке управления. Для подключения использовал встроенный бт модуль. Завтра протестирую на usb bt

У меня работает через usb модуль Tplink, встроенный BT в RPI не очень подходит для этой задачи.

vring0 commented 4 years ago

Заметил, что HA стал зависать, после установки новой интеграции. Интеграцию я устанавливал через HACS.

mksmo commented 4 years ago

Аналогично. Интеграция через HACS. Судя по логу, подключение не удалось.

Logger: custom_components.r4s_kettler
Source: custom_components/r4s_kettler/__init__.py:243 
Integration: r4s_kettler 
First occurred: 16:31:59 (2 occurrences) 
Last logged: 16:33:09

five attempts of modeUpdate failed
Logger: custom_components.r4s_kettler
Source: custom_components/r4s_kettler/__init__.py:243 
Integration: r4s_kettler 
First occurred: 16:31:59 (2 occurrences) 
Last logged: 16:33:09

five attempts of modeUpdate failed

Homeassistant перезапускается после любой попытки управления через entities и после каждого обновления статуса по таймауту, указанному при настройке интеграции. Ранее данным чайником управлял через homebridge с плагином cmdswitch, для управления использовал скрипты из вложения. RK-M171S.zip

vring0 commented 4 years ago

Можете попробовать мою модифицированную версию, чисто под первое поколение чайников, работало идеально r4s_kettler.zip

mksmo commented 4 years ago

Можете попробовать мою модифицированную версию, чисто под первое поколение чайников, работало идеально r4s_kettler.zip

У меня не заработало. Не удалось вызвать службу water_heater/set_operation_mode. Failed to connect to peripheral C3:95:1E:F4:0F:33, addr type: random @vring0 Пароль же в этой интеграции случайный задавать, главное - 16 символов A-F 0-9?

vring0 commented 4 years ago

Можете попробовать мою модифицированную версию, чисто под первое поколение чайников, работало идеально r4s_kettler.zip

Используйте ключ, который уже авторизован на чайнике. В других скриптах вы же какой то использовали.

mksmo commented 4 years ago

Используйте ключ, который уже авторизован на чайнике. В других скриптах вы же какой то использовали.

Если честно, не в курсе о предыдущем ключе, тк не указывал сам, а пользовался готовым скриптом, которому достаточно указать MAC

vring0 commented 4 years ago

Используйте ключ, который уже авторизован на чайнике. В других скриптах вы же какой то использовали.

Если честно, не в курсе о предыдущем ключе, тк не указывал сам, а пользовался готовым скриптом, которому достаточно указать MAC

Попробуйте например вот этот ключ dfffacffffffffff, только нужно зажать + и подержать пока не запищит, чтобы чайник вошел в режим авторизации.

mksmo commented 4 years ago

Используйте ключ, который уже авторизован на чайнике. В других скриптах вы же какой то использовали.

Если честно, не в курсе о предыдущем ключе, тк не указывал сам, а пользовался готовым скриптом, которому достаточно указать MAC

Попробуйте например вот этот ключ dfffacffffffffff, только нужно зажать + и подержать пока не запищит, чтобы чайник вошел в режим авторизации.

Показывает статус, а управлять не позволяет Та же ошибка Не удалось вызвать службу water_heater/set_operation_mode. Failed to connect to peripheral C3:95:1E:F4:0F:33, addr type: random

mavrikkk commented 4 years ago

1.встроенный блютус фигня...

  1. особенность работы линукса с блютусом в том, что работает он только от рута...соответственно, что за системы у вас? в каком окружении работает homeassistant? в контейнере как hassio? вручную ставили через virtual env? обычная установка? в каждом из этих случаев homeassistant работает по разному...самый предпочтительный вариант это hassOS или hassio...там homeassistant работает как контейнер в докере и запускает все от рута! в остальных случаях нужны правки. например, погуглите, как заставить работать блютус без рута... 3.если у вас модель 216 то да...там пока проблемы с неясными перспективами...
  2. если вы пишите о проблемах и надеетесь хоть на каой то адекватный ответ, то предоставляйте информацию о вашем железе, по, модели чайника и тд и тп...