Controllino Modbus TCP Heidelberger Wallbox

Dear All,

I an trying to establish communication between Controllino (Arduino Mega) and my wallbox Heidelberger connect solar. I have succesfully connected my Kostal inverter via Modbu TCP running on the same LAN network as controllino. However with alsmost the same arduino code I am trying to communicate to the Wallbox which is connected to my WLAN. Modbus Connect and Modbus Beginn seems to be ok. But “request” never delivers a valid value. I Can communicte via Modbus TCP to the wallbox via a Phyton Code running on my Laptop (both in WLAN). Can someone help me out? regards

I moved your topic to an appropriate forum category @MaggoB.

In the future, when creating a topic please take some time to pick the forum category that best suits the subject of your topic. There is an "About the _____ category" topic at the top of each category that explains its purpose.

This is an important part of responsible forum usage, as explained in the "How to get the best out of this forum" guide. The guide contains a lot of other useful information. Please read it.

Thanks in advance for your cooperation.

Can you show us the text of the messages that work on your PC and what you tried with your Controllino?

C:\Users\marku\PycharmProjects\PythonProject.venv\Scripts\python.exe "D:\Markus\Technik\Kürschnerstr. 7\Wallbox\Wallbox Heidelberger V1.py"
Value: 236
Value: 0
WriteRegisterResponse 261 => 100
Value: 3

Process finished with exit code 0

void loop() {
   if (!modbusTCPClient.connected()) {
    // client not connected, start the Modbus TCP client
    Serial.println("Attempting to connect to Modbus Heidel TCP server");
    
    if (!modbusTCPClient.begin(Heidelserver, 502)) {
      Serial.println("Modbus TCP Client failed to connect!");
    } else {
      Serial.println("Modbus TCP Client connected");
    }
  } else {

if (!modbusTCPClient.requestFrom(1, 4, 10, 1)) {   // FC4, address 10 = Register 11
    if (modbusTCPClient.available()) {
        uint16_t value = modbusTCPClient.read();
        Serial.print("L Voltage: ");
        Serial.print(value);
        Serial.println(" V");
    } else {
        Serial.println("No data returned");
    }
} else {
    Serial.println("Modbus request failed");
}
  delay(4000);

  }
    
}