Mesh networks

Kismet decodes Meshtastic and MeshCore LoRa mesh networks, captured with the LoraPipe datasource.

Mesh nodes are tracked as devices; these endpoints provide the mesh channels Kismet knows about, and the messages decoded on them.

Meshtastic channels

DESC

Meshtastic channels known to Kismet, with their keys and recently decoded text messages.

The default channel of every modem preset, with the default key, is always present; other channels are added with meshtastic_key in kismet_meshtastic.conf. The number of messages kept per channel is set by meshtastic_num_messages (by default 128).

Only text messages are kept; other Meshtastic packets update the device records.

Field paths for simplification use / to separate levels, such as meshtastic.channels/meshtastic.channel.messages/meshtastic.message.message.

ROLES
readonly
URI
/meshtastic/channels.json
/meshtastic/channels.ekjson
/meshtastic/channels.prettyjson
METHODS
GET POST
JSON
PARAMETERS

This endpoint takes additional parameters by using a `POST` request and supplying a JSON document or json form variable.

You can find more information about API parameters here.

fields field simplification OPTIONAL

Kismet can reduce the amount of information being processed and returned by an API by simplifying the fields to only return the data needed by the caller.

You can read more about the field simplification API and how to use it here.

RETURN

JSON object containing meshtastic.channels, an object keyed by channel name:

FieldContent
meshtastic.channel.channelChannel name
meshtastic.channel.keyChannel key, in base64, expanded to the full AES key
meshtastic.channel.messagesList of messages, oldest first

Each message contains:

FieldContent
meshtastic.message.nodeidNode ID of the sender, as !XXXXXXXX
meshtastic.message.channelChannel name
meshtastic.message.messageMessage text
RESPONSES
200
Success
500
Invalid field simplification

MeshCore channels

DESC

MeshCore group channels known to Kismet, with their keys and recently decoded group messages.

The public channel is always present; private channels are added with meshcore_key, and hashtag channels with meshcore_hashtag, in kismet_meshcore.conf. The newest messages are kept, up to meshcore_num_messages (by default 128) per channel.

MeshCore messages are flooded through the mesh and repeated by every repeater; each message is recorded once, no matter how many times it is heard.

Field paths for simplification use / to separate levels, such as meshcore.channels/meshcore.channel.messages/meshcore.message.message.

ROLES
readonly
URI
/meshcore/channels.json
/meshcore/channels.ekjson
/meshcore/channels.prettyjson
METHODS
GET POST
JSON
PARAMETERS

This endpoint takes additional parameters by using a `POST` request and supplying a JSON document or json form variable.

You can find more information about API parameters here.

fields field simplification OPTIONAL

Kismet can reduce the amount of information being processed and returned by an API by simplifying the fields to only return the data needed by the caller.

You can read more about the field simplification API and how to use it here.

RETURN

JSON object containing meshcore.channels, an object keyed by channel name:

FieldContent
meshcore.channel.channelChannel name; Public, the configured name, or the hashtag
meshcore.channel.keyChannel secret, in base64
meshcore.channel.key_typeEncryption type, AES128
meshcore.channel.hashChannel hash, the first byte of the SHA-256 of the secret
meshcore.channel.messagesList of messages, oldest first

Each message contains:

FieldContent
meshcore.message.timestampTimestamp from the sender’s clock, which may be wrong or unset
meshcore.message.channelChannel name
meshcore.message.senderSender name, from the message text; this is not authenticated
meshcore.message.messageMessage text
RESPONSES
200
Success
500
Invalid field simplification