De Dietrich Boiler integration - MODBUS

Could you provide local IP settings?
I guess that you have wrong netwotrk settings.

yes, here :

I was refering to this in the documentation of your converter :

2.3.2. VCOM ApplicationUser can download VCOM software from http://www.usriot.com/usr-vcom-virtual-serial-software/.Through this software user can set up connection between TCP232-304 and virtual serial to solve the problem that traditional equipment PC software used in serial port communication way.

And you should keep in mind that modbus protocol is not the same in serial line and in IP.

as said @tp85 you should use remote port i.e. 8234

It did not help :

2020-09-13 09:08:46 ERROR (SyncWorker_35) [pymodbus.client.sync] Connection to (192.168.1.230, 8234) failed: [Errno 111] Connection refused![usr1|544x500](upload://3MnhusmIVZkEuky5Eo7uRbBk6OT.png) 
2020-09-13 09:08:46 ERROR (SyncWorker_29) [pymodbus.client.sync] Connection to (192.168.1.230, 8234) failed: [Errno 111] Connection refused
2020-09-13 09:08:46 ERROR (SyncWorker_22) [pymodbus.client.sync] Connection to (192.168.1.230, 8234) failed: [Errno 111] Connection refused

And :

Whereas with the 20208 port, the Ip of HA is displayed :


And in the log :

2020-09-13 09:14:09 DEBUG (SyncWorker_9) [pymodbus.client.sync] New Transaction state 'SENDING'
2020-09-13 09:14:09 DEBUG (SyncWorker_30) [pymodbus.client.sync] New Transaction state 'SENDING'
2020-09-13 09:14:09 DEBUG (SyncWorker_48) [pymodbus.client.sync] New Transaction state 'SENDING'

My boiler is a “bi-master” Modbus, which means slave for 5 seconds, and master for 5 seconds.
May be it is the problem ?

It seems that your converter does not support MODBUS see here

Very strange, because a apache/php server and the adapted page, is able to display the following page, and I even can change my boiler temperature, through this page :


I cannot believe HA not to be able to do that too …

To answer your last question, the solution you are refering to is a dedicated solution for De Dietrich boiler based on an Apache server. The communication system is adapted to the remote serial port over Ethernet. Home Assistant is much more versatile, thow not adapted to your setup.

But i made a few research and i think you could make some test based on this github issue : https://github.com/riptideio/pymodbus/issues/382 focusing on this linux command :

sudo socat pty,link=/dev/virtualcom12,raw tcp:192.168.0.7:8899

In short it is based on a virtual device on your home assistant platform that forwards the data in and out to a remote IP/socket equipment.

I never experimented this but it looks like an option.

Oh, I’ll try that,
And once again, thanks for your interest.

Hi everyone! Did you get the communication with De Dietrich Boiler working now? I was wondering if it is possible to do it over ESPhome, like for example it is working with SDM630.

I didn’t get it to work :frowning:

For me it is working perfect from a direct connection to my Home Assistant host; they are sitting nearby. Your idea to use it with ESPhome is a good idea if you can see the ESPHome as a remote serial from your host. You will need to use a TTL to RS485 converter.

I was able to get it working on my USR-TCP232-304, with my systemair and modbus control:

modbus:
- name: Systemair
  type: rtuovertcp
  port: 2020
  host: 172.16.16.116

1 Like

I just tested again, but no way to get it work.
Thanks anyway for your help.

Hello,

The adapter shouldn’t decode modbus itself, serial mode is enough.
But you don’t receive anything, I think you have an issue with your wiring.
Have a look here:
[Diematic_to_MQTT/ModBusMiniDinConnection.png at f38d845c2e8fb0e07000af12135423ac94e342b0 ¡ Benoit3/Diematic_to_MQTT ¡ GitHub]here)

On my side it’s work perfectly with settings you have.

Regards

1 Like

Hi,
There seems not to be a issue with wiring, because I can interact with the heater, through a homemade html page :


I just need to integrate it properly in HA, in order to create automations, buttons, aso.

Nice to hear it! how did you get it to work? My friend could help me integrate the values to HA. If you have it on your custom html page, this mean, there should be an easy way to get it shown in HA. Could you describe how do you connect, what hardware/software are you using?

Yes, everithing is detailed here in the link given above.
Thanks to Benoit3 for his work.

Hi,
I am in the same situation here : I am trying to hook up My De Dietrich Diematic 3 Boiler to Home Assistant.
Using a waveshare RS485 to ethernet adapter, I am able to read out the modbus registers correctly, using the “AVReporter Modbus Communication Tester” software tool. So the hardware/cabling is okay.
Now I am trying read the registers via Home assistant.
Can some share their configuration.yaml? Because the sensor values are not appearing in home assistant for me. (What is the best way to check if the sensors are available?). There are no error log entries.

My config :


modbus:
  - name: "Waveshare"
    type: rtuovertcp
    host: 192.168.2.245
    port: 20108

sensor:
  - platform: modbus
    scan_interval: 10 # in seconds
    registers:
    - name: "My_hours" 
      hub: "Waveshare"
      slave: 10
      register: 4
      Count: 1
      register_type: holding
      data_type: int 
    - name: "My_minutes"
      hub: "Waveshare"
      slave: 10
      register: 5
      count: 1
      register_type: holding
      data_type: int

I have made some progress.
With this configuration : 1 temperature value sometimes is captured (I get a value), and a little later it is unavailable again. I don’t understand why. With the “AVReport Modbus Communication tester”, I can read any register always correctly and instantaniously (< 100ms).
If I define multiple sensors, some get read and they switch back and forth to readable and unavailble. Also the values get mixed between the sensors.
I’ve played around with timeouts, lazy_error_counts, scan_interval, retries,… but nothing helps.
I feel like I’m close, but can’t find a good working configuration.

modbus:
  - name: Waveshare
    type: rtuovertcp
    host: 192.168.2.245
    port: 20108
    retry_on_empty: true
    close_comm_on_error: false
    retries: 10
    timeout: 15
    delay: 2
    sensors:
    - name: Temperatuur_badkamer 
      slave: 10
      address: 18
      count: 1
      input_type: holding
      data_type: int16 
      lazy_error_count: 5
      scale: 0.1
      precision: 1
      unit_of_measurement: '°C'
      device_class: "temperature"
      scan_interval: 20