Como publicar os preços dos combustíveis no seu Home Assistant


(Álvaro M. Ferro) #1

:star: Como publicar os preços dos combustíveis no seu Home Assistant
(Rodolfo) #2

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


:star: Como publicar os preços dos combustíveis no seu Home Assistant
(Álvaro M. Ferro) #3

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. :wink:


(Ricardo Gomes) #4

Não funciona no meu…
https://hastebin.com/gutaticace.bash


(Álvaro M. Ferro) #5

Envia-me o ficheiro .information em mensagem privada.


(Bruno Lopes) #6

Usei a configuração do @RodolfoVieira e não me estão a surgir os valores.

Penso que o problema esteja na localização do script:

A minha config:
https://hastebin.com/luropahihe.bash


(Rodolfo) #7

@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

https://hastebin.com/meyamobubi.bash

a minha localização do script está em /config/script/fuel.info.sh caso tenhas outra tens que alterar na configuração do código que usaste meu.


(Bruno Lopes) #8

Obrigado Rodolfo,

Sim eu mudei o caminho para a minha pasta, pode ficar em qualquer pasta correcto?

No meu caso está assim:

correr_combustiveis: '/home/homeassistant/www/fuel.info.sh


(Rodolfo) #9

sim mas podes testar manualmente correndo á mão na linha de comandos:

bash home/homeassistant/www/fuel.info.sh

Ao fazeres isso os valores devem logo aparecer. Verifica nos entities se tens la os senso.fuel


(Rodolfo) #10

@blopes esqueci me de te dizer que tens que dar perrmissoes 755 ao ficheiro.sh


(Bruno Lopes) #11

eheh resolvido…

Ao executar apareceram logo os valores. Obrigado


(Rodolfo) #12

Boa. Entretanto o Álvaro vai tentar melhorar o código mais actual.


(Álvaro M. Ferro) #13

Preciso de capturas de ecrã do seguinte comando:
bash -x /caminho/para/o/fuel.info.sh -f “170157”

O problema tem a ver com a configuração de caracteres que cada um executa na sua máquina.


(Álvaro M. Ferro) #14

se colocarem o resultado do comando cat /caminho/para/o/fuel.info.sh | grep for tambem agradeço.


(Ricardo Gomes) #15

eu tenho o hassio. será por isso que não funciona?


(Rodolfo) #16

@ricard0g0mes não, eu tambem tenho hass.io faz o seguinte:

Vais ao git do Álvaro https://github.com/designerferro/Home-assistant-fuel-scrapper e fazes download do novo zio que saiu hoje.

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:

correr_combustiveis: 'bash /config/script/fuel.info.sh -f "170157"'

Alteras para o codigo do teu posto combustivel ou postos… se forem 3 será assim:

correr_combustiveis: 'bash /config/script/fuel.info.sh -f "170157 999999 999999"'


(João Cosme) #17

@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?


(Álvaro M. Ferro) #18

Qual foi a versão que usaste?


(Álvaro M. Ferro) #19

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.


(Ricardo Gomes) #20

Não falta aí a secção do sensor?