User Tools

Site Tools


userpages:skippa:fremo-modelluhr
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


userpages:skippa:fremo-modelluhr [2023/08/30 01:15] (current) – created - external edit 127.0.0.1
Line 1: Line 1:
 +====== RocWatch Howto - Eine kabellose Modelluhr zum Einsatz im FREMO  ======
 +===== Einleitung =====
  
 +Auf FREMO-Treffen werden Modelluhren an verschiedenen Standorten benötigt: an den Wänden der Halle und an den Betriebsstellen. Optimalerweise am Armband der Lokführer. Bisher wird dazu über RUT (Ringleitung für Uhr und Telefon) ein analoges Signal verteilt. Das bedeutet viele Meter Kabel ziehen und stundenlange Arbeit dazu.\\
 +
 +Dies ist eine Anleitung für einen alternativen Ansatz: das Uhrensignal wird von Rocrail1 über WLAN an verschiedene digitale Uhren (Laptop, Monitore, Tablets, Smartphones, Smartwatches) verteilt. Zusammen mit einer kabellosen Lösung für das Telefon kann damit der Aufwand für das Legen der RUT Leitung eingespart werden. Und es findet sich ein guter Einsatz für alte Monitore, Laptops, Tablets und Handys.\\
 +{{:userpages:skippa:modelluhr_rocwatch_in_action.jpg?600}}
 +
 +Ich beschreibe meine gewählte Konfiguration. Es gibt natürlich jede Menge Spielarten und Kombinationsmöglichkeiten, gerade in der Hardware. Rocrail ist sehr flexibel und unterstützt fast alle Hardware. Beispielsweise die Nutzung eines Windows-Laptops statt des Raspberry Pis als Uhrenzentrale. Den kann man dann auch gleich an einer Betriebsstelle als Bahnhofsuhr verwenden.\\
 +
 +===== Systembeschreibung =====
 +Ich beschreibe zunächst das allgemeine Zusammenspiel der Komponenten. Keine Angst vor lauter Abkürzungen und Fachbergriffen. Eine Schritt für Schritt Anleitung findet sich weiter unten.\\
 +
 +**Das Uhrensignal wird von Rocrail in der „Uhrenzentrale“ erzeugt und mittels WLAN an alle Uhren verteilt.** \\
 +Rocrail ist eigentlich eine Software zur kompletten Steuerung von Modellbahnen. Damit sind automatische Steuerungen, Modulanlagen, Stellwerkssteuerungen und eben auch Modelluhren möglich. \\
 +**Die Uhren an der Wand und auch jede andere Modelluhr sind dann die Rocrail-Clients**, die aber nur die Uhr anzeigen und keinen Gleisplan. Der Client ist unter anderem als Webapplikation verfügbar, so dass nahezu jedes internetfähige Endgerät genutzt werden kann. Diese Applikation heisst Rocweb. \\
 +{{:userpages:skippa:modelluhr_raspberrypi.jpg?300}}
 +Der Rocrail Server (ab sofort die „Uhrenzentrale“ genannt) läuft auf einem [[www.raspberrypi.org|Raspberry Pi]] 1B (ab sofort Raspi genannt) mit Rasbian OS als Betriebssystem. Das ist ein zigarettenschachtelgroßer Minicomputer, der aber mit allem nötigem ausgestattet ist - USB, HDMI, Netzwerk. Da an der Zentrale während des Betriebes kein Monitor und keine Tastatur angeschlossen sind, wird die Uhrenzentrale ohne X-Server und entsprechend ohne Rocview genutzt. Das spart Ressourcen und Platz. (Ein X-Server ist übrigens der grafische Fenstermanager und Oberfläche des Betriebssystems, auch als Desktop bezeichnet. Rocview ist die grafische Benutzeroberfläche des Modellbahnsteuerungsprogrammes Rocrail).
 +Rocrail und damit der Uhrendienst wird beim Hochfahren der Uhrenzentrale automatisch gestartet. Mehr muss nicht gemacht werden, man kann sofort die Uhrzeit einstellen und loslegen.\\
 +Das System der Uhrenzentrale wird per Systemaktion aus Rocrail heruntergefahren. Sowohl Einstellung der Uhrzeit als auch der Befehl zum Herunterfahren werden über den Webclient Rocview gegeben. Zur Bedienung benötigt man also nur ein Handy, Tablet oder Laptop, der genauso wie die Uhren mit der Uhrenzentrale verbunden wird.\\
 +Zur Erstkonfiguration wird ein Monitor an den HDMI Ausgang und eine Tastatur/Maus an den USB Ausgang angesteckt. Nach der Erstkonfiguration ist eigentlich nichts mehr am System zu tun. 
 +Sollte man doch einmal etwas verändern müssen, kann man entweder Monitor und Tastatur anstecken oder sich via SSH auf dem System einloggen.\\
 +\\
 +Die Uhrenzentrale wird per Ethernetkabel an den WLAN-Router angeschlossen und bekommt automatisch eine Adresse zugewiesen, so wie auch alle anderen Clients. Man tut gut daran, der Zentrale immer die gleiche Adresse zuzuweisen. Das kann man normalerweise im WLAN-Router einstellen. Dort kann man auch sehen, welche Adresse das ist. Das ist später wichtig, um die Uhr im Browser auch aufrufen zu können.\\
 +\\
 +{{:userpages:skippa:modelluhr_wanduhr.jpg?200}} Die Wanduhren bestehen aus einem Raspberry Pi mit WLAN Unterstützung. Der Raspi speist über den HDMI Ausgang einen Monitor. Es läuft wiederum ein Rasbian, doch dieses Mal mit X-Server. Beim Hochfahren wird automatisch ein Chrome Browserfenster im Fullscreen-Modus gestartet, das dann über das WLAN die Uhr von der Uhrenzentrale lädt. \\
 +Das Ganze wird auf einem Trägerbrett befestigt, so dass die ganze Anordnung leicht aufgehängt werden kann. Jeder Monitor hat auf der Rückseite Löcher, über die er mit normalen M4 Gewindeschrauben auf dem Trägerbrett angeschraubt werden kann. \\
 +Damit die Wanduhren auch heruntergefahren werden kann, wird zusätzlich noch ein [[http://wiki.rocrail.net/doku.php?id=rocnet:rocnetnode-de|RocNetNode]] installiert. Das ist eine Art Erweiterung für Rocrail, über die man den Raspberry Pi zum schalten und melden für die Modellbahn verwenden kann. Diese tollen Funktionen nutzen wir hier aber nicht – sondern nur die Tatsache, dass sich auch die RocNetNodes am Rocrail Server der Uhrenzentrale anmelden. Und wenn diese heruntergefahren wird, folgt kurze Zeit später auch das rocnetnode (=Wanduhr) System.\\
 +===== Was man braucht =====
 +
 +Für die Uhrenzentrale
 +  * Einen Raspberry Pi (ab Modell 1B) als Uhrenzentrale. Mit Netzteil und mind. 4GB SD Karte
 +  * Einen gültigen Rocrail Support Key
 +  * Einen WLAN-Router mit integriertem Netzwerk-Switch und DHCP Server, UDP fähig
 +  * Kabel zur Verbindung der beiden
 +\\
 +Für die Wanduhr
 +    * Einen Monitor mit HDMI Eingang
 +    * Einen Raspberry Pi mit WLAN Unterstützung (daher ab Modell 3). Mit Netzteil und mind. 8 GB Micro SD Karte
 +    * Ein Holzbrett als Trägerplatte
 +    * 4x Schrauben M4 zur Befestigung des Monitors
 +    * Ein Stück Seil
 +    * HDMI Kabel
 +    * Eine Mehrfachsteckdose mit extra langem Kabel
 +    * Doppelseitiges Klebeband und Kabelbinder
 +\\
 +Zur Konfiguration und Installation
 +    * Einen Rechner mit SD-Kartenleser und Ethernetbuchse
 +    * Einen Monitor oder Fernseher mit HDMI Eingang
 +    * Tastatur und Maus mit USB Anschluss
 +
 +Und etwas grundlegende Linux-Kenntnisse sind hilfreich. Es haben aber auch schon Leute ohne geschafft. Das Rocrail-Wiki ist sehr ergiebig und fragen kann man ja auch noch.
 +===== Schritt für Schritt Anleitung =====
 +
 +==== Konfiguration der Uhrenzentrale ====
 +1) [[https://www.raspberrypi.org/downloads/raspbian/|Rasbian image herunterladen]]. Ich empfehle hier das „Rasbian stretch lite“, denn das kommt ohne X-Server aus. Natürlich kann man auch eine komplette Installation machen, benötigt aber eine größere SD-Karte. Einen Vorteil hat man nicht - außer, dass man für die Konfiguration auf eine grafische Oberfläche zurückgreifen kann. \\
 +
 +2) Das [[https://www.raspberrypi.org/documentation/installation/installing-images/README.md|Image auf die SD Karte schreiben]] ist ausführlich und für die verschiedenen Betriebsysteme auf den Seiten der Raspberry Foundation beschrieben. Das Beschreiben der SD Karte kann mehrere Minuten dauern. Nur Geduld. Aber wenn das erledigt ist, ist Rasbian schon installiert und muss „nur“ noch konfiguriert werden. SD Karte ordnungsgemäß auswerfen, nicht einfach rausziehen! \\
 +
 +3) Monitor, Maus & Tastatur anstecken. SD Karte in den Raspi einstecken. Raspi mit Strom versorgen \\
 +
 +4) Der Raspi bootet in eine Befehlszeile. Nun einloggen. User „pi“ Passwort „raspberry“. Achtung, bis nach ausführen von Schritt 6 ist die Tastatur Englisch, da sind "y" und "z" vertauscht. Also falls es nicht klappt, „raspberrz“ eingeben. \\
 +''login pi\\
 +raspberry''\\
 +
 +5) Den raspi mit Internet (nicht der WLAN Router für die Uhr) versorgen. Am einfachsten geht das per Kabel in den Router des Hausnetzwerks. Alternativ gleich in der Konfiguration die WLAN Zugangsdaten des Hausnetzwerks eingeben. \\
 +Ob man Internetzugriff hat, kann man mit dem Befehl ''ping www.fremo-net.eu''
 +herausfinden. Der Output müsste dann etwa so aussehen:\\
 +''pi@raspberrypi:~ $ ping www.fremo-net.eu \\
 +PING www.fremo-net.eu (134.119.10.86) 56(84) bytes of data. \\
 +64 bytes from forum.fremo-net.eu (134.119.10.86): icmp_seq=1 ttl=58 time=16.2 ms'' \\
 +Falls keine Antwort kommt, kann man mit dem Befehl ''ifconfig'' nachschauen, ob der Raspi eine IP-Adresse zugewiesen bekommen hat: \\
 +''pi@raspberrypi:~ $ ifconfig \\
 +eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 \\
 +        inet 192.168.178.24  netmask 255.255.255.0  broadcast 192.168.178.255'' \\
 +
 +6) Mit ''sudo raspi-config'' wird das System wie folgt konfiguriert. Nicht erwähnte Optionen einfach nicht beachten.\\
 +        a. change user Passwort: "FREMO-Uhr"
 +        b. Network 
 +            1. Hostname: "uhrenzentrale"
 +            2. WIFI SSID: "Uhrennetz" WIFI Passwort "Modelluhr"
 +        c. Localisation options
 +            1. change locale: de_DE.UTF-8 UTF-8
 +            2. timezone: Europe -> Berlin
 +            3. keyboard layout: Generic 101 -> other -> German -> German qwerty -> default -> no compose key
 +            4. wifi country -> DE
 +        d. Interfacing options
 +            1. SSH enable
 +        e. Advanced Options
 +            1. Expand file system
 +7) Nun wird das rasbian System auf den neusten Stand bringen. \\
 +''sudo apt-get update''\\
 +''sudo apt-get upgrade''\\
 +
 +8) Rocrail herunterladen\\
 +''wget http://rocrail.net/software/rocrail-snapshot/rocrail-xxxXXX-raspbian-stretch-armhf.deb''\\
 +Dabei xxxXXX mit der aktuellen Versionsnummer ersetzen. Diese ist ersichtlich auf der [[http://rocrail.net/software/rocrail-snapshot/|Rocrail Download-Seite]]\\ 
 +
 +9) [[http://wiki.rocrail.net/doku.php?id=download-int#raspberry_pi|Rocrail und die verwendeten Bibliotheken]] installieren.\\
 +''sudo apt-get install libwxgtk3.0-dev libusb-1.0-0-dev''\\
 +''sudo dpkg -i rocrail-xxxXXX-raspbian-stretch-armhf.deb''\\
 +
 +10) [[http://wiki.rocrail.net/doku.php?id=download-int#post_install|Rocrail als deamon konfigurieren]], so dass es beim Systemstart automatisch gestartet wird
 +''sudo update-rc.d rocraild defaults''
 +
 +11) Rocrail konfigurieren und für die Nutzung des Rocweb Services vorbereiten. Dazu am schnellsten die Uhrenzentrale herunterfahren, die SD-Karte entnehmen und auf einem anderen Rechner bearbeiten - oder einfach die vorgefertigten Konfigfiles herunterladen1 und in das Verzeichnis /pfad-zur-SD-Karte/opt/rocrail kopieren. Dann weitermachen bei 11e.\\
 +Alle Dateien befinden sich im Verzeichnis /pfad-zur-SD-Karte/opt/rocrail\\
 +11a. in der rocrail.ini wird der rocweb-dienst aktiviert und auf Port 8088 sowie den Pfad /opt/rocrail eingestellt\\
 +''  <http port="0" refresh="0">\\
 +    <webclient port="8088" webpath="web" svgpath1="svg/themes/SpDrS60" svgpath2="svg/themes/Accessories" svgpath3="svg/themes/Roads" svgpath4="." svgpath5="." imgpath="images">>
 +  </http>''\\
 +11b. ebenfalls in der rocrail.ini wird der RocNetNode Dienst aktiviert, mit dem nachher die Wanduhren automatisch heruntergefahren werden.\\
 +''<digint iid="RocnetFREMOUhr" lib="rocnet" device="com1" sublib="udp" bps="19200" restricted="false" stress="false" libpath="/opt/rocrail" keepalive="10" localip="">\\
 +<rocnet id="1" addr="224.0.0.1" port="4321" crc="false" wd="true" sack="true" shutdownall="true" watchnodes="false" lcbus="0"/>\\
 +</digint>''\\
 +11c. in der plan.xml wird ein Schalter hinzugefügt, der die Aktion zum Herunterfahren der Uhrenzentrale auslöst\\
 +'' <colist>\\
 +<co svgtype="1" id="output-shutdown" x="3" y="0" z="0" porttype="0" prev_id="output-shutdown" nr="0" desc="" decid="" show="true" blockid="" routeids="" grpid="" tristate="false" toggleswitch="false" operable="true" iid="" bus="0" uidname="" addr="0" port="0" gate="0" param="0" paramoff="0" value="1" delay="0" prot="D" inv="false" blink="false" colortype="false" asswitch="false" accessory="true" redChannel="0" greenChannel="0" blueChannel="0" whiteChannel="0" white2Channel="0" brightnessChannel="0" state="off">\\
 +<color blue="0" brightness="0" green="0" id="" red="0" saturation="254" white="0" white2="0"/>\\
 +<actionctrl id="ac-ShutdownSystem" state="on" desc="" lcid="" reset="true" allconditions="true" atcmd="true" atevt="false" auto="true" manual="true" substate="" duration="0" timer="0" callerid="output-shutdown" callerdesc="" calleruserdata=""/>\\
 +</co>\\
 +</colist>''\\
 +11d. in das Verzeichnis ''/pfad-zur-SD-Karte/opt/rocrail'' wird eine Scriptdatei ''ShutdownRocrailSystem.sh'' angelegt, die das System herunterfährt:\\
 +''#!/bin/sh\\
 +/etc/init.d/rocraild stop\\
 +sleep 15\\
 +shutdown -h now''\\
 +11e. und schließlich muss noch der [[http://wiki.rocrail.net/doku.php?id=supportkey-de|Rocrail Supportkey]] ''lic.dat'' nach ''/pfad-zur-SD-Karte/opt/rocrail'' kopiert werden. Zum Auspobieren wird der Key noch nicht benötigt, der Rocweb-Dienst läuft für 5 Minuten auch ohne.\\
 +11f. SD Karte ordentlich auswerfen, nicht einfach rausziehen!\\
 +12) Die SD Karte kommt wieder in die Uhrenzentrale und wird gestartet. Nach dem Login muss noch das Shutdown-script ausführbar gemacht werden:\\
 +''cd /opt/rocrail''\\
 +''sudo chmod 755 ShutdownRocrailSystem.sh''\\
 +
 +
 +==== Konfiguration des WLAN-Routers ====
 +Die genauen Konfigurationsschritte hängen sehr vom jeweiligen Router ab, deshalb beschreibe ich sie hier nicht im Detail, sondern nur die Einstellungen im allgemeinen.\\
 +13) Verbindung herstellen. Dazu den Konfigurationsrechner per Ethernetkabel direkt mit einem der LAN Ausgänge des Routers verbinden. \\
 +14) Einen Browser aufrufen und die Adresse 192.168.178.1 eingeben, damit kommt man auf die Konfigurationsoberfläche des Routers. \\
 +15) Den DHCP Server aktivieren. Adressbereich 192.168.14.2 bis 192.168.14.100. Der WLAN Router bekommt dann die  192.168.14.1. Normalerweise muss Schritt 13 mit der neuen Adresse wiederholt werden.\\
 +16) Das WLAN einschalten und konfigurieren: \\
 +SSID: "Uhrennetz" \\
 +WIFI Passwort "Modelluhr"\\
 +17) Die Uhrenzentrale einschalten. Nach einer Weile sollte dieser bei den aktiven DHCP Clients auftauchen. Wir nehmen im weiteren Verlauf an, die Uhrenzentrale hat die Adresse 192.168.14.3 bekommen. Diese Adresse merken, sie wird später noch wichtig (siehe Schritt 26).\\
 +18) Diesen Eintrag markieren, so dass diesem Gerät (= dieser MAC Adresse) immer diese Adresse zugewiesen bekommt.\\
 +
 +
 +==== Konfiguration der Wanduhr ====
 +19) [[https://www.raspberrypi.org/downloads/raspbian/|Rasbian image herunterladen]]. Dieses mal „Rasbian stretch Desktop". Es benötigt eine 8GB SD Karte.
 +
 +20) Das [[https://www.raspberrypi.org/documentation/installation/installing-images/README.md|Image auf die SD Karte schreiben]] ist ausführlich und für die verschiedenen Betriebsysteme auf den Seiten der Raspberry Foundation beschrieben.\\
 +Das Beschreiben der SD Karte kann mehrere Minuten dauern. Nur Geduld. Aber wenn das erledigt ist, ist Rasbian schon installiert und muss „nur“ noch konfiguriert werden.\\ SD Karte ordnungsgemäß auswerfen, nicht einfach rausziehen!\\
 +
 +21) Monitor, Maus & Tastatur anstecken. SD Karte in den Raspi einstecken. Raspi mit Strom versorgen.\\
 +
 +22) Der Raspi bootet direkt in den Desktop. Ein Einloggen ist nicht erforderlich. Die Zugangsdaten sind trotzdem dieselben, sollte man sie mal benötigen (siehe 4). Das, was man bei Windows als Startmenü kennt, verbirgt sich hinter der kleinen lila Himbeere (=Raspberry) oben links in der Ecke. Von hier aus kann man die installierten Programme aufrufen und natürlich auch die Konfiguration ändern (-> Preferences -> Raspberry Pi Configuration)\\
 +
 +23) Ich mache die Konfiguration allerdings lieber in der bereits bekannten Befehlszeile (auch bekannt als "Terminal"). Die erreicht man über die Himbeere -> Accessories -> Terminal.\\ 
 +{{:userpages:skippa:modelluhr_rasbian.png?400}}
 +Darin geht die Konfiguration genau wie in Schritt 6 beschrieben. Auch die Einstellungen sind dieselben - nur, dass dieses Mal als Hostname z.B. "Wanduhr1" eingetragen wird. Zusätzlich habe ich noch "vnc" aktiviert. Dadurch kann man sich mit Hilfe eines [[https://www.realvnc.com/de/connect/download/viewer/|vnc viewers]] von einem anderen Rechner aus auf der grafischen Oberfläche der Wanduhr1 einloggen.\\
 +
 +24) Das Symbol mit den beiden blauen Pfeilen öffnet die Netzwerkverbindungen. Hier kann man auch die WLAN Zugangsdaten eingeben, falls etwas mit den Eingaben in der Konfiguration schief gegangen sein sollte.\\
 +
 +25) Nun kommen wir aber endlich **zur eigentlichen Uhr**: Man muss dem System sagen, dass beim Systemstart ein Chrome browser im sogenannten "Kiosk Mode" gestartet werden soll und eine bestimmte Seite aufrufen. Und man muss den Bildschirmschoner ausschalten.\\
 +Beides macht man, in dem man die Datei ''/home/pi/.config/lxsession/LXDE-pi/autostart'' editiert:\\
 +
 +26) Ein Terminal öffnen (siehe oben) und ''geany /home/pi/.config/lxsession/LXDE-pi/autostart'' eingeben. Die folgenden Einträge hinzufügen sorgen dafür, dass der Screensaver nicht aktiviert wird:\\ 
 +''@xset s noblank\\
 +@xset s off\\
 +@xset -dpms''\\
 +\\
 +und der folgende Eintrag dafür, dass die Uhr aufgerufen wird\\
 +''@chromium-browser --kiosk --disable-restore-session-state 192.168.14.3:8088/?z=1000''\\
 +\\
 +sollte die Uhrenzentrale eine abweichende IP adresse bekommen haben, als die 192.168.4.3, so muss natürlich entsprechend diese eingetragen werden.\\
 +
 +27) Nun fehlt nur noch eine Sache: die [[http://wiki.rocrail.net/doku.php?id=rocnet:rocnetnode-img-en|Installation von RocNetNode]], damit das System Wanduhr1 automatisch herunterfährt, wenn die Uhrenzentrale heruntegefahren wird. \\
 +Dazu öffnet man wiederum ein Terminal in der Uhrenzentrale und führt folgende Schritte aus:\\
 +
 +28) RocNetNode herunterladen\\
 +''wget http://rocrail.net/software/rocrail-snapshot/raspi/rocnetnode-xxxXX-raspbian-armhf.deb''\\
 +Dabei xxxXX mit der aktuellen Versionsnummer ersetzen. Diese ist ersichtlich auf der [[http://rocrail.net/software/rocrail-snapshot/|Rocrail Download-Seite]]. Dieses mal muss natürlich bei "RocNetNode" geschaut werden.\\
 +
 +29) rocnetnode installieren\\
 +''sudo dpkg -i rocnetnode-xxxx-raspbian-armhf.deb''\\
 +
 +30) und neu starten\\
 +''sudo reboot''\\
 +
 +31)  Durch die Einstellungen in Schritt 11)b werden die RocNetNodes (=Wanduhren) von selbst erkannt und heruntergefahren, wenn die Uhrenzentrale heruntergefahren wird. Beziehungsweise, wenn der Rocrail Server auf der Uhrenzentrale gestoppt wird.\\
 +       
 +**Viel Spaß beim Eisenbahn spielen mit Modelluhr!**\\
 +
 +
 +
 +===== Dateien =====
 +
 +{{:userpages:skippa:modelluhr-konfigfiles.zip}}
userpages/skippa/fremo-modelluhr.txt · Last modified: 2023/08/30 01:15 by 127.0.0.1