NIBE Uplink Application Programming Interface (API)

The Ground Source Heat Pump (GSHP) is a NIBE F1145 unit which supports the NIBE Uplink facility – which basically means the unit connects to the Internet, uploads status information on a regular basis and permits some degree of remote control.

Data can be accessed at the website, via an iOS or Android app and also via an API. While the apps are handy it’s the API that holds the potential to integrate the data from the heatpump into a wider domestic monitoring scheme.

I get the impression the main purpose reason for having an API is to support the mobile apps and it’s evident the apps are using it under the covers but kudos to NIBE for making it available for other developers to use. It uses fairly standard Internet API technologies like REST, JSON and OAuth2 but it’s not particularly mature and not perfectly documented so the learning curve is relatively steep.

After a few hours of trial and error I’ve got it working from a Perl script and it’s currently logging temperature data via MQTT into InfluxDB from where I can easily graph it using Grafana – sample below showing the heat pump firing to top-up the temperature on the hot water tank (click the image to enlarge) – the graph is a bit “lumpy” since I’m currently only grabbing data every 5 minutes, though that’s configurable.

Grafana display of GSHP data from NIBE Uplink API

Grafana display of GSHP data from NIBE Uplink API

The biggest hurdle was getting the authentication scheme working – OAuth2 permits a program to make requests on behalf of a user without asking for their password all the time – but that was new to me, and it’s a little idiosyncratic. Perl module LWP::Authen::OAuth2 helped a lot and in particular that takes the pain out of handling token renewal when making API calls.

UPDATE: I’ve now written a separate Technical Article on this topic which includes some sample script code and a HOWTO guide. See here.

CC BY-SA 4.0 NIBE Uplink Application Programming Interface (API) by Marsh Flatts Farm Self Build Diary is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

11 thoughts on “NIBE Uplink Application Programming Interface (API)

  1. Yep, definitely intersted in your script.
    I’d like to put the heat pump data into my home automation system (Loxone).

  2. Hi Michael,

    No problem. I’ll bundle up the scripts I’m using and email them to you. It’s definitely a case of “some assembly required” but should be much easier than you starting from scratch.

    David

  3. Hi David,

    i’m really interested in reusing your script. It would be great if you could send it to me. Thanks a lot.

    Regards,
    Frank

  4. Hi Frank,

    No problem. Anyone who logs a comment using IPv6 must be OK 🙂

    This topic is generating quite a lot of interest so I’ve started drafting a Page of instructions for others to follow. All I need now is some time to finish them off..

    David

  5. Good work! Im very interested to get this to work with my Samsung SmartThings system. Would be really happy to get to take a look at your scripts. I have little to none programming skills, but you have to learn someday.

    • Hi Jacob. The scripts are over on my Technical Article Page as noted in one of the earlier comments.

      I’ve now added a note to the end of this Post to direct people to that Page since it seems that search engines are directing people here rather than to that page (which largely supersedes what I wrote here initially).

      David

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.