Hallo @EdDie,
Willkommen im Forum, Deutsch schreiben ist kein Problem. Es freut mich zu hören, dass Sie das Projekt schon seit einigen Jahren verfolgen.
Ich arbeite derzeit intensiv am Handbuch, daher bin ich für das Feedback zu den fehlenden Beispielen sehr dankbar.
Welche Version von Traintastic verwenden Sie? Am besten ist die neueste Entwicklungsversion.
Weiche mit Lua schalten
-- Weichenobjekt abrufen
turnout = world.get_object("turnout_1") -- "turnout_1" ist die ID der Weiche
-- Position auf gerade ändern:
result = turnout.set_position(enum.turnout_position.STRAIGHT)
-- Protokollieren Sie das Ergebnis
log.debug(‚turnout set_position returned‘, result) -- Dies wird in der Konsole angezeigt.
Die möglichen Positionswerte hängen vom Typ der Weiche ab. Eine Liste der möglichen Werte finden Sie hier:
Informationen zu set_position finden Sie hier:
Dies ist die Weiche links 45°, aber es gilt für alle Weichen, da sie alle die gleiche Funktion set_position haben.
Einen Zug mit Lua fahren
Um einen Zug mit Lua zu fahren, benötigen Sie einen Regler. In Traintastic kann nur ein Regler die Steuerung eines Zuges übernehmen.
-- Erstellen Sie ein Reglerobjekt:
throttle = class.create_throttle("test") -- "test" ist der Name des Reglers
-- Zug abrufen
train = world.get_object("train_1") -- ID des Zuges in Traintastic
-- Kontrolle über den Zug übernehmen (erwerben)
throttle.acquire(train, true) -- true bedeutet, die Kontrolle zu übernehmen, auch wenn jemand anderes die Kontrolle hat (steal)
-- Geschwindigkeit einstellen:
throttle.set_speed(40, enum.speed_unit.KMPH)
-- Richtung einstellen:
-- Hinweis: Eine Richtungsänderung ist nur zulässig, wenn der Zug steht.
throttle.set_direction(enum.direction.FORWARD)
-- Zug notbremsen:
throttle.emergency_stop()
Eine Aktion mit einem Feedback-Modul auslösen
Zuerst müssen Sie ein Eingabeobjekt für die Feedback-Adresse erstellen, dann können Sie im Skript den Lua-Code ausführen:
-- Fügen Sie hier den Code zum Erstellen und Abrufen des Throttles ein.
-- "input_1" ist die ID der Eingabeobjekt
world.get_object("input_1").on_value_changed(
function (value)
if value then -- belegt
throttle.emergency_stop() -- sicherstellen, dass der Zug vor dem Richtungswechsel angehalten hat
throttle.set_direction(enum.direction.FORWARD)
throttle.set_target_speed(40, enum.speed_unit.KMPH)
end
end)
Wenn Sie den Wert einer Variablen sehen möchten, ist log.debug() Ihr Freund. Die Konsole zeigt den Wert der Variablen an.
Ich hoffe, das hilft Ihnen für den Anfang. Zögern Sie nicht, Fragen zu stellen 
Mit freundlichen Grüßen,
Reinder