Sensor: Perturbações Metro Lisboa


(Diogo Rodrigues) #1

Olá a todos,

Sou relativamente novo nestas andanças mas de modo e acelerar a compreensão de como funciona o HA internamente decidi desenvolver um sensor que mostra qual o estado das linhas de metro em Lisboa, i.e. se existem perturbações nas linhas ou não.
Penso que seja útil, para que, quem anda de Metro possa criar automatismos como alertas dependendo do estado de uma linha especifica.

Antes de avançar para as configurações algumas notas/agradecimentos:

  • Todas as informação sobre estado das linhas de Metro são provenientes do site https://perturbacoes.pt/. (que também alimenta a aplicação UnderLX
  • O perturbações.pt é crowdsourced (i.e. alimentado por utilizadares da plataforma) mas também através de parsing da informação disponível no site do metro de lisboa.
  • Agradecimento ao Gabriel Maia (perturbacoes.pt / underLX) por todos os detalhes fornecidos.
  • por fim e não menos importante… foi a primeira vez que programei em Python e também já não programava há mais de 10 anos portanto deverá certamente haver partes do código que podem ser melhoradas. Todos o feedback nesse sentido é positivo

Instruções:
1.Fazer download deste ficheiro e colocar em config\custom_components\sensor\
2.Configurar yaml. (se quiser apenas um subset das linhas basta remover a que não interessa)

sensor:
  - platform: metroLisboa
    line:
      - Linha Amarela
      - Linha Verde
      - Linha Azul
      - Linha Vermelha

PS - na foto que coloquei em cima foram usados dados de teste e também adicionei código usando o Custom_UI para poder dar cores diferentes aos icons do metro e também ao texto em caso de haver incidentes. Como não faz parte deste componente não coloquei aqui mas se quiserem posso por.
PS2 - qualquer sugestão para possível melhoramento é bem vinda

Obrigado,
Diogo


(Rodolfo) #2

Olá @dpjrodrigues, parabéns pelo projecto, está interessante, eu há relativamente pouco tempo usei o componente scrape do HA, para recolher a hora dos próximos “metros”, mas após uma analise continua, verifiquei que não era muito fiável… havia alturas que era certo outras nem por isso. Decidi não partilhar.


(Diogo Rodrigues) #3

Obrigado @RodolfoVieira.
Eu até não sou a pessoa certa porque não tenho andado de Metro :), mas lembro-me que quando andava nem mesmo a informação dos tempos de espera para o próximo metro eram totalmente fidedignos. Por vezes passava de 5 min para 2 min em apenas 1 min ou a passagem de 5 min para 4 demorava 2 min…

Provavelmente na CP e Fertagus os horários são mais disciplinados e isso funcione melhor mas não sei.

Neste caso, das perturbações, também há aqui alguma margem especialmente pelo facto de parte das informações serem partilhadas pelos utilizadores (tipo waze…)


(Diogo Rodrigues) #4

Pequena actualização nos passos da instalação visto que a estrutura de pastas do HA mudou e mudei tambem o nome do componente. Passa a ser:

Instruções:
1.Fazer download deste ficheiro e colocar em config\custom_components\metro_lisboa
2.Configurar yaml. (se quiser apenas um subset das linhas basta remover a que não interessa)

sensor:
  - platform: metro_lisboa
    line:
      - Linha Amarela
      - Linha Verde
      - Linha Azul
      - Linha Vermelha