A pedido do @RodolfoVieira tinha feito um script para obter e publicar o preço dos combustíveis de qualquer estações de combustível. Quando o @RodolfoVieira o usou a primeira vez viu logo uma oportunidade de melhoria. Era preciso facilitar a publicação dos preços de multíplas estações.
A solução vai buscar os preços à direção geral de energia para as estações de combustível que configurem. Depois publica no Home-assistant (HA) através da REST API.
Como os sensores de preços são criados automaticamente, não necessitam de alterar nada no vosso configuration.yaml. Em contrapartida, se fizerem restart ao vosso HA, os sensores só voltam a aparecer quando o script for executado novamente.
Os nome que aparecem junto aos preços no HA podem conter, ou não, o local e marca da estação de combustível.
A solução é um script Bash faz o scrapping da informação e já está publicado no meu repositório do GitHub - Home-assistant-fuel-scrapper.
Devem fazer download do zip ou tar.gz para o vosso diretorio config/scripts do vosso Home-assistant no GitHub em https://github.com/designerferro/Home-assistant-fuel-scrapper/releases e fazem download da versão mais recent
Depois colocam o ficheiro fuel.info.sh dentro de /config/script alteram APENAS as seguintes linhas:
# Change this values acoording to instructions to match your Home-assistant
PROTOCOL=""
HOST_IP_OR_NAME=""
PORT_NUMBER=""
HAPASSWORD=""
SHOWFUELSHOPLOCATION="NO"
Instruções de configuração
Antes de poderem usar, vão ter de ir buscar os identificadores únicos. Para isso vão ter de:
- Abrir no Firefox ou Chrome as developer tools (Geralmente é só carregar no F12).
- Selecionar a network tab dos developer tools.
- Abrir o site http://www.precoscombustiveis.dgeg.pt/.
- Usar o site para identificar a estação de combustível de onde querem obter os preços.
- Clicar nessa estação no mapa para ver a informação.
- No developer tools, na network tab, seleciona apenas o tráfego XHR.
- Clicar no POST para infoPostoCB.aspx.
- Nos detalhes, ver os parâmetros do POST (Params).
- Tomar nota do valor em
nppostocombustivel.
Configurações para enviar os dados para o Home-assistant
PROTOCOL=“http” ← só podem escrever “http” ou “https”, dependendo do protocolo que o vosso HA está à escuta.
HOST_IP_OR_NAME=“localhost” ← Habitualmente “localhost” serve. Se estiverem a executar o script de outra máquina que não a do HA, escrevam o nome do servidor “myserver.myhouse” ou o internet protocol number (IP) como “192.168.1.20”.
PORT_NUMBER=“8123” ← Aqui escrevem o PORT NUMBER onde têm o vosso Home-assistant à escolha.
HAPASSWORD=“SomePassword” ← Ponham aqui a mesma password que puseram em api_password: no configuration.yaml.
Mostrar o nome da estação de gasolina junto ao preço
SHOWFUELSHOPLOCATION=“YES” ← Ponham aqui qualquer outro valor, como “NO”, para remover o nome e marca da estação.
Notas finais
O script tem de ser executado, aconselhavelmente numa base diária. Podem adicionar o script a um scheduller como o crontab.
A versão mais soft deste post pode ser lida no blog PouparMelhor.