Alternative zu bestehenden WiThrottleServern

Neue Lösung von Pal Olsen

Wer eine ressourcenschonende Lösung ohne grafische Oberfläche sucht, findet mit der Lösung von Pal Olsen (ich nenne die hier mal PAOWTS) eine funktionale Alternative, z. B. zu JMRI.

Die Anwendung ist in Java geschrieben und lässt sich problemlos auf einem Raspberry Pi betreiben, z. B. ideal in Kombination mit einem PiLocoBuffer.

Diese Kombination eignet sich besonders für den Betrieb FREMO-WLAN-Handreglern wie dem WLFRED.

Da PAOWTS keine eigene LocoNet-Schnittstelle besitzt, erfolgt die Verbindung über einen vorhandenen LnOverTcpServer wie etwa dem lbserver dem PiLocoBuffer.

Betrieb mit der ReadyToGo-Version des PiLocoBuffer

Einrichten PAO-WTS auf der ReadyToGo-Version und Einrichten des Autostarts

Grundlagen

  • Die Datei WiThrottleServer.jar wird im Verzeichnis /home/pi/WiThrottleServer/ abgelegt.
  • Sollte bereits JRMI installiert sein, muss der Autostart von JMRI unterbunden werden.

Dazu können die beiden Desktop-Dateien mit folgendem Befehl umbenannt werden:

for f in ~/Desktop/DecoderPro.desktop ~/Desktop/PanelPro.desktop; do mv „$f“ „$f.alt“; done

Kontrolle:

ls -l ~/Desktop

Die Dateien sollten anschließend als

  • DecoderPro.desktop.alt
  • PanelPro.desktop.alt

angezeigt werden.

Dadurch werden DecoderPro und PanelPro beim Start des Raspberry Pi nicht mehr automatisch gestartet. 

Nun kann Schritt für Schritt die Installation erfolgen:

 

  1. Verzeichnis anlegen und WiThrottleServer herunterladen

Falls das Verzeichnis noch nicht existiert:

mkdir -p /home/pi/WiThrottleServer

Aktuelle Version herunterladen:

wget -O /home/pi/WiThrottleServer/WiThrottleServer.jar https://paolsen.net/WiThrottleServer/WiThrottleServer.jar

Kontrolle:

ls -lh /home/pi/WiThrottleServer/WiThrottleServer.jar

Die Datei sollte nun mit Größe und Datum angezeigt werden.

  1. Pfad zur .jar-Datei und Java testen

Manuell testen im Terminal:

/usr/bin/java -jar /home/pi/WiThrottleServer/WiThrottleServer.jar localhost 1234

Wenn die Ausgabe lautet:

Server is STARTING…

Server is now RUNNING

funktioniert alles korrekt.

Den Testserver anschließend mit CTRL+C beenden.

  1. Crontab bearbeiten

Crontab-Editor öffnen:

sudo crontab -e

Beim ersten Aufruf den Editor nano wählen, wenn gefragt.

  1. Autostart-Befehl einfügen

Ganz unten einfügen:

@reboot sleep 15 && /usr/bin/java -jar /home/pi/WiThrottleServer/WiThrottleServer.jar localhost 1234 > /home/pi/withrottle.log 2>&1

Erklärung

  • sleep 15 = wartet 15 Sekunden nach dem Bootvorgang, damit Netzwerk und Dienste vollständig gestartet sind.
  • > /home/pi/withrottle.log 2>&1 = schreibt alle Ausgaben und Fehlermeldungen in die Logdatei withrottle.log.
  1. Speichern und beenden

In nano:

  • CTRL + O → Speichern
  • ENTER → bestätigen
  • CTRL + X → beenden
  1. Raspberry Pi neu starten

sudo reboot

  1. Funktion prüfen

Verbundene WiFREDs sollten sich nach etwa 1–2 Minuten verbinden.

Falls nicht:

Laufenden Prozess prüfen:

ps aux | grep WiThrottle

Logdatei anzeigen:

cat /home/pi/withrottle.log

Wenn in der Logdatei steht:

Server is STARTING…

Server is now RUNNING

ist der Autostart erfolgreich eingerichtet.

Server manuell stoppen

Da der Server über die Root-Crontab gestartet wird:

sudo pkill -f WiThrottleServer.jar

Anschließend prüfen:

ps aux | grep WiThrottle

Wenn nur noch die grep-Zeile erscheint, wurde der Server erfolgreich beendet.

 

Manuell gestartet werden kann wieder durch

/usr/bin/java -jar /home/pi/WiThrottleServer/WiThrottleServer.jar localhost 1234