Raspi als Dienstmädchen

Um den „LoRaPi“ (Raspberry mit Lora Modul) nun für weitere Dienste zu verwenden, hier als Beispiel die Beschreibung für einen ein Autoresponser. Dabei muss der Raspberry den Meshtastic Nachrichten Stream abhören, die Nachrichten ausfiltern ob sie auch für den Node bestimmt sind, die Nachricht dann analysieren ob ein bestimmtes Wort vorkommt, um dann falls alles zutrifft, eine automatische Rückantwort an den herausgefilteren Absender zu schicken.

Aufbauend auf die bisherigen Tutorials (https://meshtastic.at/raspi-geht-stricken/ und https://meshtastic.at/raspi-auf-sendung/) beginnen wir mit dem Script welche den Nachrichtenstream abhört. Die beiden vorherigen Tutorials sind Bedingung, da die Meshtasticd Software und die meshtastic CLI Software unbedingt installiert sein müssen.

Die Meshtastic CLI Installation liefert die Anweisung meshtastic –listen um den Stream zu empfangen.
Diese Funktion bildet die Basis in folgendem Python Script, welches wir nun erstellen

Mit putty zum Raspi verbinden und folgendes in das Terminalfenster eingeben:

Nun in die Datei das Script einfügen
ACHTUNG: die ID des Server Nodes muss unbedingt entsprechend ihrer NodeID geändert werden
8-stellige ID ohne !

# Server Node id des Autoresponders
target_to_id = „dd73d9f8

Das Script:

Mit STRG+x y enter speichern

Das script kann nun wie folgt gestartet werden:

Wird nun eine Direktnachricht mit dem Text echo an das Node gesendet, so antwortet es mit Holadrioooo Juhuu

Um das „Reizwort“ von echo auf einen beliebigen anderen Wortlaut zu ändern, in der Datei listenall.py
if payload == „echo„: #wenn der Nachrichtentext echo ist

Nie NAchricht welche das Node zurücksenden soll, kann in der Datei hier geändert werden:
# Nachricht an den Absender senden
message = „Holadrioooo Juhuu

Weil das Script sich permament nach dem Senden einer Antwort selbst restartet, kommt es vor dass der vorherige Prozess nicht sauber beendet wurde und der Raspi irgendwann immer langsamer wird. Deshalb wird nun ein zweites Script erstellt, welches in Intervallen von 30 Minuten läuft und alle laufenden meshtastic –listen und –sendtext Prozesse beendet, um das Script dann in bereinigtem RAM neu zu starten.

Zuerst das laufende Script mit Strg+c beenden. Im Zweifelsfalle des Raspi neu starten (sudo reboot)

Für die Erstellung des zweiten Scripts folgendes im Terminal eingeben:

Nun in die Datei folgendes Script einfügen:

mit strg+x y enter speichern

Nun ins Termial eingeben

Um das Script in Intervallen aufzurufen fügen wir folgende Zeile unten in die Datei ein (mit cursorsteuertasten ganz nach unten, mit Enter Leerzeile einfügen)

mit strg+x y enter speichern

Nach einem Neustart wird nun auch der Autoresponder automatisch nach 30 Minuten gestartet

Soll der Autoresponder sofort nach Neustart aktiv sein, so kann in crontab die Zeile @reboot eingefügt werden, oder falls vorhanden die komplette anweisung mit && an die vorhandene Zeile anghängt werden

mit strg+x y enter speichern nicht vergessen

Gratuliere sie haben nun einen Meshtastic Autoresponder

Info: Für Erstellung des Scripts wurden mehrere Stunden aufgewendet damit es korrekt funktioniert, es kann jedoch bestimmt noch optimiert werden. Viel Spaß beim tüfteln 🙂