Nibe uplink binding

Hi Olivier,

setting up your DEV environment is quite easy if you use this manual: https://www.openhab.org/docs/developer/development/ide.html Nevertheless there is a build available at http://friese-de.eu/openhab2/

Regarding the fixed unit, I found only three occurences of “°C” on a quick walkthrough:

  • 47374
  • 47375
  • 47376

These channels are writeable which means values can be sent to Nibe. As Nibe cannot handle units other than Celsius, QuantiyType makes no sense here.

Regarding the channels 40004, 40008, 40012, 40013, 40014: I could not find them in vvm310/210. Maybe your checkout is messed up?

Dear Alex
thank you for the link, i’ll follow next time so i’ll be able to test before.

And finally sorry for all the confusion concerning quantities and these ghost channel configs. i try to explain. i had an old checkout on my computer dating from May that was not in my github local space, and the vvm320 config (vvm320-channel-types.xml) i have edited has been wrongly picked up from there (i really don’t know why,since all my other edits where based in the right tree, just that vvm320-channel-types.xml was picked up in that other old tree). So obviously the commit i provided you back on github was without the edits i had performed on this specific config (thankfully), and that explains your later commit of 5th December to remove channel 43437 since it was obviously not carried inside my own commit. thankfully otherwise that would probably have created a big mess.
All the discrepancies i had found and reported to you were indeed based on this old config of May… So you can ignore all, and big sorry again for all that confusion.

I’m currently testing the new 2.4 bundle, i’ll report back as soon as i’ve verified everything (so far so good!)

@oliviercommelarbre I have F1255 and I’ve made workaround for some channels that you requested. Should be working with custom channels.

things/nibe.things

nibeuplink:f1155:nibe [ user="...", password="...", nibeId="...",
customChannel01=40016, //Nibe_1255_Brine_Out_Temp
customChannel02=40015, //Nibe_1255_Brine_In_Temp
customChannel03=43439, //Nibe_1255_Brine_Pump_Speed
customChannel04=43437 //Nibe_1255_Floor_Pump_Speed
]

items/nibe.items

...
// CUSTOM CHANNELS

Number:Temperature Nibe_1255_Brine_Out_Temp_Channel "Brine out [%.1f °C]" <temperature> (gHeatpump) {
channel="nibeuplink:f1155:nibe:custom#CH01" [profile="transform:JS", function="divide10.js"], // 40016 defined in nibe.things
expire = "10m"
}

Number:Temperature Nibe_1255_Brine_In_Temp_Channel "Brine in [%.1f °C]" <temperature> (gHeatpump) {
channel="nibeuplink:f1155:nibe:custom#CH02" [profile="transform:JS", function="divide10.js"], // 40015 defined in nibe.things
expire = "10m"
}

Number Nibe_1255_Brine_Pump_Speed "Brine pump speed [%.0f %%]" <pump> (gHeatpump) {
channel="nibeuplink:f1155:nibe:custom#CH03", // 43439 defined in nibe.things
expire = "10m"
}

Number Nibe_1255_Floor_Pump_Speed "Heating pump speed [%.1f %%]" <pump> (gHeatpump) {
channel="nibeuplink:f1155:nibe:custom#CH04", // 43437 defined in nibe.things
expire = "10m"
}

transform/divide10.js

(function(i) {
    return parseFloat(i)/10.0;
})(input)

@AlexF What I am really missing is Current Priority. Is it doing hot water or is it heating or idle.
Is this possible to add?

@yozik04:
There is some data which is visible in the diplay of NIBE such as the current priority but it is not available via uplink.

There is a special channel I mentioned it a while ago which can be decoded (it is a bitset) and thus you can see if the heatpump is currently idle or cooling or heating or doing hotwater (I believe it has also registers for pool but I do not have one).

See here: Nibe uplink binding

I can decode a bitset in javascript. Do you know an address?

19 дек. 2018 г., в 18:01, Alexander F bot@community.openhab.org написал(а):

thanks @yozik04 for the tip,
now i’m using the new DEV bundle recently compiled by Alex so i get these channels directly, however i didn’t know about the generic “profile/function” thing or capability to link to expire. Very helpful, thank you!

For some reason this profile function does not work as expected… Looks like a bug.

Hi all,

I’m making the fist steps with the Nibe uplink binding, reading values is working fine already. But actually i have a problem with writing values, e.g. changing the state of “Temporary Lux”. I’ve created the following:

Item:
Number TemporaryLuxMode “Temporary Lux Mode [MAP(TemporaryLuxMode.map):%s]” { channel=“nibeuplink:f1155:F1155:hotwater#48132”}

Sitemap:
Switch item=TemporaryLuxMode mappings=[0=“Off”, 1=“3h”, 4=“once”]

Problem is, that i can set the mode from 0 to 1 using BasicUI, but after a short time the mode changes automatically back to 0:

If i set the corresponding parameter on the heatpump itself, i can see in the OH log (and also in the BasicUI) that the value changes from 0 to 1 and remains.

Can somebody give me a hint where is my problem?

Thank you in advance!

`

Hi all and Merry Christmas,
Hopefully someone her can help me with tracking, why some values, which my openHAB receives from NIBE uplink, look weird?

I have a fresh VVM325 /F2040-8 installation and could implement the machine into OpenHAB quite easily - thanks to @AlexF !

This set of items from the NIBEuplink binding show unexpected results or behaviours:

1) compressor#44073
The results for the operating time for the Hotwater shift constantly between the value, which is as well shown online (3 hrs), and the Degreminutes of the NIBE system. The log looks like this:

2018-12-25 19:38:37.195 [vent.ItemStateChangedEvent] - NIBE_OPT_HW changed from 3.0 h to -437.6 h
2018-12-25 19:38:37.275 [vent.ItemStateChangedEvent] - NIBE_DEG_MIN changed from -434.40000000000003 °·min to -437.6 °·min

The item is defined like this

Number:Time             NIBE_OPT_HW         "Total HW op.time compr [%d h]"     (gHeating)      { channel="nibeuplink:vvm320:mynibe:compressor#44073" }

The other counters for two other operating hours (Total and Compressor) do not show this behaviour.
For the Hotwater counter I have made a workaround and read only the max value for this item,as teh Degree Minutes are always negative (so far). However a way to stop this double reading would be better.

2) airsupply#40025, airsupply#40026, airsupply#40075
All these values are reported as -3277 Kw. I would expect some temperature values.

the items are defined in this way:

Number:Temperature      NIBE_AIR_EX         "Exhaust air temp. 1 [%.2f °C]"     (gHeating)      { channel="nibeuplink:vvm320:mynibe:airsupply#40025" }
Number:Temperature      NIBE_AIR_VENT       "Vented air temp. 1 [%.2f °C]"      (gHeating)      { channel="nibeuplink:vvm320:mynibe:airsupply#40026" }
Number:Temperature      NIBE_AIR_SUPP       "Supply air temp. 1 [%.2f °C]"      (gHeating)      { channel="nibeuplink:vvm320:mynibe:airsupply#40075" }

Thanks for helping out.

Well, this is indeed weird. Did you define any rules which update the items?
Did you configure via paperui or via files? If you configured via files please post all your nibe related config.

Hi @Bertl,

do you have a paid subscription for write access at NibeUplink?
If you have such subscription you should be able to update the values via the official Nibe Uplink app or via web site.
If you do not have such subscription the binding is not able to set the values.

Hello @AlexF , thanks for quick reply.

all configuration is done via files. Thanks for having a look

Things:

nibeuplink:vvm320:mynibe [ user="user@gmail.com", password="pass", nibeId="ID"] 

Items

//NIBE Uplink binding - documentation: https://www.openhab.org/addons/bindings/nibeuplink/ 

Number:Temperature      NIBE_OUT_TEMP       "NIBE Outdoor Temp [%.2f °C]"       (gHeating, gTemperatureOut)      { channel="nibeuplink:vvm320:mynibe:base#40004" }

Number:Time             NIBE_OPT            "Tot. op.time [%d h]"               (gHeating)      { channel="nibeuplink:vvm320:mynibe:base#44081" }

//Heatmeter
Number:Energy           NIBE_HEAT_CPR       "Heat Meter - Heat Cpr"             (gHeating)      { channel="nibeuplink:vvm320:mynibe:base#44308" }
Number:Energy           NIBE_HEAT_CPRADD    "Heat Meter - Heat Cpr and Add "    (gHeating)      { channel="nibeuplink:vvm320:mynibe:base#44300" }
Number:Energy           NIBE_HW_CPR         "Heat Meter - HW Cpr"               (gHeating)        { channel="nibeuplink:vvm320:mynibe:hotwater#44306" }
Number:Energy           NIBE_HW_CPRADD      "Heat Meter - HW Cpr and Add"       (gHeating)        { channel="nibeuplink:vvm320:mynibe:hotwater#44298" }

Number:Power            NIBE_ADD_PWR        "Int. el.add. Power [%d]"           (gHeating)      { channel="nibeuplink:vvm320:mynibe:base#43084" }


//Parameters for compressor 
Number:Dimensionless	NIBE_DEG_MIN        "Degree Minutes"                    (gHeating)      { channel="nibeuplink:vvm320:mynibe:base#43005" }
Number:Dimensionless	NIBE_FLOW           "Flow"                              (gHeating)      { channel="nibeuplink:vvm320:mynibe:base#40072" }

Number:Temperature      NIBE_SUPPLY_CALC    "Supply Temp Calculated [%.2f °C]"  (gHeating)      { channel="nibeuplink:vvm320:mynibe:base#43009" }


//Warmwater
Number:Time             NIBE_OPT_HW         "Total HW op.time compr [%d h]"     (gHeating)      { channel="nibeuplink:vvm320:mynibe:compressor#44073" }
Number:Temperature      NIBE_HW_TOP         "Hot Water Top [%.2f °C]"           (gHeating)      { channel="nibeuplink:vvm320:mynibe:hotwater#40013" }
Number:Temperature      NIBE_HW_LOAD        "Hot Water Load [%.2f °C]"          (gHeating)      { channel="nibeuplink:vvm320:mynibe:hotwater#40014" }

//Heating
Number                  NIBE_Heat_OFFSET    "Heating Offset"                    (gHeating)      { channel="nibeuplink:vvm320:mynibe:general#47011" }
Number:Dimensionless    NIBE_SPEED_CP       "Cpr Speed Charge Pump"             (gHeating)      { channel="nibeuplink:vvm320:mynibe:compressor#44396" }
Number:Temperature      NIBE_SUPPLY_S1      "Supply Temp S1 [%.2f °C]"          (gHeating)      { channel="nibeuplink:vvm320:mynibe:base#40008" }
Number:Temperature      NIBE_RETURN         "Return Temp [%.2f °C]"             (gHeating)      { channel="nibeuplink:vvm320:mynibe:base#40012" }

//Outdoor Unit
Number:Time             NIBE_OPT_CPR        "Tot. op.time compr [%d h]"         (gHeating)      { channel="nibeuplink:vvm320:mynibe:compressor#44071" }
Number                  NIBE_STARTS         "Compressor starts"                 (gHeating)      { channel="nibeuplink:vvm320:mynibe:compressor#44069" }

Number                  NIBE_DEFROST        "Defrosting Outdoor Unit"           (gHeating)      { channel="nibeuplink:vvm320:mynibe:compressor#44703" } //0=No, 1=Active, 2=Passive
Number:Frequency        NIBE_FREQ_DESIRED   "Cpr Frequency Desired F2040"       (gHeating)      { channel="nibeuplink:vvm320:mynibe:compressor#40782" }
Number:Frequency        NIBE_FREQ           "Actual Cpr Frequency Outdoor Unit" (gHeating)      { channel="nibeuplink:vvm320:mynibe:compressor#44701" }

Number:Temperature      NIBE_AIR_EX         "Exhaust air temp. 1 [%.2f °C]"     (gHeating)      { channel="nibeuplink:vvm320:mynibe:airsupply#40025" }
Number:Temperature      NIBE_AIR_VENT       "Vented air temp. 1 [%.2f °C]"      (gHeating)      { channel="nibeuplink:vvm320:mynibe:airsupply#40026" }
Number:Temperature      NIBE_AIR_SUPP       "Supply air temp. 1 [%.2f °C]"      (gHeating)      { channel="nibeuplink:vvm320:mynibe:airsupply#40075" }

Hi @mdnx,

I cannot find any issue in your configuration. I have checked my setup, I have a VVM320+F2040-8, so this is a very similar setup. I cannot reproduce your issues.

The airsupply channels require a air ventilation unit (ERS-XXX). Do you have such installed? But even if there was none installed it should not display wrong values/units.

BR
Alex

Hi @AlexF,

thanks for this information, i didn’t know that a paid subscription is necessary, so this was the reason for the problem…

Hello @AlexF
Thanks for quick reply.
I have indeed no air exchanger installed, so I took these items out now.
I was originally assuming that the device had some sensors in the outdoor unit. It’s a pity, that the documentation on the machines parameters from side of NIBE is kind of sparse. Have all values been reverse engineered?

I rebooted the OpenHab device now and both problems disappeared. The ondulating values in the Operating time vanished and NIBEuplink doesn’t respond to requests for the non existing air sensors.
1000 Tak

For F1255 Channel 40892 does not change. It seems to be always equal 512. At least when my pump has started to heat water nothing changed.

Maybe this channel is only used by models which have a outdoor unit, basically all “VVM XXX” models. Maybe there is a equal channel for your model. I have written a tool that logs all possible channels (basically 10000-10500 + 40000-49999) to an excel file once per minute. You could then filter for changes. And of course you could trigger some changes on the Nibe while the logger is active.
I could share my code on github but it is really only a dirty tool.

Hi there, I have Nibe F470 heat pump and trying to bind it to Openhab via Nibe Uplink binding. I can see from the binding documentation this specific model is not supported. However I’m trying to use thing type F750 as it is same kind of product. Let see what happens.

So far it seems to work well with F470 as well. I can get various temperature values and also write fan speed setting.

1 Like

Dear Alex, hope all is good for you your great project and wishing you a fantastic 2019 with continued successes!

little things to say really, first to finally report back that the DEV bundle you compiled for me after my contrib of mid-december has worked like a charm since then, so great, and thanks again.
then i guess you have received this warning from the nibeuplink API webmaster about this forthcoming upgrade end of Jan concerning this upgrade of the Transport Layer Security (TLS). Do you reckon we should do anything on our side to keep all working or it will be transparent?