Haverland Radiators Smart Box Integration

Just read this thread and am I correct in understanding that integration for Haverland radiators on a Haverland hub will be supported by this Smartbox integration? Will it be included in the next software release?

If the Haverland Hub is a smartbox (I think it is one), it should work yes ! :slight_smile:
The next release of this integration will be easier to configure it

2 Likes

Thanks. Yes, it is a smartbox so looking forward to the next release :slight_smile:

1 Like

Yes, Haverland smartbox is already supported

1 Like

I have the latest software and it’s not supported that I can see so I assume it will be in the next release?

Could you give me more details about your setup, brand, etc?

Brand new Home Assistant Green running the latest software:

  • Core 2025.2.2
  • Supervisor 2025.02.0
  • Operating System 14.2
  • Frontend 20250210.0

I mean, about your radiator

Oh, sorry :frowning:
I have four Haverland ULTRAD smart radiators controlled from a Haverland ULTRAD - SmartBox Wi-Fi Controller

Just to be clear, I can’t see the ‘smartbox’ integration anywhere in my Home Assistant - should I be able to see it or is it coming in the next release?

Do you have HACS installed ?

What is HACS?? Oh, sorry, just googled it. No, not installed but I can see I need it?

Yes, this is the first step
Then, on the next release you will have the todo installation (which is not yet fully automates)

Thank you! I now have HACS installed so I just wait for the next release?

You can already add GitHub - ajtudela/hass-smartbox: Home Assistant integration for Haverland heating smartboxes to the HACS.
Click on the three dots (upper right) > custom repositories > Repository : GitHub - ajtudela/hass-smartbox: Home Assistant integration for Haverland heating smartboxes, Type : Integration

Do not yet download it, wait the really soon next release :slight_smile:

2 Likes

Thank you @Delmael - I have added the repository to HACS as you suggested and will wait for the next release before downloading.

Hello everyone
Somme good news, we’ve just released a new version of the smartbox integration :fireworks:

What’s in this 2.1.0 version:

  • Every call are now asynchronous as home assistant requirement needs
  • The updates of entites are now in real time through the websocket
  • Entities are now linked to a device
  • Configuration throw the UI : no more need of the basic_auth or url, etc
  • Energy consumption sensor and history
  • Translations
  • Technical and security improvments

You can download it and use it.
If you have any questions look at the README then ask it here or on github :slight_smile:

1 Like

Excellent news and great progress. I have intalled 2.1.0 and connected to my Haverland account but I then get an error:
Error setting up entry Haverland [email protected] for smartbox
and then Smartbox shows:
Failed to set up:
Check the logs.

Here is the log output:

Logger: homeassistant.config_entries
Source: config_entries.py:637
First occurred: 14:39:12 (3 occurrences)
Last logged: 14:46:00

Error setting up entry Haverland [email protected] for smartbox
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 637, in __async_setup_with_context
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/smartbox/__init__.py", line 76, in async_setup_entry
    devices = await get_devices(session=session, hass=hass)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/smartbox/model.py", line 395, in get_devices
    devices.append(await create_smartbox_device(session_device, session, hass))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/smartbox/model.py", line 407, in create_smartbox_device
    await _device.initialise_nodes()
  File "/config/custom_components/smartbox/model.py", line 56, in initialise_nodes
    session_nodes = await self._session.get_nodes(self.dev_id)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/smartbox/session.py", line 303, in get_nodes
    nodes: Nodes = Nodes.model_validate(response)
                   ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/pydantic/main.py", line 627, in model_validate
    return cls.__pydantic_validator__.validate_python(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        obj, strict=strict, from_attributes=from_attributes, context=context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
pydantic_core._pydantic_core.ValidationError: 12 validation errors for Nodes
nodes.0.lost
  Field required [type=missing, input_value={'name': 'KITCHEN', 'addr...'level': 0, 'parent': 0}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.10/v/missing
nodes.1.lost
  Field required [type=missing, input_value={'name': 'LIVING ROOM 2',...'level': 0, 'parent': 0}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.10/v/missing
nodes.2.lost
  Field required [type=missing, input_value={'name': 'SITTING ROOM 2'...'level': 0, 'parent': 0}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.10/v/missing
nodes.3.lost
  Field required [type=missing, input_value={'name': 'SITTING ROOM 1'...'level': 0, 'parent': 0}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.10/v/missing
nodes.4.lost
  Field required [type=missing, input_value={'name': 'LIVING ROOM 1',...'level': 0, 'parent': 0}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.10/v/missing
nodes.5.lost
  Field required [type=missing, input_value={'name': 'ALISS BEDROOM',...'level': 0, 'parent': 0}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.10/v/missing
nodes.6.lost
  Field required [type=missing, input_value={'name': 'LANDING', 'addr...'level': 0, 'parent': 0}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.10/v/missing
nodes.7.lost
  Field required [type=missing, input_value={'name': 'ROBS BEDROOM', ...'level': 0, 'parent': 0}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.10/v/missing
nodes.8.lost
  Field required [type=missing, input_value={'name': 'UTILITY', 'addr...'level': 0, 'parent': 0}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.10/v/missing
nodes.9.lost
  Field required [type=missing, input_value={'name': 'OFFICE', 'addr'...'level': 0, 'parent': 0}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.10/v/missing
nodes.10.lost
  Field required [type=missing, input_value={'name': 'STUDIO', 'addr'...'level': 0, 'parent': 0}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.10/v/missing
nodes.11.lost
  Field required [type=missing, input_value={'name': 'End Bedroom', '...'level': 0, 'parent': 0}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.10/v/missing

I see where is the problem, the patch is on the way

1 Like

It should be good, you need to restart home assistant to see the changes