OpenHab 2 and Stiebel Eltron

Dear ssalonen,

yes I’ve tried your suggestion. Ths log than says the follwing:
2021-01-25 08:59:02.879 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Try 1 out of 3 failed when executing request (ModbusReadRequestBlueprint@1399777[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=1500,length=11,maxTries=3]). Will try again soon. Error was: net.wimpi.modbus.ModbusSlaveException Error Code = 2 [operation ID 3cce3ae6-e19f-4cd4-a809-767e91481834]

2021-01-25 08:59:02.952 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Try 2 out of 3 failed when executing request (ModbusReadRequestBlueprint@1399777[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=1500,length=11,maxTries=3]). Will try again soon. Error was: net.wimpi.modbus.ModbusSlaveException Error Code = 2 [operation ID 3cce3ae6-e19f-4cd4-a809-767e91481834]

2021-01-25 08:59:03.029 [ERROR] [rt.modbus.internal.ModbusManagerImpl] - Last try 3 failed when executing request (ModbusReadRequestBlueprint@1399777[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=1500,length=11,maxTries=3]). Aborting. Error was: net.wimpi.modbus.ModbusSlaveException Error Code = 2 [operation ID 3cce3ae6-e19f-4cd4-a809-767e91481834]
Does this help for imporving the binding? Should I try something more? I am also interested in helping and providing an automatically heatpump connection. Let me know.

Hi all,
we are currently working to test the OH2 binding for OH3.
Thomas spend some effort to make the initial migration.
I have is up and running in my OH3 environment.

If there is somebody that like to test in OH* , let me know.
BR

The target device has rejected the read request, complaining about “illegal address”. That might also be about the length or type.

It’s a config issue, not a binding problem.

Some devices only let you read register lengths in multiples of 2 or 4.

1 Like

Great stuff you guys did here with the serial connection, thanks!

I’m wondering if my pump Tecalor TTC 07 is also supported. I could only read about LWZ and THZ models here. ISG would be available for it, but it’s quite expensive for my taste. Is anybody out there who already tried it with a similar model like mine?

Keep up the good work!

support will depend on your heatpump has a serial interface , similar to the LWZ.
manybe you can find some interfaces described in your manual.

For all that like to use the stiebel binding for 3.1 or 3.2.
Here the links 3.1 and 3.2

Hi,
before I start to get into OpenHab, I have one question.

Is it possible to automate the fans, so if the temperature outside is higher than inside they should be turn off and when lower than turn them on again?
The build in passive cooling feature is totaly crap.

Hello Parastic,

Heating plans / temp regulation was the main reason why I started with OpenHab.
If it is possible to integrate the fans into OH you can do what you want with help of rules.

You’ll probably get a better response starting a new thread of your own about rule authoring; give details of your OH version and which of the several rule systems you intend to use. If you don’t know that yet, ask for a recommendation based on your skill level.

Hi Peter,
is there an version for OH3.3?

Hi,
has someone the binding with version 4.39 running?

actually the 3.2 version of the binding is still working for me
i am running the OH 3.4

Hi Peter, I have a problem with the version of the stiebel. My LWZ403 has the version 4.39, but this version is not supported in the binding.

I have a problem with updating the values. Only when I create a new item, all other items are updated. Can anyone help me?
Stiebel LWZ403 with 4.39 version, OH 3.3 with Stiebel Binding 3.2

hi ,

i tried to add the 4.39 version to the current built but was not able to verify it on my side due to lack of time.
https://drive.google.com/file/d/1x1nw7zfg5B-mN9cWGIJKQcPndHHwnTNV/view?usp=sharing

Could you give it a try?
/Peter

Hi Peter,

Thank you.
The version works. I no longer get a version error.
Unfortunately, I still have problems with updating the items. Sometimes it does it in the configured time interval, and then it doesn’t do it at all for an hour. Do you have any ideas?

please enable log in the karaf console

ssh -p 8101 openhab@localhost
log:set DEBUG org.openhab.binding.stiebelheatpump
log:tail

then you should get more logs
you can also add a log configuration in /var/lib/openhab/etc/log4j2.xml
adding an appender

<!--stiebel appender -->
<RollingRandomAccessFile fileName="${sys:openhab.logdir}/stiebel.log" filePattern="${sys:openhab.logdir}/stiebel.log.%i" name="STIEBEL>
     <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
     <Policies>
               <OnStartupTriggeringPolicy/>
               <SizeBasedTriggeringPolicy size="8 MB"/>
     </Policies>
</RollingRandomAccessFile>

and the log configuration

<Logger level="INFO" name="org.openhab.binding.stiebelheatpump">
        <AppenderRef ref="STIEBEL"/>
</Logger>

hope this helps to collect mode details

Hi Peter,
I have this error:
2022-09-22 05:23:08.943 [ERROR] [atpump.internal.CommunicationService] - Could not get data from heat pump! java.lang.ArrayIndexOutOfBoundsException: Index 1024 out of bounds for length 1024
2022-09-22 05:23:10.147 [WARN ] [atpump.internal.CommunicationService] - Error reading data for FB ^@^@^@^@: org.openhab.binding.stiebelheatpump.internal.StiebelHeatPumpException: heat pump is communicating, but did not receive Escape message in initial handshake! → Retry: 1

Hi Peter
I have a question.
No matter what I set for the parameter (Waiting time between requests), a request is always made after 5 seconds. I thought the parameter controlled the requests. Actal value 60000.

Log:
2022-09-23 13:18:22.786 [DEBUG] [atpump.internal.CommunicationService] - retry request!

2022-09-23 13:18:22.787 [DEBUG] [atpump.internal.CommunicationService] - Sending start communication

2022-09-23 13:18:22.799 [DEBUG] [belheatpump.protocol.SerialConnector] - Send request message : (00)01 00 FC FB (04)10 03

2022-09-23 13:18:27.858 [DEBUG] [atpump.internal.CommunicationService] - retry request!

2022-09-23 13:18:27.859 [DEBUG] [atpump.internal.CommunicationService] - Sending start communication

2022-09-23 13:18:27.873 [DEBUG] [belheatpump.protocol.SerialConnector] - Send request message : (00)01 00 FC FB (04)10 03

2022-09-23 13:18:32.940 [DEBUG] [atpump.internal.CommunicationService] - retry request!

2022-09-23 13:18:32.942 [DEBUG] [atpump.internal.CommunicationService] - Sending start communication

2022-09-23 13:18:32.954 [DEBUG] [belheatpump.protocol.SerialConnector] - Send request message : (00)01 00 FC FB (04)10 03

hi Stephan,
the initial connection request is about to get the version information of the heat pump and derive the channels from the version templates in the thing type definitions.
If this initial communication is not working, following pull request to get monitoring and status information will not start.
In the initialization process is therefore retrying with high rate, every 5 second.
If communication is successfully established the pull rate is defined by the thing refresh configuration parameter (60s).

It seems that we need to solve first why your heat pump is not responding the first request.

You can restart the initialization process be disabling / enabling the thing.
Please verify again if physical connection is properly done.
we need to get the byte that are send back from the heat pump in the initial request.

a successful initial RS232 communication will look like this

18:03:39.161 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'stiebelheatpump:LWZ_THZ303_2_06:cc78eac2' changed from UNINITIALIZED (DISABLED) to INITIALIZING
18:03:39.192 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> FD 
18:03:39.193 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - set version request : FD 
18:03:39.194 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> FC 
18:03:39.195 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - set time request : FC 
18:03:39.196 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> FB 
18:03:39.196 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> 09 
18:03:39.197 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> 17 
18:03:39.198 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> 01 
18:03:39.199 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> 05 
18:03:39.200 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> 06 
18:03:39.201 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> 03 
18:03:39.201 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> 04 
18:03:39.202 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> 0A 
18:03:39.203 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> 0B 
18:03:39.204 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> 0C 
18:03:39.205 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> 0D 
18:03:39.205 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> 0F 
18:03:39.206 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> 0E 
18:03:39.207 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> 07 
18:03:39.208 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> D1 
18:03:39.209 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request : RequestByte -> EE 
18:03:39.209 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request FD  added to sensor/status refresh scheduler.
18:03:39.210 [WARN ] [ing.stiebelheatpump.protocol.Requests] - Could not find valid request definition for dumpResponse,  please verify thing definition.
18:03:39.211 [WARN ] [ing.stiebelheatpump.protocol.Requests] - Could not find valid request definition for requestBytes,  please verify thing definition.
18:03:39.212 [WARN ] [ing.stiebelheatpump.protocol.Requests] - Could not find valid request definition for respondBytes,  please verify thing definition.
18:03:39.213 [WARN ] [ing.stiebelheatpump.protocol.Requests] - Could not find valid request definition for setTime,  please verify thing definition.
18:03:39.213 [WARN ] [ing.stiebelheatpump.protocol.Requests] - Could not find valid request definition for time#setTime,  please verify thing definition.
18:03:39.214 [WARN ] [ing.stiebelheatpump.protocol.Requests] - Could not find valid request definition for refreshTime,  please verify thing definition.
18:03:39.215 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request FB  added to sensor/status refresh scheduler.
18:03:39.218 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request 09  added to sensor/status refresh scheduler.
18:03:39.219 [WARN ] [ing.stiebelheatpump.protocol.Requests] - Could not find valid request definition for heatingBoosterMode,  please verify thing definition.
18:03:39.220 [WARN ] [ing.stiebelheatpump.protocol.Requests] - Could not find valid request definition for operationCounters#heatingBoosterMode,  please verify thing definition.
18:03:39.221 [WARN ] [ing.stiebelheatpump.protocol.Requests] - Could not find valid request definition for DHWBoosterMode,  please verify thing definition.
18:03:39.221 [WARN ] [ing.stiebelheatpump.protocol.Requests] - Could not find valid request definition for operationCounters#DHWBoosterMode,  please verify thing definition.
18:03:39.222 [WARN ] [ing.stiebelheatpump.protocol.Requests] - Could not find valid request definition for compressorStarts,  please verify thing definition.
18:03:39.223 [WARN ] [ing.stiebelheatpump.protocol.Requests] - Could not find valid request definition for operationCounters#compressorStarts,  please verify thing definition.
18:03:39.223 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request 17  added to sensor/status refresh scheduler.
18:03:39.224 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request 01  added to sensor/status refresh scheduler.
18:03:39.225 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request 05  added to sensor/status refresh scheduler.
18:03:39.226 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request 06  added to sensor/status refresh scheduler.
18:03:39.227 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request 03  added to sensor/status refresh scheduler.
18:03:39.228 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request 04  added to sensor/status refresh scheduler.
18:03:39.229 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request 0A  added to sensor/status refresh scheduler.
18:03:39.230 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request 0B  added to sensor/status refresh scheduler.
18:03:39.232 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request 0C  added to sensor/status refresh scheduler.
18:03:39.234 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request 0D  added to sensor/status refresh scheduler.
18:03:39.237 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request 0F  added to sensor/status refresh scheduler.
18:03:39.238 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request 0E  added to sensor/status refresh scheduler.
18:03:39.240 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request 07  added to sensor/status refresh scheduler.
18:03:39.242 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request D1  added to sensor/status refresh scheduler.
18:03:39.244 [DEBUG] [tpump.internal.StiebelHeatPumpHandler] - Request EE  added to sensor/status refresh scheduler.
18:03:40.350 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'stiebelheatpump:LWZ_THZ303_2_06:cc78eac2' changed from INITIALIZING to UNKNOWN (HANDLER_CONFIGURATION_PENDING): Waiting for messages from device
18:03:41.442 [DEBUG] [eatpump.internal.CommunicationService] - Loading version info ...
18:03:41.443 [DEBUG] [eatpump.internal.CommunicationService] - RequestByte -> FD 
18:03:41.443 [DEBUG] [eatpump.internal.CommunicationService] - Sending start communication
18:03:41.454 [DEBUG] [ebelheatpump.protocol.SerialConnector] - Send request message : (00)01 00 FE FD (04)10 03 
18:03:46.522 [DEBUG] [eatpump.internal.CommunicationService] - retry request!
18:03:46.523 [DEBUG] [eatpump.internal.CommunicationService] - Sending start communication
18:03:46.534 [DEBUG] [ebelheatpump.protocol.SerialConnector] - Send request message : (00)01 00 FE FD (04)10 03 
18:03:46.644 [DEBUG] [eatpump.internal.CommunicationService] - reached end of response message.
18:03:46.645 [DEBUG] [g.stiebelheatpump.protocol.DataParser] - Parse bytes: (00)01 00 CC FD (04)00 CE 10 03 
18:03:46.645 [DEBUG] [g.stiebelheatpump.protocol.DataParser] - Parsed value version#version -> 2.06 with pos: 4 , len: 2
18:03:46.646 [INFO ] [tpump.internal.StiebelHeatPumpHandler] - Heat pump has version 2.06

the binding file I shared is for RS232 communication only

/Peter

1 Like