Preços dos Combustíveis

Obrigado pela sugestão @IvanMB , irei ter em conta numa próxima atualização.

Já agora, só para esclarecer, o nome do sensor é composto por:

  1. Marca do Combustível
  2. Nome do Posto
  3. Tipo de Combustível

portanto, no exemplo dado, o primeiro “GALP” será a marca e o nome do posto seria “GALP Águas Santas Norte”

1 Curtiu

Boas. Muito obrigado pela partilha, Eu estou a usar este componente (ultima versão) com HA 2022.8.7 e acontecem 2 coisas:
Para o posto 65156 no arranque do HA tenho:

...........
2022-10-02 00:16:39.486 DEBUG (MainThread) [custom_components.precoscombustiveis.dgeg] Fetching details for gas station Id:65156...
2022-10-02 00:16:42.012 ERROR (MainThread) [homeassistant.components.sensor] precoscombustiveis: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 477, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 702, in async_device_update
    await task
  File "/config/custom_components/precoscombustiveis/sensor.py", line 125, in async_update
    self._state = gasStation.getPrice(self._fuelName)
  File "/config/custom_components/precoscombustiveis/dgeg.py", line 62, in getPrice
    return float(fuel["Preco"]
ValueError: could not convert string to float: '4.075 €/kg'
2022-10-02 00:16:44.538 WARNING (MainThread) [homeassistant.components.media_player] Setup of media_player platform denonavr is taking over 10 seconds.
2022-10-02 00:16:44.864 ERROR (MainThread) [homeassistant.components.sensor] precoscombustiveis: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 477, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 702, in async_device_update
    await task
  File "/config/custom_components/precoscombustiveis/sensor.py", line 125, in async_update
    self._state = gasStation.getPrice(self._fuelName)
  File "/config/custom_components/precoscombustiveis/dgeg.py", line 62, in getPrice
    return float(fuel["Preco"]
ValueError: could not convert string to float: '4.178 €/kg'
.........

E a segunda situação é que o attributo “LastPriceUpdate” so atualiza quando renicio o HA ficando com esse “timestamp” para sempre mesmo quando o peço muda.

Boas Rui, conseguiste ver or erros que partilhei?
Muito obrigado e bom Ano.

Com o update deste mês a integração deixou de funcionar :frowning:

1 Curtiu

Igual com o HA 2023.5 deixou de funcionar:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
    result = await component.async_setup_entry(hass, self)
  File "/config/custom_components/precoscombustiveis/__init__.py", line 37, in async_setup_entry
    hass.config_entries.async_setup_platforms(entry, PLATFORMS)
AttributeError: 'ConfigEntries' object has no attribute 'async_setup_platforms'

no ficheiro “init.py” substitui a linha 37:

hass.config_entries.async_setup_platforms(entry, PLATFORMS)

por

await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)

E faz restart ao HA.

5 Curtiram

Obrigado! Esta a funcionar!

Muito obrigado! Voltou a funcionar :slight_smile:

Obrigado! A funcionar!

Ja não precisam de fazer pois a versão 1.3.0 disponibilzada pelo Autor da integração ja inclui essa compatibilidade. Eu como tenho um versão modificada com varias alterações /correções é que ja tinha isso modificado ha algum tempo.

Boas, desde já os meus parabéns pela integração ao qual já comecei a dar uso.

Não querendo fazer off-topic, mas seria possível realizar algo do género ao que o Pedro Andersson faz no Blog dele “Contas Poupança” de previsão do preço da semana seguinte?

https://contaspoupanca.pt/artigos-carro/

Honestamente falando ainda não entendi como ele faz as contas para obter o resultado, mas seria uma boa ferramenta no HA para ficarmos mais atentos! :smiley:

Boa tarde @joaopedros2 , a ideia é muito interessante mas como diz o Pedro

São dados que recolho semanalmente junto das minhas fontes no mercado dos combustíveis.

Ele não apresenta os calculos nem as fontes, e sem isso nada feito :smile:

Será que ele estará disponível para partilhar (pelo menos o resultado) connosco para que possamos construir a integração? Queres perguntar?

Abraço

Vou tentar falar com ele.

Mas caso seja impossível de ele partilhar por algum motivo. Teríamos de arranjar outra forma de captar a informação através do blog dele.
Não é muito a minha área mas se o blog dele tivesse esse valor armazenado num local de forma consistente já seria possível captar para o HA para um sensor dedicado para isso.

O Pedro já me respondeu:

Olá.
Obrigado!
Nao tenho uma fórmula replicavel…
Tenho fontes no setor que me enviam os dados dos mercados mais atuais.
Eu nwo tenho acesso direto aos preços a que eles compram.
Se o joao conseguir saber o preço do Plattz de Amesterdão em tempo real, diga :).
Abraço
Pedro Andersson

Bom dia a todos

Demorou, mas lá lancei uma nova versão desta integração…
Agora em vez de ter que indicar o ID da bomba de combustível (que se tinha de ir ler a um JSON), é apresentada a lista das bombas disponíveis por distrito, e… é só escolher.

Ficou muito mais simples e, creio, mais usavel.
Se puderem, testem a versão 2 e depois deixem aqui os comentários.

Obrigado a todos

1 Curtiu

Bom dia @RuiDias não testei ainda, quero apenas agradecer o bom trabalho que tens desenvolvido para a comunidade.

1 Curtiu

Bom dia a todos.

No outro dia estava um pouco entediado e lembrei-me de acrescentar uma novidade à interação: Logotipos

Fica qualquer coisa como isto:

Caso pretendam testar, ainda está em BETA, pelo que necessitam de descarregar manualmente (escolhendo a versão 3.0-beta)

Um cartão pode ser usado desta forma:

type: tile
entity: sensor.galp_galp_retail_park_barcelos_gasoleo_especial
show_entity_picture: true
name: Retail Park

Se puderem testar, por favor deixem aqui (ou no GitHub) o resultado da vossa experiencia.
Desde já agradeço

boas. Obrigado pelo projeto. Os símbolos estão a funcionar bem.
Com a última atualização de hoje do HA, deixou de funcionar, indicando o seguinte erro no log:
Error while setting up precoscombustiveis platform for sensor: name ‘aiohttp’ is not defined

Bom dia,
Também deixou de funcionar comigo.
O erro:

Registo: homeassistant.components.sensor
Origem: helpers/entity_platform.py:382
integração: Sensor (documentação, problemas)
Primeira ocorrência: 11:52:56 (3 ocorrências)
Último registo: 11:52:56

Error while setting up precoscombustiveis platform for sensor: name 'aiohttp' is not defined
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/aiohttp/connector.py", line 1283, in _wrap_create_connection
    return await self._loop.create_connection(*args, **kwargs, sock=sock)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1187, in create_connection
    transport, protocol = await self._create_connection_transport(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<2 lines>...
        ssl_shutdown_timeout=ssl_shutdown_timeout)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1220, in _create_connection_transport
    await waiter
  File "/usr/local/lib/python3.13/asyncio/sslproto.py", line 581, in _on_handshake_complete
    raise handshake_exc
  File "/usr/local/lib/python3.13/asyncio/sslproto.py", line 563, in _do_handshake
    self._sslobj.do_handshake()
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.13/ssl.py", line 951, in do_handshake
    self._sslobj.do_handshake()
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1028)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/config/custom_components/precoscombustiveis/dgeg.py", line 118, in getStation
    async with self.websession.get(
               ~~~~~~~~~~~~~~~~~~~^
        API_URI_TEMPLATE.format(id),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<2 lines>...
        }
        ^
    ) as res:
    ^
  File "/usr/local/lib/python3.13/site-packages/aiohttp/client.py", line 1488, in __aenter__
    self._resp: _RetType = await self._coro
                           ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/aiohttp/client.py", line 770, in _request
    resp = await handler(req)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/aiohttp/client.py", line 725, in _connect_and_send_request
    conn = await self._connector.connect(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        req, traces=traces, timeout=real_timeout
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/aiohttp/connector.py", line 642, in connect
    proto = await self._create_connection(req, traces, timeout)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/aiohttp/connector.py", line 1209, in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/aiohttp/connector.py", line 1581, in _create_direct_connection
    raise last_exc
  File "/usr/local/lib/python3.13/site-packages/aiohttp/connector.py", line 1550, in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<7 lines>...
    )
    ^
  File "/usr/local/lib/python3.13/site-packages/aiohttp/connector.py", line 1285, in _wrap_create_connection
    raise ClientConnectorCertificateError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host precoscombustiveis.dgeg.gov.pt:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1028)')]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 382, in _async_setup_platform
    await asyncio.shield(awaitable)
  File "/config/custom_components/precoscombustiveis/sensor.py", line 38, in async_setup_entry
    station = await api.getStation(config[CONF_STATIONID])
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/precoscombustiveis/dgeg.py", line 130, in getStation
    except aiohttp.ClientError as err:
           ^^^^^^^
NameError: name 'aiohttp' is not defined

Boa tarde,
Alguem sabe se este projeto fico sem suporte?


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


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