Warning
Nibe is shutting down nibeuplink.com which this integration is dependent upon. This project is therefor deprecated. Upgrade your heatpump and swith to myuplink solution, use built in modbus server on S-series pumps or add a nibegw device like https://github.com/elupus/esphome-nibe to use the native support inside home assistant instead.
- Register an nibe uplink application on: https://api.nibeuplink.com/
- Set the redirect url to match
<http or https>://<your_home_assistant_url_or_local_ip>:<port>/api/nibe/auth
. This is your Callback url - Take note of the Callback url, Identifer (client_id) and the Secret
There are 3 different methods of installing the custom component
Read more here (https://hacs.xyz/) if you don't have HACS installed.
While this component can be installed by HACS, it is not included in the default repository of HACS.
- Add this repository as a custom repository inside HACS settings. Make sure you select
Integration
as Category. - Install the component from the Overview page.
- Make sure you have git installed on your machine.
- Navigate to you home assistant configuration folder.
- Create a
custom_components
folder of it does not exist, navigate down into it after creation. - Execute the following command:
git clone https://github.com/elupus/hass_nibe.git nibe
- Download the zip file and extract the folder inside to your custom_components folder. Create the folder is it does not exist.
- Rename the folder "hass_nibe-master" to "nibe". All files, including the .translation folder, should be inside the "nibe" catalog under the custom_components folder.
- Add an empty nibe configuration block to your
<config dir>/configuration.yaml
nibe:
-
Go to the Integrations page located in Home Assistants
Settings
panel.
-
Click
+ Add integration
in the lower right corner and select the "Nibe Uplink Heat Pumps" integration. It should have a little box icon to indicate that the integration is provided by a custom integration.
The "Nibe Heat Pump" integration is only for local communication with the heatpump using a UDP Gateway with NibeGw or a Modbus Connection.
-
Enter the data gathered when you registered on the nibe uplink homepage.
- Callback url
- Identifer: This is your (client_id)
- Secret
- Write Access: If you are going to be running smart home thermostants or control boost modes from home assistant this must be enabled.
-
The configurator will open a new window/tab directed at nibeuplinks home page. After logging in and accepting access for this client id, the window will close and you will be back in home assistant.
The system should now have access to the Nibe Uplink API. If you had not specified a system identifer already and error notifification will be added which contains the systems available to you. Take note of the SystemId and use to extend your configuration.
Full configuration description
nibe:
# Default client identifier
client_id: xxx
# Default client secret
client_secret: yyy
# Default redirect url
redirect_uri: 'http://localhost:8123/api/nibe/auth'
systems:
# System identifier to add extra entities too
- system: <system identifier>
# Optional list of additional parameters to retrieve, can be done here or on the sensor platform.
sensors:
- <parameter identifier>
- <parameter identifier>
# Optional list of switches (note, for ability to change, you need to use writeaccess and have payed license).
switches:
- hot_water_boost
# Optional smart thermostats.
thermostats:
# Key in dict is external identifer in nibe uplink, it should
# be an unique integer for this thermostat
1:
# Required friendly name of thermostat
name: 'Kitchen Thermostat'
# Optional name of a home assistant entity representing current temperature
current_temperature: input_number.current
# Optional name of a home assistant entity representing valve position of
# a thermostat. At the moment it's use case is unknown.
# valve_position: input_number.valve
# List of systems that this thermostat is affecting. This is
# this is the sub climate system/area index (System 1, System 2, ..)
# that the pump is controlling.
systems: 1
2:
name: 'Livingroom Thermostat'
current_temperature: input_number.current
systems: 1