How to connect to Nibe heat pump without the cloud

Any pre known register. It must be in the database of registers at the moment. LOG.SET is not needed though.

1 Like

So if i read this, i need an esp with an RS485 device and install esphome with the config from:

The target and source ip address i need to set in this config, is this the ip of home assistant? thats not clear for me?

How cool - really glad to know about this development. I had the same question as @TheMystery - @elupus is this modbus hardware proxy necessary for devices like SMOS40 which already do modbus over tcp? I haven’t been able to get the integration to work with any of my best guesses regarding port numbers…!

If you have one of the models on the list I guess yes. I have an S series which this doesn’t work for.

Soon. We do need to collect all available registers on the modbus variants as mentioned earlier in this thread.

I’ll dump the registers today for you and also send you my yaml file.

Here are the modbus registers from the SMOS40 controller.

modbus_addresses_all.csv

1 Like

Thank you, some more fields found in that file too. So strange that they all seem to differ in what fields they export.

It was tricky to locate the USB port too , I had to look into the manual …
image

To understand correctly, is that a really complete dump or there are more registers?

I think it is ad complete it can get untill a firmware update or added accessories. However it is a bit strange that i keep getting slightly different exports from same models and firmware version.

I have a pending firmware update , I will perform the update and dump again the registers, I will update if something changes or not.

So there are differences , most of them ‘cosmetic’ in the title field but there are more.
modbus_addresses_all_firmware_2.14.8

I forgot to mention that the SMOS40 controller is connected with the NIBE F2120 heat pump so I assume that F2120 registers can accessed through SMOS40 ?

There was a firmware update today for my S1255. Would you like me to dump another set of registers after update?

Not sure how I can help but here is the registry dump file for my S320:

I use these addresses:

Sensor (read):
1
5
7
8
9
26
1027

Switch/Sensor (write & read):
102
697

Yes, that is the ip of your home assistant instance.

Thx, then i’m goging to test it ordered this weekend aan lillygo t-can

Hello, i got an ESP32 + RS485 working with my Nibe (VVM310) and the heatpump ist not going into an error. So i guess this part is doing well…
Now i tried to install the new HA Nibe Heat Pump Integration, but i am not sure what to put in “Remote-IP-Adress” and the 3 Ports (local, remote read, remote write).
Thanks in advance

The remote ip address is the ip address of the ESP device. It sadly need the IP, you can’t use it’s dns name at the moment. I should fix that.

The local port should match the target port that you set in your esp config (default value of 9999), example config previously had 10090. The remote read, should match the read_port in esp config (default value of 9999), the remote write should match write_port (default value of 10000)

Hi, not sure if this helps the discussion, but I’ve been able to build a few simple scripts building on top of the Modbus integration. So, not only I create sensors to read the different values from directly from the registers, also I can write back. For instance I use the script below to dynamically adjust the Heating Curve (eg. based on solar panel production).

Hope it helps…

alias: Nibe_heating_curve
fields:
  curve:
    name: curve
    description: Heating Curve
    default: 10
    example: 10
  min_temp:
    name: min_temp
    description: Heat curve Minimum Temperature
    default: 350
    example: 350
  max_temp:
    name: max_temp
    description: Heat curve Maximum Temperature
    default: 550
    example: 550
  offset:
    description: Heat Curve offset
    default: 0
    example: 0
sequence:
  - service: modbus.write_register
    data:
      address: 34
      slave: 1
      value: "{{ min_temp }}"
      hub: NIBEF2120
  - service: modbus.write_register
    data:
      address: 38
      slave: 1
      value: "{{ max_temp }}"
      hub: NIBEF2120
  - service: modbus.write_register
    data:
      address: 30
      slave: 1
      value: "{{ offset }}"
      hub: NIBEF2120
  - service: modbus.write_register
    data:
      address: 26
      slave: 1
      value: "{{ curve }}"
      hub: NIBEF2120
mode: single
6 Likes