====== Traintastic ====== ===== Was ist Traintastic? ===== Traintastic ist eine Open-Source-Software zur Steuerung von Modellbahnen und befindet sich noch in einer frühen Entwicklungsphase. In den letzten Wochen hat sich besonders viel getan. Die Software basiert auf C++ und Qt und wird nach einem sogenannten Reflexionsmodell entwickelt. ==== Was bedeutet das? ==== Das System ist so aufgebaut, dass es seine Bausteine zur Laufzeit selbst beschreiben kann. Geräte, Funktionen und Eigenschaften sind nicht fest im Programmcode verdrahtet, sondern werden so dargestellt, dass die Software sie automatisch erkennen und nutzen kann. Einzig bei der eigentlichen Anbindung der Hardware sind neue Module erforderlich, aber auch das ist einfacher, weil die Hardwareanbindung in einem Hardware-Abstraktion-Layer steckt, d.h. zur Hardware hin die spezifischen Protokolle, zur Steuerung hin ein einheitliches Design. ===== Der praktische Vorteil ===== Für die Modellbahnsteuerung bedeutet das vor allem: Neue Geräte oder Protokolle lassen sich deutlich einfacher integrieren, ohne dass die gesamte Software umgebaut werden muss. Wenn neue Technik dazukommt, zum Beispiel: * eine neue Digitalzentrale * zusätzliche Bus-Systeme * neue Rückmeldeverfahren dann wird das nicht jedes Mal ein kompletter Umbau des Systems. Stattdessen werden solche Erweiterungen als neue, beschreibbare Bausteine ergänzt. ===== Was erkennt Traintastic automatisch? ===== Die Software kann dadurch selbst erkennen: * welche Einstellungen ein Gerät besitzt * welche Funktionen verfügbar sind * welche Parameter geändert werden können * wie diese im Bedieninterface dargestellt werden Die Oberfläche passt sich also an die vorhandene Technik an. ===== Warum ist das wichtig? ===== Da die Funktionen nicht starr im Code festgelegt sind, bleibt das System langfristig flexibel. Neue Standards oder Erweiterungen können ergänzt werden, ohne bestehende Teile der Software zu beschädigen. **Einfach gesagt** Traintastic ist so aufgebaut, dass es neue Modellbahntechnik eher „versteht“, statt sie für jedes neue System komplett neu implementieren zu müssen. Das ist besonders interessant in einem Bereich, der sich technisch ständig weiterentwickelt. ---- ===== Wie ist der aktuelle Softwarestand? ===== Aktuell ist die Version 0.4.0 "Dublin" von Traintastic, das ist die Entwicklerversion und steht kurz vor dem Release. Traintastic läuft unter Windows, Linux und Raspbian OS für den Raspberry, was auch nur Linux ist - vorwiegend auf Debian basierenden Systemen, hier eine nicht unvollständige Auflistung: * Ubuntu * Mint * LMDE * MX Linux * antiX * PureOS * Raspberry Pi OS Neben Linux wird auch Windows 10 und Windows 11 unterstützt. ===== Welche Hardware wird unterstützt? ===== Aktuell unterstützt Traintastic folgende Hardware und Protokolle * DCC-EX * ECoS * LocoNet * Märklin CAN * XpressNet * Z21 * CBUS/VLCB * HSI-88 * WiThrottle (EngineDriver (Android), WiThrottle (iOS)) * WLANmaus (Z21 WLANmaus, Z21 App) Insbesondere DCC-EX, Z21PG und CBUS/VLCB sind prädestiniert für den Eigenbau der Modellbahnelektronik. ===== Der Client/Server Ansatz ===== Traintastic gliedert sich in den Traintastic-Server und den Traintastic-Client. Der Server führt alle Steuerungsaufgaben aus, kann auf Systemen ohne Benutzeroberflächen laufen und kommuniziert über TCP/IP mit dem Client. An dem PC/Raspberry mit dem Server muss die Hardware angeschlossen werden. Der Client stellt die grafische Benutzeroberfläche dar. Seine Daten bezieht der Client dabei über Netzwerk vom Server. Es können theoretisch beliebig viele Clients betrieben werden. Client und Server können auch auf dem gleichen System laufen. ---- ===== Was ist mit "Dublin" möglich? ===== Mit der Traintastic Version können Züge gefahren werden. Weichen und Signale und auch andere Dinge geschaltet werden, wenn die angeschlossene Elektronik es kann. Es gibt Rückmelder, für Blöcke und auch Punktmelder. Es kann für einen Bahnhof ein "Stellwerk" erstellt werden, die ganze Anlage kann symbolisch dargestellt werden, aber auch jeder Bahnhof, jedes Bw für sich alleine. Für jede Weiche, für jedes Signal, für Rückmelder können die Schnittstellen, die Eigenschaften und Ereignisse definiert werden. {{ :modellbahn:software:auswahl_3019.png |}} Das Fahren ist über Apps auf dem Smartphone aber auch der im Client aufrufbare "Regler" kann verwendet werden, wie auch ein "Regler" über die vom Traintastic-Server bereitgestellte Webseite. Natürlich können auch die an der Hardware angeschlossenen Handregler verwendet werden. {{ :modellbahn:software:auswahl_3020.png |}} Über die eingebaute Lua-Scripting-Engine können Automatisierungen gelöst werden, wie z.B. das Schalten von Fahrstrassen mit Buttons in der Stellwerk-Ansicht des Traintastic-Clients. Lua ist eine Scriptsprache, die von vielen Programmen für die Automatisierung oder zur Erweiterung von Funktionen eingesetzt wird (z.B. bei Spielen wie "World of Warcraft", Editoren wie "Neovim" oder "NodeMCU" für ESP32 Controller). Der Traintastic Server kann als Hub für andere Software wie JMRI, MMC (für CBUS/VLCB) arbeiten - praktisch für jede Software, die über ein Netzwerkinterface mit der Modellbahnelektronik kommunizieren kann. Traintastic reicht die Daten 1:1 an die angeschlossene Elektronik weiter. So muss man Traintastic nicht beenden, um JMRI DecoderPro zu verwenden oder mit MMC VLCB Nodes für die Steuerung zu konfigurieren. Es ist nicht geplant diese Funktionen in Traintastic zu integrieren, es wird das KISS Prinzip verfolgt. ===== Was ist noch nicht möglich? ===== Ein Automatikbetrieb ist aktuell noch nicht möglich, das ist laut der Roadmap für die Version 0.5.0 "Edinburgh" geplant. ===== Für wen ist Traintastic geeignet? ===== Traintastic ist in der aktuellen Version insbesondere für den Betriebsbahner geeignet, der seine Fahrzeuge selbst steuern, aber Weichen und Signale über eine Software schalten möchte. So kann z.B. der Traintastic-Server auf einem Raspberry laufen und an den Betriebsstellen ein Client mit dem jeweiligen "Stellwerk, über WLAN oder LAN. Auf dem Raspberry kann auch ein Client laufen, über den dann mit VNC oder xrdp mit beliebigen Endgeräten zugriffen werden kann. Wer sich mit dem Client/Server Konzept unter X11 auskennt, kann auf dem Raspberry auch mehrere Clientverbindungen mit dann unterschiedlichen "Stellwerken" realisieren. {{ :modellbahn:software:auswahl_3018.png?1024 |}} Traintastic ist eine sehr einfach zu nutzende Software für die Modellbahnsteuerung, mit einer struktierten Benutzeroberfläche, die sich praktisch in wenige Objekte gliedert: * Hardware * Stellwerke * Bereiche * Züge / Fahrzeuge * Lua Scripts Nach der Hardware Konfiguration und dem Anlegen von Zügen mit Triebfahrzeugen kann man schon fahren. Konzeptionell verwaltet Traintastic Züge, die ein Triebfahrzeug haben, das einen Dekoder besitzt, welcher über eine definierte Schnittstelle zu erreichen ist. Im Bereich Stellwerke kann ein Bahnhof symbolisch angelegt werden, um Signale, Weichen usw. zu schalten. Im Bereich Lua Scripts können Skripte für zusätzliche Funktionen erstellt werden. Außerdem ist Traintastic natürlich für jeden modellbahnbegeisterten Anhänger von modernen Konzepten geeignet, auch für Mitmacher am Projekt, denn Traintastic ist Open Source und lebt durch und mit der Gemeinschaft, ob es um Fehlerberichte, Dokumentation, Lua Scripts oder Programmcode geht. ===== Wo bekomme ich Traintastic? ===== Traintastic wird in verschiedenen Varianten frei und kostenlos zur Verfügung gestellt. Die erste Anlaufstelle ist natürlich die [[https://traintastic.org|Website]]. Im Download Bereich gibt es die Release-Versionen und die Development-Versionen. Auch wenn die Development-Versionen Fehler haben können, sind diese durchaus zu empfehlen, weil die neuesten Funktionen enthalten sind. Für Windows 10/11 wird ein installierbares Setupprogramm zur Verfügung gestellt. Für Linux und Raspian OS gibt es etwas mehr Auswahl, zum einen als installierbare Pakete im Debian Package Format (deb) und dann als AppImages. AppImages haben den Vorteil, das sie alles mitbringen, was das Programm benötigt und einfach ausführbar sind. AppImages werden für 64 Bit Linux (basierend auf Debian 12 "Bookworm" oder neuer) und 64 Bit Raspian OS (basierend auf Debian 13 "Trixie") zur Verfügung gestellt. Bei den AppImages bietet es sich an, das kombinierte AppImage zu wählen, d.h. Client und Server sind in einem AppImage, beim Starten wird erst der Server ausgeführt und einen kleinen Augenblick später der Client gestartet - d.h. keine Installation, einfach das Executable Flag für das AppImage (in der Console mit chmod +x , im Dateimanager mit der rechten Maustaste) setzten und mit einem Doppelklick starten - einfacher geht es nicht. Der Quellcode ist über [[https://github.com/traintastic/traintastic|Github]] verfügbar. Eine Kurzanleitung für die Erstellung des Programms aus dem Quellcode gibt es [[.:traintastic:buildfromsource|hier]]. ===== Wo gibt es Unterstützung? ===== Für Traintastic gibt es ein [[https://discourse.traintastic.org|Forum]], auch mit einem deutschsprachigen Bereich. Traintastic ist mehrsprachig und die deutsche Übersetzung des Programmes ist vollständig. Das Handbuch ist noch nicht übersetzt, das ist aber in Arbeit. Im Handbuch fehlen auch noch Beschreibungen zu den neuesten Funktionen der Developer-Version von Traintastic. Traintastic wird nur in der Freizeit als Hobbyprojekt entwickelt, auch der Support im Forum erfolgt aus Spaß an der Sache.