Git Product home page Git Product logo

nibe_serial's Introduction

NIBE Serial

This library receives and responds to messages on the NIBE MODBUS 40 RS-485 serial interface. It requests data items to be read or written, and forwards the read data.

The available data items are according to these JSON files. The requests use the name field for identification, and the value is interpreted according to the other fields as int, float or mapping string, for example:

name value
bt1-outdoor-temperature-40004 11.6
hot-water-comfort-mode-47041 ECONOMY

The program forwards UDP datagrams from NIBE, and takes data requests from MQTT. The topic is the name prefixed, and the value JSON-encoded in the payload.

The climate unit can also be configured in its logging function to continously publish a set of variables on a separate topic. See nibe-log-set for configuration.

NIBE serial interface

With MODBUS 40, a NIBE climate unit can be controlled and monitored by external Modbus-equipped equipment.

This accessory is connected to an RS-485 bus according to the linked manual. It makes read and write requests when polled, and receives requested data.

NIBE ModbusManager can be used to select up to 23 data items in a LOG.SET file that, when uploaded to the climate unit from a USB drive, causes those data items to be continuously sent on the accessory interface without read requests.

Note The serial protocol on the RS-485 bus is not Modbus. It is an undocumented internal NIBE protocol.

There are other devices that connect to the same interface:

  • OpenHAB Nibe Heatpump Binding is an Arduino firmware or Linux service that forwards the communication to UDP. The datagrams are handled by OpenHAB or Jevgeni Kiski's Nibe library.
  • NibePi is a RaspberryPi image with a NodeRed module for communicating, and other NodeRed modules for adjusting the climate unit to the electricity price.

Setup

The program was developed to accept datagrams from an Elfin EW11A RS-485 to WiFi adapter. The adapter is configured as a UDP client sending datagrams to where this program is running according to this configuration. It forwards raw RS-485 frames without interpretation. This program returns the response.

The serial interface seems sensitive to delays in the response. In my infrastructure replacing UDP with TCP works, but not with MQTT.

nibe_serial's People

Contributors

per42 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.