Closed vrslev closed 2 years ago
Прям скопировал текст из исходника, может очепятка в букве где
Модель объекта вентилятора изменили только вчера. Наверное, ещё не успели обновить версию Home Assistant 😃 Коммит в документацию: https://github.com/home-assistant/developers.home-assistant/commit/6ebc02f268f74b2c82f351e1375588ff42e45a5f Коммит в ядро: https://github.com/home-assistant/core/commit/babfef829d866acf2c7e81e0d855feb2f106d1ce
на опережение работаем ) ну если до пн не обновят, то будем думать...
Хорошо. А проблема с добавлением нескольких устройств?
кроме вас мне никто не пишет. тестировать только вам. а у вас сейчас очиститель не работает из-за вашей же торопливой просьбы ) Напомню, что у мегя даже одного устройства нет, я вообще давно вслепую пишу. В пн продолжим по-порядку: сначала вернем очиститель к жизни в принципе, а потом будем искать причины отвалов, удалений
вроде вернул FAN на старые рельсы
Теперь вот так:
2021-02-01 11:14:26 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry f9:ae:7e:b4:9a:a6 for sensor
Traceback (most recent call last):
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/config_entries.py", line 321, in async_unload
result = await component.async_unload_entry(hass, self) # type: ignore
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/components/sensor/__init__.py", line 72, in async_unload_entry
return await hass.data[DOMAIN].async_unload_entry(entry)
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/helpers/entity_component.py", line 172, in async_unload_entry
raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!
2021-02-01 11:14:26 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry f9:ae:7e:b4:9a:a6 for light
Traceback (most recent call last):
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/config_entries.py", line 321, in async_unload
result = await component.async_unload_entry(hass, self) # type: ignore
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/components/light/__init__.py", line 270, in async_unload_entry
return await hass.data[DOMAIN].async_unload_entry(entry)
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/helpers/entity_component.py", line 172, in async_unload_entry
raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!
2021-02-01 11:14:26 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry f9:ae:7e:b4:9a:a6 for switch
Traceback (most recent call last):
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/config_entries.py", line 321, in async_unload
result = await component.async_unload_entry(hass, self) # type: ignore
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/components/switch/__init__.py", line 78, in async_unload_entry
return await hass.data[DOMAIN].async_unload_entry(entry)
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/helpers/entity_component.py", line 172, in async_unload_entry
raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!
2021-02-01 11:14:26 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry f9:ae:7e:b4:9a:a6 for fan
Traceback (most recent call last):
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/config_entries.py", line 321, in async_unload
result = await component.async_unload_entry(hass, self) # type: ignore
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/components/fan/__init__.py", line 105, in async_unload_entry
return await hass.data[DOMAIN].async_unload_entry(entry)
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/helpers/entity_component.py", line 172, in async_unload_entry
raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!
2021-02-01 11:14:26 ERROR (MainThread) [homeassistant.config_entries] Error calling entry remove callback f9:ae:7e:b4:9a:a6 for ready4sky
Traceback (most recent call last):
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/config_entries.py", line 356, in async_remove
await component.async_remove_entry(hass, self) # type: ignore
File "/home/homeassistant/.homeassistant/custom_components/ready4sky/__init__.py", line 95, in async_remove_entry
hass.data[DOMAIN]["devices"].pop(entry.entry_id)
KeyError: 'devices'
2021-02-01 11:15:24 ERROR (SyncWorker_2) [custom_components.ready4sky] unable to connect to device
2021-02-01 11:15:38 ERROR (SyncWorker_2) [custom_components.ready4sky] unable to connect to device
2021-02-01 11:15:52 ERROR (SyncWorker_2) [custom_components.ready4sky] unable to connect to device
2021-02-01 11:16:06 ERROR (SyncWorker_2) [custom_components.ready4sky] unable to connect to device
2021-02-01 11:16:19 ERROR (SyncWorker_2) [custom_components.ready4sky] unable to connect to device
2021-02-01 11:16:29 WARNING (SyncWorker_2) [custom_components.ready4sky] five attempts of firstConnect failed
unload error - потому что мозги поменялись. Ему не удалось выгрузить старые элементы, так как ссылка на них уже другая
На время тестов правильно делать так:
можно 2 и 3 объединить в пункт - обновляем интеграцию с HACS или вручную. Но все же лучше как я выше написал.
Работает, спасибо за работу!
Чисто эстетический момент: можно поменять иконки (fan — air-purifier и switch — atom-variant). Также можно поменять «Устройство» на Air Purifier, а модель на RAC-3706S.
Пока ничего не придумали, как поступить, если больше одного устройства?
Немного потестил и выявил проблему. Каждый ~5 раз, когда пытаюсь переключить режим или выключить/включить, режим меняется на нынешний, и он не переключается на нужный мне.
ничего не понял ни из слов, ни из видео ( Более разжевано. И с логом (если там есть что то)
Допустим, я хочу выключить очиститель. Выключаю (через HomeKit или фронтенд HA — без разницы), ничего не происходит. То есть сначала очиститель якобы выключается, а через несколько секунд тумблер возвращается в обратное положение. И со второй только попытки у меня получается выключить. На скрине выключаю очиститель, но он не выключается. Ещё раз — теперь сработало:
теперь понял. А что в логах то пишется в этот момент? потестируйте еще. и скиньте. Заоодно посмотрите, удаляется ли устройство при добавлении второго? и тоже логи
В логе проблемы с подключением:
2021-02-02 13:07:21 WARNING (SyncWorker_1) [custom_components.ready4sky] five attempts of modeUpdate failed
2021-02-02 13:21:37 WARNING (SyncWorker_2) [custom_components.ready4sky] five attempts of modeFan failed
2021-02-02 13:22:03 WARNING (SyncWorker_0) [custom_components.ready4sky] five attempts of modeOff failed
2021-02-02 13:22:04 WARNING (SyncWorker_3) [custom_components.ready4sky] five attempts of modeUpdate failed
2021-02-02 14:21:19 WARNING (SyncWorker_2) [custom_components.ready4sky] five attempts of modeFan failed
2021-02-02 14:21:19 ERROR (SyncWorker_4) [custom_components.ready4sky] unable to connect to device
2021-02-02 14:21:22 WARNING (SyncWorker_1) [custom_components.ready4sky] five attempts of modeFan failed
2021-02-02 14:21:24 ERROR (SyncWorker_4) [custom_components.ready4sky] unable to connect to device
2021-02-02 14:21:26 WARNING (SyncWorker_0) [custom_components.ready4sky] five attempts of modeFan failed
2021-02-02 14:21:26 WARNING (SyncWorker_4) [custom_components.ready4sky] five attempts of modeUpdate failed
2021-02-02 14:21:34 WARNING (SyncWorker_3) [custom_components.ready4sky] five attempts of modeUpdate failed
Добавил чайник, перезагрузил HA. Очиститель снова удалился и добавился как чайник.
2021-02-02 15:02:13 ERROR (SyncWorker_2) [custom_components.ready4sky] unable to know the type of device...use default
2021-02-02 15:03:18 ERROR (SyncWorker_8) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:18 ERROR (SyncWorker_8) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:20 ERROR (SyncWorker_8) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:20 ERROR (SyncWorker_8) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:21 ERROR (SyncWorker_8) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:21 WARNING (SyncWorker_8) [custom_components.ready4sky] five attempts of modeUpdate failed
2021-02-02 15:03:27 ERROR (SyncWorker_4) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:28 ERROR (SyncWorker_4) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:28 ERROR (SyncWorker_4) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:28 ERROR (SyncWorker_4) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:29 ERROR (SyncWorker_4) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:29 WARNING (SyncWorker_4) [custom_components.ready4sky] five attempts of modeUpdate failed
2021-02-02 15:03:37 ERROR (SyncWorker_8) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:38 ERROR (SyncWorker_8) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:38 ERROR (SyncWorker_8) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:38 ERROR (SyncWorker_8) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:39 ERROR (SyncWorker_8) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:39 WARNING (SyncWorker_8) [custom_components.ready4sky] five attempts of modeUpdate failed
2021-02-02 15:03:47 ERROR (SyncWorker_6) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:48 ERROR (SyncWorker_3) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:48 ERROR (SyncWorker_3) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:49 ERROR (SyncWorker_3) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:49 ERROR (SyncWorker_3) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:50 ERROR (SyncWorker_3) [custom_components.ready4sky] unable to connect to device
2021-02-02 15:03:50 WARNING (SyncWorker_3) [custom_components.ready4sky] five attempts of modeUpdate failed
по поводу глюков, мне нужно от вас 2 отдельных лога с тлф.
1 лог:
2 лог:
по поводу отвала мне нужно от вас несколько видом данных: в папке с конфигом HA есть скрытая папка ".storage". Алгоритм такой:
удаляете все интеграции Redmond, перезагружаете HA.
добавляете любую интеграцию (чайник или очиститель)
смотрите содержимое файла "core.config_entries" и ищите там конфиг подключенного устройства
копируете относящееся к устройству в отдельный текстовый файл, с подписью, что это конфиг 1 устройства (чувствительные данные можете обезличить, типа мак адреса, пароля)
смотрите содержимое файла "core.device_registry" и ищите там конфиг подключенного устройства
копируете относящееся к устройству в отдельный текстовый файл, с подписью, что это конфиг 1 устройства (чувствительные данные можете обезличить, типа мак адреса, пароля)
смотрите содержимое файла "core.entity_registry" и ищите там все элементы подключенного устройства
копируете относящееся к устройству в отдельный текстовый файл, с подписью, что это конфиг 1 устройства (чувствительные данные можете обезличить, типа мак адреса, пароля)
добавляете второе устройство
повторяете пункты 3-8, только теперь для двух устройств соответственно.
перезагружаете HA и наблюдаете как одно из устройств отвалилось
повторяете пункты 3-8, копируя все, что осталось
шлете эти файлы сюда
я хочу понять, почему отвал идет, то ли он не туда записывает данные, то ли еще что.
Сделал в точности, как вы написали btsnoop_hci-2.log btsnoop_hci-1.log
1_core.config_entries.txt 1_core.device_registry.txt 1_core.entity_registry.txt
2_core.config_entries.txt 2_core.device_registry.txt 2_core.entity_registry.txt
3_core.config_entries.txt 3_core.device_registry.txt 3_core.entity_registry.txt
попробуйте обновить версию и проверить отвал. Вроде я нашел, почему оставалось только 1 устройство
Только не забудьте, удалить устройства, удалить интеграцию, перезагрузить HA, обновить, подключить, проверить
Теперь не добавляются объекты:
2021-02-03 12:46:26 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry cb:77:d2:f5:ad:8c for ready4sky
Traceback (most recent call last):
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/config_entries.py", line 236, in async_setup
result = await component.async_setup_entry(hass, self) # type: ignore
File "/home/homeassistant/.homeassistant/custom_components/ready4sky/__init__.py", line 67, in async_setup_entry
hass.data[DOMAIN][config_entry.entry_id] = kettler
KeyError: 'ready4sky'
2021-02-03 12:47:12 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry f9:ae:7e:b4:9a:a6 for ready4sky
Traceback (most recent call last):
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/config_entries.py", line 236, in async_setup
result = await component.async_setup_entry(hass, self) # type: ignore
File "/home/homeassistant/.homeassistant/custom_components/ready4sky/__init__.py", line 67, in async_setup_entry
hass.data[DOMAIN][config_entry.entry_id] = kettler
KeyError: 'ready4sky'
Это уже лучше )) Обновите и попробуйте добавить 1 устройство...потом 2.
В логах должны быть строки: error('TEST') еще что то error('END TEST')
интересуют эти строки
Вот, что в логе:
2021-02-03 14:23:58 ERROR (MainThread) [custom_components.ready4sky] TEST
2021-02-03 14:23:58 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry cb:77:d2:f5:ad:8c for ready4sky
Traceback (most recent call last):
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/config_entries.py", line 236, in async_setup
result = await component.async_setup_entry(hass, self) # type: ignore
File "/home/homeassistant/.homeassistant/custom_components/ready4sky/__init__.py", line 68, in async_setup_entry
_LOGGER.error(str(hass.data[DOMAIN]))
KeyError: 'ready4sky'
2021-02-03 14:27:21 ERROR (MainThread) [custom_components.ready4sky] TEST
2021-02-03 14:27:21 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry f9:ae:7e:b4:9a:a6 for ready4sky
Traceback (most recent call last):
File "/srv/homeassistant/homeassistant/lib/python3.9/site-packages/homeassistant/config_entries.py", line 236, in async_setup
result = await component.async_setup_entry(hass, self) # type: ignore
File "/home/homeassistant/.homeassistant/custom_components/ready4sky/__init__.py", line 68, in async_setup_entry
_LOGGER.error(str(hass.data[DOMAIN]))
KeyError: 'ready4sky'
никак не могу поймать значение ((
попробуйте обновить...логи сюда
Добавил чайник:
2021-02-03 16:20:46 ERROR (MainThread) [custom_components.ready4sky] except
Потом добавил очиститель:
2021-02-03 16:21:54 ERROR (MainThread) [custom_components.ready4sky] try
После перезагрузки:
2021-02-03 16:23:12 ERROR (SyncWorker_1) [custom_components.ready4sky] unable to know the type of device...use default
2021-02-03 16:23:20 ERROR (MainThread) [custom_components.ready4sky] except
2021-02-03 16:23:28 ERROR (MainThread) [custom_components.ready4sky] try
еще лучше (в хорошем смысле) а устройство удалилось после перезагрузки? или оба остались?
Как и раньше. Чайник остался, а очиститель выглядит вот так:
мы где то рядом ) но удаленная отладка, да еще и не мгновенная - это жесть. попробуйте обновить и проверить )
Теперь второе устройство не отваливается! Но в логе всё равно появляется информация о использовании дефолтного (хотя по факту всё работает как надо: новые объекты не добавляются, старые не удаляются).
2021-02-03 17:50:10 ERROR (SyncWorker_0) [custom_components.ready4sky] unable to know the type of device...use default
2021-02-03 17:51:11 WARNING (SyncWorker_5) [homeassistant.components.homekit.util] ['01', '02', '03', '04', '05', '06'] does not contain the speed setting off as its first element. Assuming that 01 is equivalent to 'off'
2021-02-03 17:51:26 WARNING (SyncWorker_0) [custom_components.ready4sky] five attempts of modeUpdate failed
2021-02-03 17:51:51 ERROR (SyncWorker_3) [custom_components.ready4sky] unable to connect to device
2021-02-03 17:51:53 WARNING (SyncWorker_6) [custom_components.ready4sky] five attempts of modeFan failed
2021-02-03 17:51:58 WARNING (SyncWorker_4) [custom_components.ready4sky] five attempts of modeOff failed
2021-02-03 17:52:23 WARNING (SyncWorker_0) [custom_components.ready4sky] five attempts of modeFan failed
2021-02-03 17:52:32 WARNING (SyncWorker_1) [custom_components.ready4sky] five attempts of modeUpdate failed
Правильно понимаю, вы ещё не смотрели логи Bluetooth по очистителю?
отлично, что не отваливается!
подумаю, почему ошибка про дефолт вылазит...она не очень хорошая...ибо она вылазит тогда, когда по имени не получается тип определить, и ставит по умолчанию тип 1. вам повезло, так как ваш чайник с подсветкой, как раз тип 1... а что будет, если тип не совпадет? попробуйте удалить все устройства и добавить их в таком порядке, который раньше приводил к удалению чайника и оставанию только очистителя после перезагрузки...и посмотрите, правильный ли тип будет у очистителя...
есть еще некоторые мысли, но это уже с компа нужно...с тлф править код - то еще удовольствие.
да, логи блютуса еще не смотрел, я хочу там логику в любом случае переделать, будет и быстрее и нвдежнее
Без разницы в каком порядке добавляю: сначала очиститель или чайник. И в том, и в другом случае ничего не отваливается 😃
супер. тогда последняя просьба. удалите обе интеграции, потом подключите только 1 очиститель... перезагрузите НА. хочу посмотреть, будет ли ошибка в определении устройства в этом случае
Попробовал. Ошибки нет
я убрал защиту с модуля определения типа...по идее ошибка должна стать намного информативнее и ярче )) попробуйте обновить, подключить 2 устройства, перезагрузить HA и сюда логи пришлите.
Удалился очиститель 🤔 2021-02-04 09:48:38 ERROR (MainThread) [custom_components.ready4sky] Connect to cb:77:d2:f5:ad:8c through device hci0 failed
это не то. Он не удалился,а не смог подключиться к нему при инициализации. Это собственно и не ошибка. Почему то не удалось подключиться.
2021-02-03 17:51:53 WARNING (SyncWorker_6) [custom_components.ready4sky] five attempts of modeFan failed 2021-02-03 17:51:58 WARNING (SyncWorker_4) [custom_components.ready4sky] five attempts of modeOff failed 2021-02-03 17:52:23 WARNING (SyncWorker_0) [custom_components.ready4sky] five attempts of modeFan failed 2021-02-03 17:52:32 WARNING (SyncWorker_1) [custom_components.ready4sky] five attempts of modeUpdate failed
в принципе судя по ошибкам выше, у вас все не очень хорошо с коннектом. Используете встроенный блютус малинки? Какое расстояние между устройством и очистителем? Насколько забит канал 2,4 в эфире?
Я убрал защиту только в модуле определения типа устройства, а у вас даже не дошло до этого.
Пробуйте еще
В логе bluetoothctl очиститель постоянно то подключается, то отключается (это когда очиститель есть в HA)
[CHG] Device CB:77:D2:F5:AD:8C Connected: no
[CHG] Device CB:77:D2:F5:AD:8C Connected: yes
[CHG] Device CB:77:D2:F5:AD:8C Connected: no
[CHG] Device CB:77:D2:F5:AD:8C Connected: yes
[CHG] Device CB:77:D2:F5:AD:8C Connected: no
[CHG] Device CB:77:D2:F5:AD:8C Connected: yes
После перезагрузки HA теперь доступен чайник и в логе ситуация поменялась. Теперь чайник подключается-отключается:
[CHG] Device F9:AE:7E:B4:9A:A6 Connected: yes
[CHG] Device F9:AE:7E:B4:9A:A6 Connected: no
[CHG] Device F9:AE:7E:B4:9A:A6 Connected: yes
[CHG] Device F9:AE:7E:B4:9A:A6 Connected: no
[CHG] Device F9:AE:7E:B4:9A:A6 Connected: yes
[CHG] Device F9:AE:7E:B4:9A:A6 Connected: no
[CHG] Device F9:AE:7E:B4:9A:A6 Connected: yes
Помимо очистителя и чайника на Bluetooth Raspberry Pi у меня повешено 5 датчиков влажности и температуры.
В логе bluetoothctl очиститель постоянно то подключается, то отключается (это когда очиститель есть в HA)
в принципе тут нет ничего криминального. подключение происходит ТОЛЬКО в момент исполнения команд: либо обновление статуса по таймеру, либо когда вы тыкаете какуюнть команду в интерфейсе HA
Помимо очистителя и чайника на Bluetooth Raspberry Pi у меня повешено 5 датчиков влажности и температуры.
А вот это жуть )) И как оно должно отрабатывать? они ж все дерутся за право заюзать модуль. Думаю, поэтому и частые ошибки в логах.
Однако ж меня все же интересует первоначальная ошибка:
unable to know the type of device...use default
Куда она делась?
А значение частоты обновления, указанного при первоначальной настройке устройства влияет на процесс инициализации? Я почти всегда ставил 10 секунд.
Датчики температуры и влажности подключены через интеграцию ble_monitor, которая позволяет подключить датчики пассивно. То есть информацию она берёт из пакетов, которые эти датчики посылают — без постоянно подключения к ним.
Попробовал убрать интеграцию с датчиками. Почистил интеграцию, перезагрузился, добавил чайник с очистителем и снова перезагрузился. Результат тот же: один из девайсов отвалился
Однако ж меня все же интересует первоначальная ошибка:
unable to know the type of device...use default
Куда она делась?
Вы же в последнем коммите закомментили этот кусок кода:
#except:
#_LOGGER.error('unable to know the type of device...use default')
Попробовал убрать интеграцию с датчиками. Почистил интеграцию, перезагрузился, добавил чайник с очистителем и снова перезагрузился. Результат тот же: один из девайсов отвалился
Это прям жесть какая то ))
Вы же в последнем коммите закомментили этот кусок кода:
Специально...для того, чтобы вместо unable to know the type of device...use default я получил полноценный exception от самого HA. С кучей строк и тд и тп. И я не понимаю, почему эта ошибка пропала в никуда.
Я так понимаю, что поэтому у вас и отваливается 2 устройство. Первый раз все проходит как надо. А во второй он не может ПОЧЕМУ-ТО определить тип устройства и вылетает. Когда был try except, то он не вылетал, а дефолт возвращал. Вопрос только в том, почему эта ошибка вылета не отобразилась у вас в логе?
Сделайте мне снова вот так:
Файлы из .storage
Удалил все интеграции, перезагрузился и добавил очиститель 1_core.config_entries.txt 1_core.device_registry.txt 1_core.entity_registry.txt
Добавил чайник 2_core.config_entries.txt 2_core.device_registry.txt 2_core.entity_registry.txt
Перезагрузился 3_core.config_entries.txt 3_core.device_registry.txt 3_core.entity_registry.txt
с файлами полный порядок. все идеально. остаётся одно предположение: я искусственно обернул синхронную библиотеку в асинхронные вызовы ( синхронные выполняются строго по порядку и следующий обязательно после предыдущего. асинхронные могут выполняться параллельно. HA при старте запускает подключение обоих твоих устройств параллельно. второе вылетает, так как первое уже заняло сканирование устройств.
я видел настоящую асинхронную библиотеку блютус, но она не завелась на hassio (кстати, если есть что на примете - делитесь)
либо делать ее полностью синхронной (тогда возможны подтормаживания интерфейса вплоть до 5 сек, так как ha ждёт завершения команды, чтобы обновить статус)
либо как то разделять их во времени старта и обновления.
кстати, если вы говорите что в ha логе ничего нет, то попробуйте посмотреть в других логах...в частности: HA - supervisor - system. там несколько разных log provider. может там что то всплывает
Не нашёл никаких других логах нигде. У меня Home Assistant Core (в виртуальной среде Python). Искал в /home/homeassistant и в /srv
либо как то разделять их во времени старта и обновления.
На мой взгляд это самый лучший вариант в этой ситуации. Но опять же, решать вам :)
Вы изучали, как обстоит ситуация с другими кастомными компонентами сейчас в HA? Имею ввиду именно сейчас, а не когда создавали интеграцию
Вы изучали, как обстоит ситуация с другими кастомными компонентами сейчас в HA?
Мне нужен именно блютус! А все блютус интеграции (неважно родные или сторонние) основаны либо на датчиках (им не нужно команды отдавать, только читать притом 1 командой), либо (например, встроенный в HA Термостат) имеют намного более простую структуру команд (можете посмотреть тут https://github.com/rytilahti/python-eq3bt/tree/master/eq3bt), а редмонд сильно запарился, например запуск вашего очистителя состоит из: коннект; посылка пакета на секретный хендл, иначе чайник не будет никогда ничего отвечать;отправка пароля; получение ответа (авторизоан или нет); отправка команды установки скорости (почему то состоит из двух последовательных команд, поэтому кстати в первый раз скорость не завелась); установка состояния ионизатора;команда включения; команда запроса статуса; чтение ответа статуса (чтобы узнать, что все сработало); дисконнект. Посчитайте количество команд.
Но, кстати, именно у термостата я взял основу (коннекты, коллбеки).
Вот классная библиотека асинхронная (https://pypi.org/project/bleak/), но она не собирается в hassio, только в homeassistant.
С текущей библиотекой есть одна серьезная проблема кроме синхронности:
https://github.com/mavrikkk/ha_kettler/issues/31
https://github.com/IanHarvey/bluepy/issues/239
Пока что у меня есть одна идея, как слегка разогнать интеграцию, что должно классно отразиться на производительности, но это нужно пробовать, не помещая все в основную ветку (ибо вслепую пишу). А перед этим надо подумать, как разделить одновременный запуск устройств.
Однако, если у вас есть конкректные предложения и идеи, то велкам.
Я новичок во всей этой теме, идей нет)
Меня настораживает, что необходимо добавлять интеграцию несколько раз. Нельзя это организовать другим путём? Одна интеграция и несколько устройств. В таком случае можно будет сделать задержку на подключение второго и последующих устройств?
Меня настораживает, что необходимо добавлять интеграцию несколько раз.
Это правильный "нативный" подход HA. Попробуйте, например, добавить интеграцию certificate expire. Для каждого сертификата добавлять заново, что логично: интеграция одна, а устройств несколько и каждое добавляется отдельно.
Одна интеграция и несколько устройств.
Вы наверное хотели сказать одна интеграция (она и так одна), ОДНО устройство и НЕСКОЛЬКО платформ? Это в корне неверный подход, нужно разделять физические устройства, что прямо написано в мануалах HA, посмотрите ту же интеграцию mobile app например.
В таком случае можно будет сделать задержку на подключение второго и последующих устройств?
Если все же плюнуть и сделать 1 устройство? Тогда да получится последовательно подключать, ОДНАКО, одно устройство физически невозможно сделать (ну ладно, скорее почти невозможно и очень колхозно, да и громоздкое очень будет, памяти и времени при подключении сожрет очень много), ибо у каждого из них с одной стороны разный, а с другой пересекающийся набор параметров и команд.
Нет, вы меня не поняли. Одна интеграция, несколько устройств, для каждого устройства свои объекты. Сейчас: по интеграции на каждое устройство
I have this air purifier and with your integration in connects as kettle :) How can I contribute to project so it'd support this?