store-and-forward-module
Обзор
С помощью этого модуля клиентское устройство может запросить у специального сервера Store & Forward повторную отправку текстовых сообщений после того, как клиент временно вышел из зоны действия LoRa mesh-сети. Начиная с версии прошивки 2.4, при подключении к серверу Store & Forward с помощью клиентского приложения история автоматически загружается, и она будет значительно больше, чем стандартный кэш примерно 30 пакетов на устройстве.
:::info Только устройства на базе ESP32 с встроенной PSRAM, такие как T-Beam и T3S3, могут быть сервером Store & Forward. :::
Когда клиентское устройство запрашивает историю у сервера Store & Forward, он повторно отправит по LoRa полученные текстовые сообщения. Сервер вернёт только сообщения в пределах временного окна, запрошенного клиентом, до максимального количества сообщений, настроенного для сервера. Сервер не знает, какие сообщения клиент действительно пропустил, поэтому возможно получение дубликатов.
:::important Будьте осторожны при запросе истории, поскольку сервер может отправить много сообщений, что временно нагрузит вашу mesh-сеть. Запрос истории по LoRa недоступен на канале по умолчанию для публичного использования. :::
Подробности
Как это работает

Требования
Первоначальные требования для сервера Store and Forward:
- Серверы Store & Forward предназначены для постоянной работы онлайн. Если модуль пропустит какие-либо сообщения, надёжность хранимых сообщений снизится.
- Устройство на базе процессора ESP32 с встроенной PSRAM (T-Beam > v1.0, T3S3 и возможно другие).
Обзор использования
-
Для использования/тестирования по LoRa потребуется минимум 3 устройства:
-
Одно устройство ESP32 с PSRAM, настроенное как
ROUTERили с установленнымstore_forward.is_server. -
Два других — обычные клиенты. Если один клиент отправит текстовое сообщение, когда другой вне зоны, второй сможет запросить историю у сервера, чтобы получить пропущенное сообщение по возвращении в зону.
-
Для использования/тестирования с клиентским приложением потребуется минимум 2 устройства:
- Одно устройство ESP32 с PSRAM, настроенное как
ROUTERили с установленнымstore_forward.is_server. - Одно другое устройство, отправляющее текстовые сообщения, когда приложение не подключено к серверу Store & Forward. При подключении приложения к серверу история автоматически загрузится.
Настройка сервера
- Настройте устройство как
ROUTERили установитеstore_forward.is_server true. - Назовите узел сервера так, чтобы его было легко идентифицировать, напр. "Base Node (S&F)".
- Настройте модуль Store and Forward
shell title="Required - Enable the module"
meshtastic --set store_forward.enabled true
shell title="Optional - Disable sending heartbeat."
meshtastic --set store_forward.heartbeat false
:::tip Лучше отключить heartbeat (отправляется каждые 15 минут), чтобы уменьшить трафик сети, если вы хотите получать историю только при подключении приложения к серверу или когда все клиентские устройства идентифицировали сервер. :::
Использование на клиенте
Сейчас реализовано в приложениях Android и Apple версии 2.2.23 и выше. Чтобы запросить историю у сервера Store & Forward, в Android отправьте ему прямое сообщение с текстом "SF" (без кавычек). Сервер ответит запрошенными сообщениями. Приложения Apple также покажут в списке узлов, является ли узел сервером Store & Forward, после получения heartbeat. Затем долго нажмите на узел и выберите "Client History" для запроса истории.
С версии 2.4 при подключении непосредственно к серверу Store & Forward история текстовых сообщений автоматически загрузится и отобразится в приложении.
Настройки
Включено
Включает модуль.
Heartbeat
Сервер Store & Forward периодически отправляет сообщение в сеть. Это позволяет подключённым устройствам знать, что сервер в зоне действия и слушает входящие сообщения. Клиент вроде Android, iOS или Web (если поддерживается) может указать пользователю, доступен ли сервер Store & Forward.
Максимум возвращаемой истории
Устанавливает максимальное количество сообщений, возвращаемых клиентскому устройству при запросе истории.
Окно возвращаемой истории
Ограничивает период времени (в минутах), который может запросить клиентское устройство.
Записи
Установите максимальное количество записей, которые сохранит сервер. Лучше оставить по умолчанию (0), тогда модуль использует 2/3 доступной PSRAM устройства. Это около 11 000 записей.
Является сервером
Установите в true, чтобы настроить узел с PSRAM как сервер Store & Forward для хранения и пересылки сообщений. Это альтернатива настройке узла как ROUTER и доступно только с 2.4.
Доступность конфигурации модуля Store & Forward для клиентов
<Icon icon="mdi:android" height="1.5rem" style={{ marginRight: "0.25rem" }} /> Android
</>
),
value: "android",
},
{
label: (
<>
<Icon icon="mdi:apple" height="1.5rem" style={{ marginRight: "0.25rem" }} /> Apple
</>
),
value: "apple",
},
{
label: (
<>
<Icon icon="mdi:terminal" height="1.5rem" style={{ marginRight: "0.25rem" }} /> CLI
</>
),
value: "cli",
},
{
label: (
<>
<Icon icon="mdi:internet" height="1.5rem" style={{ marginRight: "0.25rem" }} /> Web
</>
),
value: "web",
},
]}>
Android
:::info Параметры конфигурации Store and Forward доступны для Android.
- Откройте приложение Meshtastic
- Перейдите в: Вертикальное многоточие (3 точки справа сверху) > Конфигурация радио > Store & Forward
:::
Apple
:::info Все параметры конфигурации модуля Store & Forward доступны в iOS, iPadOS и macOS в Settings > Module Configuration > Store & Forward. :::
CLI
| Setting | Acceptable Values | Default |
|---|---|---|
| store_forward.enabled | true, false |
false |
| store_forward.heartbeat | true, false |
false |
| store_forward.history_return_max | integer |
0 (25 messages) |
| store_forward.history_return_window | integer |
0 (240 minutes) |
| store_forward.records | integer |
0 (≈11,000 records) |
| store_forward.is_server | true, false |
false |
:::tip
Поскольку устройство перезагрузится после каждой отправленной команды через CLI, рекомендуется при установке нескольких значений в разделе конфигурации объединять команды в одну.
```shell title="Example:" meshtastic --set store_forward.enabled true --set store_forward.history_return_max 0
:::
##### Примеры использования CLI
```shell title="Enable the module"
meshtastic --set store_forward.enabled true
```shell title="Disable the module" meshtastic --set store_forward.enabled false
```shell title="Set node as server"
meshtastic --set store_forward.is_server true
```shell title="Set store_forward.heartbeat to default" meshtastic --set store_forward.heartbeat 0
```shell title="Set store_forward.history_return_max to default (25 messages)"
meshtastic --set store_forward.history_return_max 0
```shell title="Set store_forward.history_return_max to 100 messages" meshtastic --set store_forward.history_return_max 100
```shell title="Set store_forward.history_return_window to default (240 minutes)"
meshtastic --set store_forward.history_return_window 0
```shell title="Set store_forward.history_return_window to 1 day (1440 minutes)" meshtastic --set store_forward.history_return_window 1440
```shell title="Set store_forward.records to default (≈11,000 records)"
meshtastic --set store_forward.records 0
shell title="Set store_forward.records to 100 records"
meshtastic --set store_forward.records 100
Web
:::info Все параметры конфигурации модуля Store & Forward доступны в веб-интерфейсе в Config > Module Config > S&F. :::