~derf / projects / Travel::Status::DE::HAFAS v3.01
dark mode

hafas-m ist ein CLI-Client für HAFAS-basierte Ankunfts-/Abfahrtstafeln. Abhängig von Ort und ausgewähltem HAFAS-Service kann es Fahrten des Regional-/Fernverkehrs oder auch das lokale Nahverkehrsangebot mit Echtzeitdaten anzeigen. Hinweise zur Installation und eine Liste unterstützter Backends finden sich im Travel::Status::DE::DeutscheBahn README.

hafas-m is a comamndline client for HAFAS-based arrival/departure monitors. It shows arrivals or departures of trains as well as local transit services. The level of detail depends on the selected HAFAS service. See the Travel::Status::DE::DeutscheBahn README for installation instructions and supported services.

Beispielausgabe / Example Output:

resonance ~ > hafas-m 'Dortmund Universität'
12:00      Bus  447  Hacheney, Dortmund               
12:03      S      1  Solingen Hbf                    1
12:09      Schw-B    Eichlinghofen H-Bahn, Dortmund   
12:12      Bus  462  An der Palmweide, Dortmund       
12:20      Bus  462  Huckarde Bushof, Dortmund        
12:24      Schw-B    Eichlinghofen H-Bahn, Dortmund   
12:28  +3  S      1  Dortmund Hbf                    2
12:28      Bus  447  Huckarde Bushof, Dortmund        

Travel-Status-DE-DeutscheBahn-3.01.tar.gz (signature)

  • Fix support for ÖBB and other backends which recently switched from two- to four-digit years

Travel-Status-DE-DeutscheBahn-3.00.tar.gz (signature)

  • Result: The date, datetime, and time accessors now report realtime data if available
  • Result: Add sched_date, sched_datetime, and sched_time accessors for schedule data

Travel-Status-DE-DeutscheBahn-2.05.tar.gz (signature)

  • Document LWP::Protocol::https dependency
  • Remove BVG (Berliner Verkehrsgesellschaft) and SBB (Schweizerische Bundesbahnen) services

Travel-Status-DE-DeutscheBahn-2.04.tar.gz (signature)

  • Handle invalid XML when using the VBB backend

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

  • New dependencies: DateTime and DateTime::Format::Strptime
  • Result: New accessors ->datetime, ->countdown and ->countdown_sec

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

  • Result: Fix ->type accessor (was not working for all backends)
  • Result: Add ->train_no / ->line_no accessor

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

  • This release is NOT backwards compatible with 1.xx versions
  • It now uses the HAFAS API instead of parsing bahn.de/ris and also supports various other HAFAS installations
  • New module dependencies: JSON, List::MoreUtils
  • Renamed db-ris to hafas-m
  • New modules: Travel::Status::DE::HAFAS and Travel::Status::DE::HAFAS::StopFinder
  • Renamed Travel::Status::DE::DeutscheBahn::Resultto Travel::Status::DE::HAFAS::Result
  • db-ris/hafas-m: The options -f / --full-route and -v/--via are no longer supported
  • db-ris/hafas-m: New options -s / --service, -u / --url and --list
  • Travel::Status::DE::DeutscheBahn/HAFAS->new: The mot parameter is no longer supported. Use the new excluded_mots and exclusive_mots parameters instead
  • Travel::Status::DE::DeutscheBahn/HAFAS->new: Add service and url parameters
  • Travel::Status::DE::DeutscheBahn/HAFAS: Add errcode, similar_stops and get_active_service accessors
  • Travel::Status::DE::DeutscheBahn/HAFAS: Add static methods get_services and get_service
  • Result: Remove route, route_raw, route_info, route_interesting and route_timetable accessors
  • Result: Add is_changed_platform and messages accessors
  • Result->info is now undef instead of an empty string when no information is available

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

  • Result->route_interesting: Also consider airports
  • Result: Add route_info accessor
  • Result: Add is_cancelled accessor

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

  • Result: Add type accessor
  • DeutscheBahn->new: Add lwp_options parameter to pass options to LWP::UserAgent->new

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

  • Add primitive JSON serializer to Travel::Status::DE::DeutscheBahn::Result
  • Fix $result->delay (was broken by changes in the RIS output format)

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

  • Respect proxy environment variables
  • Add -a / --arrivals option to show arrivals instead of departures
  • Disable smartmatch warnings on perl ≥ 5.018

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

  • Detect ambiguous input errors (available via errstr)
  • Add language switch for additional information (german/english)


  • Result: Add line (== train) and date accessors


  • Add -l / --lang option

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


  • Add --full-route option


  • Fix bug when receiving no platform numbers from the DB RIS


  • Add route_timetable accessor containing station names and their corresponding arrival times

Travel-Status-DE-DeutscheBahn-0.05.tar.gz (signature)

  • Fix ->results returning duplicate connections when accessed more than one time
  • new: Only die when encountering wrong options, set ->errstr otherwise
  • Adds new ->errstr accessor to check for request errors

Travel-Status-DE-DeutscheBahn-0.04.tar.gz (signature)


  • The info accessor now strips the mostly useless "k.A." / "pünktlich" (train on time) text parts
  • Add (slightly experimental) route_interesting accessor
  • Add delay accessor

Travel-Status-DE-DeutscheBahn-0.03.tar.gz (signature)

  • Clarify derl dependency (we actually need >= 5.10.1)
  • Strip leading / trailing whitespace in result fields

Travel-Status-DE-DeutscheBahn-0.02.tar.gz (sig)


  • Only display info when a train is late, not when on time / unknown
  • Add --ignore-late option


  • Add route_raw accessor
  • Proper HTTP request error handling
  • Strip leading whitespace from ::Result info
  • Do not include canceled stops in the route

Travel-Status-DE-DeutscheBahn-0.01.tar.gz (signature)

  • Initial release
  • Crawls almost all data available in the web interface