NIBE Uplink scaling down of data - insane!?

Hello, I am new to this group.

I am considering getting the Heat Pump Monitoring Bundle from the OpenEnergyMonitor store; and just wanting to check if this is a good idea / necessary.

I am on a journey of decarbonising my home, and have managed to reduce my grid usage by 75-80% in the last 4 years. Through installing a ground source heat pump (12kW NIBE F1155), solar PV (k17Wp) and battery storage (3x Tesla Powerwall, 40.5kWh).

My NIBE has an external energy monitor, an “emlite EML M19 - ECA2”; and I subscribe to the NIBE Uplink premium data service. However, for some crazy reason (to save a few pounds a month on server costs??) NIBE scale down data over time, so there’s no accurate log of kWh usage on a historic hourly, daily, weekly or monthly basis. Their advice was to take a measurement every day. Which kind of defeats the purpose of having an external energy monitor and paying €49.50 plus VAT every year for NIBE Uplink!!

Has anyone got advice on how to access data from the emlite meter directly, or is the Heat Pump Monitoring Bundle my best solution?

1 Like

Hello @roomitchell it is possible to download the data from the NIBE Uplink using a scrip that @dMb has written. See David’s post here: It doesn’t give you everything that would be useful but helpful enough for diagnostics.


Excellent!! I will take a look of this. I did wonder if there was a way to automate it.

Hi Andrew; welcome to the forum.

I have an 8kW NIBE F1145 which is connected to NIBE Uplink (though I don’t pay for the premium History or Manage options) and I grab the instantaneous readings back from the NIBE Uplink API every 2 minutes, storing them in my own database. (Actually I publish them as MQTT messages so they’re in the same format as a range of other monitoring info which all gets stored in InfluxDB.)

The NIBE Uplink API is pretty decent; the main barrier to ease-of-use is their choice of OAuth2 as the Authentication mechanism so my webpage that Trystan linked above is mostly about navigating the OAuth2 handshake steps to get a valid OAuth2 token.

Give me a shout on here or leave a comment on the MarshFlattFarm page if you get stuck or have questions.


This is excellent, many thanks. Diving in to it now, and will get in touch if (or once…!) I get stuck.

@TrystanLea, could this be incorporated as an Interfacer? Quite a few folk with this monitoring system I see?

Hi David, I managed to follow most of your instructions; and got the OAuth2 working. However, when I get passed the NIBE login and captcha, I am getting the following error page, relating to the code in the callback index.php

"else { echo “Parameter ‘code’ not found”

Any ideas?

Hi Andrew.

Looks like it’s not happy with how you’ve installed / configured the callback PHP page on your website.

When I grab it from my site it executes the PHP script (and complains about the missing parameter):

% curl OAuth2 Callback Script<br>Parameter 'code' not found<br>%

When I grab it from your site it returns the text of the PHP script rather than executing it:

% curl       
// oauth2callback/index.php

echo " ";
echo "OAuth2 Callback Script<br>";

if ( isset( $_GET['code'] ) ) {
    echo "Parameter 'code' found, value is: ";
    $code = $_GET['code'];
    echo "$code<br>";
} else {
    echo "Parameter 'code' not found<br>";

if ( isset( $_GET['state'] ) ) {
    echo "Parameter 'state' found, value is: ";
    $state = $_GET['state'];
    echo "$state<br>";

if ( isset( $_GET['error'] ) ) {
    $error = $_GET['error'];
    echo $error;


Perhaps I’ve not installed all the required PHP elements on my server.

@dMb Success! I added “php” to the top of index.php (so it read “<?php” instead of “<?”); and that resulted in the Authorization Code presenting correctly. Really appreciate this resource that you have produced. Agree with @borpin perhaps this could be made accessible for less technical people. I’m not a coder by any stretch of the imagination, and have totally winged this!

1 Like

@TrystanLea See above! Couldn’t tag three people as a new user.

You should be able to next time - I’ve raised your privileges by a notch.


Yay! Really pleased to hear you got it working. Thanks for the debug and the feedback; I will add that tweak to the PHP file on my GitHub.


Me too! I am going to email NIBE about this. I really don’t understand why they can’t add on a “data storage” element to the NIBE Uplink premium service, if it is indeed server resource they are trying to save.

GIGO (Garbage In; Garbage Out)

Helps to open the PHP garbage can lid! :rofl:

1 Like