Closed notabene00 closed 4 years ago
какой метод вызывается сразу после нажатия кнопки "Подтвердить"?
поясню идею. gatttool частенько не дает подключаться к неизвестным устройствам (у многих возникала подобная проблема) Для лечения этой ситуации достаточно выполнить эту команду timeout 1 hcitool lescan (чтобы hcitool увидел мак адрес устройства ДО первого коннекта к нему) Думал вставить ее вызов сразу после нажатия кнопки "Подтвердить", но до первого подключения.
Снова async_step_user
.
Первый вызов происходит с user_input=None
, а после нажатия кнопки, если схема валидна, то тот же метод вызывается со словарем введенных данных.
единственное НО эта команда либо требует РУТа ((( либо нужно предварительно разрешить малинке работать с блютусом без рут прав: sudo setcap cap_net_raw+ep /usr/bin/hcitool sudo setcap cap_net_raw+ep /bin/hciconfig
поэтому пока не знаю, как это реализовать удобно и без сторонних манипуляций...в стиле config flow ))
Перед этой строкой можно https://github.com/mavrikkk/ha_kettler/blob/01aa44446265cc35b26ccb007b88fb71bcc728f5/custom_components/r4s_kettler/config_flow.py#L78 На этот момент уже прошли все проверки на валидность. Мак, длина пароля.
не разрешаешь скан интервал меньше 60? )) некоторым не понравится. Думаю, лучше минимум на 30 поставить хотя бы
Да. Минимум минуту из-за предупреждения о том, что частый скан может вызвать проблемы. Сам не проверял. 30 так 30, я ничего против не имею :) Можно и единицу минимумом сделать. А там уж юзер - сам себе злобный Буратино, если выставил 1.
единственное НО эта команда либо требует РУТа (((
вот и мне кажется, что тут малой кровью обойтись не выйдет
хммм import check_output я так понимаю, это позволяет получать вывод консоли? Не знаешь внутренности этого метода? На чем он основан?
Просто я в самом модуле делаю почти тоже самое, только пользуюсь сторонним модулем import pexpect
может будет смысл переделать на стандартный для HA check_output
check_output
не для Home Assistant стандартный, а в стандартной библиотеке python
https://github.com/python/cpython/blob/master/Lib/subprocess.py#L377
поизучаю, спасибо
Делаем возможным выбрать только реально существующие hci_devices И избавляем пользователей от нужды вводить их руками