Nibe uplink binding

Tags: #<Tag:0x00007fc8f507aee8> #<Tag:0x00007fc8f507ada8>

Parameters can be found from Nibe modbus application in CSV format per pump model (application can be download from internet). I created awk script to generate channel types from CSV for nibe heat pump 2 binding. See See more details from my repo or PR

Not sure, if all parameters are available from uplink.

1 Like

Parameters can be found from Nibe modbus application in CSV format per pump model (application can be download from internet)

Thanks, that is exactly what I was looking for. It seems that this is only available on the swedish web page of nibe but finally I found it!

I created awk script to generate channel types from CSV for nibe heat pump 2 binding. See

Thanks again that will save me a lot of effort!

Not sure, if all parameters are available from uplink.

I already tested it and Nibe uplink came back with more than 5000 parameter values when I requested 10000 - 99999. So I guess it is all available although it is not documented anywhere.

I have now added support for following heatpump models:

  • VVM310 / 500
  • VVM320 / 325
  • F750
  • F1145 / 1245
  • F1155 / 1255

Is is possible to add support also for f2025? :slight_smile:
I have one together with VVM310, which I see you have already supported.

Awesome job! I look forward to trying it out once I get my setup complete.


Unfortunately the Modbus manager database does not know the F2025. Is that a new model? Maybe it will be added to the database at a later point of time.

Actually, it may be too old then. It is basically a 2020 with minor enhancements. Oh well, I might install the binding and see what I get with VVM310 data. Cheers!

If the F2020 supports Nibe Uplink I just need a mapping of channel IDs.
You could login to Nibe Uplink and use for example Firebug to analyze the JSON responses to the periodic POST requests. It will return pairs of keys (Nibe IDs) and values (actual sensor data) to be displayed in the WEB-UI.

Of course the WEB-UI offers only a small subset of sensor data but I think that is the most relevant data.

How should I format it, and which data do you actually want?

For example, the heat pump compressor hours has ID44071 (and gives me 10904 hours). The title text is “compressor operating time EB101”.

Here’s anyway the data. But let me know if I miss something, or shall reformat!
(I see now, that I actually has a F2026, not 2025, as I wrote first. But they are very similar anyway!)

ID44396,charge pump speed EB101
ID44362,outdoor temp. EB101-BT28

compressor module 
ID44071,compressor operating time EB101
ID44073,compressor operating time hot water EB101
ID44069,compressor starts EB101 	
ID44058,condenser out EB101-BT12
ID44363,evaporator EB101-BT16
ID44059,hot gas EB101-BT14
ID44060,liquid line EB101-BT15
ID44055,return temp. EB101-BT3
ID44061,suction gas EB101-BT17

Title 	Value
ID0,    product 	F2026-8
ID44014,version EB101

Hi Micael,

the F2026 is the outdoor unit belonging to your VVM310? In that case all data should be retrieved by the VVM310. Outdoor units are not handled seperately.

Aha! Yes, this is the outdoor unit - and it looks like all the ID’s are supported, as you say, through the 310. :smile:

Is there a jar somewhere? I’m on 2.10 release still will it work or does it need 2.2? (I am considering upgrading to 2.2, so if this is needed for this binding, I’ll do this).

You can find the latest version here:

Although it is a 2.2.0 SNAPSHOT it should run fine with Openhab 2.1.0.


first of all thanks for your efforts Alex and also the others earlier. This thread is actually the reason I’ve registered here. :slight_smile:

I wanted to try the jar you’ve uploaded a few days ago, but could not get it working with my F1155 as openhab always claimed no binding would support that thing.
After having a look at your code I saw that in the SUPPORTED_THING_TYPES_UIDS enumerator in you only listed the VVM320.

Is there a particular reason for it? (maybe the only one that’s currently supported & tested?)

Would be really great if you could add the others as well and build a new jar.

Thanks again & best,

Hi Christoph,

thanks for your response. I have fixed it. A new build should be available.

Great job!

I’ m using nibeuplink:f750-sensors and found some errors.

May be you can change Number to String for these items.

2017-09-27 19:46:26.676 [WARN ] [euplink.handler.GenericUplinkHandler] - Could not update channel sensor#40340 - invalid number: 'Nein’
2017-09-27 19:46:27.137 [WARN ] [euplink.handler.GenericUplinkHandler] - Could not update channel sensor#40342 - invalid number: 'Nein’
2017-09-27 19:46:27.327 [WARN ] [euplink.handler.GenericUplinkHandler] - Could not update channel sensor#40341 - invalid number: 'Nein’
2017-09-27 19:46:27.670 [WARN ] [euplink.handler.GenericUplinkHandler] - Could not update channel sensor#43444 - invalid number: 'inaktiv’
2017-09-27 19:46:28.023 [WARN ] [euplink.handler.GenericUplinkHandler] - Could not update channel sensor#43561 - invalid number: 'Nein’
2017-09-27 19:46:28.690 [WARN ] [euplink.handler.GenericUplinkHandler] - Could not update channel sensor#40339 - invalid number: 'Nein’
2017-09-27 19:46:28.840 [WARN ] [euplink.handler.GenericUplinkHandler] - Could not update channel sensor#43160 - invalid number: 'Nein’
2017-09-27 19:46:28.843 [WARN ] [euplink.handler.GenericUplinkHandler] - Could not update channel sensor#43161 - invalid number: 'Nein’
2017-09-27 19:46:28.933 [WARN ] [euplink.handler.GenericUplinkHandler] - Could not update channel sensor#43158 - invalid number: 'Nein’
2017-09-27 19:46:28.936 [WARN ] [euplink.handler.GenericUplinkHandler] - Could not update channel sensor#43159 - invalid number: 'Nein’
2017-09-27 19:46:30.255 [WARN ] [euplink.handler.GenericUplinkHandler] - Could not update channel sensor#44908 - invalid number: 'inaktiv’
2017-09-27 19:46:31.198 [WARN ] [euplink.handler.GenericUplinkHandler] - Could not update channel sensor#41191 - invalid number: ‘wartet’


thanks Alex - really great job.

The new build works on my side for the F1155 as well, but I’m getting similar warnings as Henrik does.
Apparently there are 15 IDs defined as number for my heat pump as well which should be Strings.
I’ve listed them here, would be great if you could adjust it at some point in time.

ID Warning
40339 invalid number: 'Nein’
40340 invalid number: 'Nein’
40341 invalid number: 'Nein’
40342 invalid number: 'Nein’
40942 invalid number: 'Nein’
41191 invalid number: 'wartet’
43158 invalid number: 'Nein’
43159 invalid number: 'Nein’
43160 invalid number: 'Nein’
43161 invalid number: 'Nein’
43164 invalid number: 'Nein’
43560 invalid number: 'Nein’
43561 invalid number: 'Nein’
44908 invalid number: 'inaktiv’
48189 invalid number: ‘aus’

I have fixed it!

Thanks, but I still have the same issue.
I think the problem is within the defintion of the channels. (I’ve seen the ids are still defined as doubles)

You are right, I forgot to update the channel definitions in the enum class. I have adopted it and now.

Great, that solved it - works like a charm now. Very much appreciated!

Should change of settings work? I haven’t tried that yet, but as all the sensors work fine now I need something more to test. :slight_smile: