Серверная часть системы мониторинга глюкозы Diasync.
Очевидно, схема неполная, на ней не хватает некоторых связей. Например, XDrip и ребенка и родителя может писать в Nightscout. Но это сильно усложняет восприятие основных потоков данных, поэтому я оставил их за скобками.
flowchart LR
pump([Инсулиновая помпа])
sensor([Датчик сахара])
subgraph g_cloud[Google cloud]
firebase[Firebase]
end
subgraph phone_master[Телефон ребёнка]
juglucco[Juglucco]
xdrip_master[XDrip]
aaps_master[AAPS]
ds_master[Diasync]
end
subgraph server[Сервер]
ds_srv[Diasync Server]
nightscout[NightScout]
end
subgraph phone_slave[Телефон родителя]
ds_slave[Diasync]
aaps_slave[AAPS]
xdrip_slave[XDrip]
end
sensor --> juglucco --> xdrip_master
xdrip_master --> ds_master --> ds_srv --> ds_slave
xdrip_master -.-> aaps_master <-.-> nightscout <-.-> aaps_slave
xdrip_master <-.-> firebase <-.-> xdrip_slave
aaps_master -.-> pump
style ds_srv color: #FF8800
click juglucco href "https://www.juggluco.nl/"
click firebase href "https://firebase.google.com/"
click xdrip_master,xdrip_slave href "https://github.com/NightscoutFoundation/xDrip"
click aaps_master,aaps_slave href "https://github.com/nightscout/AndroidAPS"
click ds_master,ds_slave href "https://github.com/illepidus/diasync-android"
click nightscout href "https://github.com/nightscout/cgm-remote-monitor"
Поддерживается как GraphQL, так и REST API
В дополнение к основному приложению, реализован лёгкий web-фронтенд, доступный по пути /kiosk
| Параметр | Описание | По умолчанию |
|---|---|---|
| userId | Идентификатор пользователя | demo |
| period | Период отображения данных | 1h |
| low | Нижний порог уровня глюкозы в мг/дл | 70 |
| high | Верхний порог уровня глюкозы в мг/дл | 180 |
| stale | Время в минутах, после которого текущее значение считается устаревшим | 10 |
| unit | Единицы отображения: mmol или mgdl | mmol |
Если есть необходимость развернуть отдельную инсталляцию diasync server, предлагаются следующие шаги:
- Сделать fork этого репозитория
- Изменить .env файл
- Прописать секрет SSH_KEY в разделе Settings > Secrets and variables > Actions вашего репозитория
- Запустить Release workflow в вашем репозитории.
Минимальные требования к серверу:
- 1 CPU / 1GB memory / 10GB storage
- Ubuntu 24.04
- Пользователь должен иметь root права