Подскажите, пожалуйста. Насколько я понял из настроек, максимальное время между передачей данных в режиме Advertising составляет 10 сек.
При Advertising interval больше 2-х секунд соединение с BLE устройством проблематично. 10 секунд -это предельное по спецификации BLE.
Т.е. не все устройства смогут соединиться если интервалы больше или меньше определенных. Особенно плохо с устройствами от Apple.
Примеры рекомендаций для устройств Apple:
Выбор подходящих параметров подключения для устройств Apple:
https://docs.silabs.com/bluetooth/l...table-connection-parameters-for-apple-devices
Рекомендации по дизайну аксессуаров для устройств Apple:
https://developer.apple.com/accessories/Accessory-Design-Guidelines.pdf
Запрос параметра подключения может быть отклонен, если он не соответствует всем этим правилам:
- Периферийная задержка ≤30
- 2 секунды ≤ connSupervisionTimeout ≤ 6 секунд
- Интервал Мин. По модулю 15 мс == 0
- Интервал Мин. ≥15 мс
- Одно из следующих:
- Мин. Интервал + 15 мс ≤ Макс. Интервал
- Мин. Интервал == Макс. Интервал == 15 мс
- Максимальный интервал * (Периферийная задержка + 1) ≤ 2 секунды
- Максимальный интервал * (Периферийная задержка + 1) * 3 <connSupervisionTimeout
-------
Для самых малопотребляющих - Маяков, обычно устанавливают Advertising interval до 3-х секунд. Иначе тоже беда с приемом инфы с них в режиме Advertising на Андроид.
Какие настройки в этом режиме позволят максимально снизить потребление устройства.
Кастомная прошивка уже настроена на минимально-оптимальные значения.
После подключения наблюдаю такие показания при установке пролежавших 10 лет CR2032: при подключении было 30%, через неделю 67%, ещё через неделю 69%. При подключении напряжение составляло около 2-х вольт, а ныне ползет к 3В. Это по показаниям прошивки и тестера. Таких элементов у меня много
Средний ток измерен с точностью 10% (т.к. возможны разные условия, включая напряжения у элемента) и составляет описанные на git цифры.
Пока я вижу динамику - 20% заряда батареи в неделю.
Это у официальной прошивки и при постоянном соединении с кривым ПО, которое не умеет работать с BLE - принудительно устанавливает короткий cотnection interval и latency в 0.
Это относится, к примеру, к
https://play.google.com/store/apps/details?id=com.smrtprjcts.mijiabt
Доп. примеры измерений потребления у оригиналов от Xiaomi (для аналога MHO-C401) даны в
https://pvvx.github.io/MHO_C401/power_original.html
Для XiaomiLYWSD03MMC описаны на данном форуме...
Потребление считается просто - делите емкость в мА*ч на среднее потребление и получаете часы работы.
А я пока жду не дождусь альтернативных измерений...