⭐ Como saber se o próximo comboio está à tabela?


(Álvaro M. Ferro) #1

Home-assistant-train-on-time

O próximo comboio está à tabela?" scraper com aplicação no Home-assistant

Atualmente não funciona no hass.io porque a instalação do jq é quase impossível nesse ambiente.

Este utilitário diz se o próximo comboio está à tabela, isto é, a horas ou atrasado.

Isto é feito obtendo o resultado de uma pesquisa no site das Infraestruturas de Portugal e apresenta-os no vosso Home-assistant (HA) como um sensor.

De cada vez que o utilizador acede ao Graphical User Interface (GUI) do seu HA, os valores são obtidos no website e apresentados.

Isto significa que têm de alterar o ‘configuration.yaml’ do vosso HA e adicionar um sensor ‘command_line’ para executar o script.

O website aos pedidos feitos a um URL criado para o pedido com um texto em json. O script necessita do jq para interpretar a resposta em json e por isso o utilitário terá de estar disponível no vosso sistema.


HOW-TO

Primeiro terão de instalar o jq.

  1. ‘sudo apt-get install jq’

Depois terão de obter os identificadores únicos da estação de origem e destino.

  1. Abram o web browser (Firefox serve) e neste, os developer tools (Geralmente carregando na tecla F12 key).
  2. Selecionem o network tab dos development tools para poderem ler os pedidos do browser para o servidor.
  3. Vão ao site http://infraestruturasdeportugal.pt/negocios-e-servicos/horarios.
  4. Introduzam o nome completo da estação de origem (como aparecer no ecrã, maiúsculas e tudo) e estejam com ao pedido de GET que ele vai criar para http://infraestruturasdeportugal.pt/rede/estacoes/json/YOURTRAINSTRATION
  5. Carreguem nesse pedido como o botão direito do rato e escolham “Open in new tab”.
  6. Como resultado irão obter um para: id e name.
  7. Tomem nota do valore do id. Vão precisar dele para executar o script.
  8. Repitam os passos acima para obterem o id da estação de destino.
  9. Coloquem o ficheiro is-next-train-on-time.sh num diretório que o user do HA possa aceder.
  10. Transformem num ficheiro executável com a seguinte instrução chmod +x /path/to/train-in-time.sh

Alterar o configuration.yaml

No vosso configuration.yaml adicionem um command_line sensor:
’ sensor:
- platform: command_line
name: “O meu comboio está à tabela?”
command: “/path/to/is-next-train-on-time.sh YOURTRAINSTRATIONID DESTINATIONSTATION”’


Como saber se o próximo comboio está à tabela?
(Jorge Assunção) #2

2 mensagens foram unidas em um tópico existente: Como saber se o próximo comboio está à tabela?


(Jorge Assunção) #3

(system) #4

Para comentar este tópico, por favor utilizem o tópico abaixo