This commit is contained in:
2026-06-03 17:55:08 +08:00
parent 6ccced6cd3
commit a3ad72c140
+12 -2
View File
@@ -23,6 +23,8 @@ DEFAULT_HOST = "mqtt.meshtastic.org"
DEFAULT_USERNAME = "meshdev"
DEFAULT_PASSWORD = "large4cats"
DEFAULT_TOPICS = ("msh/US/#",)
SOURCE_TOPIC_PREFIX = "msh/US"
LOCAL_TOPIC_PREFIX = "msh/US"
DEFAULT_LOCAL_HOST = "127.0.0.1"
DEFAULT_LOCAL_PORT = 1883
@@ -42,12 +44,20 @@ def on_source_connect(client: mqtt.Client, userdata: argparse.Namespace, flags:
print_json({"event": "source_subscribed", "topic": topic, "qos": userdata.qos})
def local_topic(source_topic: str) -> str:
if source_topic == SOURCE_TOPIC_PREFIX or source_topic.startswith(SOURCE_TOPIC_PREFIX + "/"):
return LOCAL_TOPIC_PREFIX + source_topic[len(SOURCE_TOPIC_PREFIX) :]
return source_topic
def on_source_message(client: mqtt.Client, userdata: argparse.Namespace, msg: mqtt.MQTTMessage) -> None:
result = userdata.local_client.publish(msg.topic, payload=msg.payload, qos=msg.qos, retain=msg.retain)
topic = local_topic(msg.topic)
result = userdata.local_client.publish(topic, payload=msg.payload, qos=msg.qos, retain=msg.retain)
print_json(
{
"event": "forwarded",
"topic": msg.topic,
"source_topic": msg.topic,
"topic": topic,
"payload_len": len(msg.payload),
"qos": msg.qos,
"retain": msg.retain,