Helium Blockchain custom component

Hey, just wondering if anybody can help with the utility meter helper?
I have set the 3 entities in my configuration.yml file for today, week and month, however I am unsure how to configure these in the actual utility meter?
Many thanks!



Just wondering if this looks right?

Did you add your wallet in to the configuration as well, example titled “Configure sensors for Helium wallets:”?

1 Like

Yes, like this:-


(sorry I blanked those out, not sure if they are sensitive.)

Does that look ok?

Is there only one section starting with “sensor:”? I added my helium wallet to an existing sensor section.

I think it checks every 15 minutes. Maybe it needs some activity on the wallet also.

Do you see any numbers in Developer > States > filter entities using “wallet”?

Hi,
yes only one sensor section.
I checked the states, (good shout) see below, nothing much showing?
I mean I only have like 0.3 HNT collected over about 4 days, so maybe that is something to do with it?

You may have to wait for a day before daily weekly and monthly shooting to life.

Do you get other values. For example sensor.helium_hnt_oracle_price gives me 9.16.

1 Like

Yes I do see a value for that .
I’ll leave it a while.

Oh well , non of the values have increased, all still show 0.

Hi, does this automation still works with the latest version of HA. Cannot get it to run.

It’s still working for me. The price of helium is down and the daily rewards from my miner are low, so it may not appear to be moving but it is. :man_facepalming:t2:

1 Like

Yep still working for me too. I’m not mentioning earnings, it’s too painful to talk about :expressionless:

Working as well. Unless Helium changes the APIs they expose entirely…this should continue to work indefinitely.

Would be awesome if someone added support for $MOBILE and $IOT…

awesome integration. thanks for your work.

every now and then i get this error:

Logger: homeassistant.components.sensor
Source: custom_components/helium/client.py:31
Integration: Sensor (documentation, issues)
First occurred: 3:11:04 PM (5 occurrences)
Last logged: 3:11:04 PM

helium: Error on device update!
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/anyio/_core/_sockets.py", line 186, in connect_tcp
    addr_obj = ip_address(remote_host)
  File "/usr/local/lib/python3.10/ipaddress.py", line 54, in ip_address
    raise ValueError(f'{address!r} does not appear to be an IPv4 or IPv6 address')
ValueError: 'api.helium.io' does not appear to be an IPv4 or IPv6 address

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 8, in map_exceptions
    yield
  File "/usr/local/lib/python3.10/site-packages/httpcore/backends/asyncio.py", line 109, in connect_tcp
    stream: anyio.abc.ByteStream = await anyio.connect_tcp(
  File "/usr/local/lib/python3.10/site-packages/anyio/_core/_sockets.py", line 189, in connect_tcp
    gai_res = await getaddrinfo(
  File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.10/socket.py", line 955, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Try again

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions
    yield
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
    resp = await self._pool.handle_async_request(req)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 253, in handle_async_request
    raise exc
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection_pool.py", line 237, in handle_async_request
    response = await connection.handle_async_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection.py", line 86, in handle_async_request
    raise exc
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection.py", line 63, in handle_async_request
    stream = await self._connect(request)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_async/connection.py", line 111, in _connect
    stream = await self._network_backend.connect_tcp(**kwargs)
  File "/usr/local/lib/python3.10/site-packages/httpcore/backends/auto.py", line 29, in connect_tcp
    return await self._backend.connect_tcp(
  File "/usr/local/lib/python3.10/site-packages/httpcore/backends/asyncio.py", line 107, in connect_tcp
    with map_exceptions(exc_map):
  File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/usr/local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 12, in map_exceptions
    raise to_exc(exc)
httpcore.ConnectError: [Errno -3] Try again

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

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 703, in async_device_update
    await task
  File "/config/custom_components/helium/sensor.py", line 129, in async_update
    json = await self._client.async_get_oracle_price()
  File "/config/custom_components/helium/client.py", line 53, in async_get_oracle_price
    return await self.async_get(url)
  File "/config/custom_components/helium/client.py", line 31, in async_get
    response = await client.request('GET', url, timeout=self._timeout)
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1527, in request
    return await self.send(request, auth=auth, follow_redirects=follow_redirects)
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1614, in send
    response = await self._send_handling_auth(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1642, in _send_handling_auth
    response = await self._send_handling_redirects(
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1679, in _send_handling_redirects
    response = await self._send_single_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpx/_client.py", line 1716, in _send_single_request
    response = await transport.handle_async_request(request)
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 352, in handle_async_request
    with map_httpcore_exceptions():
  File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/usr/local/lib/python3.10/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: [Errno -3] Try again

once i get this error it never seems to recover from it. i have to restart home assistant a few times to get past it. it would be awesome if the integration could retry after getting this error.

cheers,

I have also started getting this error, well actually started getting it months ago. Usually takes a few restarts to get going again.

Would adding a delay to startup help, or as @chilicheech mentioned maybe there is a more elegant way to capture the error and restart it?

hey, is it still working? Value of Helium HNT/USD 2,19 no change since 2 days.

1 Like

For me it looks like it stooped a few days ago when it converted to Solana.

There is an API here which can be ingested using rest sensors:

Correct, this integration is specific to the Helium blockchain. If someone wants to contribute changes to make it work using the Solana blockchain, they are welcome to submit the changes and Pull Requests. Otherwise, this integration will be archived.

I think uptime is still working, it is just everything associated to the wallet as opposed to the hardware… that is no longer working