Entretanto, isto deixou de funcionar porque o site da DG mudou radicalmente. No entanto, passou a devolvar dados por uma API com JSON, o que permite usar diretamente as funções de integração REST do Home-Assistant.
Excelente trabalho @designerferro deixo aqui a minha configuração adicionei um shell command que vai fazer com que quando o HA seja iniciado mostre logo os valores.
E para quem usa telegram basta escrever /combustiveis que recebe logo os preços sem recorrerem ao HA.
homeassistant:
###############################################################################
# #
# C U S T O M I Z E #
# #
###############################################################################
customize:
sensor.gasoleooptima:
friendly_name: Gásoleo Óptima
icon: mdi:gas-station
sensor.gasoleosimples:
friendly_name: Gásoleo Simples
icon: mdi:gas-station
sensor.gasolinaoptima:
friendly_name: Gasolina 95 Óptima
icon: mdi:gas-station
sensor.gasoolinasimples:
friendly_name: Gasolina 95 Simples
icon: mdi:gas-station
###############################################################################
# #
# G R O U P #
# #
###############################################################################
group:
combustiveis:
view: yes
name: Combustíveis
entities:
- group.combustiveisgroup
combustiveisgroup:
control: hidden
name: Posto Cepsa Olival Basto
entities:
- sensor.gasoolinasimples
- sensor.gasolinaoptima
- sensor.gasoleosimples
- sensor.gasoleooptima
- sensor.wind_compass
###############################################################################
# #
# S E N S O R #
# #
###############################################################################
sensor:
platform: template
sensors:
#Estado do Tempo
gasoolinasimples:
value_template: "{{states.sensor.fuel_gasolina_simples_95.state}}"
unit_of_measurement: '€'
gasolinaoptima:
value_template: "{{states.sensor.fuel_gasolina_especial_95.state}}"
unit_of_measurement: '€'
gasoleosimples:
value_template: "{{states.sensor.fuel_gasoleo_simples.state}}"
unit_of_measurement: '€'
gasoleooptima:
value_template: "{{states.sensor.fuel_gasoleo_especial.state}}"
unit_of_measurement: '€'
###############################################################################
# #
# A U T O M A T I O N S #
# #
###############################################################################
automation:
#Ao iniciar o Home Assistant corre o batch fuel_info.sh
- alias: Correr Combustiveis
trigger:
platform: homeassistant
event: start
action:
- service: shell_command.correr_combustiveis
# O utilizador ao escrever /combustiveis no telegram recebe os preços actuais do Posto de Combustível
- alias: Precos Combustiveis
hide_entity: true
trigger:
platform: event
event_type: telegram_command
event_data:
command: '/combustiveis'
action:
service: notify.telegram
data_template:
title: 'Preços Combustíveis'
message: "
Gasolina Simples - {{states.sensor.fuel_gasolina_simples_95.state}}
Gasolina Óptima - {{states.sensor.fuel_gasolina_especial_95.state}}
Gásoleo Simples - {{states.sensor.fuel_gasoleo_simples.state}}
Gásoleo Optima - {{states.sensor.fuel_gasoleo_especial.state}}"
###############################################################################
# #
# S H E L L _ C O M MM A N D #
# #
###############################################################################
shell_command:
correr_combustiveis: 'bash /config/script/fuel.info.sh'
Obrigado mais uma vez Álvaro e contamos contigo para novos scrappings ou lá como isso se chama ehehe
As entidades passaram a ter o formato sensor.fuel_nppostocombustivel_tipodecombustivel, onde nppostocombustivel é o inteiro que identifica o posto de gasolina a fazer scrapping no site da DGEG.
Não sei se isso não vai estragar a tua configuração porque nunca tentei fazer um template.
@blopes o código que o Álvaro colocou como sendo uma nova versão deve ter algum erro ao qual já lhe reportei usa este código e altera para os teus dados
Depois colocas o ficheiro fuel.info.sh dentro de /config/script alteras APENAS as linhas:
# Change this values acoording to instructions to match your Home-assistant
PROTOCOL=""
HOST_IP_OR_NAME=""
PORT_NUMBER=""
HAPASSWORD=""
Apenas isso e gravas o ficheiro. Podes enviar esse ficheiro pelo programa winscp e depois dares os atributos 755.
De seguida usas este codigo no teu ha.
homeassistant:
###############################################################################
# #
# G R O U P #
# #
###############################################################################
group:
combustiveis:
view: yes
name: Combustíveis
entities:
- group.combustiveisgroup
combustiveisgroup:
control: hidden
name: Posto Cepsa Olival Basto
entities:
- sensor.fuel_170157_gasoleo_especial
- sensor.fuel_170157_gasoleo_simples
- sensor.fuel_170157_gasolina_especial_95
- sensor.fuel_170157_gasolina_simples_95
###############################################################################
# #
# A U T O M A T I O N S #
# #
###############################################################################
automation:
#Ao iniciar o Home Assistant corre o batch fuel_info.sh
- alias: Correr Combustiveis
trigger:
platform: homeassistant
event: start
action:
- service: shell_command.correr_combustiveis
#Actualiza os preços todos os dias às 2 da manhã, só não altera se o posto de combustivel não tiver alterado na base deles.
- alias: Atualiza todos os dias
trigger:
platform: time
at: '02:00'
action:
- service: shell_command.correr_combustiveis
# O utilizador ao escrever /combustiveis no telegram recebe os preços actuais do Posto de Combustível
- alias: Precos Combustiveis
hide_entity: true
trigger:
platform: event
event_type: telegram_command
event_data:
command: '/combustiveis'
action:
service: notify.telegram
data_template:
title: 'Preços Combustíveis'
message: "
Gasolina Simples - {{states.sensor.fuel_gasolina_simples_95.state}}
Gasolina Óptima - {{states.sensor.fuel_gasolina_especial_95.state}}
Gásoleo Simples - {{states.sensor.fuel_gasoleo_simples.state}}
Gásoleo Optima - {{states.sensor.fuel_gasoleo_especial.state}}"
###############################################################################
# #
# S H E L L _ C O M MM A N D #
# #
###############################################################################
shell_command:
correr_combustiveis: 'bash /config/script/fuel.info.sh -f "170157"'
Na ultima linha onde diz:
@designerferro estou a ter problemas… O sensor nao me aparece nos entities… não tem caracteres aos quadradinhos. O @RodolfoVieira ja viu e ja me tentou ajudar mas nada. Aparentemente está tudo ok, mas não está a dar… o que faço?
Fiz uma nova versão com uma instrução de debug que não mostra dados criticos como URL e password. Podes ir buscar a versão 2.1.6 aqui.
Para executar, segue as instruções, mas em lugar de usares a opção -f, usas a opção -d. Ele vai produzir um documento chamado debugme.txt. Envia-me esse ficheiro por private.