Preços dos Combustíveis

Olá a todos

Eu criei uma nova integração para Home-Assistant, para colocar os preços dos combustíveis no Dashboard

É instalado através do HACS e podem seguir as instruções aqui:
https://github.com/netsoft-ruidias/ha-custom-component-precoscombustiveis

PS. fui inspirado por uma thread aqui do forum, quando alguém criou um script para obter os valores via REST, creio que esta minha abordagem torna tudo mais simples, espero que os autores não se importem.

Todas as sugestões e comentários serão bem vindos

Obrigado a todos

7 Curtiram

Boas,

muito fixe… passei do sensor rest para esta integração, é mais prático gerir os postos.

detetei num entanto um erro, sempre que o HA inicia coloca os valores dos sensores a zero que faz com que depois no histórico apresente valores errados:

imagem

Obrigado @blopes. é mesmo este tipo de ajuda que pretendo.

Vou corrigir, obrigado

1 Curtiu

Aqui correu um pouco pior (o que quem me conhece ja sabe que é normal)

Este é o erro num posto em concreto


Logger: homeassistant.config_entries
Source: custom_components/precoscombustiveis/__init__.py:34
Integration: PrecosCombustiveis DGEG Integration (documentation, issues)
First occurred: 12:57:41 (1 occurrences)
Last logged: 12:57:41
Error unloading entry DGEG 1272 for precoscombustiveis

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 478, in async_unload
    result = await component.async_unload_entry(hass, self)
  File "/config/custom_components/precoscombustiveis/__init__.py", line 34, in async_unload_entry
    for unsub in hass.data[DOMAIN].listeners:
AttributeError: 'dict' object has no attribute 'listeners'

Este é o erro no geral, o que não é de estranhar dado que no site o tipo de combustivel é obrigatório.


Logger: homeassistant.components.sensor
Source: custom_components/precoscombustiveis/sensor.py:36
Integration: Sensor (documentation, issues)
First occurred: 12:56:48 (2 occurrences)
Last logged: 13:00:09
Error while setting up precoscombustiveis platform for sensor

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 249, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/precoscombustiveis/sensor.py", line 36, in async_setup_entry
    sensors = [PrecosCombustiveisSensor(api, config["stationId"], station, fuel["TipoCombustivel"]) for fuel in station.fuels]
TypeError: 'NoneType' object is not iterable

PS: Diria que falta ai uma combo para escolher o tipo de combustivel

PS2: ou melhor ainda a opção de escolher multiplos atraves de uma combo com checkbox como no site

@jpm O primeiro erro já é meu conhecido e estou ainda a trabalhar para o corrigir.
Este erro ocorre quando removes uma entidade

O segundo erro, é novo para mim, vou investigar para perceber o que possa ter acontecido, obrigado pela ajuda.

Quanto à escolha dos combustíveis, eu tentei manter isto o mais simples possível, por isso é ao adicionar uma estação de serviço (uma integração) são criadas uma entidade por cada tipo de combustível.

Desta forma, podes sempre optar por exibir todos os combustíveis ou apenas aquele(s) que necessitas.
Nota que é possível adicionar tantas bombas de combustível quantas desejes (repetindo o processo)

Aproveito para lembrar que aceito sugestões de melhoria

1 Curtiu

O primeiro erro é não de remover uma entidade foi a unica entrada no log que tenho para a integração, fora isso nem entidades, nada. simplesmente existe nas integrações e mais nada.

Depois de adicionar a integração no HACS é necessário reiniciar o HA.

Depois, é necessário ir a “Settings > Devices & Services” (“Configuração > Dispositivos e Serviços”) e clicar no grande botão azul “Add Integration” (Adicionar Integração).

Na lista de integrações procurar por “Precos Combustiveis” e deverá surgir a integração (sem icon para já).

  • Caso não surja na pesquisa, recomendo limpar os cookies ou então abrir o HA numa sessão “In Private”.
  • Caso surja a integração, podes me enviar (por DM) screenshots dos ecrãs que vão surgindo?

Obrigado pela ajuda

dois postos de exemplo:
image

em detalhe
image

Não encontro qualquer entidade

Tambem me aconteceu quando integrei alguns postos. não ocorre com todos.

Olá @jpm
O problema é que os Ids usados não são os corretos.
Todas as estações tem um ID com 5 dígitos e no teu estão apenas 4

Como não estou a fazer validação do Id depois acontecem estas coisas… desculpa.
(é um ponto a melhorar da minha parte)

Deves colocar o valor do campo “Id” que se encontra no link que eu coloquei na integração

Boa tarde a todos

Boas notícias!

Foi hoje publicada uma nova versão do componente (a versão 1.2.0) com as seguintes melhorias:

  1. Ao adicionar uma estação de serviços (integração) é validado se a estação existe ou não, caso não exista a integração não é adicionada e é exibida uma mensagem ao utilizador
  2. A atualização do sensor agora é mais exacta e já não adiciona o valor zero quando inicia (comportamento reportado por @blopes)

Recomento que procedam à atualização do componente e, mais uma vez, agradeço a todos os que ajudaram a testar e que contribuíram com ideias

1 Curtiu

No meu ficou resolvido os valores a zero. Obrigado :wink:

1 Curtiu

Boas tardes,

tenho estado a usar esta integração no meu dashboard mas olhando para o exemplo que existe documentado e tentando fazer algo semelhante deparo-me que os atributos não estão a ser “puxados” para display, basicamente queria ter disponivel a data/hora da atualização dos valores mas o melhor que consigo fazer é ter o lastUpdate ativo por linha em vez de ter aquele atributo extra de “Ultima atualização de Preço”.
Foi algo que foi removido ou está a ser simples azelhice minha?

Boa tarde @tretabyte

As minhas sinceras desculpas, a culpa foi toda minha que não atualizei a documentação.
Na versão 1.2.0 (de ontem) foram feitas uma séria de melhoras, entre elas uma alteração no nome do atributo da atualização do preço, que agora se chama lastPriceUpdate (para não se confundir com a atualização do estado)

Assim, de acordo com o exemplo na documentação, deverá alterar o atributo lastUpdate por lastPriceUpdate.

Por favor, depois indique se ficou a funcionar

Boas @RuiDias ,

atributo alterado mas não está a ser atualizado por algum motivo que não consigo detectar
o codigo que estou a usar é o seguinte:

      - type: entities
        entities:
          - entity: sensor.repsol_e_s_malveira_gasoleo_simples
            secondary_info: last-updated
            name: Gasóleo simples
          - entity: sensor.repsol_e_s_malveira_gasoleo_especial
            name: Gasóleo aditivado
            secondary_info: last-updated
          - entity: sensor.repsol_e_s_malveira_gasoleo_colorido
            name: Gasóleo agricola
            secondary_info: last-updated
          - entity: sensor.repsol_e_s_malveira_gasolina_simples_95
            name: Gasolina 95
            secondary_info: last-updated
          - entity: sensor.repsol_e_s_malveira_gasolina_especial_95
            name: Gasolina 98
            secondary_info: last-updated
          - type: divider
          - entity: sensor.repsol_e_s_malveira_gasoleo_simples
            type: attribute
            attribute: lastPriceUpdate
            name: Ultima Actualização de Preço
        title: 'Repsol AE Malveira #1'
        show_header_toggle: false
        state_color: true
        footer:
          type: graph
          entity: sensor.repsol_e_s_malveira_gasoleo_simples
          detail: 2

Funcionou

Por favor, garanta que tem a ultima versão do componente instalado no HACS:

  1. Navegar até ao HACS em integrações /hacs/integrations
  2. Clicar nos três pontinhos no canto inferior direito do cartão Preços dos Combustíveis - DGEG
  3. Escolher a opção “Atualizar Informações”
  4. Aguardar uns segundos, e deve aparecer um bordo a verde informando que existe uma atualização para o repositório
  5. Atualizar (deve atualizar para a versão v1.2.0)
  6. É necessário reiniciar o Home Assistant
  7. Após reiniciar, não é necessário atualizar a integração, deve apenas funcionar

Caro @jpm gostaria de saber se entretanto já conseguiu por a funcionar

Algo estranho se passa, tenho a ultima versao do HACS, reinstalei a integração, refiz os passos todos e… continua a não atualizar a data.

Boa tarde,

Sim do meu lado ficou, na realidade estava a colocar o id do array dai “apenas” os 4 digitos.

Depois copiei o teu card, e tudo está a funcionar.

1 Curtiu

Boa tarde @RuiDias
decididamente algo não está a funcionar corretamente e não consigo perceber o quê.
Reinstalei a integração (com multiplos restarts entre steps para garantir que nada residual ficava), fiz novo pull dos dados, garanti que as ultimas versões estavam a ser usadas mas a informação relativamente ao ultimo update continua a não aparecer.
Existe algum modo de debug que possa ser utilizado para tentar ter algum mais logging e talvez perceber se ha algum erro oculto ou algo mais que não esteja a detetar?
A instalação e configuração é bastante simples por isso nao percebo o porquê daquele atributo (ou qualquer dos outros) não estar a ser puxado para display.


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


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