Проекты GitHub SourceForge |
BtMesh /
HomeassistantBtMeshБэклогФичи
История09.07.2025 Блокирование очереди при опросе узлов.Из-за этого, ответы на get-запросы приходят большим опозданиям и меняют текущее состояние на устаревшее. Выяснилось, что никакой блокировки нет. Установка логов на прием сообщений и их передачи в DBus сервером bluetooth-meshd, показало, что сообщения, переданные DBbus сразу же попадают в обработчики Home Assistant. Сообщения не задерживаются а полностью теряются: не то при отправке (что, скорее всего), не то при приеме. Использование нового сетевого контроллера на базе NFR53831 серьезно улучшило ситуацию, но из-за того, что передача пакетов происходит по последовательному порту и в канале хост->контроллер отсутствует аппаратный контроль передачи, имеется значительные потери. Теоретически, они компенсируются на более высоком уровне с помощью механизма подтверждения, но, возможно, не всегда эффективно. В качестве проверки теории идет разработка нового сетевого контроллера на базе NRF52840, у которого имеется USB контроллер и он не нуждается в последовательном порте для передачи данных. 04.08.2025 Эксперименты с новым контроллером на NRF52840На данный момент разработан прототип контроллера сети, который использует "честный" USB, вместо последовательного интерфейса. Были получены следующие неутешительные результаты:
И тут всплывает недостаток текущей схемы реализации интеграции в HA, когда каждому устройству отправляется запрос GET, как только HA понадобятся от него данные: количество запросов в единицу времени сильно превышает возможности контроллера. Пакеты копятся в очереди, которая только растет и никогда не "рассасывается". Поэтому интеграция и meshd виснут. Необходимо пересмотреть схему получения данных о состоянии узлов:
Ссылки: |