How to connect to Nibe heat pump without the cloud

True :blush:
I will give another try to your library as soon as I figure out some details about setting it up. I have tried the add-on version you’re discussing here Hassio Addon · Issue #3 · yozik04/nibe-mqtt · GitHub but I am stuck at setting it up. I feel that I am not filling in the correct data in the config file (again, new to mqtt :slight_smile: )

Check for the usb outlet under the logo. Insert a usb and go to the modbus menu. It should allow you to dump the register.

Also look at this.

https://www.nibe.eu/download/18.3db69dc1795e0d992c5722/1622634529178/Modbus%20S-series%20EN%20M12676EN-1.pdf

I am not 100% sure but when you install the addon it should create blank configuration file in home assistant /config folder. You should go into that folder and change settings in that file.

Quick demo: Recording #25 What am I missing? :slight_smile:

1 Like

I am stuck at the same spot as you. Just waiting for the configuration manual to be more exact :slight_smile:

Hi Jevgeni,

I am trying to add your repository to the add in store but keep getting an error.

I am using “https://github.com/yozik04/nibe-mqtt” as the link but it keeps saying Invalid Add-on repository!

Any help would be appreciated.

You may want to use this repo https://github.com/rtitmuss/hassio-nibe-mqtt

1 Like

the other repo by Jevgeni has modbus tcp.

I guess model: is important, since I wrote F2120 pump and got an error in log.

This is my log in Nibe Add-on:

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/nibe/heatpump.py", line 78, in get_coil_by_name
    return self._name_to_coil[str(name)]
KeyError: 'compressor-frequency-actual-43136'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/bin/nibe-mqtt", line 8, in <module>
    sys.exit(main())
  File "/usr/lib/python3.10/site-packages/nibe_mqtt/console_scripts/nibe_mqtt_service.py", line 26, in main
    service = Service(conf)
  File "/usr/lib/python3.10/site-packages/nibe_mqtt/service.py", line 40, in __init__
    self.poller = PollService(self, poll_config)
  File "/usr/lib/python3.10/site-packages/nibe_mqtt/service.py", line 147, in __init__
    self._coils = [self._get_coil(key) for key in conf["coils"]]
  File "/usr/lib/python3.10/site-packages/nibe_mqtt/service.py", line 147, in <listcomp>
    self._coils = [self._get_coil(key) for key in conf["coils"]]
  File "/usr/lib/python3.10/site-packages/nibe_mqtt/service.py", line 151, in _get_coil
    return self._heatpump.get_coil_by_name(name_or_address)
  File "/usr/lib/python3.10/site-packages/nibe/heatpump.py", line 80, in get_coil_by_name
    raise CoilNotFoundException(f"Coil with name '{name}' not found")
nibe.exceptions.CoilNotFoundException: Coil with name 'compressor-frequency-actual-43136' not found
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

same here F730:

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/nibe/heatpump.py", line 78, in get_coil_by_name
    return self._name_to_coil[str(name)]
KeyError: 'passive-cool-shunt-44753'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/bin/nibe-mqtt", line 8, in <module>
    sys.exit(main())
  File "/usr/lib/python3.10/site-packages/nibe_mqtt/console_scripts/nibe_mqtt_service.py", line 26, in main
    service = Service(conf)
  File "/usr/lib/python3.10/site-packages/nibe_mqtt/service.py", line 40, in __init__
    self.poller = PollService(self, poll_config)
  File "/usr/lib/python3.10/site-packages/nibe_mqtt/service.py", line 147, in __init__
    self._coils = [self._get_coil(key) for key in conf["coils"]]
  File "/usr/lib/python3.10/site-packages/nibe_mqtt/service.py", line 147, in <listcomp>
    self._coils = [self._get_coil(key) for key in conf["coils"]]
  File "/usr/lib/python3.10/site-packages/nibe_mqtt/service.py", line 151, in _get_coil
    return self._heatpump.get_coil_by_name(name_or_address)
  File "/usr/lib/python3.10/site-packages/nibe/heatpump.py", line 80, in get_coil_by_name
    raise CoilNotFoundException(f"Coil with name '{name}' not found")
nibe.exceptions.CoilNotFoundException: Coil with name 'passive-cool-shunt-44753' not found
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

Write to the heatpump works thru Modbus.

More here: How do I config modbus tcp for Nibe S1255? - #23 by OlaSBG

Thank you for this great nibe lib @yozik04. Has someone got the nibegw Arduino code working stable on a PRODINo MKR Zero Ethernet V1?

Can you guys dump the register set of the SMO40 from the pump gui and post here? Looking to get modbus support into the native ha integration.

Ps. You can also run with an esp32 with a rs485 adapter board instead of the prodino: GitHub - elupus/esphome-nibe: Esphome components for nibe heat pumps

2 Likes

Where can we dump it? Is this a joined effort with @yozik04? It would be great to have just one integration. Will the integration just catch the UDP traffic from nibegw without the need for MQTT? And will write commands be possible?

Its joint effort yes. Its the same lib as @yozik04 uses for the mqtt solution. And yes it support write. And yes it grabs the udp trafic directly for F-series pump with nibegw, but uses tcp modbus for S-series pumps.

See export registers in: https://www.nibe.eu/download/18.3db69dc1795e0d992c5722/1622634529178/Modbus%20S-series%20EN%20M12676EN-1.pdf

2 Likes

Sounds perfect.

I got my PRODINo MKR Zero Ethernet V1 now running perfectly on the F1255 with adjusted nibegw arduino firmware.

And I see you just need the registers from the S-series machines so unfortunately I can’t help.

So I’m looking forward testing the modbus/nibegw support in the native integration. If you need help testing I would love helping.

Well that seems absolutely amazing. Everything localIy connected and not relying on the cloud.
I do have a F1145-10 PC heatpump.
I have a couple of esp32 boards. I suppose with this MAX485 module, I’m ready to go?

Do you have any examples how to connect it?
If you need a tester, would love to help.

Goal for me is to optimize the use of my Nibe heatpump when my solar panels are in production mode. It seems Nibe has a separate EME 20 module for this. When we know the algoritm they use for it, it can be perfectly done throught NibeGW, as I understood you’re able to write.

As far as I understand the EME 20 will adjust the heat curve and boost hot water mode, when there is solar energy. Would be great to have Nibe’s algoritm, so we can manage this from HA.

BTW: Great work. Your work is amazing. Atm I use the Nibe uplink HACS integration.

Have you guys seen this???

This is a new integration with the latest core update.

Supported devices:

  • F1145
  • F1155
  • F1245
  • F1255
  • F1345
  • F1355
  • F370
  • F470
  • F730
  • F750
  • SMO20
  • SMO40
  • VVM225
  • VVM310
  • VVM320
  • VVM325
  • VVM500

Sadly no S series!!! :cry:

Yeah congrats to @elupus for getting this natively into the HA core. That is pretty awesome.

@wgumaa:

@elupus is trying to get the S series onboard as well. So just be patient it will happen. :grinning:

3 Likes

@wgumaa I need register exports for S series pumps (in english). Checkout this manual on how to export: https://www.nibe.eu/download/18.3db69dc1795e0d992c5722/1622634529178/Modbus%20S-series%20EN%20M12676EN-1.pdf