How do I config modbus tcp for Nibe S1255?

Hi!
I have a S1255 and it might be different of course. I have the same view in my S1255. When I got mine installed I also got three clamps which I assumed was needed to be installed to be able to measure consumed energy. But, as you say if the heater has the information I don’t know what the clamps should be used for.
Maybe the 600 kWh that we see in your picture is calculated and not measured.

Hi Niklas,

good point! I found the same clamps laying on my indoor module - explains why I´m not getting any values from it :see_no_evil:
But yeah still there has to be a way getting it somewhere else as the device also seems to be able to get those.

I´ll ask my technician next time.

Marcel

Please tell us what the answer is from your technician. I’m also curious.

Hi everyone,

I managed to connect my Nibe VVM S320 with F2120-16 pump to my HA. I have to set count and precision on some sensors and have to figure out, how to display pump priority (heating/hot water) and status of ext. heater. Did anyone manage to send some commands to the pump? I am only getting reads.

David

Hi David,

I see you were able to get all the values to display. I am having a slight problem with my set up.

I was able to connect and get the value of the outdoor temperature. But I cant do much with it! It shows up in sensors, but I get an exclamation mark next to it -

"This entity (‘sensor.nibe_outdoor_tempertature_bt1’) does not have a unique ID, therefore its settings cannot be managed from the UI. "

My nibe.yaml looks like this:

- name: Nibe
  type: tcp
  host: 192.168.88.220
  port: 502
  sensors:
  - name: "Nibe - Outdoor Tempertature (BT1)"
    device_class: temperature
    state_class: measurement
    unit_of_measurement: "°C"
    data_type: int16
    address: 1
    count: 1
    slave: 1
    precision: 1
    input_type: input
    scale: 0.1
    scan_interval: 30

Any help would be appreciated. (Newbie day 6)

Hi

Have a look at my .yaml I hope it helps you. There is more addresses you can use, just copy register from your Nibe pump to the USB.

I have managed to get all the sensor but I don’t have the knowledge to make any input to from HA. I think for the future the best way to connect it is thru MQTT service.

Check this topic: How to connect to Nibe heat pump without the cloud - #8 by yozik04

My nibe.yaml looks like this:

- name: "Nibe"
  close_comm_on_error: true
  delay: 5
  timeout: 5
  type: tcp
  host: 192.168.0.0
  port: 502
  sensors:

  - name: "Nibe_ZunanjaTemperatura_BT1"
    unit_of_measurement: °C
    address: 1
    count: 1
    slave: 1
    precision: 1
    input_type: input
    scale: 0.1
    
  - name: "Nibe_SobnaTemperatura"
    unit_of_measurement: °C
    address: 26
    count: 1
    precision: 1
    slave: 1
    input_type: input
    scale: 0.1
    
  - name: "Nibe_SanitarnaVodaZgoraj_BT7"
    unit_of_measurement: °C
    address: 8
    count: 1
    precision: 1
    slave: 1
    input_type: input
    scale: 0.1
    
  - name: "Nibe_DvizniVod_BT2"
    unit_of_measurement: °C
    address: 5
    count: 1
    precision: 1
    slave: 1
    input_type: input
    scale: 0.1
    
  - name: "Nibe_PovratniVod_BT3"
    unit_of_measurement: °C
    address: 7
    count: 1
    precision: 1
    slave: 1
    input_type: input
    scale: 0.1
    
  - name: "Nibe_SanitarnaVodaPolnjenje_BT6"
    unit_of_measurement: °C
    address: 9
    count: 1
    precision: 1
    slave: 1
    input_type: input
    scale: 0.1
    
  - name: "Nibe_TipaloPretoka_BF1"
    unit_of_measurement: l/m
    address: 40
    count: 1
    precision: 1
    slave: 1
    input_type: input
    scale: 0.1
    
  - name: "Nibe_HitrostCrpalke"
    unit_of_measurement: "%"
    address: 1636
    count: 1
    precision: 0
    slave: 1
    input_type: input
    scale: 1
    
  - name: "Nibe_FrekvencaKompresorja"
    unit_of_measurement: Hz
    address: 1803
    count: 1
    precision: 0
    slave: 1
    input_type: input
    scale: 0.1
    
  - name: "Nibe_Uparjalnik_BT16"
    unit_of_measurement: °C
    address: 1622
    count: 1
    precision: 1
    slave: 1
    input_type: input
    scale: 0.1
    
  - name: "Nibe_Power"
    unit_of_measurement: kW
    address: 1806
    precision: 1
    slave: 1
    input_type: input
    scale: 0.1
    
  - name: "Nibe_FanSpeed"
    unit_of_measurement: rpm
    address: 401
    count: 1
    precision: 0
    slave: 1
    input_type: input
    scale: 1
    
  - name: "Nibe_VecSanitarneVode"
    unit_of_measurement: ""
    address: 225
    count: 1
    precision: 0
    slave: 1
    input_type: holding
    scale: 1
    
  - name: "Nibe_HotWaterDemand"
    unit_of_measurement: ""
    address: 56
    count: 1
    precision: 0
    slave: 1
    input_type: holding
    scale: 1
    
  - name: "Nibe_Defrost"
    unit_of_measurement: ""
    address: 1805
    count: 1
    precision: 0
    slave: 1
    input_type: input
    scale: 1
    
  - name: "Nibe_Prioriteta"
    address: 1028
    count: 1
    precision: 0
    slave: 1
    input_type: input
    scale: 1
    
  - name: "Nibe_operating_mode"
    address: 237
    count: 1
    precision: 0
    slave: 1
    input_type: holding
    scale: 1

Thanks I will add the other sensors once I figure out the unique ID issue. Did you use the lovelace entities card to get your readings?

Got it working!!!

Has anyone been able to write to the heat pump?
I found out that there are not to many registers you can write to.

1 Like

I have managed to enable “More hot water” through the following code.

switches:
- name: “Nibe - Extra Varmvatten”
write_type: holding # R/W
address: 697
slave: 1
command_on: 3
command_off: 0


Off=0
One time increase =2
3h=3
6h=6
12h=12
24h=24
48 hours = 48

4 Likes

Nice Ola,

Did you add this to the “nibe” yaml file? Can you post a screenshot of your gui?

Which model heat pump? I can seem to find the 697 address in my list.

In my yaml-file
image

Nibe S1255-16

5 Likes

Awesome it also works with Nibe VVM S320!

The only thing that is now missing is to Set goal temperature of room sensor.

Cool, thanks for sharing!
Has anyone managed to write/control the electric booster heater (for warm water)?
I can read it but I‘d like to control it in relation with my PV to heat water mostly when PV is generating enough electricity. I know the sg-ready can take care of this but I‘d like HA to control the logic and write to the Nibe via modbus

Dear Ola,

I copied the switch setting and modified my nibe yaml to include the top part.

Got and error on reboot:

2022-09-08 14:55:49.907 ERROR (MainThread) [homeassistant.config] Unknown error calling modbus CONFIG_SCHEMA

File “/usr/src/homeassistant/homeassistant/components/modbus/validators.py”, line 224, in duplicate_modbus_validator

2022-09-08 14:55:49.926 ERROR (MainThread) [homeassistant.setup] Setup failed for modbus: Invalid config.

modbus:
  type: tcp
  host: 192.168.88.220
  port: 502
  name: "Nibe"
  delay: 10
  
  # Close_comm_on _error: true
  retry_on_empty: true
  retries: 3
  timeout: 15
  message_wait_milliseconds: 500

line 224 is the scan part:

    unique_id: "hotwater_top_BT7"
    device_class: temperature
    state_class: measurement
    unit_of_measurement: "°C"
    data_type: int16
    address: 8
    count: 1
    slave: 1
    precision: 1
    input_type: input
    scale: 0.1
    scan_interval: 30

Any ideas?

Have you tried writing exactly like me with spaces at the beginning of the lines?
You seem to have a different code, in mine there is no scan.

Yes, but it doesn’t like the “modbus part” of the code.

modbus:
  type: tcp
  host: 192.168.88.220
  port: 502
  name: "Nibe"
  delay: 10
  
  # Close_comm_on _error: true
  retry_on_empty: true
  retries: 3
  timeout: 15
  message_wait_milliseconds: 500

Ok I got it working with my original configuration! Great!!!

  type: tcp
  host: 192.168.88.220
  port: 502
  name: "Nibe"
  
  sensors:
# Switches

  switches:
  - name: "More Hot Water"
    unique_id: "More Hot Water"
    write_type: holding # R/W
    address: 697
    slave: 1
    command_on: 3
    command_off: 0

I removed the scan intervals from the other entries and added the “unique id”

Works well!

Now we need to find others like Hot Water Demand, Heating Curve Offset and Operating Mode!

1 Like

Any one got other registers they can write to?

1 Like

Thanks guys!
Works great with my S320.

I tested other address, such as 56 for “Hot Water Demand” and it works great.

2 Likes

Heating curve, climate system 1
address: 26
values: from 0 - 15

Heating curve offset, climate system 1
address: 30
values: from -10 - +10

But I don’t know how to increse or decrese the value of these registers with a switches

2 Likes