Sensor: Perturbações Metro Lisboa

[Git atualizado com as alterações necessárias para correr com versão 2021.12.9]

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 destes ficheiros 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

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

5 Curtiram

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.

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…)

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 destes ficheiros 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
3 Curtiram

Este tópico foi automaticamente fechado 90 dias após a última resposta. Novas respostas não são permitidas.

Olá Diogo,
Parabens pelos components .
estou com problemas a colocar o componenet metro_lisboa no meu hassio . é compativel ?
mesmo agora com os ficheiros novos, ao verificar a configuração, a “rodinha” fica a girar e nao apresenta erros . acontece o mesmo a alguem ?
image

a configuração está igual ao teu exemplo

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

Criaste a pasta custom_components e fizeste tudo conforme o tutorial indica? Mesmo com esse problema da validação, caso reinicies o HA quais são os erros no Log?

sim, coloquei com as instruções e tenho mais custom_components.
o erro na CLI é:

  File "/config/custom_components/metro_lisboa/__init__.py", line 7
    <!DOCTYPE html>
    ^
SyntaxError: invalid syntax
Fatal error while loading config: invalid syntax (__init__.py, line 7)
Failed config
  General Errors:
    - invalid syntax (__init__.py, line 7)
Successful config (partial)

Isso acontece porque não descarregaste os ficheiros directamente para a pasta fizeste copiar certamente.

descarreguei directamente
save as e directamente na pasta

Mostra lá o conteudo do ficheiro init.py

1 Curtiu

ja percebi que ao salvar directamente do nrowser , coloca tags de DOC TYPE HTML .
descarreguei o RAW e gravei com os nomes indicados … vou reiniciar

1 Curtiu

a bombar … desculpem a alhada do DOC TYPE …
image

e agora vou colocar o telegram a mandar alerta caso seja horario de sair ou regressar a casa ( a minha mulher usa a linha amarela e azul :slight_smile: )

1 Curtiu

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


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