SugarLife — объяснения

Почему приложение ведёт себя именно так и чем платят настройки

View the Project on GitHub iMironRU/sugarlife-wiki

Всё зелёное, а числа старые

Бывает так: связь есть, ошибок нет, приложение выглядит исправным — а сахар на экране получасовой давности.

Это не поломка связи. Это третье состояние, и оно единственное, которое выглядит как исправность.

Три разные беды, которые легко перепутать

что видит человек где искать
«нет связи» сеть, Wi-Fi, мобильный интернет
всё работает, кроме нас белый список сети, VPN, токен
всё зелёное, числа старые другое устройство

Первые две мы называем прямо. Третья до недавнего времени молчала — и человек искал поломку там, где её нет.

Почему это чужая беда

Когда данные идут через облако (Nightscout), в цепочке два конца. На одном — загрузчик: телефон или программа, которая читает сенсор и складывает показания в облако. На другом — мы: читаем то, что там лежит.

Если встал загрузчик, облако продолжает исправно отвечать. Просто отвечает старым. С нашей стороны это неотличимо от полного здоровья — кроме одного: числа не меняются.

Что мы теперь говорим

«Похоже, встала программа, которая туда пишет». В облаке нет ни свежих показаний, ни отчётов загрузчика о себе. Смотреть надо на тот телефон: заряд, интернет, само приложение. Наше приложение здесь ни при чём.

«Загрузчик на связи, а показаний в него не приходит». Он жив и пишет о себе — значит потерян сенсор на его стороне: отвалился, кончился, ушёл из эфира. Смотреть надо на прибор.

«Числа не обновляет тот, кто их туда пишет». Показаний нет, а про загрузчик мы ничего не знаем — так бывает, когда из облака взят только поток сахара. Говорим ровно то, что видим, и не догадываемся.

Различие между первыми двумя стоит получаса поисков, а ночью — ночи.

Сколько ждём, прежде чем сказать

Пятнадцать минут — или три такта источника, если он реже.

Меньше нельзя: загрузчик, отставший на десять минут, обычно догоняет пачкой, и объявлять его вставшим в этот момент значит поднимать человека на ровном месте. При прямой связи с прибором порог другой — три минуты, — потому что там молчание означает совсем другое.

Заодно мы пробуем починить это сами

Соединение бывает живым и мёртвым одновременно: держится, а данные по нему не идут, и ошибки при этом нет. Такое соединение само никогда не восстановится — ждать оно будет вечно.

Поэтому пятнадцать минут тишины при живой связи — это ещё и повод пересобрать подписку, даже если формально всё цело. Обычно это лечит. Если не помогло, повторяем реже: через полчаса, потом раз в час. Когда чужой телефон разряжен, наши попытки не помогут ничем, а заряд и трафик они тратят.

Если загрузчик пишет о себе — не пересобираем: наш канал в порядке, чинить нечего.

Смотрите также: прямая связь и облако, такт источника, режим попутчика.