Ein herzerfrischendes "Moin" von achtern Diek tosammen
Ich habe jahrelang das Modul 98_departure von uniqueck verwendet und musste aber in der letzten Zeit feststellen, dass dieses mir nur noch die nächsten 2 - 5 Abfahrtszeiten zurück gibt - Je nach Tagesform.
Daraufhin habe ich ein neues Modul geschrieben und entsprechend erweitert.
Es basiert ebenfalls auf die von https://transport.stefan-biermann.de/publictransportapi bereitgestellten Daten und lädt die gewünschte Anzahl an Abfahrtszeiten herunter.
Als kleine Spielerei visualisiert das Modul diese Daten etwas.
Wenn man nach einer Station sucht, dann sollte man nicht nur nach "Rathaus" suchen, denn davon hat jede Milchkanne eines.
Besser man nimmt den entsprechenden Ort mit rein e.g.: "Hamburg Rathaus".
Dann die ID in das entsprechende Attribut "/opt/fhem/contrib/commandref_join.pl" reinkopieren und los geht's!
Ggf. die commandref mit dem linux-Befehl
/opt/fhem/contrib/commandref_join.pl in die eigene aufnehmen.
Über eure Rückmeldung wäre ich Euch dankbar!
Gruß
Sailor
Die Datei 73_DepartureBnT.pm ist mittlerweile im fhem Repositroy eingecheckt und sollte mit dem nächsten Update zur Verfügung stehen.
Gruss
Sailor
Habe es mal zwanglos ausprobiert. Macht einen soliden Eindruck.
Lediglich die aktuelle Anzeige differiert mit dem Attribut NoOfEntries um 1.
Evtl. könntest du die Auswirkungen von WalkTimeToStation in der Hilfe mal beschreiben.
Gruß
Danny
Hallo Danny
Zitat von: moskito am 13 Februar 2026, 15:18:11Habe es mal zwanglos ausprobiert. Macht einen soliden Eindruck.
Danke
Zitat von: moskito am 13 Februar 2026, 15:18:11Lediglich die aktuelle Anzeige differiert mit dem Attribut NoOfEntries um 1.
Entweder liegt das daran, dass du die "departure_00" nicht mitgezählt hast, oder das Modul hat einen identischen Eintrag gelöscht - Siehe Reading "departure_Double-Entries".
Zitat von: moskito am 13 Februar 2026, 15:18:11Evtl. könntest du die Auswirkungen von WalkTimeToStation in der Hilfe mal beschreiben.
Mache ich. Hat nur Auswirkungen auf die Visualisierung der Blinklichter.
Schaffst du es nicht mehr den Bus mit WalkTimeToStation in Minuten zu erreichen: Rot
Schaffst du es gerade so den Bus mit WalkTimeToStation in Minuten zu erreichen: Gelb
Schaffst du es gemütlich den Bus mit WalkTimeToStation in Minuten zu erreichen: Grün
Ist der Bus fern in der Zukunft: Aus
Gruß
Sailor
Nachdem heute Morgen mein HTTPMOD Departure-Device https://wiki.fhem.de/wiki/Departure (https://wiki.fhem.de/wiki/Departure) seine Funktion eingestellt hat, habe ich DepartureBnT mal ausprobiert.
Funktioniert sehr gut.
Jetzt möchte ich gerne noch die Ergebnisse in meinem FTUI Widget Departure https://wiki.fhem.de/wiki/FTUI_Widget_Departure (https://wiki.fhem.de/wiki/FTUI_Widget_Departure) auf dem Tablet anzeigen.
Wahrscheinlich muss ich mir ein Userreading basteln, in dem äquivalent zum HTTPMOD Device alle Abfahrten hintereinander aufgereiht sind.
Das sieht so aus: [["Linie","Fahrtziel","Zeit in Min bis zur Abfahrt"],[......],...]
Noch eine Anmerkung: Das bei der Definition automatisch vergebene Icon "bus" gibt's in meinen FHEM-Icons nicht.
Edit - was mir noch aufgefallen ist: Wenn ich in der Detailansicht des DepartureBnT-Device bin, zerschießt es mir bei jedem Update der Abfahrtszeiten alles, was ich gerade bearbeite. Das gilt für die Editierung des Userreadings genauso wie für Eingaben in der perl-Befehlszeile ganz oben.
Endlich wieder eine Möglichkeit, Fahrpläne anzuzeigen...
Dankeschön!
So - ich habe es geschafft, ein Userreading für das FTUI Widget Departure zu erstellen.
Falls es jemand gebrauchen kann:
Das ist die Definition des Userreading: departure_concat:departure_00.* { convertDepartureReadings($name) }
Das ist die dazugehörige Funktion aus 99_myUtils.pm: ###################################################################
#
# convertDepartureReadings
# wandelt die die Readings des DepartureBnT-Moduls in ein einzelnes
# verkettetes Reading im Stil eines HTTPMOD-Departure-Device um.
# Aufruf convertDepartureReadings(<Device>)
#
###################################################################
sub convertDepartureReadings($) {
my ($Device) = @_;
my $Reading = "[";
my $prefix;
my $oldReading;
my $count = AttrNum($Device,"NoOfEntries",0);
for(my $i = 0;$i < $count;$i++) {
$prefix = "departure_".sprintf("%02d",$i);
$oldReading = $prefix."_number";
my $number = ReadingsNum($Device,$oldReading,"");
$Reading .= qq(["$number",");
$oldReading = $prefix."_Destination-long";
$Reading .= ReadingsVal($Device,$oldReading,"").qq(",");
$oldReading = $prefix."_departureTimeInMinutes";
$Reading .= ReadingsVal($Device,$oldReading,"").qq("]);
if ($i < ($count - 1)) { $Reading .= ","; }
}
$Reading .= "]";
return $Reading
}
Hallo JWRu
Zitat von: JWRu am 21 Februar 2026, 14:44:49So - ich habe es geschafft, ein Userreading für das FTUI Widget Departure zu erstellen.
Falls es jemand gebrauchen kann:
Das ist die Definition des Userreading: departure_concat:departure_00.* { convertDepartureReadings($name) }Das ist die dazugehörige Funktion aus 99_myUtils.pm:
Hast Du etwas dagegen, wenn ich deinen Code fest im Departure - Modul aufnehme?
Sende mir mal ein Beispiel des Readings zur Kontrolle.
Gruß
Sailor
Hallo JWRu
Zitat von: JWRu am 20 Februar 2026, 18:33:04Noch eine Anmerkung: Das bei der Definition automatisch vergebene Icon "bus" gibt's in meinen FHEM-Icons nicht.
Da arbeite ich dran. Ich darf keine neuen icons hochladen. Das muss ich immer brav anmelden:
https://forum.fhem.de/index.php?topic=12605.msg1357716#msg1357716 (https://forum.fhem.de/index.php?topic=12605.msg1357716#msg1357716)
Am besten temporär die beiden Icons dort herunterladen und in /www/images/fhemSVG/bus.svg abspeichern
Zitat von: JWRu am 20 Februar 2026, 18:33:04Edit - was mir noch aufgefallen ist: Wenn ich in der Detailansicht des DepartureBnT-Device bin, zerschießt es mir bei jedem Update der Abfahrtszeiten alles, was ich gerade bearbeite. Das gilt für die Editierung des Userreadings genauso wie für Eingaben in der perl-Befehlszeile ganz oben.
Ok, das liegt an der Natur des fhem - Befehl
FW_directNotify("FILTER=".$name, "#FHEMWEB:WEB", "location.reload('true')", "");den ich aufrufe um die Anzeige zu refreshen.
Am besten du änderst temporär das Interval auf 3600s und änderst dann in aller Ruhe deine UserReadings und gehst nach dem speichern wieder au 60s zurück
Gruß
Sailor
ZitatHast Du etwas dagegen, wenn ich deinen Code fest im Departure - Modul aufnehme?
Du kannst das gerne ins Modul integrieren.
Hier ist ein Beispiel für das Reading:
departure_concat [["5","Schriesheim","5"],["5","Heidelberg Bismarckplatz","3"],["653","Dossenheim, Bahnhof","6"],["5","Schriesheim","9"],["5","Heidelberg","15"],["21","Heidelberg, Bismarckplatz","15"],["21","Schriesheim, Bahnhof","15"],["5","Schriesheim","17"],["5","Heidelberg Bismarckplatz","23"],["5","Schriesheim","27"],["5","Heidelberg","34"],["21","Schriesheim, Bahnhof","35"]]NoOfEntries ist bei mir 12
P.S. Für meine Anwendung wäre es ganz schön, wenn man die Visualisierung ganz oben über ein Attribut disablen könnte.
Hallo JWRu
Zitat von: JWRu am 24 Februar 2026, 13:43:38Du kannst das gerne ins Modul integrieren.
Zitat von: JWRu am 24 Februar 2026, 13:43:38Für meine Anwendung wäre es ganz schön, wenn man die Visualisierung ganz oben über ein Attribut disablen könnte.
Beides integriert und eingecheckt.
User Readings für "departure_concat" sind nicht mehr notwendig.
Sollte morgen per fhem Update verfügbar sein.
Gruß
Sailor
Vielen Dank für die schnelle Anpassung.
Es gibt noch ein Problemchen:
Das FTUI Widget Departure erwartet im Reading für die Linie nur Zahlen - siehe mein Beispiel.
Deshalb nutze ich für mein Userreading auch ReadingsNum statt ReadingsVal - das holt nur die Zahl aus departure_XX_number raus.
Der default-Wert für ShowDetails scheint nicht zu stimmen. ShowDetails/Departure muss explizit als Attribut gesetzt sein sonst wird die Tabelle nicht angezeigt.
Hallo JWRU
Zitat von: JWRu am 25 Februar 2026, 09:30:16Vielen Dank für die schnelle Anpassung.
Es gibt noch ein Problemchen:
Das FTUI Widget Departure erwartet im Reading für die Linie nur Zahlen - siehe mein Beispiel.
Deshalb nutze ich für mein Userreading auch ReadingsNum statt ReadingsVal - das holt nur die Zahl aus departure_XX_number raus.
Basierend auf deinen Angaben, bist Du sicher, dass das Reading
[["5","Schriesheim","5"],["5","Heidelberg Bismarckplatz","3"]]und nicht
[[5,"Schriesheim",5],[5,"Heidelberg Bismarckplatz",3]]lauten muss?
Ansonsten ist Perl das eigentlich ziemlich egal ob das Text oder Zahlen sind...
Gruß
Sailor
Zitat von: cetri am 25 Februar 2026, 10:17:25Der default-Wert für ShowDetails scheint nicht zu stimmen. ShowDetails/Departure muss explizit als Attribut gesetzt sein sonst wird die Tabelle nicht angezeigt.
Mein Fehler, gefixt.
Gruß
Sailor
Die erste Version des Readings ist richtig - siehe meinen Post #9.
Dein Reading sieht so aus:
[["RNV 5","Schriesheim","5"],["RNV 5","Heidelberg Bismarckplatz","3"]...]Das FTUI Widget kann anscheinend mit dem "RNV " nichts anfangen - es produziert jedenfalls danach immer ein linefeed.
Hallo JWRu
Zitat von: JWRu am 26 Februar 2026, 16:47:51Die erste Version des Readings ist richtig - siehe meinen Post #9.
Dein Reading sieht so aus:
[["RNV 5","Schriesheim","5"],["RNV 5","Heidelberg Bismarckplatz","3"]...]Das FTUI Widget kann anscheinend mit dem "RNV " nichts anfangen - es produziert jedenfalls danach immer ein linefeed.
Jetzt verstehe ich das das Problem schon eher.
Du brauchst also von "RNV 5" nur die "5" und das "RNV " muss gelöscht werden.
Gebe mir bitte mal deine Station ID.
Aber eigentlich ist das falsch, weil es ja "S5" für "Strassenbahn Line 5", "E5" für "ExpressLine 5", "5-AST" für Anruf-Sammel-Taxi 5" immer nur die "5" zurück gegeben würde.
Dann gibt das Widget doch etwas vollkommen Falsches wieder, oder verstehe ich da was falsch?
Gruß
Sailor
ZitatGebe mir bitte mal deine Station ID.
6000515
ZitatAber eigentlich ist das falsch, weil es ja "S5" für "Strassenbahn Line 5", "E5" für "ExpressLine 5", "5-AST" für Anruf-Sammel-Taxi 5" immer nur die "5" zurück gegeben würde.
Das alte HTTPMOD Departure Device hat nur "5" geliefert - das hat funktioniert. Hier ist halt alles RNV.
Vielleicht ist's auch das Leerzeichen, das Probleme macht. Ich bastle morgen mal mein Userreading so um, dass nur das Leerzeichen entfernt wird und schaue mal, was dann passiert.
Edit:
Ich habe es ausprobiert - ohne Leerzeichen funktioniert es. Allerdings reicht jetzt der Platz in meiner Tabelle nicht mehr, weil die erste Spalte zu breit wird.
Ich behalte einfach mein Userreading bei - du musst dich nicht verknoten, um meinen Spezialfall zu integrieren.
Hallo JWRu
Zitat von: JWRu am 26 Februar 2026, 21:39:32Ich habe es ausprobiert - ohne Leerzeichen funktioniert es.
OK, ein Anfang... Leerzeichen in "-" zu verwandeln.
Zitat von: JWRu am 26 Februar 2026, 21:39:32Allerdings reicht jetzt der Platz in meiner Tabelle nicht mehr, weil die erste Spalte zu breit wird.
Ist das Widget hierfür nicht frei parametrierbar?
Zitat von: JWRu am 26 Februar 2026, 21:39:32Ich behalte einfach mein Userreading bei - du musst dich nicht verknoten, um meinen Spezialfall zu integrieren.
Das Widget ist der größte "Kunde" dieses Moduls. Daher habe ich schon Interesse, dass es funktioniert. ;)
Gruß
Sailor
ZitatIst das Widget hierfür nicht frei parametrierbar?
Ja, aber ich hatte das so für das alte Device hingepfrimelt, dass es gerade noch in die Ecke des Tablet-Displays passt.
Außerdem ist bei uns alles RNV. Bus- und Staßenbahnlinien unterscheiden sich nur durch die Liniennummer.
Da spendiere ich lieber etwas mehr Platz für Destination-long.