FRconfig auf dem PiLocoBuffer
Da die Konfiguration der FRED(i)´s mit JMRI immer wieder zu Fragen führte und manchen Nutzern die Programmierung in JMRI sehr zuwider war, wurde im FREMO in Diskussion mit Pål O., Knut. S. und Knut H. ein einfaches Konfigurationstool nur für FRED(i)´s entwickelt.
Das ganze basiert auf einer Weboberfläche, die entweder online aufgerufen oder lokal gespeichert werden kann und einem WS2LbServer.
Eine Nutzung auf dem PiLocoBuffer ist sehr einfach zu realisieren. Nachfolgend dazu eine Anleitung zur Installation.
FREMO-Mitglieder finden nach Anmeldung im FREMO-Forum zu FRconfig weitere Informationen [LINK] .
Installation und Start von FRconfig mit WS2LbServer
FRconfig dient zur Konfiguration von FREDi-Geräten über den LocoBuffer. Damit FRconfig mit dem LocoBuffer kommunizieren kann, wird zusätzlich der WebSocket2LbServer (WS2LbServer) benötigt.
1. FRconfig aufrufen und lokal speichern
Zunächst im Browser auf dem PiLocoBuffer – gegebenenfalls über RealVNC – die FRconfig-Seite aufrufen:
Beim ersten Aufruf können zunächst Fehlermeldungen wie
No connection to WS2LbServer possible
erscheinen. Das ist zu diesem Zeitpunkt normal, da der WS2LbServer noch nicht gestartet wurde.
Soll FRconfig auch verwendet werden können, wenn der PiLocoBuffer keine Internetverbindung hat, sollte die Seite lokal gespeichert werden.
In Firefox beispielsweise:
Save Page As… / Seite speichern unter…
Als Dateiname wird in dieser Anleitung verwendet:
FRconfig_local.html
Die Datei wird im Ordner
/home/pi/Downloads/
gespeichert.
Wichtig: Der tatsächliche Dateiname muss später exakt mit dem im Startskript eingetragenen Dateinamen übereinstimmen. Linux unterscheidet dabei auch zwischen Groß- und Kleinschreibung.
2. WS2LbServer herunterladen
In FRconfig befindet sich oben rechts im Burger-Menü unter Hilfe ein Downloadlink für den WS2LbServer.
Die heruntergeladene Datei sollte anschließend unter
/home/pi/Downloads/WebSocket2LbServer.jar
liegen.
Der Online-Aufruf von FRconfig im Browser kann anschließend geschlossen werden.
3. WS2LbServer manuell testen
Bevor die automatische Startfunktion eingerichtet wird, empfiehlt sich ein einmaliger manueller Test.
Im Terminal:
java -jar /home/pi/Downloads/WebSocket2LbServer.jar localhost 1234
Bei erfolgreichem Start erscheint beispielsweise:
WebSocketServer v0.6 has started, listening on port 8080.
Waiting for a client?
Wird anschließend FRconfig geöffnet, sollte zusätzlich etwa Folgendes erscheinen:
A client connected from /0:0:0:0:0:0:0:1
Waiting for a client?
Connected to LbServer at localhost port 1234
> VERSION LbServer version 0.15 built Aug 29 2026
Damit ist die Kommunikationskette hergestellt:
FRconfig
│
│ WebSocket Port 8080
▼
WS2LbServer
│
│ TCP localhost:1234
▼
LbServer
│
▼
LocoBuffer
Der manuell gestartete WS2LbServer kann mit Strg+C beendet werden.
FRconfig und WS2LbServer per Desktop-Symbol starten
Damit nicht bei jeder Verwendung zunächst ein Terminal geöffnet werden muss, kann auf dem Desktop ein Starter eingerichtet werden.
Dieser startet den WS2LbServer nur dann, wenn noch keine Instanz läuft, und öffnet anschließend die lokal gespeicherte FRconfig-Seite.
4. Startskript anlegen
Im Terminal:
nano /home/pi/frconfig-start.sh
Folgenden Inhalt einfügen:
#!/bin/bash
WS2LB_JAR="/home/pi/Downloads/WebSocket2LbServer.jar"
FRCONFIG="/home/pi/Downloads/FRconfig_local.html"
LOG="/tmp/ws2lbserver.log"
# Start WS2LbServer only if it is not already running
if ! pgrep -f "WebSocket2LbServer.jar" >/dev/null; then
java -jar "$WS2LB_JAR" localhost 1234 >"$LOG" 2>&1 &
sleep 2
fi
# Open FRconfig
xdg-open "$FRCONFIG" >/dev/null 2>&1 &
Datei speichern:
Strg+O → Enter → Strg+X
Anschließend ausführbar machen:
chmod +x /home/pi/frconfig-start.sh
Warum die Prüfung auf einen laufenden WS2LbServer wichtig ist
Ohne diese Prüfung würde jeder erneute Klick auf das Desktop-Symbol versuchen, einen weiteren WS2LbServer zu starten.
Da der erste WS2LbServer bereits auf Port 8080 lauscht, würde die zweite Instanz mit
java.net.BindException: Die Adresse wird bereits verwendet
abbrechen.
Das oben verwendete
pgrep -f "WebSocket2LbServer.jar"
verhindert diesen Mehrfachstart.
5. Desktop-Symbol anlegen
Im Terminal:
nano /home/pi/Desktop/FRconfig.desktop
Folgenden Inhalt einfügen:
[Desktop Entry]
Version=1.0
Type=Application
Name=FRconfig
Comment=FRconfig mit WS2LbServer starten
Exec=/home/pi/frconfig-start.sh
Icon=applications-system
Terminal=false
Categories=Utility;
Speichern:
Strg+O → Enter → Strg+X
Anschließend die Desktop-Datei ausführbar machen:
chmod +x /home/pi/Desktop/FRconfig.desktop
6. Verwendung
Auf dem Desktop befindet sich nun das Symbol FRconfig.
Ein Doppelklick darauf bewirkt:
-
Es wird geprüft, ob WS2LbServer bereits läuft.
-
Falls nicht, wird
WebSocket2LbServer.jargestartet. -
WS2LbServer öffnet seinen WebSocket-Server auf Port 8080.
-
WS2LbServer verbindet sich mit dem LbServer auf
localhost:1234. -
Anschließend wird die lokal gespeicherte
FRconfig_local.htmlim Browser geöffnet. -
Läuft WS2LbServer bereits, wird keine zweite Instanz gestartet; FRconfig wird lediglich geöffnet.
FRconfig kann damit auch ohne Internetverbindung verwendet werden.
Fehlersuche
Sollte FRconfig
No connection to WS2LbServer possible
bzw.
Can not open connection to URL: ws://localhost:8080/
anzeigen, können folgende Prüfungen durchgeführt werden.
Läuft WS2LbServer?
ps aux | grep -i WebSocket2LbServer
Eine korrekte Ausgabe enthält beispielsweise:
java -jar /home/pi/Downloads/WebSocket2LbServer.jar localhost 1234
Lauscht WS2LbServer auf Port 8080?
ss -ltnp | grep 8080
Es sollte eine Ausgabe ähnlich dieser erscheinen:
LISTEN ... *:8080 ... java
Das Log des über das Desktop-Symbol gestarteten WS2LbServers kann mit
cat /tmp/ws2lbserver.log
angezeigt werden.
Falls dort
java.net.BindException: Die Adresse wird bereits verwendet
steht, war bereits eine andere WS2LbServer-Instanz aktiv. Mit dem oben beschriebenen korrigierten Startskript sollte dieser Fall bei weiteren Aufrufen des Desktop-Symbols nicht mehr auftreten.
Falls FRconfig beim Desktop-Start überhaupt nicht geöffnet wird, sollten außerdem die tatsächlichen Dateinamen geprüft werden:
ls -l /home/pi/Downloads/
Insbesondere müssen die im Skript eingetragenen Pfade
/home/pi/Downloads/WebSocket2LbServer.jar
/home/pi/Downloads/FRconfig_local.html
mit den tatsächlich vorhandenen Dateien exakt übereinstimmen.
Aufruf von einem anderen Device im Netzwerk.
Will man FRconfig nach erfolgreicher Installation und dem Start des WS2LbServer auf dem PiLocoBuffer von einem anderen Device, z. B. einem PC aufrufen, der sich im selben Netzwerk wie der PiLocoBuffer befindet, ist unter „setup“ die Adresse des PiLocoBuffer wie folgt einzugeben (im Beispiel hat der PiLocoBuffer die IP-Adresse 192.168.1.104): ws://192.168.1.104:8080/
