Das System basiert auf dem TC²-BBS Meshtastic von TheCommsChannel
Many thanks to TheCommsChannel and everyone else who worked hard to create this great project.
Im Grunde ist es nur eine Übersetzung ins Deutsche mit ein paar kleinen Änderungen. Derzeit hat die Übersetzung noch nicht begonnen.
Ich übernehme keine Haftung für Schäden an Geräten oder Komponenten, die durch die Verwendung dieses Codes oder der Anleitung dazu entstehen. Ich weise darauf hin, dass die Anleitung ggf. unvollständig oder fehlerhaft sein könnte. Bitte beachten Sie die gesetzlichen Vorschriften in Ihrem Land zur Verwendung dieser Software. Zu Risiken und Nebenwirkungen fragen Sie Ihren Admin oder Händler!
- Als Plattform wird ein Raspberry Pi 3 Model B+ verwendet.
- Als Betriebssystem wird DietPi v9.8 verwendet.
- Python 3.x
- Meshtastic
- pypubsub
Die Installation von DietPi wird auf der Seite von DietPi beschriben. Ich gehe hier nicht näher darauf ein. Ich verwende DietPi nur aus Bequemlichkeit. Das MIS sollte aber auch auf anderen Betriebssystemen lauffähig sein.
Zuerst installieren wir Meshtastic
cd ~
apt-get -y update && apt-get upgrade
sudo apt-get -y install python3 python3-pip screen git
sudo apt install -y pipx && pipx install meshtastic
pipx ensurepath
Nach der Installation muss die SSH Verbindung beendet und wiederverbunden werden!
Meshtastic sollte jetzt schon verwendbar sein. Wenn ein Node z.B. per USB verbunden ist, sollte der folgende Befehl Informationen zum Node auslesen und anzeigen:
meshtastic --info
Weiter geht es mit der Installation von MIS:
git clone https://github.com/Neppumuck/Meshtastic-Informations-System-MIS.git
cd Meshtastic-Informations-System-MIS
Wir erstellen ein Python virtual environment:
python3 -m venv venv
Damit virtual environment wird aktiviert:
source venv/bin/activate
Es fehlen noch ein paar Dinge:
pip install -r requirements.txt
Umbenennen der Konfiguationsdatei:
mv example_config.ini config.ini
Die Installation ist jetzt abgeschlossen.
Im ersten Schriit sollten wir heruasfinden, welche Schnittstelle verwendet wird. In meinem Fall USB. Folgender Befehl könnte dabei hilfreich sein:
dmesg | grep tty
Wir suchen zum Beispiel:
/dev/ttyUSB0
/dev/ttyAMA0
Es mach Sinn sich zu überlegen ob Zugriffsregelungen eingeführt werden sollen. Falls das der Fall sein sollte, sollten die ID´s der Nodes bekannt sein. dieser erhält man mit folgendem Befehl:
meshtastic --nodes
Unter DietPi müssen die ID´s immer in einzelnen Anführungszeichen ' stehen. Zum Beispiel: '!433b8a64' Für die, die das Zeichen nicht auf der Tastatur finden:
''
Bearbeiten wir die "config.ini" z.B. mit nano oder nach belieben:
nano config.ini
Es muss mindestens das Interface festgelegt werden:
[interface]
type = serial
port = /dev/ttyAMA0
Auf die restlichen Einstellungen gehe ich hier nicht näher ein. Diese werden im Zuge der Übersetzung selbsterklärend sein. Es genügt jetzt die Datei zu speichern und den ersten Start durchzuführen:
python server.py
Wenn alles geklappt hat, sollte das MIS starten und von Meshtastic Nodes ansprechbar sein.
Tipp: Ich lasse den Server gerne mit Screen im Hintergrund laufen.
Soll das MIS beim Start des Raspberry gestartet werden, muss folgedes umgesetzt werden:
Die Datei "mesh-bbs.service" muss bearbeitet werden:
User=root
WorkingDirectory=/root/Meshtastic-Informations-System-MIS
ExecStart=/root/Meshtastic-Informations-System-MIS/venv/bin/python3 /root/Meshtastic-Informations-System-MIS/server.py
oder z.B.
User=pi
WorkingDirectory=/home/pi/Meshtastic-Informations-System-MIS
ExecStart=/home/pi/Meshtastic-Informations-System-MIS/venv/bin/python3 /home/pi/Meshtastic-Informations-System-MIS/server.py
Es folgt das einrichten des Dienstes:
sudo cp mesh-bbs.service /etc/systemd/system/
Autostart aktivieren:
sudo systemctl enable mesh-bbs.service
Autostart deaktivieren:
sudo systemctl disable mesh-bbs.service
Start sofort:
sudo systemctl start mesh-bbs.service
Stop:
sudo systemctl stop mesh-bbs.service
Status:
sudo systemctl status mesh-bbs.service
Neustart:
sudo systemctl restart mesh-bbs.service
Vergangenes Logbucheinträge anzeigen:
journalctl -u mesh-bbs.service
Live Logbuch:
journalctl -u mesh-bbs.service -f
Als Rollen für den Note funktionieren
- Client
- Router_Client
- Mail System: Senden und Empfangen von Nachrichten an Nodes.
- Bulletin Boards: Eine Art Pinnwand für Informationen in form von Nachrichten.
- Channel Directory: Ein Verzeichniss für Meshtastic Kanäle.
- Statistics: Statistiken von Nodes, Hardware und Rollen.
- Wall of Shame: Zeigt Geräte mit niedrigem Akkustand.
- Fortune Teller: Zufällig generierte Wahrsage. Unnötig, aber kostet nichts.
Weitere Informationen und Codeschnipsel folgen in kürze. Primär folgt jetzt die Übersetzung.