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.