User Tools

Site Tools


rocrailini-service-de

Differences

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


Previous revision
rocrailini-service-de [2025/06/05 08:15] (current) – [WiThrottle (Wi-Fahrregler)] rjversluis
Line 1: Line 1:
 +====== Rocrail Dienste ======
 +[[german#rocrail|{{  server.png}}]][[german|{{  rocrail-logo-35.png}}]]
 +[[german | Inhalt ]] -> [[german#rocrail|Rocrail Server]] -> [[rocrailini-de | Konfiguration]] 
 +  * [[rocrailini-gen-de|Allgemein]] | [[rocrailini-trace-de|Trace]] | **[[rocrailini-service-de|Dienste]]**  | [[rocrailini-automode-de|Automatik]] | [[rocrailini-controller-de|Zentrale]] | [[:networking-de|R2Rnet]] | [[:rocrailini-rocweb-de|SVG]] | [[finder:finder-de|Finder]] | [[:rocrailini-cmdmapping-de|Befehls-Zuordnung]]
 +    * [[clockservice-de|Uhr-Funktionen]] 
 +// \\ // \\
 +
 +===== Rocrail-Dienste Registerkarte =====
 +{{rocrailini-service-de.png?760}}
 +\\
 +===== Linke Seite =====
 +===== Uhrzeit-Dienst (Clock Service) =====
 +Diese Funktion wird benutzt, um die Uhr - wenn gewünscht - zu beschleunigen und/oder alle Clients zu synchronisieren.
 +\\
 +====Teiler====
 +Mit dem ersten Feld wird die Modellzeit-Geschwindigkeit eingestellt (1 - 100).\\
 +Das zweite Feld ist der Aktualisierungs-Intervall in Modellzeit-Minuten (1 - 60) und bestimmt damit, wie oft die Clients synchronisert werden.\\
 +
 +  * **Hinweis:** Siehe auch Tabelle __**[[clockservice-de#realzeit-teiler-modellzeit|Realzeit-Teiler-Modellzeit]]**__
 +
 +====Stunde / Minute====
 +Einstellung der Startzeit für den Uhrzeit-Dienst.\\
 +Die PC-Zeit wird verwendet , wenn "24:60" eingestellt ist.
 + \\
 +====Semi-Echtzeit====
 +Bei dieser Option sind alle Optionen für die Modellzeituhr verfügbar, wenn der Teiler auf Eins eingestellt ist. (Ansonsten werden Uhrbefehle abgelehnt.) \\
 +__Hinweis: __ // Die Uhr ist mit der Hardwarecomputeruhr nicht mehr synchron.//
 + \\
 +====Uhr anhalten bei Gleisspannung aus====
 +Hält die Modellbahnzeit an, falls ein Gleisspannung-AUS-Ereignis eintritt. (Kurzschluss)
 + \\
 +===== Client-Dienst (Client Service) =====
 +Über diesen Port werden alle Rocview-Clients mit dem Rocrail-Server verbunden, um die Daten und Ereignisse auszutauschen.
 +\\
 +==== Client Port ====  
 +Der offiziell von IANA zugewiese Port ist **[[iana-rcs|8051]]**. 
 +\\
 +
 +==== Nur erster Client kann bedienen ====
 +Verhindert, dass weitere Clients den Rocrail-Server bedienen können; Nur der zuerst verbundene Client kann bedienen.\\
 +"Zugriffscode" und "Teil-Zugriffscode" zu verwenden, ist die bessere Lösung.
 + \\
 +====WIO Watchdog====
 +Aktiviert die überwachung der WIO-Erreichbarkeit. Die Auszeit ist in 10ms-Einheiten definiert.\\
 +Voreinstellung: 700 x 10 ms = 7 s.
 +WIOs senden alle 4 Sekunden eine "alive message". \\
 +
 +Ausgenommen: Ausschließen nicht relevanter WIOs (Kein ausschalten der Gleisspannung), \\
 +der Eintrag der WIO ID's kann Komma separiert oder von bis erfolgen.
 + \\
 +==== Zugriffscode ====
 +Wenn hier etwas eingetragen ist, muss der Client diesen Zugriffscode anbieten, um Schreibrechte zu erhalten.
 +  * Die Option "Nur erster Client kann bedienen" ist dann unwirksam.
 +  * Bei normalen Betrieb mit Arbeitsbereich frei lassen.
 +  * Unterstützte Mobil-Clients:
 +    * Rocweb
 +    * andRoc
 +
 +===== Teil-Zugriffscode =====
 +Ist dieser Code definiert, können die ausgewählten Funktionen **nur dann** von Clients ausgelöst werden, die diesen "Teil-Zugriffscode" korrekt liefern.
 +  * System (Einschließlich Automatik- und Gleisspannungs-Befehle.)
 +  * Signale
 +  * Fahrstraßen
 +  * Weichen
 +  * Ausgänge
 +  * Lokomotiven
 +Unbeabsichtigte / unsachgemäße Bedienung der obigen Funktionen durch Clients wird verhindert, indem dieser Code auf den Client-Geräten (z.B. von Gästen) __nicht eingetragen__ wird.
 +
 +\\
 +
 +===== Rocweb =====
 +Siehe auch Anwendung **[[:rocweb:rocweb-de|Rocweb]]**
 +====Port====  
 +Wenn der Wert größer als Null ist, wird der WebClient-Dienst aktiviert.\\
 +Es wird empfohlen, Port 8080 oder 8088 zu verwenden.\\
 +:!: Diese Portnummer darf __nicht__ mit dem __**[[:rocrailini-service-de#port|Server-Monitor-Port]]**__ übereinstimmen.\\
 +
 +====Pfad====
 +Pfad, in dem die HTML-, CSS- und JavaScript-Dateien zu finden sind.\\
 +Weitere Einzelheiten finden sich im __**[[:rocweb:rocweb-de#einstellung|Rocweb-Einstellung]]**__.\\
 +
 +===macOS===
 +In neueren Rocrail-Versionen sollte so der Rocweb-Pfad sein:
 +<code>
 +/Applications/Rocrail.app/Contents/rocdata/web
 +</code>
 +
 +====Bilder-Pfad====
 +Der Bilderpfad für Lokbilder ist standardmäßig wie hier definiert: (Relativ zum aktiven Arbeitsbereich.)
 +  * __**[[:rocrailini-gen-de##bilderverzeichnis|Bilderverzeichnis]]**__
 +
 + \\
 +----
 +=====Rechte Seite=====
 +===== Server-Monitor =====
 +Ein HTTP-Dienst zum Beobachten der Serveraktivität und Verarbeiten von Befehlen von der **[[:rocctrl:rocctrl-en#rocmini_watch_app|RocMini]]**-Watch-App.\\
 +[[servermonitor-de|Siehe für Einzelheiten dieses Kapitel.]]
 +==== Port ====
 +Standard 8008.  
 + \\
 +==== RocMini Kurz-Kennungen====
 +Wenn aktiviert, sendet die Watch App RocMini nur Objekte mit einer festgelegten Kurz-Kennung.\\
 + \\
 +===== SRCP ===== 
 +{{ :srcp-clients.png?300}} 
 +Optionaler Dienst für **[[http://srcpd.sourceforge.net/|SRCP]]**-Clients wie **[[http://sourceforge.net/projects/j-man/|J-Man]]** oder **[[http://spdrs60.sourceforge.net/|spdrs60]]**.\\
 +Die von diesen Clients adressierten Objekte müssen im Rocrail-Gleisplan definiert sein.\\ 
 +  * http://www.der-moba.de/index.php/Digitalprojekt#SRCP-Clients 
 +  * [[:srcp-scripting-en|SRCP-Scripting (en)]]
 +
 +====Port / Gerät====
 +Optionales serielles Gerät, um SRCP zu bedienen.\\
 +Leitungs-Einstellungen sind fest:\\
 +  * 115200 bps
 +  * 8N1
 +
 +===== SNMP =====
 +Aktiviert den **[[http://de.wikipedia.org/wiki/Simple_Network_Management_Protocol|SNMP]]**((Simple Network Management Protocol)) v1/2c Agent im Rocrail-Server.\\
 +:!: Der voreingestellte Port 161 wird für den SNMP-Dienst verwendet, der besondere Benutzer-Rechte erfordert: \\
 +<code>
 +OSNMP    0658 SNMP bind
 +OSocket  0513 bind() failed [13] [Permission denied]
 +</code>
 +
 +==== Konfiguration ====
 +<code xml>
 +  <SnmpService port="161" trapport="162" traphost="192.168.100.77"/>
 +</code>
 +
 +==== GetRequest Beispiel ====
 +Direkte ObjectID:
 +<code>
 +$ snmpget -v 2c -c public localhost 1.3.6.1.2.1.1.1.0
 +iso.3.6.1.2.1.1.1.0 = STRING: "Rocrail 2.0.2508 Sunrise"
 +</code>
 +Symbolische ObjectID:
 +<code>
 +$ snmpget -v2c -c public localhost SNMPv2-MIB::sysDescr.0
 +SNMPv2-MIB::sysDescr.0 = STRING: Rocrail 2.0.2508 Sunrise
 +$ snmpget -v2c -c public localhost SNMPv2-MIB::sysUpTime.0
 +SNMPv2-MIB::sysUpTime.0 = Timeticks: (3443) 0:00:34.43
 +</code>
 +
 + \\
 +====Unterstützte Befehle ====
 +  * GetRequest
 +  * GetNextRequest
 +  * SetRequest
 +  * BulkRequest
 +  * Trap
 + \\
 +
 +==== IANA ====
 +{{ :rr-service:iana-pen-rocrail-37707.png?200}}
 +  * Rocrail PEN **[[http://www.iana.org/assignments/enterprise-numbers|37707]]** \\
 + \\
 +
 +==== MIB ====
 +//Management Information Base//\\
 +{{ :rr-service:mib-browser.png?400}}
 +  *  {{:snmp:rocrail.mib.zip}}
 +=== Freier MIB-Browser === 
 +  * http://www.ireasoning.com/downloadmibbrowserfree.php 
 +
 + \\
 +
 +==== Traps ====
 +  * Kaltstart
 +  * Link up: neue Clienten-Verbindung
 +  * Link down: Clienten-Verbindung getrennt
 +  * Benutzer:
 +    * Herunterfahren
 +    * Ausnahme
 +\\
 +=====@Box=====
 +Der Speicher-Ort der __**[[:abox:archivebox-de|@Box]]**__.\\
 + \\
 +=====MQTT Service=====
 +Clients können den __**[[http://mosquitto.org|MQTT-Broker]]**__ zur Kommunikation mit dem Rocrail-Server verwenden.\\
 +^ MQTT Topic ^ Beschreibung ^
 +| ''rocrail/service/info'' | Alle Server-Broadcasts werden mit diesem Topic-Namen herausgegeben. |
 +| ''rocrail/service/client'' | Clients können Befehle mit diesem Topic herausgeben. \\ :!: //Es wird ein gültiger Unterstützungs-Schlüssel benötigt; Ohne Schlüssel nur 5 Demo-Minuten. // |
 +| ''​rocrail/​service/​field''​ | Clients können Hardware-Ereignisse mit diesem Topic herausgeben. |
 +| ''rocrail/service/command'' | Zentralen-Befehle für Benutzer-Bibliotheken. |
 +\\
 +Die Nutzdaten der MQTT-Meldungen sind im __**[[:cs-protocol-en|RCP-Format]]**__.\\
 +Der Rocrail-Server verwendet das __**[[http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html|MQTT-V3.1-Protokoll]]**__.\\
 +
 +====Hostname====
 +Der DNS-Name oder die TCPIP-Adresse des MQTT-Brokers.\\
 +====Port====
 +Die Dienst-Port-Nummer des MQTT-Brokers.\\
 +Die von [[https://mosquitto.org|Mosquitto]] voreingestellte Port-Nummer ist 1883.\\
 +
 +====Benutzerkennung====
 +Voreinstellung "RocrailService", da immer eine Benutzerkennung eingestellt sein muss.
 + \\
 +====Passwort====
 + \\
 +====Gruppe====
 +//Topic-Gruppierung//\\
 +Element-Namen im Broadcast-Topic verwenden.\\
 +====Benutzer-Zentralen-Biliotheken====
 +Mit den beiden Topics, //field// und //command//, ist es möglich, benutzerdefinierte Zentralen-Bibliotheken ohne Abhängikeiten von den Rocrail-Quellen zu implementieren.\\ 
 +
 +====Clients====
 +Nur __**[[http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html#qos-flows|Quality of Service 1]]**__  wird unterstützt.\\
 +Clients können QoS **0** verwenden, es wird aber dringend QoS **1** empfohlen.\\
 +Der einzig bekannte Client für diesen Dienst ist das Befehlszeilen-Programm von Mosquitto:\\
 +<code bash>
 +mosquitto_pub -p 60123 -t rocrail/service/client -m "<sys cmd=\"stop\"/>" -q 1
 +</code>
 +Broker-Antwort:
 +<code bash>
 +1467710159: New connection from 127.0.0.1.
 +1467710159: New client connected from 127.0.0.1 as mosq_pub_2323_rob-Virt.
 +1467710159: Sending CONNACK to mosq_pub_2323_rob-Virt (0)
 +1467710159: Received PUBLISH from mosq_pub_2323_rob-Virt (d0, q1, r0, m1, 'rocrail/service/client', ... (17 bytes))
 +1467710159: Sending PUBACK to mosq_pub_2323_rob-Virt (Mid: 1)
 +1467710159: Sending PUBLISH to RocrailService (d0, q1, r0, m1, 'rocrail/service/client', ... (17 bytes))
 +1467710159: Received DISCONNECT from mosq_pub_2323_rob-Virt
 +1467710159: Received PUBACK from RocrailService (Mid: 1)
 +1467710159: Received PUBLISH from RocrailService (d0, q1, r0, m3, 'rocrail/service/info', ... (51 bytes))
 +1467710159: Sending PUBACK to RocrailService (Mid: 3)
 +1467710159: Received PUBLISH from RocrailService (d0, q1, r0, m4, 'rocrail/service/info', ... (175 bytes))
 +1467710159: Sending PUBACK to RocrailService (Mid: 4)
 +1467710160: Received PUBLISH from RocrailService (d0, q1, r0, m5, 'rocrail/service/info', ... (60 bytes))
 +1467710160: Sending PUBACK to RocrailService (Mid: 5)
 +</code>
 +
 +====Erkennung====
 +Ein UDP-Multicast-Erkennungsdienst ist auch für andere Geräte verfügbar, die den gleichen Broker verwenden wollen.\\
 +| Host | 224.0.0.1 |
 +| Port | 8051 |
 +
 +Das Gerät muss eine Nachricht mit folgendem Inhalt senden:
 +| **BROKER-GET** |
 +Es erhält die folgende Antwort:
 +| **BROKER-HOST:<hostname>** \\ **BROKER-PORT:<port#>**|
 +Beide Zeilen enden mit einem Linefeed: ''\n''
 +
 + \\
 +====Last Will====
 +Wenn die Rocrail-MQTT-Broker-Verbindung verloren geht, kann //Last Will// in Thematik ''rocrail/service/info'' beobachtet werden:
 +<code xml>
 +<exception text="abend"/>
 +</code>
 +
 + \\
 +=====Standort (Location)=====
 +====Breitengrad / Längengrad (Latitude / Longitude)====
 +Angaben zum eigenen Standort zur automatische Berechnung der Zeiten von Sonnenauf- u. untergang für Lichtsteuerung und Wetter.\\
 +Format Dezimal
 +
 +====Beispiel====
 +Speyer(D):
 +|< >|
 +| latitude | 49.32083 |
 +| longitude | 8.43111 |
 +
 +  * https://latitudelongitude.org
 +
 +=====mDNS=====
 +Siehe auch: [[:mdns-de|mDNS-Information]]
 +====Aktivieren====
 +Aktiviert mDNS für Rocrail als Dienst.\\
 +Dies kann verwendet werden, um nach dem Rocrail-Server in einem Client wie Rocview zu suchen.\\
 +**Hinweis:** //Diese Option deaktivieren, wenn Multicast geblockt oder unerwünscht ist.//\\
 +====Kennung====
 +Die Rocrail-Server-Kennung, Voreinstellung "Rocrail".\\
 +{{:mdns:mdnsid.jpg?400}}\\
 +
 +\\
 +=====WiThrottle (Wi-Fahrregler)=====
 +Unterstützung für das WiThrottle-Protokoll.\\
 +Bekannte Geräte:
 +  * [[https://www.wifred.de/|Fremo wiFred]]
 +  * [[https://enginedriver.mstevetodd.com/|Engine Driver]] (Android App)
 +  * [[https://withrottle.com/|WiThrottle]] (iOS App)
 +
 +|{{:rocrail:rocrailini-with-de.png?600}}|
 +====Aktivieren====
 +Aktiviert die WiThrottle-Unterstützung in Rocrail. (Benötigt einen Server-Neustart.)\\
 +
 +====Port====
 +Erstes Feld: WiThrottle-TCP-Port. Standard ist 12090.\\
 +Zweites Feld: Optionaler HTTP-Port für Symbole und Bilder. (Der Rocrail-HTTP-Dienste-Port kann verwendet werden.)\\
 +
 +====Heartbeat====
 +Aktiviert den WiThrottle Heartbeat (Herzschlag) wenn auf > 0 gesetzt.\\