Projeto horarios de autocarro e horarios cp atraves de GTFS (Especificação Geral de Feed de Transporte Público)

Boas, fiz uma pesquisa sobre obter dados de horarios seja de autocarros de cidades especificas ou horarios de comboios CP.

quem quiser saber mais sobre tenho todo o gosto de partilhar

sensor.comboio_guimaraes_campanha todos os atributos que ficam disponiveis para usar:

arrival: “2025-07-26T16:43:30+00:00”
day: today
first: false
last: false
offset: 0
agency_agency_id: 1094_CP
agency_agency_name: CP - Comboios de Portugal
agency_agency_url: http://www.cp.pt
agency_agency_timezone: Europe/Lisbon
agency_agency_lang: pt
agency_agency_phone: “+351808109110”
agency_agency_fare_url: None
agency_agency_email: None
origin_station_stop_id: “94_24000”
origin_station_stop_code: None
origin_station_stop_name: Guimaraes
origin_station_stop_desc: None
origin_station_stop_lat: “41.435373”
origin_station_stop_lon: “-8.294142”
origin_station_zone_id: None
origin_station_stop_url: None
origin_station_location_type: “0”
origin_station_parent_station: None
origin_station_stop_timezone: Europe/Lisbon
origin_station_wheelchair_boarding: “0”
origin_station_platform_code: None
origin_station_location_type_name: Station
origin_station_wheelchair_boarding_available: unknown
destination_station_stop_id: “94_2006”
destination_station_stop_code: None
destination_station_stop_name: Porto Campanha
destination_station_stop_desc: None
destination_station_stop_lat: “41.149622”
destination_station_stop_lon: “-8.585514”
destination_station_zone_id: None
destination_station_stop_url: None
destination_station_location_type: “0”
destination_station_parent_station: None
destination_station_stop_timezone: Europe/Lisbon
destination_station_wheelchair_boarding: “0”
destination_station_platform_code: None
destination_station_location_type_name: Station
destination_station_wheelchair_boarding_available: unknown
route_route_id: 22-94_24000-94_30007
route_agency_id: 1094_CP
route_route_short_name: IC
route_route_long_name: None
route_route_desc: None
route_route_type: “2”
route_route_url: None
route_route_color: FFFFFF
route_route_text_color: “000000”
route_type_name: Rail
trip_route_id: 22-94_24000-94_30007
trip_service_id: “620_20241215”
trip_trip_id: “620_20241215”
trip_trip_headsign: Lisboa Santa Apolonia
trip_trip_short_name: “620”
trip_direction_id: None
trip_block_id: None
trip_shape_id: None
trip_wheelchair_accessible: “0”
trip_bikes_allowed: None
trip_bikes_allowed_state: unknown
trip_wheelchair_access_available: unknown
origin_stop_arrival_time: “2025-07-26 16:49:00”
origin_stop_departure_time: “2025-07-26 16:49:00”
origin_stop_drop_off_type: 0
origin_stop_pickup_type: 0
origin_stop_sequence: 0
origin_stop_drop_off_type_state: Regular
origin_stop_pickup_type_state: Regular
origin_stop_timepoint_exact: true
destination_stop_arrival_time: “2025-07-26 17:43:30”
destination_stop_departure_time: “2025-07-26 17:45:00”
destination_stop_drop_off_type: 0
destination_stop_pickup_type: 0
destination_stop_sequence: 4
destination_stop_drop_off_type_state: Regular
destination_stop_pickup_type_state: Regular
destination_stop_timepoint_exact: true
attribution: CP - Comboios de Portugal
device_class: timestamp
icon: mdi:train
friendly_name: Comboio_Guimaraes_Campanha

imaginem o potencial e os cards que podem ser feitos !

Se não me falha a memoria o gtfs não te dá o horário realmente real .

A mim está a dar 100% correto ja verifiquei os meu dados e os dados da cp por exemplo e os horarios batem certinho @RodolfoVieira



comparei os dados pelo o google maps

Se não for RT real time os dados podem não ser reais mais sim estáticos de rotas pré programadas.
Ora o que pode acontecer é…esta programado chegar às 15:00 se não houver nada em contrário chega a essa hora .
Mas se acontecer um acidente, o tempo muda e já não vai chegar as 15:00 mas as 15:23 por exemplo …

Podes por aqui a fonte do código ?
Por exemplo a carris metropolitana já consegues ver na APP em tempo real, vês o autocarro a movimentar e a hora vai se alterando .
Há GTFS e GTFS RT …

Eu sei que sim aqui em guimaraes tambem tem tem em alguma paragens ate um ecra ligado a dizer a que horas e quais autocarros vao passar/passam e quando ha atraso o horario muda

codigo card :
type: entities
entities:

  • entity: sensor.comboio_guimaraes_campanha
    name: Próximo Comboio CP
    icon: mdi:train
  • type: attribute
    entity: sensor.comboio_guimaraes_campanha
    attribute: origin_stop_departure_time
    name: Saída Prevista (Guimarães)
    icon: mdi:train-car-passenger-door-open
  • type: attribute
    entity: sensor.comboio_guimaraes_campanha
    attribute: arrival
    name: Chegada Prevista (Campanhã)
    icon: mdi:railroad-light
  • type: attribute
    entity: sensor.comboio_guimaraes_campanha
    attribute: route_route_short_name
    name: Tipo de Comboio
    icon: mdi:train-variant
  • type: attribute
    entity: sensor.comboio_guimaraes_campanha
    attribute: origin_station_stop_name
    name: Origem
    icon: mdi:origin
  • type: attribute
    entity: sensor.comboio_guimaraes_campanha
    attribute: destination_station_stop_name
    name: Destino
    icon: mdi:map-marker-multiple
  • type: attribute
    entity: sensor.comboio_guimaraes_campanha
    attribute: trip_trip_headsign
    name: Sentido Final da Viagem
    icon: mdi:sign-direction
  • type: attribute
    entity: sensor.comboio_guimaraes_campanha
    attribute: trip_trip_short_name
    name: Número do Comboio
    icon: mdi:numeric
  • type: attribute
    entity: sensor.comboio_guimaraes_campanha
    attribute: agency_agency_name
    name: Operadora
    icon: mdi:train-car
    title: Informação Detalhada Comboio CP
    icon: mdi:train-bus
    state_color: true
    show_header_toggle: true

codigo configuration.yaml

sensor:

O sensor de autocarro

  • platform: gtfs
    name: autocarro
    origin: GUI683
    destination: GUI591
    data: /config/gtfs
    include_tomorrow: true

Configuração para o comboio

  • platform: gtfs
    name: Comboio_Guimaraes_Campanha
    origin: ‘94_24000’ # STOP_ID para Guimarães
    destination: ‘94_2006’ # STOP_ID para Campanhã
    data: /config/cp
    include_tomorrow: true

É como te dizia não é em tempo real :slight_smile:

Muitas vezes, os feeds GTFS-RT não são URLs abertos e simples como os GTFS estáticos. As agências podem exigir:

  • Registo/Chave API: Para aceder aos dados em tempo real, podes precisar de te registar como desenvolvedor e obter uma chave API.
  • Acordos de Utilização: Algumas agências podem ter termos de uso específicos para os dados em tempo real devido à sua natureza dinâmica e ao custo de manutenção.

o projeto que estou a fazer e com gtfs estaticas como tu indicaste nao tens controlo se ouver um acidente ou uma mudança de rota inesperada isso nao consigo sem acesso a api direta


Copyright © 2017-. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade