Peta semua node meshtastic terdengar melalui MQTT.
Versi peta saya tersedia di https://meshtastic.liamcottle.net
Lihat klien web meshtastic baru saya: meshhtxt

mqtt.meshtastic.org dan berlangganan topik msh/# .AQ== default.ServiceEnvelope , itu diabaikan.NODEINFO_APP Tambahkan node ke database.POSITION_APP Perbarui posisi node dalam database.NEIGHBORINFO_APP Log Neighbors didengar oleh sebuah node ke database.TELEMETRY_APP memperbarui baterai dan metrik tegangan untuk sebuah node di database.TRACEROUTE_APP Log semua rute jejak yang dilakukan oleh node ke database.MAP_REPORT_APP disimpan dalam database, tetapi belum diadopsi secara luas, jadi belum digunakan.TEXT_MESSAGE_APP saat mereka masuk. NEIGHBORINFO_APP .Kloning Proyek Repo.
git clone https://github.com/liamcottle/meshtastic-map
cd meshtastic-map
Instal dependensi nodej
npm install
Buat file lingkungan .env .
touch .env
Tambahkan string koneksi basis data untuk file .env .
DATABASE_URL="mysql://root@localhost:3306/meshtastic-map?connection_limit=100"
Catatan: Beberapa pertanyaan spesifik MySQL. Penyedia DB lainnya belum diuji.
Migrasi database.
npx prisma migrate dev
Jalankan pendengar MQTT, untuk menyimpan paket ke database.
node src/mqtt.js
Jalankan server ekspres, untuk melayani /api dan memetakan UI.
node src/index.js
# Server running at http://127.0.0.1:8080
Catatan: Anda juga dapat menggunakan port khusus dengan
--port 8123
Jalankan perintah berikut dari dalam repo meshtastic-map .
# update repo
git fetch && git pull
# migrate database
npx prisma migrate dev
Anda sekarang perlu memulai kembali skrip index.js dan mqtt.js
Secara default, kolektor MQTT terhubung ke server MQTT meshtastic publik. Atau, Anda dapat memberikan opsi relevan yang ditunjukkan di bagian Bantuan di bawah ini untuk terhubung ke server MQTT Anda sendiri bersama dengan kunci dekripsi Anda sendiri.
node src/mqtt.js --help
Meshtastic MQTT Collector
Collects and processes service envelopes from a Meshtastic MQTT server.
Options
-h, --help Display this usage guide.
--mqtt-broker-url string MQTT Broker URL (e.g: mqtt://mqtt.meshtastic.org)
--mqtt-username string MQTT Username (e.g: meshdev)
--mqtt-password string MQTT Password (e.g: large4cats)
--mqtt-topic MQTT Topic to subscribe to (e.g: msh/#)
--collect-service-envelopes This option will save all received service envelopes to the database.
--collect-text-messages This option will save all received text messages to the database.
--collect-waypoints This option will save all received waypoints to the database.
--collect-neighbour-info This option will save all received neighbour infos to the database.
--collect-map-reports This option will save all received map reports to the database.
--decryption-keys <base64DecryptionKey> ... Decryption keys encoded in base64 to use when decrypting service envelopes.
--purge-interval-seconds number How long to wait between each automatic database purge.
--purge-nodes-unheard-for-seconds number Nodes that haven't been heard from in this many seconds will be purged from the database.
Untuk terhubung ke server MQTT Anda sendiri, Anda dapat melakukan sesuatu seperti berikut;
node src/mqtt.js --mqtt-broker-url mqtt://mqtt.example.com --mqtt-username username --mqtt-password password --decryption-keys 1PG7OiApB1nwvP+rz05pAQ==
TODO: Perbarui bagian ini karena info ini sekarang sudah ketinggalan zaman. Status MQTT ditentukan berdasarkan cap waktu yang kami perbarui ketika suatu paket diarahkan ke MQTT dengan node itu.
Peta menunjukkan ikon berwarna berbeda untuk node berdasarkan keadaan koneksi mereka ke MQTT.
Green : Online (terhubung ke MQTT)Blue : Offline (terputus dari MQTT) Ini berfungsi dengan mendengarkan /stat/!ID topik di server MQTT.
Ketika sebuah node terhubung ke MQTT itu menerbitkan online ke topik, dan ketika server MQTT mendeteksi klien telah terputus (melalui LWT) diterbitkan offline ke topik.
Firmware Meshtastic mengkonfigurasi LWT (Last Will and Testament), yang diterbitkan oleh server MQTT setelah pemutusan klien.
Setelah Node Boots naik, ada ~ 30 detik sebelum keadaan online diterbitkan. Setelah node memutuskan hubungan dari MQTT, ada ~ 30 detik sebelum keadaan offline diterbitkan.
Ini berfungsi dengan baik ketika simpul Anda terhubung ke MQTT melalui WiFi, namun, saat menggunakan fitur MQTT Client Proxy , simpul Anda mengirim/menerima paket ke/dari perangkat Android/IOS Anda, dan kemudian perangkat Anda terhubung ke MQTT dan proxy pesan.
Meshtastic Node <-> Android/iOS <-> MQTT
Sayangnya, saat menggunakan fitur itu, status online / offline Anda tidak akan berfungsi seperti yang diharapkan.
Pada saat penulisan dokumen ini, perangkat seluler tidak mengkonfigurasi LWT dengan benar untuk node yang diproksi, dan dengan demikian tidak mempublikasikan status offline untuk node, jadi Anda tidak dapat mendeteksi jika simpul Anda terputus dari MQTT.
Node Anda akan tetap "macet" dalam keadaan online di server MQTT.
Tersedia Docker-Compose.yml. Anda dapat menjalankan perintah berikut untuk meluncurkan semuanya;
docker compose up
Ini akan:
Untuk menjalankan tes unit, jalankan yang berikut;
npm run test
Jika Anda memiliki permintaan fitur, atau menemukan bug, silakan buka masalah di sini di GitHub.
Mit
Proyek ini tidak berafiliasi dengan atau didukung oleh Proyek Meshtastic.
Logo meshtastic adalah merek dagang dari Meshtastic LLC.