Store & Forward Module Settings
Overview
Using this module, a client device can ask a special Store & Forward Server to resend text messages after the client has been temporarily not in LoRa range of the mesh. Since firmware version 2.4, when you connect to the Store & Forward Server with a client app, you get the history automatically, which will be much larger than the default cache of around 30 packets on a device.
Only ESP32 based devices with onboard PSRAM like the T-Beam and T3S3 can be a Store & Forward Server.
When a client device requests the history from the Store & Forward Server, it will resend the text messages over LoRa that it has received. The server will only return messages that are within the time window the client has requested up to the maximum number of messages configured for the server. The server does not know which messages the client device actually missed, so it is possible that you receive duplicates.
Be mindful when requesting the history, as the server might send a lot of messages which will burden your mesh for a short period of time. Requesting history over LoRa is not available on the default public channel.
Details
How it works
Requirements
Initial requirements for the Store and Forward Server:
- Store & Forward Servers are intended to be always online. If this module misses any messages, the reliability of the stored messages will be reduced.
- ESP32 Processor based device with onboard PSRAM (T-Beam > v1.0, T3S3, and maybe others).
Usage Overview
-
To use / test this over LoRa you will want at least 3 devices:
- One ESP32 device with PSRAM configured as
ROUTER
orstore_forward.is_server
set. - Two others will be regular clients. If one client sends a text message when the other is not in range, the other can request the history from the server to receive the missed message when it is back in range.
- One ESP32 device with PSRAM configured as
-
To use / test this with a client app you will want at least 2 devices:
- One ESP32 device with PSRAM configured as
ROUTER
orstore_forward.is_server
set. - One other device that sends text messages when no app is connected to the Store & Forward Server. When you connect an app to the server, it will automatically retrieve the history.
- One ESP32 device with PSRAM configured as
Server setup
-
Configure your device as a
ROUTER
or setstore_forward.is_server true
. -
Name your server node something that makes it easily identifiable, e.g. "Base Node (S&F)".
-
Configure the Store and Forward module
Required - Enable the modulemeshtastic --set store_forward.enabled true
Optional - Disable sending heartbeat.meshtastic --set store_forward.heartbeat false
提示Best to disable the heartbeat (which is sent every 15 minutes) to reduce network traffic if you only want to retrieve it by connecting with an app to the server, or when all client devices have identified the server.
Client Usage
Currently implemented in the Android and Apple apps version 2.2.23 and higher. To request the history from the Store & Forward Server, for Android it is required to send it a direct message containing the text "SF" (without quotes). The server will then respond with the requested messages. The Apple apps will also show whether a node is a Store & Forward Server in the node list after it heard the heartbeat. You can then long press the node and select "Client History" to request the history from the server.
Since 2.4, when connecting to the Store & Forward Server itself, the text message history will be automatically retrieved and displayed in the app.