mesh-map/app.py
david 74a48ca352
All checks were successful
Meshtastic Map - See local Meshtastic Nodes / deploy (push) Successful in 2s
try again to fix error
2025-04-13 17:38:45 -07:00

43 lines
949 B
Python

from flask import Flask, render_template, jsonify
import meshtastic.serial_interface
import meshtastic
import threading
import time
app = Flask(__name__)
node_locations = {}
MY_NODE_ID = "!934f4430"
# MY_NODE_NUM = 2471445552
iface = meshtastic.serial_interface.SerialInterface()
# iface.nodes.clear()
def safe_dict(obj):
if isinstance(obj, dict):
return {k: safe_dict(v) for k, v in obj.items()}
elif isinstance(obj, list):
return [safe_dict(i) for i in obj]
elif isinstance(obj, bytes):
return obj.decode(errors="replace")
else:
return obj
@app.route("/")
def index():
return render_template("map.html")
@app.route("/nodes")
def nodes():
data = {}
for node_id, node in iface.nodes.items():
data[node_id] = safe_dict(node)
return jsonify({
"myNodeId": MY_NODE_ID,
"nodes": data
})
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8083)