Benoit3 / Diematic_to_MQTT

MQTT interface for De Dietrich Diematic3 heater regulator written in python
MIT License
25 stars 7 forks source link
dedietrich diematic home-automation modbus mqtt raspberry-pi

Making of a MQTT interface for a De Dietrich boiler fitted with a Diematic 3 regulator

The goal is to be able to control boiler's general setting with a smartphone using a MQTT client or through a domotic software.

Reminder : Diematic 3 regulator has a built-in control board like :

Diematic 3 Regulation Control Panel

And a remote control board like :

Diematic 3 Remote Control

I remind that if you use information and software available in this repository, It's mean that you feel enough qualified to manage what you are doing and its impacts.

General Design

ModBus Interface Description

Diematic 3 regulator is fitted with a ModBus interface which allows to read and modify measures and parameters.

There's very few doucmentation on the specification of the De Dietrich ModBus implementation. Used documents can be found on the web by using key words "diematic modbus register"

ModBus rely on data exchange on a serial bus. The Diematic 3 implementation is done with following details :

RTU (binary) mode, on a RS485 bus
9600 bauds, 8 bits, no parity, 1 stop bit
boiler address is 0x0A (hexadecimal)

One specifity of the De Dietrich implementation is the dual-master : The boiler transmit ModBus command during 5s as a ModBus master and then remain silent during 5 next seconds waiting for possible ModBus commandas slave (address: 0x0A).

This particularty will have some impact on the behviour of our system : reponse time will be between 5 and 10 s (5s waiting for boiler slave mode followed by the data transmission).

My main requirements to design the solution were:

It's why I chose to use following elements :

Internet box settings to allow external access to the NAS while complying with good security practice wont be described here. Several solutions can be used according your paranoid level.

Web Interface Design

Making of

Wiring

You can start with wiring the USR-TCP-232-306 to the boiler using a 2 wire cable and a mini DIN connector with four pins. The cable schematic is below:

ModBus wiring

Module settings

You can now go on with setting the USR-TCP-232-306 module with a standard web brother :

Module setup

Remark : I let you read the doc to configure IP parameters of the USR-TCP-232-306. The TCP server address of the above page is not used

Python script installation

Instructions are available in the Wiki

Home Assistant Integration

The Home Assistant discovery mode is enable by default. Check parameters in the Diematic32MQTT.conf file.

You will just have to connect your hassio to your MQTT broker and define your cards.

Hassio_Control Hassio_Control Hassio_Control

To use client Dash MQTT for android

With this client you can get easily custom dashboard like this one:

Dash MQTT

Limitations

With this release 313 (boiler bought end of 2006), some limitations has been solved with sometimes the help of workaround. Temporary anti freezing, is no more available as it was not correctly settable through the Diematic 3 Modbus interface, but permanent antifreezing mode has replaced it. Notice that, in this case the remote control shows below display, which is normal (you can get it with the mode button selecting antifreeze during 5s) : AntiFreeze

Main found limitations of the Diematic 3 interfaces are :

Experience return

Here is an interesting application to monitor gaz consumption and level inside a gaz tank

For further info you can go to Fibaro forum or to the Home Assistant Community