A library for Meshtastic communication over UDP.
Project description
This library provides UDP-based broadcasting of Meshtastic-compatible packets.
Installation
pip install mudp
Command Line
To view all Meshtastic udp activity on your LAN:
mudp
PubSub RX Topics
When using this library as a listener, it can publish received packets to the Python pubsub system. The following topics are available:
- mesh.rx.raw – publishes
(data, addr)with the raw UDP packet bytes and source address tuple. - mesh.rx.decode_error – publishes
(addr)when a packet fails to decode. - mesh.rx.packet – publishes
(packet, addr)for all successfully parsedMeshPacketobjects. - mesh.rx.decoded – publishes
(packet, portnum, addr)when the decoded portion is available. - mesh.rx.port.<portnum> – publishes
(packet, addr)for filtering by port number.
Send Functions (see examples for further information):
from mudp import (
conn,
node,
send_nodeinfo,
send_reply,
send_text_message,
send_device_telemetry,
send_position,
send_environment_metrics,
send_power_metrics,
send_health_metrics,
send_waypoint,
send_data,
)
MCAST_GRP = "224.0.0.69"
MCAST_PORT = 4403
node.node_id = "!deadbeef"
node.long_name = "UDP Test"
node.short_name = "UDP"
node.channel = "LongFast"
node.key = "1PG7OiApB1nwvP+rz05pAQ=="
conn.setup_multicast(MCAST_GRP, MCAST_PORT)
send_text_message("text", keys=values...)
send_reply("text", packet.id, keys=values...)
send_reply("👍", packet.id, emoji=True, keys=values...)
send_nodeinfo(keys=values...)
send_device_telemetry(keys=values...)
send_position(latitude, longitude, keys=values...)
send_environment_metrics(keys=values...)
send_power_metrics(keys=values...)
send_health_metrics(keys=values...)
send_waypoint(latitude, longitude, keys=values...)
send_data(destination_id, payload, portnum=256, want_ack=False)
Optional Arguments for all message types:
- to=INT
- hop_limit=INT
- hop_start=INT
- want_ack=BOOL
- want_response=BOOL
Example:
```python
send_text_message("Happy New Year", to=12345678, hop_limit=5)
send_reply("👍", reply_id=packet.id, emoji=True)
send_reply("message received", reply_id=packet.id)
send_data("!deadbeef", b"raw bytes here", portnum=256, want_ack=True)
Use emoji=True when the reply payload is an emoji reaction. Plain-text replies only need reply_id.
Supported keyword arguments for nodeinfo:
- node_id
- long_name
- short_name
- hw_model
- is_licensed
- role
- public_key
Supported keyword arguments for device metrics:
- battery_level
- voltage
- channel_utilization
- air_util_tx
- uptime_seconds
Supported keyword arguments for position metrics:
- latitude (required)
- longitude (required)
- latitude_i
- longitude_i
- altitude
- precision_bits
- HDOP
- PDOP
- VDOP
- altitude_geoidal_separation
- altitude_hae
- altitude_source
- fix_quality
- fix_type
- gps_accuracy
- ground_speed
- ground_track
- next_update
- sats_in_view
- sensor_id
- seq_number
- timestamp
- timestamp_millis_adjust
Supported keyword arguments for environment metrics:
- temperature
- relative_humidity
- barometric_pressure
- gas_resistance
- voltage
- current
- iaq
- distance
- ir_lux
- lux
- radiation
- rainfall_1h
- rainfall_24h
- soil_moisture
- soil_temperature
- uv_lux
- weight
- white_lux
- wind_direction
- wind_gust
- wind_lull
- wind_speed
Supported keyword arguments for power metrics:
- ch1_voltage
- ch1_current
- ch2_voltage
- ch2_current
- ch3_voltage
- ch3_current
Supported keyword arguments for health metrics:
- heart_bpm
- spO2
- temperature
Supported keyword arguments for waypoints:
- id
- latitude
- longitude
- expire
- locked_to
- name
- description
- icon
Install in development (editable) mode:
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mudp-1.0.4.tar.gz.
File metadata
- Download URL: mudp-1.0.4.tar.gz
- Upload date:
- Size: 21.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22bff1bafcac79a713b4a443da9ebfe390dc70601c6c7633e69af50f222f63d5
|
|
| MD5 |
4722fc614bf25856aae54d1badff0b1e
|
|
| BLAKE2b-256 |
a4c310aff9986c021a9b7f7b610758c9db7bbbc797c3836814db7a60daa28248
|
Provenance
The following attestation bundles were made for mudp-1.0.4.tar.gz:
Publisher:
release.yaml on pdxlocations/mudp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mudp-1.0.4.tar.gz -
Subject digest:
22bff1bafcac79a713b4a443da9ebfe390dc70601c6c7633e69af50f222f63d5 - Sigstore transparency entry: 1100374124
- Sigstore integration time:
-
Permalink:
pdxlocations/mudp@5c595aa31b25877baa00cfcba14b47948ecd6621 -
Branch / Tag:
refs/tags/1.0.4 - Owner: https://github.com/pdxlocations
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@5c595aa31b25877baa00cfcba14b47948ecd6621 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mudp-1.0.4-py3-none-any.whl.
File metadata
- Download URL: mudp-1.0.4-py3-none-any.whl
- Upload date:
- Size: 22.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9169e9c9bd14e53bdb556f31a3e2f6c16eff98ae24e91c1894dc928974a4f74
|
|
| MD5 |
61f9f3fc76c17814841e83c20222a049
|
|
| BLAKE2b-256 |
2455eec3e7fed8e41a8ac6d0f9cd965b53182ce0e4d9a20e6547752c3f1261d6
|
Provenance
The following attestation bundles were made for mudp-1.0.4-py3-none-any.whl:
Publisher:
release.yaml on pdxlocations/mudp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mudp-1.0.4-py3-none-any.whl -
Subject digest:
b9169e9c9bd14e53bdb556f31a3e2f6c16eff98ae24e91c1894dc928974a4f74 - Sigstore transparency entry: 1100374135
- Sigstore integration time:
-
Permalink:
pdxlocations/mudp@5c595aa31b25877baa00cfcba14b47948ecd6621 -
Branch / Tag:
refs/tags/1.0.4 - Owner: https://github.com/pdxlocations
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@5c595aa31b25877baa00cfcba14b47948ecd6621 -
Trigger Event:
push
-
Statement type: