# Como saber os horários dos comboios da "CP"

**URL:** https://forum.cpha.pt/t/como-saber-os-horarios-dos-comboios-da-cp/985
**Category:** Tutoriais
**Created:** [26 Setembro , 2018 20:51 UTC](https://forum.cpha.pt/t/como-saber-os-horarios-dos-comboios-da-cp/985 "2018-09-26T20:51:10Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![RodolfoVieira](https://forum.cpha.pt/user_avatar/forum.cpha.pt/rodolfovieira/32/14633_2.png) [@RodolfoVieira](https://forum.cpha.pt/u/RodolfoVieira)
#### Post date: [26 Setembro , 2018 20:51 UTC](https://forum.cpha.pt/t/como-saber-os-horarios-dos-comboios-da-cp/985/1 "2018-09-26T20:51:10Z")

</div>

Olá, hoje vou apresentar uma maneira fácil de conseguires saber o estado real dos comboios da tua estação , ou estações.  
Esta ideia surgiu por causa de um colega de trabalho,que anda muito de comboio e por vezes chegava à estação e o comboio tinha atrasos, ou tinha que consultar antes de sair de casa o site das infraestruturas de Portugal para ver o estado real do comboio.

Com esta integração , depois poderás fazer várias automações deixo para a tua imaginação.

Ok vamos começar?

Primeiro que tudo, eu uso o browser chrome, não sei se funciona em outros browsers para sacares a informação seguinte.

1. Abres no Chrome este link: [http://infraestruturasdeportugal.pt/](http://infraestruturasdeportugal.pt/) e de seguida clicas em **horários** conforme podes ver na imagem que se segue:

 ![horarios](https://forum.cpha.pt/uploads/default/original/1X/3306b996c1e49908cd8b3f911da04b22b614bba4.png)

1. De seguida vai te aparecer uma nova janelas como podes ver na imagem.

 ![partidas](https://forum.cpha.pt/uploads/default/original/1X/68f0165220d636eb20869c36696557241c070de5.png)

Nesse caso eu escolhi **PARTIDAS** e escolhi a estação **AZAMBUJA** a data terás que escolher o dia actual.

1. Agora vais clicar em FERRAMENTAS DE PROGRAMADOR conforme vês na imagem abaixo

 ![prog](https://forum.cpha.pt/uploads/default/original/1X/052c905070817e3ef67b9c6e560812928b2f41c4.png)

1. Vai aparecer um novo quadro, terás que seleccionar **XHR** e depois clica em PESQUISAR.

2. De seguida vai te aparecer o que vês na imagem abaixo…copia o link que te aparece e guarda-o em um bloco de notas vais precisar dele.

 ![PROG2](https://forum.cpha.pt/uploads/default/original/1X/d167a870e68817102b1b549e05b8547fda56be67.png)

Desta parte estás despachado, parte da magia tá feita.

Agora no teu **configuration.yaml** vais ter que adicionar estas linhas:

```auto
  whitelist_external_dirs:
    - /config
    - /config/script

```

Vai ficar algo parecido com isto:

```auto
homeassistant:
  name: Geral
  latitude: !secret latitude_home
  longitude: !secret longitude_home
  elevation: 17
  unit_system: metric
  time_zone: Europe/Lisbon
  customize: !include customize.yaml
  customize_glob: !include customize_glob.yaml
  packages: !include_dir_named packages
  whitelist_external_dirs:
    - /config
    - /config/script
config:

```

De seguida crias uma pasta chamada **script** e coloca dentro da tua pasta **/config**  
Depois dentro da pasta **script** crias um ficheiro com o nome : **comboio.sh** atenção o **sh** é a extensão.

Uma vez que já tens o ficheiro comboio.sh dentro da pasta script vais agora colar o que te mostro abaixo dentro do ficheiro comboio.sh

ATENÇÃO altera o link que vês pelo que te mandei guardar no bloco de notas

```
#!/bin/bash
YEAR=$(date +%Y)
MONTH=$(date +%m)
DAY=$(date +%d)
wget "http://infraestruturasdeportugal.pt/negocios-e-servicos/horarios/partidas/9433001/"$YEAR"-"$MONTH"-"$DAY"T00:00:00+"$YEAR"-"$MONTH"-"$DAY"T23:59:59" -O /config/comboio.json

```

NOTA IMPORTANTE

Eu uso o editor de ficheiros NOTEPAD++ para salvares o ficheiro, tens que antes o converter em UNIX.  
Podes fazer como te demonstro na imagem que se segue:

Ok, caso uses ficheiros [PACKAGES](https://forum.cpha.pt/t/como-utilizar-ficheiros-package/98) cria um novo ficheiro como o nome que quiseres. Ex:( **comboio.yaml** ) e cola o que ves em baixo dentro desse ficheiro.

```
homeassistant:

###############################################################################
# #
# C U S T O M I Z E #
# #
###############################################################################   
        
  customize:
 
    sensor.linha0:
      icon: mdi:train
      friendly_name: Primeiro Comboio
    sensor.linha1:
      icon: mdi:train
      friendly_name: Segundo Comboio
    sensor.linha2:
      icon: mdi:train
      friendly_name: Terceiro Comboio
    sensor.linha3:
      icon: mdi:train
      friendly_name: Quarto Comboio
    sensor.linha4:
      icon: mdi:train
      friendly_name: Quinto Comboio
    sensor.linha5:
      icon: mdi:train
      friendly_name: Quinto Comboio

shell_command:
  comboio: 'bash /config/script/comboio.sh'

sensor:
#Linha0

  - platform: file
    name: linha0horachegada
    file_path: /config/comboio.json
    value_template: "{{ value_json.HorarioDetalhe.0.HoraChegada.split(' ')[1][:5] }}"

  - platform: file
    name: linha0nome
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.0.Nome }}'
    
  - platform: file
    name: linha0origem
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.0.EstacaoOrigem.Nome }}'    
    
  - platform: file
    name: linha0destino
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.0.EstacaoDestino.Nome }}'    
    
  - platform: file
    name: linha0atraso
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.0.EstadoComboio.Nome }}'

  - platform: template
    sensors:
      linha0:
        value_template: "Chegada à estação da Azambuja {{states.sensor.linha0horachegada.state}} Comboio {{states.sensor.linha0nome.state}} origem {{states.sensor.linha0origem.state}} destino {{states.sensor.linha0destino.state}} estado {{states.sensor.linha0atraso.state}}"
      linha1:
        value_template: "Chegada à estação da Azambuja {{states.sensor.linha1horachegada.state}} Comboio {{states.sensor.linha1nome.state}} origem {{states.sensor.linha1origem.state}} destino {{states.sensor.linha1destino.state}} estado {{states.sensor.linha1atraso.state}}"  
      linha2:
        value_template: "Chegada à estação da Azambuja {{states.sensor.linha2horachegada.state}} Comboio {{states.sensor.linha2nome.state}} origem {{states.sensor.linha2origem.state}} destino {{states.sensor.linha2destino.state}} estado {{states.sensor.linha2atraso.state}}"
      linha3:
        value_template: "Chegada à estação da Azambuja {{states.sensor.linha3horachegada.state}} Comboio {{states.sensor.linha3nome.state}} origem {{states.sensor.linha3origem.state}} destino {{states.sensor.linha3destino.state}} estado {{states.sensor.linha3atraso.state}}"
      linha4:
        value_template: "Chegada à estação da Azambuja {{states.sensor.linha4horachegada.state}} Comboio {{states.sensor.linha4nome.state}} origem {{states.sensor.linha4origem.state}} destino {{states.sensor.linha4destino.state}} estado {{states.sensor.linha4atraso.state}}"
#Linha1
  - platform: file
    name: linha1horachegada
    file_path: /config/comboio.json
    value_template: "{{ value_json.HorarioDetalhe.1.HoraChegada.split(' ')[1][:5] }}"

  - platform: file
    name: linha1nome
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.1.Nome }}'

  - platform: file
    name: linha1origem
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.1.EstacaoOrigem.Nome }}'    
    
  - platform: file
    name: linha1destino
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.1.EstacaoDestino.Nome }}'    
    
  - platform: file
    name: linha1atraso
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.1.EstadoComboio.Nome }}'

#Linha2
  - platform: file
    name: linha2horachegada
    file_path: /config/comboio.json
    value_template: "{{ value_json.HorarioDetalhe.2.HoraChegada.split(' ')[1][:5] }}"

  - platform: file
    name: linha2nome
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.2.Nome }}'
    
  - platform: file
    name: linha2origem
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.22.EstacaoOrigem.Nome }}'    
    
  - platform: file
    name: linha2destino
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.22.EstacaoDestino.Nome }}'    
    
  - platform: file
    name: linha2atraso
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.2.EstadoComboio.Nome }}'

#Linha3
  - platform: file
    name: linha3horachegada
    file_path: /config/comboio.json
    value_template: "{{ value_json.HorarioDetalhe.3.HoraChegada.split(' ')[1][:5] }}"

  - platform: file
    name: linha3nome
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.3.Nome }}'
    
  - platform: file
    name: linha3origem
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.3.EstacaoOrigem.Nome }}'    
    
  - platform: file
    name: linha3destino
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.3.EstacaoDestino.Nome }}'    
    
  - platform: file
    name: linha3atraso
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.3.EstadoComboio.Nome }}'

#Linha4
  - platform: file
    name: linha4horachegada
    file_path: /config/comboio.json
    value_template: "{{ value_json.HorarioDetalhe.4.HoraChegada.split(' ')[1][:5] }}"

  - platform: file
    name: linha4nome
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.4.Nome }}'
    
  - platform: file
    name: linha4origem
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.4.EstacaoOrigem.Nome }}'    
    
  - platform: file
    name: linha4destino
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.4.EstacaoDestino.Nome }}'    
    
  - platform: file
    name: linha4atraso
    file_path: /config/comboio.json
    value_template: '{{ value_json.HorarioDetalhe.4.EstadoComboio.Nome }}'
automation:

  - alias: download ficheiro comboio
    initial_state: true
    trigger:
      - platform: time
        minutes: '/10'
        seconds: '00'
    action:
      - service: shell_command.comboio

```

Agora dentro do teu groups.yaml ou onde queiras por chama estes sensores:

```
   - sensor.linha0
   - sensor.linha1
   - sensor.linha2 
   - sensor.linha3
   - sensor.linha4

```

De seguida vai a tua pasta /config e coloca la dentro este [FICHEIRO](https://www.dropbox.com/s/852o9blx72jew4r/comboio.json?dl=0)

O que esta configuração faz??  
Esta configuração vai fazer com que seja descarregado para a tua pasta config de 10 em 10 min um ficheiro em formato json, que tem a informação da estação que escolheste, e vai ser mostrado no teu front end os primeiros 5 comboios.

Agora que já fizeste tudo, podes reiniciar o teu Home Assistant e para veres se o ficheiro está a ser descarregado manualmente podes fazer o que ves abaixo:

 ![comvoiossss](https://forum.cpha.pt/uploads/default/original/1X/d9b53341336e9f267bd0a7add09946a460a11ed6.jpeg)

E se tudo correr bem vais te aparecer no frontend algo este estilo:

 ![wwwwwwwwwwww](https://forum.cpha.pt/uploads/default/original/1X/a2b447b95ffda5e318680d6f18e2ed033f5929c7.jpeg)

---

<div class="post-metadata">

### Author: ![RodolfoVieira](https://forum.cpha.pt/user_avatar/forum.cpha.pt/rodolfovieira/32/14633_2.png) [@RodolfoVieira](https://forum.cpha.pt/u/RodolfoVieira)
#### Post date: [26 Setembro , 2018 21:36 UTC](https://forum.cpha.pt/t/como-saber-os-horarios-dos-comboios-da-cp/985/2 "2018-09-26T21:36:04Z")

</div>

Para comentares usa o seguinte tópico:

> [@Como saber os horários dos comboios da CP](https://forum.cpha.pt/t/como-saber-os-horarios-dos-comboios-da-cp/986):
>
> [https://forum.cpha.pt/t/como-saber-os-horarios-dos-comboios-da-cp/985](https://forum.cpha.pt/t/como-saber-os-horarios-dos-comboios-da-cp/985)

---

<div class="post-metadata">

### Author: ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)
#### Post date: [29 Setembro , 2018 10:42 UTC](https://forum.cpha.pt/t/como-saber-os-horarios-dos-comboios-da-cp/985/3 "2018-09-29T10:42:30Z")

</div>

Uma mensagem foi unida em um tópico existente: [Como saber os horários dos comboios da CP](https://forum.cpha.pt/t/como-saber-os-horarios-dos-comboios-da-cp/986/2)

---

<div class="post-metadata">

### Author: ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)
#### Post date: [29 Setembro , 2018 10:42 UTC](https://forum.cpha.pt/t/como-saber-os-horarios-dos-comboios-da-cp/985/4 "2018-09-29T10:42:51Z")

</div>



---

<div class="post-metadata">

### Author: ![system](https://forum.cpha.pt/user_avatar/forum.cpha.pt/system/32/2_2.png) [@system](https://forum.cpha.pt/u/system)
#### Post date: [29 Setembro , 2018 10:44 UTC](https://forum.cpha.pt/t/como-saber-os-horarios-dos-comboios-da-cp/985/5 "2018-09-29T10:44:04Z")

</div>

Para comentares este tópico utiliza este link:

> [@Como saber os horários dos comboios da CP](https://forum.cpha.pt/t/como-saber-os-horarios-dos-comboios-da-cp/986):
>
