NIBE Uplink API component (non S-series)

This is slightly out of topic, but to get visibility on what’s consuming power I plan to order:

1x Shelly 3EM (thanks for the suggestion @Lunkobelix)
4x Shelly Plug S

Shelly seems to be well integrated into home assistant.

Any reason to not pull the trigger?

EDIT:

Starting to doubt if I should go for the 3EM. In a Swedish heat pump forum I read the citation below as comment to this video about Shelly 3EM and Home assistant.

“Didn’t watch the whole movie but skimmed by so I think I can say pretty safe that he skipped the little detail of connecting the voltages to the unit.
I understand that, because it’s not a common thing you can or must do.
This requires that you connect the phases to the electricity meter and secure them with 3 pieces of 6 A fuses. The price goes up quickly if you have to bring in an electrician to do the work.”

I can’t connect this Shelly 3EM directly to the power meter, its too far away. Connected to the power meter I already have a Easee Equalizer.

Hi,

In preparation for a move to the Octopus Go electricity tarrif (where it is much cheaper to use electricity overnight - Referral code: You've been referred by a friend! | Octopus Energy) I’ve been looking to automate an increase in target temperature overnight.

I think I have this sorted, which is a bigger achievement than most as I have Tado valves and stats to consider too.

However, when the automation kicks in I do see the change reflected in ‘Set Value’ and on the S1 Room thermostat, but it remains Idle…

This effectively means cool water is being pumped through the heating system… Why is the nibe not marked as ‘Heating’ when there is a notable difference between the room average and the new target temperature?

EDIT: It took about 30 mins to change from ‘Idle’ to ‘heating’… Can we nail this down, or do I just start my automations 30mins earlier?

Appreciate any thoughts on this.

Cheers

Nibe calculates Degree Minutes periodically. It is the main decision factor to decide if heating should be started or stopped. Degree minutes changes slowly. So looks like in your case it takes 30 minutes for the parameter to go down enough to start heating.
I think degree minutes is writable parameter. So you could, in theory, update it’s value to start heating earlier.

1 Like

Remember that air temperature at night is lower, so it takes more effort for the heatpump to do heating.

1 Like

Thanks, that makes sense and the DMS chart overnight supports it.

It looks like S1 changes from Idle to Heating around the -150 DMS mark, which I’m sure has been referenced earlier in this thread.

I hadn’t thought about the external temperature, but again makes sense; The cooler it is outside (about 10 degrees c when the automation ran) the longer it will take to provide warmed water for the heating.

It did try to set the DMS with the set_parameter call but wasn’t successful, I do have the paid version of the uplink.

Hi, I have a set of those, however they are not connected. I’ve heard from an installer that indeed it’s not initially the purpose of this to measure your heatpumps current consumption. However it can be done when you connect these on the incoming electricity wires of your heatpump itself.


The values will be available in HA and if you multiply them with the voltage, you will get the actual power consumption. Am I correct?

The function of those sensors are to lower the pumps current when it comes close to the max value.
I would not use them for what you want. Just buy a Shelly 3em instead.

1 Like

I have a F1145-10 PC heat pump. And I have SAJ solar panels and have a P1 integration with my digital electricity meter. So I know exactly when my solar panels generate an electricity injection (production).

Now I want to automate the activation of the heat pump when there is electricity injection.

I see Nibe has an EME20 accessory which connects your solar panels (through modbus RS485 - sunspec protocol) and it will activate the heatpump when there is solar production. Anyone is using this?
https://www.nibe.eu/nl-be/producten/accessoires/eme-20
So I guess that’s for me the best way to do it. However I’m not sure my SAJ invertors RS485 is communicating using the the sunspec protocol, which is mandatory.

Is it possible to do this through HA? As my digital meter is integrated in HA, it knows exactly when there is electricity injection. Would it be possible to activate thefollowing things through the HA nibe integration:

  • Heating curve
  • Offset curve
  • Hot water demand

Thanks

I’m using an automation to track my solar production, if there’s excess then I boost the hot water, if the hot water is already hot enough, and rooms could do with a boost, then I turn on the heating instead.

Well that seams exactly what I have in mind. Do you mind sharing your configuration more in detail?

No problem, happy for constructive feedback and suggestions:

alias: Excess Solar
description: If solar production is high, turn on high energy consumption devices
trigger:
  - platform: numeric_state
    entity_id: sensor.grid_export_w. // Export sensor
    for:
      hours: 0
      minutes: 3
      seconds: 0
    above: 1750
condition:
  - condition: numeric_state
    entity_id: sensor.energy_next_hour_2  // Solar forecast 
    above: 1
action:
  - choose:
      - conditions:
          - condition: numeric_state
            entity_id: sensor.nibe_[my id]_40014  // Hot water
            below: 53
        sequence:
          - type: turn_on
            device_id: 070025d44898c67dee34c65d60a38f69
            entity_id: switch.nibe_[my id]_hot_water_boost
            domain: switch
  - choose:
      - conditions:
          - condition: numeric_state
            entity_id: sensor.nibe_[my id]_40014
            above: 53
        sequence:
          - service: climate.set_temperature
            data:
              hvac_mode: heat_cool
              temperature: 22.5
            target:
              entity_id:
                - climate.downstairs_bathroom_2
                - climate.kitchen_2
                - climate.study_2
                - climate.upstairs_landing
                - climate.hallway
                - climate.living_room_2
                - climate.downstairs_bathroom
                - climate.kitchen
                - climate.study
                - climate.landing
                - climate.hallway_utility
                - climate.living_room
                - climate.master_bedroom
                - climate.master_bedroom_2
                - climate.nursery
                - climate.nursery_2
          - wait_template: |-
              {% set state = states('sensor.grid_export_w') %}
              {% if is_number(state) and state | float < 1 %}
                true
              {% endif %}
            continue_on_timeout: false
          - choose:
              - conditions:
                  - condition: numeric_state
                    entity_id: sensor.12hrlowtemp  // Checking lowest forecast temp in next 12 hours
                    below: 2
                sequence:
                  - service: climate.set_temperature
                    data:
                      hvac_mode: heat
                      temperature: 21.5
                    target:
                      entity_id:
                        - climate.downstairs_bathroom_2
                        - climate.kitchen_2
                        - climate.study_2
                        - climate.upstairs_landing
                        - climate.hallway
                        - climate.living_room_2
                        - climate.downstairs_bathroom
                        - climate.kitchen
                        - climate.study
                        - climate.landing
                        - climate.hallway_utility
                        - climate.living_room
                        - climate.master_bedroom
                        - climate.master_bedroom_2
                        - climate.nursery
                        - climate.nursery_2
              - conditions:
                  - condition: numeric_state
                    entity_id: sensor.12hrlowtemp
                    above: 2
                sequence:
                  - service: climate.set_temperature
                    data:
                      hvac_mode: heat
                      temperature: 20
                    target:
                      entity_id:
                        - climate.downstairs_bathroom_2
                        - climate.kitchen_2
                        - climate.study_2
                        - climate.upstairs_landing
                        - climate.hallway
                        - climate.living_room_2
                        - climate.downstairs_bathroom
                        - climate.kitchen
                        - climate.study
                        - climate.landing
                        - climate.hallway_utility
                        - climate.living_room
                        - climate.master_bedroom
                        - climate.master_bedroom_2
                        - climate.nursery
                        - climate.nursery_2
mode: single

2 Likes

Many thanks for sharing. Looks pretty interesting.
Turning on the hot_water_boost is only possible I suppose when you have a premium NibeUplink subscription. So I should get that asap :slight_smile:

You use the Nibe thermostats in your rooms?
I use a separated system for my room thermostats: Mohlenhoff alpha 2. So I could do this as-well.

Would it be a good idea to adjust the heating curve offset for additional heating instead of changing the temperatures in the rooms? I am def not a specialist of heatpumps :slight_smile: just curious.

What is everyone using to show the sensor values in home assistant? Perhaps you can share your yaml code for a nice visualisation?

I use tado stats, but had to configure them carefully to not trash the heat pumps efficiency.

I don’t think there is a way to change the heat curve via the API unfortunately. That would be good though!

Hi,

I’ve noticed the Defrosting entity (44703) shows no actual data in the history, as below. It seems the history chart is expecting an integer but getting a string (yes/no), when the integer is stored in raw_value
Is there an easy fix for this?


It should probably be converted to a binary sensor. No easy fix from me. You could create a template binary sensor.

I know there has been some confusionand discussion about energy consumption in the past but today I learned that my F730 is actually measuring how much energy it uses for heating and for hot water and this information would be absolutelly magical to get into Home Assistant. Using a utility meter as an example would make it possible for me to plot a graph of these two values and the corresponding consumption per day.

Is there any way to get this into Home Assistant?

Isn’t this just guesses from Nibe? In an earlier post from @Christian_Hollbjar he checked with Nibe and confirmed that no series F-pumps have built in hardware to measure consumption.

Isn’t your picture an example of what the pump guesses it has produced to the system?

1 Like

I am admin the Nibe group on Facebook and as we see in the picture above there are some pumps that have sensors for used energy. But members in the group compared thous numbers from the pump with their external meters (installerad just for the pump) and the Nibe sensors was way of.
Regarding why Nibe support over and over states that there are no pumps that have built in i can’t answer. I got some contacts with a Nibe developer so i will ask him.

1 Like

I think this is a fantastic idea! Way better than only using the external and internal senors. Just as you describe, the underfloor heating’s reaction time is too slow for the indoor sensor make any impact on the curve. Large windows contribute to the overall heat up indoor and the only proper way for solving this is to know, in the forehand, that a sunny day is coming up.

Sure that this can be solved with automations but there are a couple of things to take into account. One important aspect is some kind of fault reset (what should happen if we start getting weird readings, e.g. way too low temperatures indoor; or what should happen if we suddenly fail to receive the weather forecast; or loose the internet connection with the outside world?). So it’s fairly complex getting this right and some kind of blueprint would be welcome. Especially if more people are interested – there’s no need for inventing the wheel over and over again.

But, to sum up: has anything happened regrinding your idea, @ros, since you wrote the post four years ago,