NIBE Uplink API component (non S-series)


Thank you for the example, worked like a charm :+1::grin:
Only one step away from achieving my goal of measuring the energy consumption of my heat pump. From the register I got a bunch of addresses for sensors with current and/or power however I am not sure if I can pick any of them to get a reliant total power consumption?

Have you(or anyone else) looked at that?

Best regards



I have a separate 3-phase Qubino Power Meter so I have not tested this.

And… After a few days testing (setting the Set Value on the nibe between 16 - 19 at day/night) the house has remained a steady 21 degrees.

I get that a heat pump is supposed to maintain a stable temperature, but how can I use the HA integration to lower the temperature at night, other than shutting off the rads in the bedrooms?

The high setpoint will control cooling function of your pump, the low will control heating.

But on the uplink there is only one ‘Set Value’ reading and it is only ever the lower temp value from the thermostat?

Not sure what you mean. If you are using smart thermostats based climate entities, there is only one value yes.

If you are controlling the room temperature for one of the climate systems. That entity can have a low and high temperature. It will be active in heat_cool mode. In heat mode, that is default it also take only one value.

Hey, thanks for sticking with me on this.

I am using the climate.nibe__S1_room thermostat. But what I’m seeing is that the nibe uplink value for Set Value is only updated with the lower temperature in heat_cool mode. Other modes, or the upper value in heat_cool never get written to the Set Value in the Nibe Uplink.

Coincidentally, the avg temp in the rooms (21.7 ish) is a few degrees above the temperature range set on thermostat (16-18 at night, 18.5 - 20) in the day.

The temperature is pleasant and not too much cause for complaint, but I can see the heat pump may be unnecessarily creating heat during the night, when I would prefer it to be a little cooler. I thought I could achieve this by writing a lower Set Value to the uplink, but it actually appears to have little effect on the temperature resulting in the house.

Appreciate your thoughts

If your using modbus to read all sensors on your S series, you can receive the current power (in Watt) from input register 2166. Works like a charm.

– Erik

thank you for sharing
i have F2040 and smo20, so i think i can’t read this kind of mudbus input…

Same here (SMO20 and F2040).

There is this, but frustratingly doesn’t report to the uplink like it does for other hardware

thank you
so i prefer a PZEM and clamp (or shelly em) to load wire and some sensors on HA
thak you anyway

I’m using these elsewhere and wondering how I can add them to my SMO20 set up to record heating and hot water energy separately.

I am thinking of removing custom switch entities from nibeuplink and adding some static ones.

Is there anybody here that is using my nibeuplink component and have added custom switch entities in the yaml config? if so which parameters?

what kind of switch are you talking about?

It is currently possible to add a switch entity to any parameterid that you know using yaml. It will try to write 1 or 0 to that parameter when toggled. There are very few parameters that actually allow control that way. Some expect other numbers than 1 for on.

So I just wanted to see if anybody had any parameter configured for this before i remove the feature.


Need some basic support to get me started on this. I think this a simple user error related to Custom Configurations, but I fail to find my fault.

I have followed the Installation Instruction, Git installation and following the installation I have restarted Home Assistant.

After that I added “nibe:” to my configuration.yaml and restarted the system again.

But, when I try to add the integration, it is not found in the list of integrations.

There are sadly no relevant information in the system log.
I do notice that pycache has a few files, so something is happening.

Is there any basic configuration I need to do to Home Assistant to enable new Custom Integrations?
(I have one customer integration for Wyze up and running since quite some time back)

My HA version is:

Version core-2021.12.1
Installation Type Home Assistant OS
Development false
Supervisor true
Docker true
User root
Virtual Environment false
Python Version 3.9.7
Operating System Family Linux
Operating System Version 5.10.63-v7l
CPU Architecture armv7l

Thanks /Marcus

If it doesn’t show up, you have missed some files, or placed them in the wrong location.

I suggest you follow the hacs installation instructions. It will be much better long term. nibe: key is no longer required actually.

After a good nights sleep, it has appeared. But, when I try to enable the integration (+ Lägg till integration) I get the following error:


And, directly after this error there are some relevant information in the log:

2021-12-23 06:04:53 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/aiohttp/", line 435, in _handle_request
    resp = await request_handler(request)
  File "/usr/local/lib/python3.9/site-packages/aiohttp/", line 504, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.9/site-packages/aiohttp/", line 117, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/", line 60, in security_filter_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/", line 98, in forwarded_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/", line 28, in request_context_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/", line 78, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/", line 181, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/", line 137, in handle
    result = await result
  File "/usr/src/homeassistant/homeassistant/components/config/", line 130, in post
    return await super().post(request)
  File "/usr/src/homeassistant/homeassistant/components/http/", line 62, in wrapper
    result = await method(view, request, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/", line 71, in post
    result = await self._flow_mgr.async_init(
  File "/usr/src/homeassistant/homeassistant/", line 203, in async_init
    flow, result = await task
  File "/usr/src/homeassistant/homeassistant/", line 230, in _async_init
    result = await self._async_handle_step(flow, flow.init_step, data, init_done)
  File "/usr/src/homeassistant/homeassistant/", line 325, in _async_handle_step
    result: FlowResult = await getattr(flow, method)(user_input)
  File "/config/custom_components/nibe/", line 74, in async_step_user, AUTH_CALLBACK_URL
  File "/usr/src/homeassistant/homeassistant/helpers/", line 116, in get_url
    raise NoURLAvailableError

This is how my structure looks

[core-ssh nibe]$ pwd

[core-ssh nibe]$ git remote show origin
* remote origin
  Fetch URL:
  Push  URL:
  HEAD branch: master
  Remote branches:
    broadlink   tracked
    dev         tracked
    fan_speed   tracked
    master      tracked
    monitor     tracked
    state_class tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

[core-ssh nibe]$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
[core-ssh nibe]$ ls -l
total 144
-rw-r--r--    1 root     root          4193 Dec 22 19:26
-rw-r--r--    1 root     root         12427 Dec 22 19:26
drwxr-xr-x    2 root     root          4096 Dec 23 06:04 __pycache__
-rw-r--r--    1 root     root          1442 Dec 22 19:26
-rw-r--r--    1 root     root         18695 Dec 22 19:26
-rw-r--r--    1 root     root          7338 Dec 22 19:26
-rw-r--r--    1 root     root          1218 Dec 22 19:26
drwxr-xr-x    2 root     root          4096 Dec 22 19:26 docs
-rw-r--r--    1 root     root          6084 Dec 22 19:26
-rw-r--r--    1 root     root          4790 Dec 22 19:26
-rw-r--r--    1 root     root           201 Dec 22 19:26 hacs.json
-rw-r--r--    1 root     root           248 Dec 22 19:26 manifest.json
-rw-r--r--    1 root     root         10076 Dec 22 19:26
-rw-r--r--    1 root     root          4974 Dec 22 19:26
-rw-r--r--    1 root     root          1769 Dec 22 19:26 services.yaml
-rw-r--r--    1 root     root           361 Dec 22 19:26 setup.cfg
-rw-r--r--    1 root     root          1820 Dec 22 19:26 strings.json
-rw-r--r--    1 root     root          1628 Dec 22 19:26
-rw-r--r--    1 root     root           583 Dec 22 19:26
drwxr-xr-x    2 root     root          4096 Dec 22 19:26 translations
-rw-r--r--    1 root     root          7110 Dec 22 19:26
[core-ssh nibe]$ ls -l __pycache__/
total 36
-rw-r--r--    1 root     root         11833 Dec 23 06:04 __init__.cpython-39.pyc
-rw-r--r--    1 root     root          6993 Dec 23 06:04 config_flow.cpython-39.pyc
-rw-r--r--    1 root     root          1461 Dec 23 06:04 const.cpython-39.pyc
-rw-r--r--    1 root     root          4796 Dec 23 06:04 services.cpython-39.pyc
-rw-r--r--    1 root     root           822 Dec 23 06:04 system_health.cpython-39.pyc

I’ll upgrade my HA to 2021.12.4 and report back things changes.

Reg. HACS, I had it installed but my experience was not good. It slowed down my system quite a lot. Maybe I’ll give it a go again.

Any ideas what may cause this. My Home Assistant installation is fairly stock. Only added one custom component (Wyze) and one custom addition (Plejd).
The rest is just a bunch of ootb integrations (Tuya, Mosquitto, Google Cast) and additions (Duch DNS, Samba, File Editor, SSH/Terminal)

Thanks in advance,

I had not configured the External URL.

I own a VVM500 and a F2120-8
I’m using the API component to get the data into home assistant, all works fine.
The last days i noticed that the fan RPM in the heatpump is always 0.
But i’m sure it was working trough this integration.
What i see now is that if i look on the VVM500 status menu, actual fan speed 375rpm.
So the fan speed is reporting back to the controller. (also no errors reported)
But if i look in the official APP from nibe the fan speed is not showing (always zero, just like the integration) Also if i login the webportal the fan also shows zero.
So could it be that nibe has changed something on there end on the API?
I’m 100% that the fan rpm value was working,
Any one else noticed some thing similar?