Skip to content

Repository files navigation

LoxBerry Plugin – myUplink Bridge

Validate Plugin Version License: MIT

Couple a myUplink-connected heat pump (NIBE, CTC, and other myUplink brands) to a Loxone Miniserver. The plugin polls the myUplink cloud API, publishes every device data point to the LoxBerry MQTT Gateway, and writes setpoints back to the heat pump when Loxone changes a value.

The MQTT Gateway forwards topics to Loxone, so no additional Loxone-side software is required beyond Virtual Inputs / Virtual Outputs.

Compatible devices

myUplink is the cloud connectivity platform developed by NIBE Industrier AB. Every brand in the NIBE group that ships with a myUplink-connected control board can be used with this plugin.

Brand Representative models
NIBE F1145, F1155, F1245, F1255, F1345 (ground source); S1155, S1255, S1255 PC, S1355 (split); F730, F750 (air/water); VVM 225, VVM 310, VVM 320, VVM 500 (system managers); SMO 20, SMO 40 (outdoor system managers); AMS 10 (air/water)
CTC CTC EcoLogik Air, CTC EcoZenith i250/i550 Pro, CTC EcoAir
Novelan LAV, LW, SWC, SWP series
Alpha Innotec LW, LWD, SWC, SWP, SWCV series
Perfica PF series heat pumps

The parameter IDs published by each unit depend on the hardware and firmware version. Run the plugin once and inspect the points_json MQTT topic to discover the full list for your device. The Parameter reference section below lists IDs captured from an MSW2 unit as an example.

Features

  • OAuth2 (authorization-code) login – handled in the web UI, runs unattended thereafter.
  • Automatic access-token refresh; authorize once and the bridge keeps going.
  • Polls all systems and devices on your myUplink account on a configurable interval.
  • Publishes each data point to myuplink/<deviceId>/<parameterId> (retained) plus a points_json full-snapshot topic and a connectionState topic.
  • Optional bidirectional control: Loxone writes to .../<parameterId>/set and the bridge PATCHes the value back to myUplink (gated by an "Allow writes" switch).
  • Reads MQTT broker credentials directly from the LoxBerry MQTT Gateway.

Requirements

  • A myUplink user account at https://myuplink.com with at least one registered heat pump
  • A free developer application at https://dev.myuplink.com (gives you the Client ID + Secret needed for API access)
  • LoxBerry 3.0.0 or newer
  • The MQTT Gateway plugin installed and running
  • Python packages requests and paho-mqtt (installed automatically via the apt file)

Installation

  1. Download the latest installable ZIP from the Releases page.
  2. In LoxBerry: Plugin install → upload the ZIP.
  3. Open the plugin page from the LoxBerry main menu.

Configuration

Step 1 — Create a developer application

Go to https://dev.myuplink.com, sign in with your myUplink account, and create a new application. Copy the Client ID and Client Secret — you will paste these into the plugin.

myUplink developer portal

Callback URL: before saving the application, copy the Callback URL from the plugin settings page (it looks like http://<loxberry-ip>/admin/plugins/myuplink/oauth_callback.cgi) and paste it verbatim into the application's Redirect URI field on the developer portal. The URL must match exactly — a mismatch causes the OAuth flow to fail with a redirect error.

Step 2 — Enter credentials in the plugin

Open the plugin page from the LoxBerry main menu, go to the Settings tab, and fill in:

Field What to enter
Client ID From the developer portal
Client Secret From the developer portal
Poll interval (s) How often to fetch data from myUplink (minimum 60 s recommended)
MQTT topic prefix Base topic for all published values (default: myuplink)
Allow writes from Loxone Enable only if you want Loxone to send setpoints back to the heat pump

Click Save settings.

Plugin settings — credentials entered

Step 3 — Authorize with myUplink

Click Connect to myUplink. Your browser opens the myUplink OAuth consent screen:

OAuth consent screen

Log in with your myUplink account credentials and click Allow. myUplink redirects you back to LoxBerry and the plugin displays a success confirmation:

OAuth callback success

The plugin has stored a refresh token — you will not need to authorize again unless you explicitly revoke access in the myUplink developer portal.

Step 4 — Verify authorization

Return to the plugin Settings tab. The Connection section should now show:

Settings — authorized

✓ Authorized. The bridge has a valid refresh token.

The daemon will automatically refresh the access token every hour using the stored refresh token. No action is needed on your part.

Step 5 (optional) — Filter parameters

The Parameter filter tab lists every data point discovered on your last poll, grouped by device. Uncheck parameters you do not need — they will be excluded from MQTT publishing, keeping your topic tree clean.

Parameter filter

Step 6 — Verify data in Loxone

In the LoxBerry MQTT Gateway plugin, add a subscription for myuplink/# and point it at your Miniserver. Within one poll cycle you should see live values arriving:

MQTT Gateway — live transmissions

Each data point is published as a retained message on <prefix>/<deviceId>/<parameterId> (e.g. myuplink/abc123/40067 for outdoor temperature). Inspect the points_json topic to discover the full parameter list for your device.

MQTT topics

Topic Direction Meaning
myuplink/<deviceId>/<parameterId> plugin → Loxone Current parameter value (retained)
myuplink/<deviceId>/connectionState plugin → Loxone Device online / offline state
myuplink/<deviceId>/points_json plugin → Loxone Full JSON snapshot of all points
myuplink/<deviceId>/<parameterId>/set Loxone → plugin Write a new setpoint

<parameterId> values come from the myUplink API (e.g. 40067 for outdoor temperature). Inspect points_json after the first poll to discover what your unit exposes.

Parameter reference (MSW2 series)

The parameter IDs below were captured from MSW2-6S / MSW2-9S units. Other myUplink devices expose different IDs — inspect the points_json topic after first poll to discover your unit's full list.

W = writable from Loxone (enable Allow writes in plugin settings first).

Temperatures

Parameter ID Name Unit W
0 flow °C
1 return °C
2 return target °C
5 outdoor temp. °C
6 DHW °C
7 DHW target °C
22 mix circ1 target °C
23 mix circ1 flow °C
39 outdoor temp. ø (averaged) °C
40004 current room temp. °C
40010 DHW (alternate) °C
41 current room temp. (alternate) °C
5002 coverage HP °C
5110 release OT °C yes

Status & operating mode

Parameter ID Name Unit W
17 operation mode
21 Heating capacity kW
31 flow rate l/h
32 HUP (heating circuit pump)
33 ZUP (circulation pump)
42 EVU (utility lock)
45 Status Heating
46 Status DHW
47 Status Cooling
50 release cooling
51 el. heater active
52 immers. heater last active
57 error code
58 running time
63 ASD
64 HD (high pressure switch)
65 MOT
66 HD (high pressure) bar
67 ND (low pressure) bar
68 BUP - DHW pump
69 VBO (brine pump)
70 VD1 (compressor)
72 ZIP
73 ZWE 1 (aux. heater 1)
74 ZWE 2 - SST (aux. heater 2)
6006 output %
6039 VBO alternate
6168 output min. %
6169 output max. %
40001 mode of operation (zone 1) yes
40003 mode of operation (zone 2) yes
40007 mode of operation (zone 3) yes
40009 mode of operation (zone 4) yes
5003 mode of operation (alt.) yes
5004 mode of operation (alt.) yes
5108 mode of operation (DHW) yes

Operating hours & statistics

Parameter ID Name Unit
5668 operating hours HP h
5669 operating hours VD1 h
5671 operating hours ZWE1 h
5674 impulse VD1 (compressor starts)
5728 operat. hours heating h
5729 operating hours DHW h
5730 operat. hours cooling h

Writable setpoints (Loxone → heat pump)

Parameter ID Name Unit
5001 temperature offset (±) °C
5105 DHW desired value °C
5700 heating limit (outdoor cutoff) °C
6146 DHW target value °C
6147 duration extra DHW s
6148 desired room temp. °C
40005 desired room temp. (zone) °C
25000 high-speed charge (on/off)
25001 Extra DHW (on/off)

Informational

Parameter ID Name
40011 MAC address of device

Loxone Config setup

  1. In the MQTT Gateway, subscribe to myuplink/# and enable forwarding to Virtual Inputs.
  2. In Loxone Config, create Virtual Inputs for each parameter topic you need (e.g. hot-water temperature, outdoor temperature).
  3. For control, create Virtual Outputs publishing to .../<parameterId>/set (e.g. hot-water target setpoint).

Troubleshooting

Symptom Fix
"Not authorized" Save Client ID/Secret first, then click Connect. Check the Callback URL is registered verbatim in the myUplink portal.
Data in MQTT but not in Loxone In the MQTT Gateway plugin, add a subscription for myuplink/# and point it at your Miniserver.
No data in MQTT Check the plugin log (LoxBerry → Logs). Common causes: daemon not running, no refresh token (authorize first), myUplink API unreachable.
Writes are ignored The "Allow writes from Loxone" switch must be enabled in the plugin settings.

License

MIT © 2026 Jochim Vandorpe

About

LoxBerry plugin that bridges myUplink-connected heat pumps (NIBE, CTC, Novelan, Alpha Innotec) to a Loxone Miniserver via MQTT

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages