Code Monkey home page Code Monkey logo

Comments (72)

adicorra avatar adicorra commented on September 22, 2024 1

For those interested,

The solution DCOM + Modbus Gateway is about the same cost as the Home Hub (EKRHH).

For Altherma 2 we have no other option as EKRHH is not compatible, so it's good news :

  • DCOM-LT/IO : 320€
  • Arduino Uno + Shield 2 : 54€
  • MAX13487 RS485 to TTL : 11€
  • Optional Case : 21€
    TOTAL 406€

This is buying on stock in EU ; you can get it cheaper from Aliexpress.

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024 1

@budulinek here is a picture of the full kit installed on a DIN rail inside the indoor unit.

  • 2 Power supplies (24V and 5V)
  • 1 Amp fuse
  • DCOM-LT
  • Modbus Gateway

IMG_8763

You can use it as you wish.

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024 1

A lot of errors? Come on...

Most probable cause of these soft errors: Arduino delays in processing the response. Arduino is a single-threaded computer. I have invested a lot of effort in optimizing the code to make it non-blocking (I have even modified some of the core functions in the ethernet library). But I suspect that under certain circumstances (0,5% of cases), Arduino is not fast enough to process the Modbus RTU response. What probably happens:

  • Arduino sends Modbus RTU request via RS485 (countdown for Response Timeout starts)
  • Modbus RTU response arrives when Arduino is busy doing other stuf (such as servicing WebUI - remember that there is fetch API request every 2 seconds when you are viewing the "Modbus Status" page). Modbus RTU response is stored in serial in buffer, but since Arduino is busy, its arrival is not recorded by the MCU
  • Arduino finishes the task which caused the delay. Only now it checks serial in buffer. But because the Response Timeout has already passed, Modbus RTU response is dropped and these two errors are recorded. Because the gateway does treat unexpected Modbus RTU responses (responses arriving after Response Timeout) as Invalid RTU Response.
  • New Modbus RTU request is sent by the gateway, response is successfully received (recorded) by the gateway and forwarded to the Modbus TCP master (HA, Loxone...). No problem.

As I said, Invalid RTU Response and Response Timeout are soft (fully recoverable) errors. Treat them as warnings - no need to worry about them. Watch out for Slave Responded with Error, Gateway Overloaded and Slave Failed to Respond.

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024

@jelockwood

I know about these two products. Made by 3rd company, sold by Daikin. See also: http://www.realtime-controls.co.uk/index.php/site/product-list/C1/

These are quite old products.
RTD-W is (was) for Altherma HT. Could (or could not) be compatible with Altherma 3 HT.

RTD-LT/CA was for the very first "CA" generation of Altherma LT. Did not try it. But according to the manual (and according to Daikin representative to whom I talked few years ago), it is not compatible with the second "CB" generation of Altherma LT (I have second generation Altherma LT which has CB in the product name: EHVX08S26CB9W ). I very much doubt it would be compatible with the newest (3rd) generation of Altherma.

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024

BTW there is another commercial P1P2 <-> Modbus solution by Intesis, but probably only for Daikin cooling units:
https://www.intesis.com/products/ac-interfaces/daikin-gateways

And of course, P1P2 <-> KNX solution by Zennio, compatible with Altherma 3:
https://www.zennio.com/products/clima/klic-da

from arduino-altherma-controller.

StefanR71 avatar StefanR71 commented on September 22, 2024

Today we installed a Altherma 3 H HT W (ETBH16EF9W) and Daikin told me to use the DCOM-LT/IO unit for Modbus access:

https://www.daikin.eu/en_us/products/dcom-lt-io.html

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024

You are right! Thanks for sharing the info, I did not know about it (probably some new product).

There is also a "DCOM-LT/MB" unit. Only Modbus, no relays, no analog inputs. Probably cheaper.

You can check its capabilities by looking at Modbus registers here:

https://www.daikin.fi/content/dam/document-library/installation-manuals/opt-and-acc/DCOM-LT-MB%20reference%20manual_English.pdf

Issue reopened for others to see.

EDIT: Yep, 400€ ....

from arduino-altherma-controller.

StefanR71 avatar StefanR71 commented on September 22, 2024

Thanks for the Info... I will look for the /MB version...

I'm searching for a solution to query some values and switch the functions heat/cooling/water on/off.

Because i want to disable the water heat function at night when the next days we have more than 8 hours of sun. But cooling should still possible, so i can't use the solarlock input. And on the other side i want only allow cooling when i have solar power or enough power in my battery's.

In the past we had a Novelan/Luxtronic device and that o controlled from my linux server with a python script. The same i want to create now with the Altherma.

from arduino-altherma-controller.

ttnguyen111 avatar ttnguyen111 commented on September 22, 2024

hi there, do you know where I purchase the DCOM-LT/MB in the UK please? Thanks

from arduino-altherma-controller.

MichaelST01 avatar MichaelST01 commented on September 22, 2024

Thanks for the Info... I will look for the /MB version...

I'm searching for a solution to query some values and switch the functions heat/cooling/water on/off.

Because i want to disable the water heat function at night when the next days we have more than 8 hours of sun. But cooling should still possible, so i can't use the solarlock input. And on the other side i want only allow cooling when i have solar power or enough power in my battery's.

In the past we had a Novelan/Luxtronic device and that o controlled from my linux server with a python script. The same i want to create now with the Altherma.

I have an Daikin Altherma 3 H MT W connected with the DCOM LT/MB Modul.

I can set via Modbus the following values:

1 Leaving Water Main Heating Setpoint / 25 .. 55ºC
2 Leaving Water Main Cooling Setpoint / 5 .. 22ºC
3 Operation Mode / 0: Auto, 1:Heating, 2:Cooling
4 Space Heating/Cooling On/Off / 0:OFF 1:ON
6 Room Thermostat Control Heating Setpoint / 12 .. 30ºC
7 Room Thermostat Control Cooling Setpoint / 15 .. 35ºC
9 Quiet Mode Operation 0:OFF 1:ON
10 DHW Reheat Setpoint / 30 .. 60ºC
12 DHW Reheat On/Off / 0:OFF 1:ON
13 DHW Booster Mode On/Off / 0:OFF 1:ON
53 Weather Dependent Mode / 0:Fixed 1: Weather Dependent 2: Fixed+Scheduled 3: Weather Dependent+Scheduled
54 Weather Dependent Mode LWT Heating Setpoint Offset / -10 .. 10ºC
55 Weather Dependent Mode LWT Cooling Setpoint Offset / -10 .. 10ºC

It works quite well.

from arduino-altherma-controller.

macla avatar macla commented on September 22, 2024

MichaelST01 would you mind sharing how you did this over ModBus? I have almost the same setup: A Daikin Altherma 3 H HT W connected with DCOM LT/MB module. But I am only capable of reading some registers and can't find a way to control the operating mode (start/stop) or change water main heating setpoint. Only documentation I found is in the DCOM manual - perhaps you have another reference?

from arduino-altherma-controller.

MichaelST01 avatar MichaelST01 commented on September 22, 2024

I did it the following way:
Hardware - DCOM LT/MB -> PE11 (Modbus RTU to TCP)
For testing I had iobroker with modbus interface (installed as master) installed and I changed the values of the holding registers in the object tree.
Why I need it is that I have Photovoltaic on the roof and I use the heatpump to power the pool (so I have to switch to fixed Temperature and set the Leaving Water Main Heating Setpoint to a higher value 45°. If I switch of the pool-heating I change the value back to weather dependent mode or I switch room heating completly off.

In the final version I use a UVR16x2 (www.ta.co.at) with a modbus RTU interface to control it. It also controls the heating circuits of the house (from the puffer).

from arduino-altherma-controller.

peacekeeper03 avatar peacekeeper03 commented on September 22, 2024

@budulinek

Did you find any Modbus Device/Module for the "CB" Generation?
I have the EHBX11CB9W and looking for an working modbus device.

from arduino-altherma-controller.

hdm64a avatar hdm64a commented on September 22, 2024

@MichaelST01

I have a similar configuration: A Daikin Altherma 3 H HT W connected to a DCOM LT/IO module. I can only read some registers but not write, e.g. to change the operating mode. As a controller, the UVR16x2 connected to the CAN-BC2 including the Modbus board. Would it be possible to get the necessary files (*.dat, *.tdw)? It would help me a lot, thanks in advance.
@hdm64a

from arduino-altherma-controller.

MichaelST01 avatar MichaelST01 commented on September 22, 2024

@hdm64a

No problem, here are the files. At the moment I switch the pool heating manually on with UVR16x2 (when it is on the Daikin changes operating mode, and sets Temperature to 43°C, when it is off it switches operating mode back). But I suppose you have a different hydraulic setup.

TDW Files.zip

from arduino-altherma-controller.

hdm64a avatar hdm64a commented on September 22, 2024

from arduino-altherma-controller.

MichaelST01 avatar MichaelST01 commented on September 22, 2024

I am from Austria, that's why the comments in the files are in German :-)

from arduino-altherma-controller.

hdm64a avatar hdm64a commented on September 22, 2024

from arduino-altherma-controller.

peacekeeper03 avatar peacekeeper03 commented on September 22, 2024

DCOM Configuration Mode.pdf
For completion, the description for the config mode.
Helped me.

from arduino-altherma-controller.

skydoy avatar skydoy commented on September 22, 2024

Thanks for the Info... I will look for the /MB version...
I'm searching for a solution to query some values and switch the functions heat/cooling/water on/off.
Because i want to disable the water heat function at night when the next days we have more than 8 hours of sun. But cooling should still possible, so i can't use the solarlock input. And on the other side i want only allow cooling when i have solar power or enough power in my battery's.
In the past we had a Novelan/Luxtronic device and that o controlled from my linux server with a python script. The same i want to create now with the Altherma.

I have an Daikin Altherma 3 H MT W connected with the DCOM LT/MB Modul.

I can set via Modbus the following values:

1 Leaving Water Main Heating Setpoint / 25 .. 55ºC 2 Leaving Water Main Cooling Setpoint / 5 .. 22ºC 3 Operation Mode / 0: Auto, 1:Heating, 2:Cooling 4 Space Heating/Cooling On/Off / 0:OFF 1:ON 6 Room Thermostat Control Heating Setpoint / 12 .. 30ºC 7 Room Thermostat Control Cooling Setpoint / 15 .. 35ºC 9 Quiet Mode Operation 0:OFF 1:ON 10 DHW Reheat Setpoint / 30 .. 60ºC 12 DHW Reheat On/Off / 0:OFF 1:ON 13 DHW Booster Mode On/Off / 0:OFF 1:ON 53 Weather Dependent Mode / 0:Fixed 1: Weather Dependent 2: Fixed+Scheduled 3: Weather Dependent+Scheduled 54 Weather Dependent Mode LWT Heating Setpoint Offset / -10 .. 10ºC 55 Weather Dependent Mode LWT Cooling Setpoint Offset / -10 .. 10ºC

It works quite well.

Hi i got the DCOM-LT/IO
and a waveshare RS485 To ETH im able to connect to the modbus
but im lost in the config can you point me where to set it up?

Thanks

from arduino-altherma-controller.

StefanR71 avatar StefanR71 commented on September 22, 2024

Hi,
i have now a Daikin HomeHub, this part replaces the DCOM and can used with Modbus RTU "or" Modbus TCP. So there i no need for a additional RS485 to ETH gateway.
I have also tryed a waveshare product, but this product has the same limitation like all cheap chinese gateways. It will discard TCP payloads with more than one Modbus TCP part inside...

from arduino-altherma-controller.

mkarnebeek avatar mkarnebeek commented on September 22, 2024

This Home Hub sounds very promising, but getting it seems somewhat difficult. It was introduced the end of last year. Could you share where you bought or got it from?

from arduino-altherma-controller.

StefanR71 avatar StefanR71 commented on September 22, 2024

Here in germany from our installer, he got it from his Daikin reseller "thiele & fendel".

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

Hi, i have now a Daikin HomeHub, this part replaces the DCOM and can used with Modbus RTU "or" Modbus TCP. So there i no need for a additional RS485 to ETH gateway. I have also tryed a waveshare product, but this product has the same limitation like all cheap chinese gateways. It will discard TCP payloads with more than one Modbus TCP part inside...

@StefanR71

I'm from France, I have ALTHERMA2 (CB version as stated above) and I'm ready to order the DCOM-LT-IO to communicate over Modbus from HA.

What "limitations" have you encountered with the cheap RTU to TCP gateways ?

Discarding TCP payloads => what is the impact in terms of controlling the unit ?

What gateway do you recommend if the limitation is an issue ?

Thanks.

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024

Hi, i have now a Daikin HomeHub, this part replaces the DCOM and can used with Modbus RTU "or" Modbus TCP. So there i no need for a additional RS485 to ETH gateway. I have also tryed a waveshare product, but this product has the same limitation like all cheap chinese gateways. It will discard TCP payloads with more than one Modbus TCP part inside...

@StefanR71

I'm from France, I have ALTHERMA2 (CB version as stated above) and I'm ready to order the DCOM-LT-IO to communicate over Modbus from HA.

What "limitations" have you encountered with the cheap RTU to TCP gateways ?

Discarding TCP payloads => what is the impact in terms of controlling the unit ?

What gateway do you recommend if the limitation is an issue ?

Thanks.

If you have troubles with cheap Chinese Modbus RTU -> TCP gateways, you can try my own Modbus RTU ⇒ Modbus TCP/UDP Gateway ;-)

Here is a tutorial and a firmware for an Arduino-based gateway. Quite reliable, works in my house for years. For your information: in my gateway, payloads are stored in a buffer, they are not discarded. Of course, if you you bombard the gateway with very frequent requests and you manage to fill the buffer, then the TCP request is discarded :-) Moreover, you can see the utilization of the buffer in the Web UI, you can also see counter for these "gateway overloaded" errors in webUI.

https://github.com/budulinek/arduino-modbus-rtu-tcp-gateway

from arduino-altherma-controller.

StefanR71 avatar StefanR71 commented on September 22, 2024

In my view you have 2 possible ways:

Don't order the DCOM-LT-IO, use the HomeHub: https://www.daikin.eu/en_us/products/product.html/EKRHH.html

When your heatpump isn't compatibe with the HomeHub, then you need to use the other part and use a gateway to modbus TCP.

The problem is the following with the gateways:

When you request the content of the registers 1,2,3 and 6 then this request will be send in 2 parts:
request 3 registers starting at 1
request 1 register starting at 6

But for the second request we don't get an answer.

A workaround is to query only registers that are together at a time. Or only single registers...

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

I would of liked to go for the EKRHH but it is only compatible with the Altherma "3" and I have the Gen 2.

On what controls will I be limited since I yet did not go in details and do not know what the impact will be ? What function will work or not work ?

Whats crazy is that DAIKIN give the DCOM-LT compatible with the unit.

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024

But for the second request we don't get an answer.

Yeah, seems that cheap Chinese Modbus gateways do not have a buffer at all. My Modbus gateway stores 10 requests in a buffer.

https://github.com/budulinek/arduino-modbus-rtu-tcp-gateway

Feel free to give it a try. I do not have DCOM-LT-IO myself, but I have tested my Modbus gateway extensively.

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

@StefanR71 I'm thinkging Unless you where using the DCOM-LT with a Gen 3 and its not fully compatible with the Gen 3.....

I received this compatiblity list from Daikin :
Altherma 3 H HT split (EPRA-D)
Altherma 3 R32 R Split (ERLA-D)
Altherma 3 Monobloc (ED(B)LA-D)
Alttherma 3 WS (EGSHA-D)

It mentions not compatible with : Altherma 3 R split (ERGA-E).

But for Gen2 it is compatible : ERLQ-C

Maybe the conclusion is that :
For GEN 2 => Use the DCOM-LT (MB or IO)
For GEN 3 => Use the HomeHub

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

But for the second request we don't get an answer.

Yeah, seems that cheap Chinese Modbus gateways do not have a buffer at all. My Modbus gateway stores 10 requests in a buffer.

https://github.com/budulinek/arduino-modbus-rtu-tcp-gateway

Feel free to give it a try. I do not have DCOM-LT-IO myself, but I have tested my Modbus gateway extensively.

Do you mean it's better to use arduino without a commercial modbus gateway ?

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024

But for the second request we don't get an answer.

Yeah, seems that cheap Chinese Modbus gateways do not have a buffer at all. My Modbus gateway stores 10 requests in a buffer.
https://github.com/budulinek/arduino-modbus-rtu-tcp-gateway
Feel free to give it a try. I do not have DCOM-LT-IO myself, but I have tested my Modbus gateway extensively.

Do you mean it's better to use arduino without a commercial modbus gateway ?

Sure, this is what I mean. I am quite confident in my gateway - it is better than these Chinese commercial gateways.

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

Ok, so in that case, with the GEN2 (I have the same as you, EHVX11S26CB9W (CB version) if I go for DCOM-LT-MB + your gateway all will work 100% with the HVAC ?

from arduino-altherma-controller.

StefanR71 avatar StefanR71 commented on September 22, 2024

Maybe the conclusion is that :
For GEN 2 => Use the DCOM-LT (MB or IO)
For GEN 3 => Use the HomeHub

Okay, then the DCOM-LT, and making a own gateway is the best choice.

I used a ESP32 to query the values via Modbus and store them in a local MQTT server on the same ESP32. This MQTT i query from my monitoring. I made also some MQTT topics to set the DHT temperature or switch the device on or off...

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

@StefanR71 @budulinek

Did you guys see this solution ? https://raomin.github.io/ESPAltherma/

from arduino-altherma-controller.

StefanR71 avatar StefanR71 commented on September 22, 2024

Yes but it isn't possible so set values, it is only monitoring.

from arduino-altherma-controller.

MichaelST01 avatar MichaelST01 commented on September 22, 2024

@StefanR71 I'm thinkging Unless you where using the DCOM-LT with a Gen 3 and its not fully compatible with the Gen 3.....

I received this compatiblity list from Daikin : Altherma 3 H HT split (EPRA-D) Altherma 3 R32 R Split (ERLA-D) Altherma 3 Monobloc (ED(B)LA-D) Alttherma 3 WS (EGSHA-D)

It mentions not compatible with : Altherma 3 R split (ERGA-E).

But for Gen2 it is compatible : ERLQ-C

Maybe the conclusion is that : For GEN 2 => Use the DCOM-LT (MB or IO) For GEN 3 => Use the HomeHub

I use at the moment for GEN3 DCOM-LT
I will use in the future Homehub (already ordered) because there are more Registers for better controlling the heatpump especially if you have photovoltaic

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

OK, so I'm ordering the DCOM-LT.
The price is nearly the same for the DCOM-LT/IO one. Maybe its wiser to go with this one ?

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024

@StefanR71 @budulinek

Did you guys see this solution ? https://raomin.github.io/ESPAltherma/

Yes, I know about it (see Comparison with other solutions ).

It is a good project, well maintained. But it uses serial port of Altherma (and not the P1P2 bus), which means it can not control Altherma. Only in a very limited way (on/off through external relay).

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

Thank you ! Great page. Is it easy enough to integrate yours in HA or only Loxone for now ?

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024

Thank you ! Great page. Is it easy enough to integrate yours in HA or only Loxone for now ?

Arduino Altherma Controller integrates easily only with Loxone. Node-RED integration also possible but more difficult. Direct integration to HA not possible.

Modbus RTU -> TCP Gateway complies with Modbus protocol specifications. Therefore, if you choose DCOM-LT + my Modbus RTU -> TCP Gateway, it should easily integrate with any Modbus TCP master (Loxone, HA, Node-RED, etc. etc.).

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

OK, clear now. In that case I will need to setup the sensors and program them with MODBUS commands. No one yet did a template to collect the entities.

Since you are an expert, could you give me an example if I want to run a command from HA to stop the HVAC for example ?

From there I might be able to build a complete template.

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024

I know quite a bit about Modbus protocol as such.

But I have no experience with HA. Please check this HA Modbus tutorial. First you configure "connection" (TCP connection to the gateway) and then "entities" (incl. sensors, target temperature, HVAC mode etc.).

You also need to know modbus register address you want to write to (or read from). You get them from DCOM-LT reference manual.

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024

Since you are an expert, could you give me an example if I want to run a command from HA to stop the HVAC for example ?

And, if you build my Modbus RTU -> TCP gateway, you can also run modbus requests (commands) directly from its web interface for testing purposes. Modbus protocol is actually quite simnple. Assuming you have slave ID 0x01, according to DCOM-LT/MB manual, you can turn off HVAC ("Space Heating/Cooling") by this command:
01 06 00 04 00 00

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

Thank you ! I will now order the parts to make your gateway. All of this is exciting.

For the modbus configuration actually it seems quite easy. Here you can see a setup on LG but the principle is the same : https://youtu.be/Xuj2YFZ5zME?si=MeQGxm9zRHsmm6ln

Really cool and can't wait to have it ; I have my solar inverter already running on HA with batteries and this winter will be able to automate and control the ALTHERMA HP based on solar and battery charging based on tarif.

This is much more powerful than integrated smart grid (SG) as it does not manage batteries : sometimes you want the excess to charge the batteries for example.

Last thing and not least in HA you can define strategies based on next day solar forecast, which makes it even more awesome. One I deeply recomment is SOLCAST https://solcast.com/ (free you have 10 API requests per day). I found it much more accurate than the one embedded in HA.

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

@budulinek

I read your instructions for the arduino.
I'm new to Arduino. When it says "Download and flash my pre-compiled firmware"; do I need to configure before the Ethernet shield or all is included in your firmware, ready-to-go once flashed ?
To flash it, I guess its from IDE ?

thanks,

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024

@budulinek

I read your instructions for the arduino. I'm new to Arduino. When it says "Download and flash my pre-compiled firmware"; do I need to configure before the Ethernet shield or all is included in your firmware, ready-to-go once flashed ? To flash it, I guess its from IDE ?

thanks,

I think it is better to compile your own firmware. Download github repo, open arduino-modbus-rtu-tcp-gateway.ino in Arduino IDE. In Arduino IDE, open library manager and install "CircularBuffer" and "StreamLib" libraries. Connect Arduino, select board and port. Then hit Ctrl+U (comnpile and upload). No need to configure ethernet shield, default settings will apply and your Arduino should be available on 192.168.1.254

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

Thank you for the info. I will use this KKSB case to have a complete module.
https://kksb-cases.com/cdn/shop/products/DSC02079_800x544.jpg?v=1669881064
TTL card can go inside also.
What's great is that the case has a DIN rail adapter.
So you can put side by side on the rail, the DCOM-LT and your module.
I saw on the drawing it's better to use a direct 5V power supply and not use the USB or existing DC.

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

In my view you have 2 possible ways:

Don't order the DCOM-LT-IO, use the HomeHub: https://www.daikin.eu/en_us/products/product.html/EKRHH.html

When your heatpump isn't compatibe with the HomeHub, then you need to use the other part and use a gateway to modbus TCP.

The problem is the following with the gateways:

When you request the content of the registers 1,2,3 and 6 then this request will be send in 2 parts: request 3 registers starting at 1 request 1 register starting at 6

But for the second request we don't get an answer.

A workaround is to query only registers that are together at a time. Or only single registers...

@StefanR71
Hi, I decided to do my project on the Arduino custom gateway, but are you sure this module from Waveshare cannot handle more than one Modbus TCP part inside ? https://www.welectron.com/Waveshare-RS232-485-TO-ETH.
The product is more expensive than the cheaper 23273 https://eu.robotshop.com/fr/products/industrial-serial-server-rs485-to-rj45-ethernet-tcp-ip-to-serial-rail-mount-poe

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

@budulinek
I read your instructions for the arduino. I'm new to Arduino. When it says "Download and flash my pre-compiled firmware"; do I need to configure before the Ethernet shield or all is included in your firmware, ready-to-go once flashed ? To flash it, I guess its from IDE ?
thanks,

I think it is better to compile your own firmware. Download github repo, open arduino-modbus-rtu-tcp-gateway.ino in Arduino IDE. In Arduino IDE, open library manager and install "CircularBuffer" and "StreamLib" libraries. Connect Arduino, select board and port. Then hit Ctrl+U (comnpile and upload). No need to configure ethernet shield, default settings will apply and your Arduino should be available on 192.168.1.254

Got the Arduino working ; really straightforward and simple !

Since my network is on 192.168.0.X I had to connect it to a laptop with a direct IP to change the IP through the webinterface.

For next time, eg if I have to update one day, is their a way to change the default IP in the ino files ?

Thanks again Mate !

from arduino-altherma-controller.

StefanR71 avatar StefanR71 commented on September 22, 2024

@StefanR71 Hi, I decided to do my project on the Arduino custom gateway, but are you sure this module from Waveshare cannot handle more than one Modbus TCP part inside ? https://www.welectron.com/Waveshare-RS232-485-TO-ETH. The product is more expensive than the cheaper 23273 https://eu.robotshop.com/fr/products/industrial-serial-server-rs485-to-rj45-ethernet-tcp-ip-to-serial-rail-mount-poe

The last one i have, i also tryed one from USR IOT and contacted the support, all have the same problem...

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

Just to share the results with Budulinek's Mdbus TCP gateway. Works great, amazing solution!
Attached picture of the hardware with the KKSB case (TTL converter fits inside no problem).
Bottom right, you can see the customized (direct 5V power supply jack) - not using the jack on the Arduino.

@budulinek One thing you should mention on your gateway's page is to highlight this risk that some TTL adapter manufacturers invert TX and RX ! I lost 3h of investigation because of this !! My card is DSD TECH SH-U12 https://www.amazon.fr/dp/B07B667STP?ref=ppx_pop_mob_ap_share

Modbus-TCP Gateway

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024

@adicorra thanks for the feedback! I am always happy to hear that it works :-)

  • No need to change the default IP. Once you change IP in webUI, it is saved in EEPROM. And EEPROM data are retained during minor firmware update (i.e. when you compile and upload new firmware to Arduino, your user settings are retained). I only erase EEPROM data when I need to change its structure, you will notice that major version will change (currently 7.x). But if you want, you can change default IP in advanced_settings.h
  • Thanks for the feedback regarding inverted TX and RX!! Actually you are not the first one with this problem, I will definitely update README to alert users.
  • @StefanR71 yes, I have also heard that USR-IOT have same problems. USR-IOT and Waweshare haver similar webUI, maybe they share code? BTW I have studied USR-IOT functionality and drew inspiration from their webUI. So credits to them :-)
  • @adicorra Could you please confirm that issues mentioned by Stefan are solved with my gateway?

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

Thanks for your recap. Yes, I can confirm everything is working perefectly. I didn't experience the issues with the other commercial gateways since I didn't test them, but if @StefanR71 tells me exactly what register (on the Altherma) doesn't work because of the multiple parts inside the data packet , then I can test it live and confirm.

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

@budulinek, regarding the default IP, can you please confirm because I recall to have changed it and reflashed but didn't seem to take into account (I mean before going in the WebUI). This is important as the gateway will be in the unit casing and don't want to unwire just to change the IP one day. Ideally can we get another IP adress at boot without going through the WebUI ?

Did I do this correctly ? In yellow the values I changed (here they are as default of course)

defaultIP

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024

@adicorra Yes, this is where you change the default IP. You can also see the default static IP on the "Tools" page in web UI. And you can test your default IP by clicking "Load Default Settings". The button will erase your EEPROM (only MAC address is retained) and default settings from advanced_settings.h will be apllied (incl. your default IP) .

BTW can I use the picture of your hardware (with the KKSB case) in my my readme?

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

Yes you can, with pleasure.

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

Update : this morning I had just setup 2 input sensors that worked fine and supplied me with the water temp.

I tried to control the cooling today and it takes it (relay 1 goes on) and the remotcon led goes green but the PUMP does not start. I checked the min outside temperature thinking it was reset and the value is correct.

I don't know whats going on.

Also, if I change the "Room Cooling Setpoint" the value on the remotcon doesn't change. Weird.
I sent commands over the gateway such as 01 06 00 07 00 15

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

Found the issue ! Before I had the LAN adpater and when I removed it (because its not compatible with a Remotcon + DCOM), my room thermostat switched to "At Unit" in [A.2.1.B] - Once switched back to "In Room" as it should be (thermostat) then all came back as before and HP working now with Climate Entities from HA.

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

A lot of invalid RTU responsed (in just 12h hours). What are these coming from ?
My RS485 card is working fine, no errors reported by the HP.

Timeouts

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

No problem, I was anticipating your answer that it is not an issue since I mentioned not to have errors. I was just curious to understand from where these "dropped communications" could come from and I think you have a given a clear analysis. Your project is so good that it even tracks such "missed paquets". I really appreciate what you have done on optimizing the code. A nice project in the end. Did you consider industrializing it in a complete package ?

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

Hi @budulinek

How do we disable this if we have hardware flow control ?
#define RS485_CONTROL_PIN 6
Do we just "delete" the line?

PS : im facing issues with the arduino not accessible when it starts (I havent identified why yet).

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

@StefanR71 Arduino ethernet is just crap, not industrial and not stable. Going with this, industrial and works perfectly ! https://www.pusr.com/products/din-rail-rs485-serial-to-ethernet-converter-usr-dr302.html

from arduino-altherma-controller.

StefanR71 avatar StefanR71 commented on September 22, 2024

@StefanR71 Arduino ethernet is just crap, not industrial and not stable. Going with this, industrial and works perfectly ! https://www.pusr.com/products/din-rail-rs485-serial-to-ethernet-converter-usr-dr302.html

Yes it is working, when you query only single registers or registers that are directly following. But when you query multiple registers like 2, 8, 30 then it isn't working you will receive only the answer for the first register. I was in touch with the support and they told me this is an issue.

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

This is not an issue to control the Altherma,

from arduino-altherma-controller.

StefanR71 avatar StefanR71 commented on September 22, 2024

This is not an issue to control the Altherma,

It is an problem when you query the following registers in one query:

Input registers: 29, 30, 34, 36, 37, 39, 40, 41, 42, 43, 44, 48, 51, 52
Holding registers: 0, 1, 2, 3, 9, 11

When i send this directly to the HomeHub via Modbus TCP i'm getting an answer. But when the HomeHub is in RTU mode and i use the USR IOT gateway i'm gettig a timeout, because the gateway don't understand multiple Modbus packets in one TCP packet.

So query single registers is a workaround to get this working but the behavior of the gateway isn't correct.

from arduino-altherma-controller.

adicorra avatar adicorra commented on September 22, 2024

Ok, but what devices do such multiple requests ? I don’t think HA does this nor the Fibaro app.

I will test the commercial one and let you know. The fact that Arduino is some sort of « lego » board is a big issue, not reliable, no electrostatic standards, ETH is not reliable, so many drawbacks. Sometimes you start it and nothing.

from arduino-altherma-controller.

StefanR71 avatar StefanR71 commented on September 22, 2024

I don't know i have written my onwn monitoring and i was using this to query a Modbus device: https://github.com/favalex/modbus-cli

Here i have created a register file:

reg_pumpe i@29:einaus
reg_verdichter i@30:einaus
reg_durchfluss i@48
reg_dreiwege i@36:dreiwege
reg_hk_mode_ist i@37:betrieb
reg_aussentemperatur i@43
reg_warmwasser i@51:status
reg_raumheizung i@52:status
reg_vorlauf_phe i@39
reg_vorlauf_buh i@40
reg_rucklauf i@41
reg_ist_warmwasser i@42
reg_kaeltemittel i@44
reg_soll_heizen h@0
reg_soll_kuehlen h@1
reg_hk_mode h@2:betrieb
reg_hk_status h@3:einaus
reg_soll_warmwasser h@9
reg_ww_status h@11:einaus

:einaus
  0=aus
  1=ein

:dreiwege
  0=raumheizung
  1=brauchwasser

:betrieb
  0=auto
  1=heizen
  2=kuehlen

:status
  0=untaetig
  1=betrieb

And then i query:

modbus -s 1 -r /haus/heizung/register 192.168.77.82:502 reg*

And get all the values in one batch:

reg_soll_heizen: 42 0x2a
reg_soll_kuehlen: 18 0x12
reg_hk_mode: 1 0x1 heizen
reg_hk_status: 1 0x1 ein
reg_soll_warmwasser: 50 0x32
reg_ww_status: 1 0x1 ein
reg_pumpe: 1 0x1 ein
reg_verdichter: 1 0x1 ein
reg_abtauen: 0 0x0 aus
reg_dreiwege: 1 0x1 brauchwasser
reg_hk_mode_ist: 1 0x1 heizen
reg_vorlauf_phe: 4670 0x123e
reg_vorlauf_buh: 4660 0x1234
reg_rucklauf: 4180 0x1054
reg_ist_warmwasser: 4480 0x1180
reg_aussentemperatur: 440 0x1b8
reg_kaeltemittel: 3800 0xed8
reg_durchfluss: 2820 0xb04
reg_warmwasser: 1 0x1 betrieb
reg_raumheizung: 1 0x1 betrieb

When i'm doing the same with the USR IOT or Waveshare gateway i'm getting only:

reg_soll_heizen: 42 0x2a
reg_soll_kuehlen: 18 0x12
reg_hk_mode: 1 0x1 heizen.
reg_hk_status: 1 0x1 ein
TimeoutError: timed out

I'm using here for my programs a ESP32 WROOM board, this is running very stable, i have no problems with that device. But how stable a device is, is also depending on the librarys you are using. Some have memory leaks, then it is worth to search for other version and test again...

And i think such devices as USR IOT or Waveshare are using Chips like a ESP32 too... So it depends only on the program and librarys you are using if a device is stable or not.

from arduino-altherma-controller.

budulinek avatar budulinek commented on September 22, 2024

@StefanR71 Arduino ethernet is just crap, not industrial and not stable. Going with this, industrial and works perfectly ! https://www.pusr.com/products/din-rail-rs485-serial-to-ethernet-converter-usr-dr302.html

The Wiznet W5x00 chips are good chips. The Ethernet.h library has some minor flaws, but otherwise works well. I have several Arduino + W5x00 solutions running for years without problems. In my opinion, the problem is a poor design of some Arduino ethernet shield. I am not a HW guy, but I think the issue is linked to how RST pin of the W5x00 chip is triggered:

Most W5x00 shields have the W5x00's RST pin hard wired to Arduino's RST. Usually it works well, but sometimes the W5x00 is not reset correctly during (re)start (I blame poor shield design, missing capacitor on the RST pin). As a result, the reset signal (pull down on the RST pin) may come too early, or it is too short to trigger reset of the W5x00 chip.

Best W5x00 shields have the W5x00's RST pin hard wired to a dedicated pin (rather than Arduino's RST). I have Nano W5500 shield (unfortunately no longer in production) which has RST on pin 7. This is excellent solution because then I can reset the W5x00 programatically. Once Arduino starts, I pull down pin 7 for a while to reset W5x00 and then I continue calling the Ethernet library. ETH_RESET_PIN can be configured in advanced_settings.h. Check your ethernet shield, maybe you also have RST on a dedicated pin.

If you still want to give Arduino the chance, you may try a "bypass" solution:

  • On the ethernet shield bend the RST pin (so that it is disconnected from Arduino RST) and wire it to PIN 7 on the ethernet shield, creating a "bypass". From now on, W5x00 will be reset programatically - better solution than through the Arduino RST pin.
  • On the Arduino shield, there is also second RST pin in the ICSP connector. Bend it to the side so that it does not connect to the ethernet shield.

from arduino-altherma-controller.

mkarnebeek avatar mkarnebeek commented on September 22, 2024

I have some issues connecting my Home Hub with the Altherma 3 R F unit.

According to the installers reference guide, there should be a Daikin HomeHub menu entry in the Installer Settings menu. This doesn't show up. I do have a Daikin Home Controls option in the main menu, but that seems unrelated.

The Home Hub is unresponsive to Modbus RTU and over TCP it responds with 32k values for all registers. I think the Home Hub didn't pair correctly with the indoor unit.

Indoor unit: EHVX08S23EJ6V
Outdoor unit: ERGA08EAV3H

Unit interface software: V07.04.00
Unit interface micon ID: ID20010E0A
Micon ID inside: ID0222

I measured 15-16 volts on the P1P2 wires at the Home Hub, also when disconnected from the Home Hub, so the wiring seems to be in order.

Anybody any experience to share, or hints for me to get it working?

from arduino-altherma-controller.

StefanR71 avatar StefanR71 commented on September 22, 2024

I thik you must call the Daikin service to install the current software.

See here in the compatibility: https://www.daikin.de/content/dam/document-library/Installer-reference-guide/heat/accessories/ekrhh/EKRHH_Installer%20reference%20guide_4PEN744838-1C_English.pdf

You need the MicronID 0223 and software v7.3.0.

from arduino-altherma-controller.

mkarnebeek avatar mkarnebeek commented on September 22, 2024

Ah, I was confusing it with the "Interface Micon ID" which is ID20010E0A in my system, which seemed higher than the long version listed there ("Hydro SW version").

Searching for a bit, it looks like this isn't for me to be able to do (looks like they are directly flashing the board). I'm hoping an installer can perform it, or otherwise i'll just have to get Daikin to do it.

from arduino-altherma-controller.

marcpuca avatar marcpuca commented on September 22, 2024

adicorra where abouts did you pick up the DCOM unit for 320€?
Thanks

from arduino-altherma-controller.

Related Issues (3)

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.