Migrated stiebel eltron heatpump binding for openHAB

hi,

finally found some time to make my second binding for openhab2. I migrated the stiebel eltron heat pump binding available in openhab 1 to openhab 2.

I saw some posts about the support of this binding in OH2.
I provide here a first basic binding reading version , time and measurements …

The new binding can be fully configured with the PaperUI.
Channels are configured within thingtype. In case you need another version let’s find out if information for decoding the protocol is availabel.
I startedwith LWZ303 with firmware 2.06

Download available here: binding download

If there are some tester here in the community could verfiy the binding, would appreciate your feedback.

BR
Peter

3 Likes

Hi Peter,
I tried the jar file (org.openhab.binding.stiebelheatpump_2.1.0.201706050447.jar) of your last posting. But when I put it in the addons folder I get the following error in the openhab.log:

[ERROR] [org.openhab.binding.iec6205621meter ] - FrameworkEvent ERROR - org.openhab.binding.iec6205621meter

I think there is something wrong with the content of this jar file. It looks like a mix-up with an other binding?

Regards
Holger

The error you post is coming from another bundle. could be that i uploaded a wrong bundle. :flushed:
let me check today evening if i uploaded the right bundle

sorry
/peter

hi holger,

here again the download.
hope it going to work.
let me know if this is working
/Peter

Hi Peter

can you say wether your binding works with Stiebel Eltron WPL 15/25?

Thanks & Regards
John

i do not know.
if there is a kind of rs232 interface available … maybe.

what is the interface your heatpump provides

http://docs.openhab.org/addons/bindings/stiebelheatpump1/readme.html

/Peter

Hi Peter,
I tried your second download, but got the following error in the log:

Unresolved requirement: Import-Package: gnu.io

I could resolve this by installing

feature:install openhab-transport-serial

Now I have no more errors or warnings in the log and could add a Thing in PaperUI.

The next step for me is to adapt the protocol/parser to my heatpump (LWZ 404, software-ID 5993, software-version: 5.39). What is the procedure to do this? Can I just edit the “thing-types.xml” inside the jar-file?

Regards
Holger

hi holger ,

great news…:tada:
yes you need to have serial binding installed . sorry forgot to mention.

what is happening in the log when you add the thing?
I was originally implementing the code to verify the version in the thing definition with the version coming from the heat pump. i uncommented that part.
So i would guess that the binding trys to communciate with the heatpump and reads the version information and logs it.

please logon to karaf shell and enable the debug for the binding

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

if log is running add a thing and post the log

What is shown in PaperUI for the configured thing?

We can add a new thingtype to the mentioned file and do test.
the decoding of the heatpump is done by the properties in the channel definition.
lets see first what is logged on the version information

/Peter

Hi Peter,

i 'm using the internal USB port to connect to my THZ30$ eco.
Protocol Version is 5.09.

I repot back after installing and testing the binding.

Thank you very much!

Update: Connection Works perfect. Will do Debug looging this evening.

BR
Hgoan

I can see that there is a CAN bus interface. When I remember correctly there is a possibility to create a kind of “adapter” for CAN-to-RS232.

I can provide a detailed technical docu. Would that be helpful for further investigation?

Cheers
John

sure.if the CAN bus interface allows to get the data from the heat pump with the same mechanism.

If you have more information were to find the interface and how to convert CAN to USB , i would be interested

BR
peter

hi all,

uploaded a new version for testing.

bugfix on the scheduled jobs to poll data , separation of job that does update time in heat pump
improved channel types with display pattern
added operation counter to thing definition
added nominal settings to thing definition
added update code to change setting, this is still in testing.

will continue to implement features.

@Hogan, most of the poll request for your version should be identical to my version.
So most of the channel group and type definition apply.
If you already know the differences in the decoding , just post your findings here and i create a thing type

BR
peter

Hi Peter,

so i made a debug log of the “adding the thing”-process:

2017-06-11 13:59:11.938 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 13:59:16.327 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 13:59:17.329 [ERROR] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Size error 4<>1 from config_255_4_wo
2017-06-11 13:59:19.275 [WARN ] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Initialising Thing Node...
2017-06-11 13:59:20.785 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Node is DEAD. Dropping message.
2017-06-11 13:59:21.584 [WARN ] [rialmessage.IsFailedNodeMessageClass] - NODE 2: Is currently marked as failed by the controller!
2017-06-11 13:59:27.955 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 13:59:44.224 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 2 attempts left!
2017-06-11 13:59:44.235 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 13:59:48.495 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 13:59:53.522 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 1 attempts left!
2017-06-11 13:59:53.532 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 13:59:58.554 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 0 attempts left!
2017-06-11 13:59:58.575 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:00:03.633 [WARN ] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Too many retries. Discarding message: Message: class=SendData[0x13], type=Request[0x00], priority=Get, dest=2, callback=23, payload=02 05 71 04 00 07 03 
2017-06-11 14:00:10.701 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 2 attempts left!
2017-06-11 14:00:10.712 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:00:14.830 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:00:19.853 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 1 attempts left!
2017-06-11 14:00:19.863 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:00:24.883 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 0 attempts left!
2017-06-11 14:00:24.905 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:00:29.928 [WARN ] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Too many retries. Discarding message: Message: class=SendData[0x13], type=Request[0x00], priority=Get, dest=2, callback=30, payload=02 05 71 04 00 07 03 
2017-06-11 14:00:34.096 [WARN ] [l.serialmessage.SendDataMessageClass] - NODE 2: Already processed another send data request for this callback Id, ignoring.
2017-06-11 14:00:35.664 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 2 attempts left!
2017-06-11 14:00:35.674 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:00:39.851 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:00:41.132 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:00:44.082 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:00:46.812 [DEBUG] [tpump.handler.stiebelheatpumpHandler] - Initializing stiebel heat pump handler 'stiebelheatpump:stiebelHeatPumpLWZ303_2_06:01709b07' with configuration: port '/dev/ttyUSB0', baudRate 115200, refresh 60.0.
2017-06-11 14:00:47.803 [DEBUG] [atpump.internal.CommunicationService] - Request : Name -> version, Description -> Version information of heat pump firmware , RequestByte -> FD
2017-06-11 14:00:47.847 [DEBUG] [atpump.internal.CommunicationService] - set version request : Version information of heat pump firmware
2017-06-11 14:00:47.873 [DEBUG] [atpump.internal.CommunicationService] - Request : Name -> time, Description -> Date and time information of heat pump , RequestByte -> FC
2017-06-11 14:00:47.905 [DEBUG] [atpump.internal.CommunicationService] - Request : Name -> currentValues, Description -> Temperature measurements of the heat pump. , RequestByte -> FB
2017-06-11 14:00:47.948 [DEBUG] [atpump.internal.CommunicationService] - Request : Name -> operationCounters, Description -> Reads Operation counters of the heat pump. , RequestByte -> 09
2017-06-11 14:00:47.964 [DEBUG] [atpump.internal.CommunicationService] - Request : Name -> nominalValues, Description -> Reads settings nominal values of the heat pump. , RequestByte -> 17
2017-06-11 14:00:48.000 [DEBUG] [atpump.internal.CommunicationService] - Loading version info ...
2017-06-11 14:00:48.035 [DEBUG] [atpump.internal.CommunicationService] - Request : Name -> version, Description -> Version information of heat pump firmware , RequestByte -> FD
2017-06-11 14:00:48.072 [DEBUG] [atpump.internal.CommunicationService] - Sending start communication
2017-06-11 14:00:48.093 [DEBUG] [belheatpump.protocol.SerialConnector] - Send 02
2017-06-11 14:00:48.146 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 10
2017-06-11 14:00:48.199 [DEBUG] [belheatpump.protocol.SerialConnector] - Send request message : (00)01 00 FE FD (04)10 03 
2017-06-11 14:00:48.309 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 10
2017-06-11 14:00:48.344 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 02
2017-06-11 14:00:48.381 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:00:48.398 [DEBUG] [belheatpump.protocol.SerialConnector] - Send 10
2017-06-11 14:00:48.449 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 01
2017-06-11 14:00:48.503 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 00
2017-06-11 14:00:48.560 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received FC
2017-06-11 14:00:48.587 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received FD
2017-06-11 14:00:48.625 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 01
2017-06-11 14:00:48.656 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received FD
2017-06-11 14:00:48.690 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 10
2017-06-11 14:00:48.722 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 03
2017-06-11 14:00:48.769 [DEBUG] [atpump.internal.CommunicationService] - reached end of response message.
2017-06-11 14:00:48.831 [DEBUG] [.stiebelheatpump.protocol.DataParser] - Parse bytes: (00)01 00 FC FD (04)01 FD 10 03     
2017-06-11 14:00:48.858 [DEBUG] [.stiebelheatpump.protocol.DataParser] - Parsed value version#version -> 5.09 with pos: 4 , len: 2
2017-06-11 14:00:50.418 [DEBUG] [belheatpump.protocol.SerialConnector] - Interrupt serial connection
2017-06-11 14:00:50.461 [DEBUG] [belheatpump.protocol.SerialConnector] - Close serial stream
2017-06-11 14:00:51.563 [DEBUG] [belheatpump.protocol.SerialConnector] - Disconnected
2017-06-11 14:00:51.584 [INFO ] [tpump.handler.stiebelheatpumpHandler] - Heat pump has version 5.09
2017-06-11 14:00:51.618 [ERROR] [tpump.handler.stiebelheatpumpHandler] - Thingtype version of heatpump 2.06 is not the same as the heatpump version 5.09
2017-06-11 14:00:52.641 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Node is DEAD. Dropping message.
2017-06-11 14:00:56.861 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Node is DEAD. Dropping message.
2017-06-11 14:01:01.193 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:01:06.215 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 2 attempts left!
2017-06-11 14:01:06.225 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:01:09.952 [DEBUG] [tpump.handler.stiebelheatpumpHandler] - Received command REFRESH for channelUID stiebelheatpump:stiebelHeatPumpLWZ303_2_06:01709b07:currentValues#outsideTemperatur
2017-06-11 14:01:11.245 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 1 attempts left!
2017-06-11 14:01:11.266 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:01:16.285 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 0 attempts left!
2017-06-11 14:01:16.300 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:01:20.449 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:01:25.496 [WARN ] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Too many retries. Discarding message: Message: class=SendData[0x13], type=Request[0x00], priority=Get, dest=2, callback=45, payload=02 05 71 04 00 07 03 
2017-06-11 14:01:29.685 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:01:42.592 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:01:47.638 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 2 attempts left!
2017-06-11 14:01:47.661 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:01:51.859 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:01:56.098 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Node is DEAD. Dropping message.
2017-06-11 14:03:04.075 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 2 attempts left!
2017-06-11 14:03:04.101 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:03:08.946 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:03:13.919 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:03:16.513 [DEBUG] [tpump.handler.stiebelheatpumpHandler] - Received command REFRESH for channelUID stiebelheatpump:stiebelHeatPumpLWZ303_2_06:01709b07:version#version
2017-06-11 14:03:18.093 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:03:23.127 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 2 attempts left!
2017-06-11 14:03:23.146 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:03:27.370 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:03:32.422 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 1 attempts left!
2017-06-11 14:03:32.440 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:03:37.469 [ERROR] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Timeout while sending message. Requeueing - 0 attempts left!
2017-06-11 14:03:37.487 [ERROR] [l.serialmessage.SendDataMessageClass] - NODE 2: Got an error while sending data. Resending message.
2017-06-11 14:03:42.519 [WARN ] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Too many retries. Discarding message: Message: class=SendData[0x13], type=Request[0x00], priority=Get, dest=2, callback=66, payload=02 05 71 04 00 07 03 

As i run a ZWave stick too, the log contains messages from the stick too.

After setting the length of the ActualValues from 53 to 77 in Roberts coding i get this:

debug:  | 0: fd a8 01 05 | 4: 01 49 01 4c | 8: 01 4a 01 ed | 12: fd a8 fd a8 | 16: 01 28 01 36 | 20: 00 00 11 00 | 24: 00 00 00 00 | 28: 00 00 00 00 | 32: 00 00 00 00 | 36: fa 00 00 00 | 40: 00 04 36 04 | 44: 58 00 00 00 | 48: 00 00 00 00 | 52: 00 00 00 00 | 56: b4 00 00 00 | 60: 00 01 3f 01 | 64: 40 01 45 01 | 68: 29 01 0d 00 | 72: 00 00 00 0d | 76: c9 |
debug:  | 0: 02 02 09 00 | 4: 7c 02 bd 02 | 8: 04 00 51 06 | 12: 2b 0a 00 00 | 16: 00 00 00 00 | 20: 00 00 00 00 | 24: 00 00 00 00 | 28: 00 00 00 00 | 32: 00 00 00 00 | 36: 00 00 00 00 | 40: 00 00 00 00 | 44: 00 00 00 00 | 48: 00 00 00 00 | 52: 00 00 00 00 | 56: 00 00 00 00 | 60: 00 00 |
debug:  | 0: 08 22 00 00 | 4: 01 41 00 03 | 8: 00 f4 |
{'fault10date': '00.00', 'fault07time': '00:00', 'fault08code': 0, 'fault06code': 0, 'number_of_faults': 2, 'collector_temp': -60.0, 'fault05time': '00:00', 'booster_dhw': 3, 'fault10code': 0, 'compressor_cooling': 0, 'fault02time': '16:17', 'return_temp': 33.2, 'extr_speed_set': 0.0, 'fault01time': '06:36', 'fault04date': '00.00', 'expel_speed_set': 0.0, 'fault09time': '00:00', 'fault02code': 4, 'dhw_temp': 49.3, 'fault01date': '07.01', 'dew_point_temp': 0.0, 'fault03time': '00:00', 'fault09date': '00.00', 'fault08date': '00.00', 'flow_temp_hc2': -60.0, 'fault04code': 0, 'hot_gas_temp': 33.0, 'fault03date': '00.00', 'fault08time': '00:00', 'fault06date': '00.00', 'fault09code': 0, 'fault05date': '00.00', 'evaporator_temp': 29.6, 'fault03code': 0, 'extr_speed_actual': 0, 'compressor_heating': 2082, 'fault05code': 0, 'expel_speed_actual': 0, 'inside_temp': -60.0, 'flow_temp': 32.9, 'fault01code': 9, 'rel_humidity': 0.0, 'outside_temp': 25.0, 'fault10time': '00:00', 'fault04time': '00:00', 'fault02date': '26.03', 'vent_speed_set': 0.0, 'fault07code': 0, 'fault07date': '00.00', 'fault06time': '00:00', 'booster_heating': 244, 'condenser_temp': 31.0, 'compressor_dhw': 321, 'vent_speed_actual': 0}

I added a outside temperature and a version. both display no values in PaperUI.

I did this with the latest version available through your offered download.

BR
Hogan

Hi Hogan

great news,version information is read.
Could you again download a new version from my link above.
I added now a new thing type of your version with existing channel definition from version 2.06.
That should give you more logs on querying data from the heat pump.

the data from roberts script, do you have a working ini for you heatpump version?

BR
peter

Hi Peter,

yep finally connection is up :wink:

After deplyoping the latest verion from you, i only get this:

 [smarthome.event.ThingAddedEvent     ] - Thing 'stiebelheatpump:stiebelHeatPumpLWZ303_5_09:d0cb93be' has been added..

the thing won*t initialize

For the ini-file:
I used the 4.38 and modified the ActualValues length and the version info. Using this ini i get the output as stated above.

As the THz 304 eco is a heatpump and a “controlled central ventilation unit” combined, the extra 24 hex-values should be the ventilation stuff. Maybe i can find something useful for value mapping over at fhem. Unfortunatley they do not have the 5.09 version set up too.

Cheers
Hogan

very strange, you should see at least the check of the version.
have you recreated the thing?
do you see 5.09 version when you create the thing?

you should see log from the stiebel binding in debug…, is debug still activated?

BR
Peter

hi Peter,

yep DEBUGis on. By removing the thing i get this:

15:59:58.801 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'stiebelheatpump:stiebelHeatPumpLWZ303_5_09:d0cb93be' changed from UNINITIALIZED to REMOVING
16:00:04.119 [INFO ] [smarthome.event.ThingRemovedEvent   ] - Thing 'stiebelheatpump:stiebelHeatPumpLWZ303_5_09:d0cb93be' has been removed.
16:00:19.092 [WARN ] [ore.thing.internal.ThingRegistryImpl] - Cannot create thing. No binding found that supports creating a thing of type stiebelheatpump:stiebelHeatPumpLWZ303_5_09.
16:00:19.124 [INFO ] [smarthome.event.ThingAddedEvent     ] - Thing 'stiebelheatpump:stiebelHeatPumpLWZ303_5_09:053b71ac' has been added.

After resetting the thing i get this:

16:19:23.792 [INFO ] [smarthome.event.ThingAddedEvent     ] - Thing 'stiebelheatpump:stiebelHeatPumpLWZ303_5_09:30a14a92' has been added.

I encountered some strange behaviour at setting up the thing via PaperUI.
First the binding did not appear, then the binding appeared but i could not select a thing. Then i could select a thing but the thing sate is still the same.

BR
hogan

hi hogan,
sorry bit it is the first time to do the bindging for OH2.
My mistake. Forgot to add the thingtype in the handler

I uploaded again a new version that adds the new type

Sorry
Peter

Hi Peter,
I tried your latest downoad. When adding a Thing in PaperUI, I had the choice to choose 2.06 or 5.09. I took 5.09 and here is the log:

05:33:48.507 [INFO ] [smarthome.event.ThingAddedEvent     ] - Thing 'stiebelheatpump:stiebelHeatPumpLWZ303_5_09:67478233' has been added.
05:33:48.509 [DEBUG] [tpump.handler.stiebelheatpumpHandler] - Initializing stiebel heat pump handler 'stiebelheatpump:stiebelHeatPumpLWZ303_5_09:67478233' with configuration: port 'COM3', baudRate 115200, refresh 60.0.
05:33:48.509 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'stiebelheatpump:stiebelHeatPumpLWZ303_5_09:67478233' changed from UNINITIALIZED to INITIALIZING
05:33:48.523 [DEBUG] [atpump.internal.CommunicationService] - Request : Name -> version, Description -> Version information of heat pump firmware , RequestByte -> FD
05:33:48.524 [DEBUG] [atpump.internal.CommunicationService] - set version request : Version information of heat pump firmware
05:33:48.524 [DEBUG] [atpump.internal.CommunicationService] - Request : Name -> time, Description -> Date and time information of heat pump , RequestByte -> FC
05:33:48.524 [DEBUG] [atpump.internal.CommunicationService] - Request : Name -> currentValues, Description -> Temperature measurements of the heat pump. , RequestByte -> FB
05:33:48.524 [DEBUG] [atpump.internal.CommunicationService] - Request : Name -> operationCounters, Description -> Reads Operation counters of the heat pump. , RequestByte -> 09
05:33:48.524 [DEBUG] [atpump.internal.CommunicationService] - Request : Name -> nominalValues, Description -> Reads settings nominal values of the heat pump. , RequestByte -> 17
05:33:48.525 [DEBUG] [atpump.internal.CommunicationService] - Loading version info ...
05:33:48.525 [DEBUG] [atpump.internal.CommunicationService] - Request : Name -> version, Description -> Version information of heat pump firmware , RequestByte -> FD
05:33:48.525 [DEBUG] [atpump.internal.CommunicationService] - Sending start communication
05:33:48.525 [DEBUG] [belheatpump.protocol.SerialConnector] - Send 02
05:33:48.529 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 10
05:33:48.537 [DEBUG] [belheatpump.protocol.SerialConnector] - Send request message : (00)01 00 FE FD (04)10 03
05:33:48.540 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 10
05:33:48.548 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 02
05:33:48.549 [DEBUG] [belheatpump.protocol.SerialConnector] - Send 10
05:33:48.552 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 01
05:33:48.554 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 00
05:33:48.555 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 1B
05:33:48.555 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received FD
05:33:48.556 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 02
05:33:48.557 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 1B
05:33:48.557 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 10
05:33:48.557 [DEBUG] [ebelheatpump.protocol.ByteStreamPipe] - Received 03
05:33:48.560 [DEBUG] [atpump.internal.CommunicationService] - reached end of response message.
05:33:48.560 [DEBUG] [.stiebelheatpump.protocol.DataParser] - Parse bytes: (00)01 00 1B FD (04)02 1B 10 03
05:33:48.560 [DEBUG] [.stiebelheatpump.protocol.DataParser] - Parsed value version#version -> 5.39 with pos: 4 , len: 2
05:33:50.061 [DEBUG] [belheatpump.protocol.SerialConnector] - Interrupt serial connection
05:33:50.061 [DEBUG] [belheatpump.protocol.SerialConnector] - Close serial stream
05:33:51.069 [DEBUG] [belheatpump.protocol.SerialConnector] - Disconnected
05:33:51.069 [INFO ] [tpump.handler.stiebelheatpumpHandler] - Heat pump has version 5.39
05:33:51.070 [ERROR] [tpump.handler.stiebelheatpumpHandler] - Thingtype version of heatpump 5.09 is not the same as the heatpump version 5.39

To me it looks pretty good. Can you please add a skeleton for a Thing with version 5.39 so I can add/adapt the protocol parameters.

Regards
Holger

great , new version with corrected version uploaded !

have started to futher improve thing.
new parameter has been added to finetune the time between the polling request.
May require that you recreate the thing again.

I would try to get my code in to my github so you can see the source and may join coding :slight_smile: