To simplify the implementation of hardware that is connected via certain standardized physical connection layers and protocols, those are implemented as Bridges.

1. M-Bus

M-Bus is a widely used standard for fieldbus communication. It enables connection to M-Bus devices like meters.

1.1. Setup note

This bridge depends on jMbus, a user guide for it can be found at

Note: For jMbus to work you need to install the native part of RxTx which is a library for serial port communication jMbus is dependent on. See paragraph 2.5 for further information.

For Linux users: In case the RxTx library cannot be found under /usr/lib/jni you can try to move all .so files of that directory to /usr/lib (see OpenEMS Community).

2. Modbus

Modbus is a widely used standard for fieldbus connections. It is used by all kinds of hardware devices like photovoltaics inverters, electric meters, and so on.

2.1. Modbus/TCP


Modbus/TCP for fieldbus connections via TCP/IP network.

2.2. Modbus/RTU


Modbus/RTU for fieldbus connections via RS485 serial bus.

3. OneWire

OneWire is a widely used protocol for home automation. It is used by sensors like thermometers.

This implementation directly talks to the OneWire busmaster, e.g. a DS9490R USB dongle, without requiring the OneWire File System (OWFS). It therefore requires the natively compiled C library by the manufacturer of the OneWire chip Maxim Integrated. This library is then accessed using Java JNI.

  1. Download the file

  2. Unzip the file (unzip

  3. Prepare compile environment (sudo apt-get install libusb-dev build-essential)

  4. Install Java JDK (e.g. sudo apt-get install openjdk-8-jdk)

  5. Compile (cd OneWireViewer-Linux/PDKAdapterUSB && make && sudo make install)

The library needs exclusive access to the busmaster.

  1. Unload the default Linux driver: rmmod ds2490

  2. Block the driver from loading on next boot echo blacklist ds2490 > /etc/modprobe.d/ds2490.conf