~derf / projects / Travel::Status::DE::EFA v2.02
dark mode

efa-m ist ein CLI-Client für EFA-basierte Abfahrtstafeln wie efa.vrr.de. Es zeigt Abfahrten von Bus, Bahn, Fähren u.ä. an an vielen Haltestellen in Deutschland, der Schweiz und Österreich. Eine efa-m-Installation enthält das Perlmodul Travel::Status::DE::EFA, welches in eigene Programme eingebunden werden kann.

efa-m is a commandline client for EFA public transit departure monitors such as efa.vrr.de. It shows all upcoming tram/bus/train/ferry/... departures at a given stop and supports most of Germany, Switzerland and Austria. The provided Travel::Status::DE::EFA module can be used by any Perl program.

Beispielausgabe / Example Output:

resonance ~ > efa-m Essen 'Berliner Platz'
22:20     3  166     E-Burgaltendorf Burgruine  
22:20     3  105     Essen Frintroper Höhe      
22:20 +1  4  101     Essen Helenenstr.          
22:21     2  145     Essen Heisingen Baldeneysee
22:22     2  U11     Essen Messe W.-Süd/Gruga   
22:30     4  105     Essen Finefraustr.         
22:30     2  U18     Mülheim Hauptbahnhof       
22:30     3  106     Essen Germaniaplatz        
22:33     1  U11     Gelsenkirchen Buerer Str.  
22:34     4  166     Essen Dellwig Bahnhof      
22:34     1  145     Essen Erbach               
22:35     3  103     Essen Wertstr.             
22:35     2  U17     Essen Margarethenhöhe      
22:40     3  SB16    Essen Hauptbahnhof         
22:40     4  109     Essen Steele S             
22:40     3  109     Frohnhausen Breilsort      
22:45     4  SB16    BOT ZOB Berliner Platz     
22:45     4  103     Essen Hauptbahnhof         
22:50     3  105     Essen Frintroper Höhe      
22:50     3  166     Hattingen Märkische Str.   
22:50     4  101     Essen Helenenstr.          

Travel-Status-DE-VRR-2.02.tar.gz (signature)

  • EFA->new: Deprecate efa_url option. Use service instead. efa_url is still supported, just not documented anymore.
  • EFA->new: Request departures in Europe/Berlin by default rather than using the system time zone. Fixes EFA operation on machines using UTC.
  • efa-m: Support "FULL" occupancy; change indicators from _ * ! to . o * !

Travel-Status-DE-VRR-2.01.tar.gz (signature)

  • efa-m: Deprecate --efa-url in favour of --service. It is still supported, just not documented anymore.
  • EFA: Add new_p constructor for asynchronous operation with promises
  • EFA: Add static get_service function

Travel-Status-DE-VRR-2.00.tar.gz (signature)

  • New dependency: DateTime
  • Result: Add datetime, sched_datetime, rt_datetime accessors.
  • Result: Remove date, time, sched_date, sched_time accessors. Use datetime->strftime('%H:%M') etc. instead. (BREAKING CHANGE)
  • Stop: Add arr, dep accessors.
  • Stop: Remove arr_date, arr_time, dep_date, dep_time accessors. Use arr->strftime('%d.%m.%Y') etc. instead. (BREAKING CHANGE)
  • efa-m: Remove --track-via option, its behaviour is now included in --via (BREAKING CHANGE)

Travel-Status-DE-VRR-1.24.tar.gz (signature)

  • EFA: Fix full_route creating route elements with invalid data
  • efa-m: Fix -v / -V (as a consequence of the fix above)

Travel-Status-DE-VRR-1.23.tar.gz (signature)

  • efa-m: Do not show free-text messages by default. Use the newly introduced -Om option to show them
  • efa-m: Show real-time departure rather than scheduled time + delay
  • Result: Add train_type and train_name accessors

Travel-Status-DE-VRR-1.22.tar.gz (signature)

  • Do not use now-deprecated smartmatch features

Travel-Status-DE-VRR-1.21.tar.gz (signature)

  • Add service VRR3
  • Update service URLs for VVO, VRN
  • Remove discontinued services SVV, TLEM, VBL, Verbundlinie, VOR

Travel-Status-DE-VRR-1.20.tar.gz (signature)

  • efa-m, EFA: Accept "stopID" stop type
  • EFA: Add proximity_search (useProxFootSearch) option

Travel-Status-DE-VRR-1.19.tar.gz (signature)

  • Result: Add ->train_no accessor

Travel-Status-DE-VRR-1.18.tar.gz (signature)

  • EFA: "place" is now optional
  • Result: Add ->occupancy accessor
  • efa-m: The "place" argument is now optional
  • efa-m: Show expected vehicle occupancy, if available

Travel-Status-DE-VRR-1.17.tar.gz (signature)

  • Add MVV (Münchner Verkehrs- und Tarifverbund) and VAG (Freiburger Verkehrs AG) services
  • Fix encoding when using VOR or LinzAG services

Travel-Status-DE-VRR-1.16.tar.gz (signature)

  • Use HTTPS for DING, VOR, LinzAG, VGN, VRR, VRR2, VVS, NVBW, KVV and BSVG services
  • Update VGN, VVO, VMV and KVV service URLs
  • Remove IVB, VVV and VRNdelfi services
  • Re-add Verbundlinie service

Travel-Status-DE-VRR-1.15.tar.gz (signature)

  • Fix encoding issues caused by recent API changes

Travel-Status-DE-VRR-1.14.tar.gz (signature)

  • efa-m: Fix broken encoding in --list output

Travel-Status-DE-VRR-1.13.tar.gz (signature)

  • EFA: Add accessors name_candidates and place_candidates
  • EFA: errstr: in cases of ambiguous input, the name/place candidates list is no longer encoded in the errstr accessor. Use the new name_candidates / place_candidates accessors instead

Travel-Status-DE-VRR-1.12.tar.gz (signature)

  • EFA: Add static method get_efa_urls
  • Line: Add mot and mot_name accessors
  • Result: Add mot and mot_name accessors
  • efa-m: Add -A / --auto-url / --discover-and-print option
  • efa-m: Add -D / --discover option
  • efa-m: Add --list option
  • efa-m: Add -m / --mot option
  • efa-m: Add -s / --service option

Travel-Status-DE-VRR-1.11.tar.gz (signature)

  • efa-m: Remove -V alias for --version
  • efa-m: Add -V / --track-via option
  • efa-m: Add -O / --output option with outputtypes route_after, route_before, fullroute and route
  • efa-m: Always output schedule data when absolute times are requested. As before, delays are indicated by a +xyz mark next to the time

Travel-Status-DE-VRR-1.10.tar.gz (signature)

  • Result->delay: return undef when no data is available. This allows to distinguish between on-time departures (delay 0) and departures without realtime data (delay undef)
  • EFA->new: Add full_routes config option
  • EFA: Add identified_data accessor
  • Result: Add route_pre, route_post and route_interesting accessors
  • Add Travel::Status::DE::EFA::Stop module
  • efa-m: Add -v / --via option

Travel-Status-DE-VRR-1.09.tar.gz (signature)

  • EFA: Fix crash when ->results is called after a network error occured
  • EFA: Add timeout parameter to constructor (default: 10 seconds)
  • efa-m: Add --timeeout option

Travel-Status-DE-VRR-1.08.tar.gz (signature)

  • efa-m: Add -o, --offset option
  • Fix ->platform and ->platform_db accessors (the EFA API was changed)

Travel-Status-DE-VRR-1.07.tar.gz (signature)

  • efa-m: Add previously undocumented -L option to manual
  • efa-m: Handle UTF8 in place/stop input
  • Travel::Status::DE::EFA: Handle decoded input with non-ASCII characters

Travel-Status-DE-VRR-1.06.tar.gz (signature)

  • Add Travel::Status::DE::EFA module, move ::Result and ::Line to Travel::Status::DE::EFA. Travel::Status::DE::VRR now inherits from ::EFA, no API changes were made.
  • Travel::Status::DE::EFA has a mandatory efa_url parameter to set the entry point to an EFA service

Travel-Status-DE-VRR-1.05.tar.gz (signature)

  • Add -r, --relative option to use relative times
  • Support lines without Operator field (e.g. Aachen / ASEAG)

Travel-Status-DE-VRR-1.04.tar.gz (signature)

  • Add ->key accessor to Travel::Status::DE::VRR::Line (meaning is unknown)
  • Add ->is_cancelled accessor to Travel::Status::DE::VRR::Result
  • Travel::Status::DE::VRR::Result->delay will no longer return -9999 for cancelled departures, check ->is_cancelled instead
  • Allow Travel::Status::DE::VRR::Line and TraveL::Status::DE::VRR::Result to be serialized to JSON (via TO_JSON method)

Travel-Status-DE-VRR-1.03.tar.gz (signature)

  • Disable smartmatch warnings on perl ≥ 5.018

Travel-Status-DE-VRR-1.02.tar.gz (signature)

  • Patch by Roland Hieber: respect proxy environment variables

Travel-Status-DE-VRR-1.01.tar.gz (signature)

  • Properly parse "tram canceled" information (EVAG, maybe also VRR)

Travel-Status-DE-VRR-1.00.tar.gz (signature)

  • switch to efa.vrr.de XML interface
  • properly decode UTF-8 strings
  • Switch from WWW::Mechanize to LWP::UserAgent
  • Add ->lines and Travel::Status::DE::VRR::Line describing all lines serving the given stop


  • Add countdown, date, delay, lineref, platform_db, sched_date, sched_time and type accessors


  • Add -L / --linelist option

Travel-Status-DE-VRR-0.02.tar.gz (signature)


  • Add --platform / --line options to filter output
  • Align times properly if departure list contains a daychange
  • Make --date and --time actually work