Migrated stiebel eltron heatpump binding for openHAB

well the CAN interface is not really good documented.
i am not familiar in the CANbus protocol.
will be very challenging to support you , so do not expect a working solution.

concerning the mechanism. it look like also the polling approach is the same for the can bus.
you send a request and get a response with data.
for the rs232 interface if is quiet good info in the www to implement code for openhab.
for canbus interface i didi not really find code and examples
if you have code samples how to read data , let me know
so the anser is that
/peter

hi john,

found this link
http://www.juerg5524.ch/list_data.php

According the description the CAN interface should also be available on my heatpump.
Have not found it yet… :slight_smile:
In above link there are a bunch of files available with code …

the stieble ISG gateway uses CAN so i thing it should work.
In the link you send you will see that there were statements that thedifference isto big betweeen RS232 and CAN…

/Peter

for the once that want to extend thingtype for their own version.
I finally found a way to get access on the channeltype definitions in the initialize methode.
the min. max and steps property will not be anymore required as the same information is already defined on the channeltype information.

also the unit will not be required as this is already covered by the pattern property in the channel definition.
will do some test before i finally submit the code

/Peter

Hi Peter,

When I trigger the switch, I get the responses like this:

[INFO ] [atpump.internal.CommunicationService] - Request (00)01 03 0B 07 (04)10 03  received response : (00)01 03 0B 07
  1. Is ist possible to get the responses parsed with the outputs like this:
[DEBUG] [.stiebelheatpump.protocol.DataParser] - Parsed value operationCounters#compressorA -> 2823 with pos: 4 , len: 2
[DEBUG] [.stiebelheatpump.protocol.DataParser] - Parsed value currentValues#exhaustFanSpeed -> 0 with pos: 32 , len: 1
  1. Nearly all request are retried, do you have an idea which parameter is responsible for a delay before new requests?
09:56:20.661 [INFO ] [atpump.internal.CommunicationService] - Prepare response for request byte %02X
09:56:20.707 [DEBUG] [belheatpump.protocol.SerialConnector] - Send request message : (00)01 00 08 07 (04)10 03
09:56:21.787 [DEBUG] [atpump.internal.CommunicationService] - retry request!
09:56:21.844 [DEBUG] [atpump.internal.CommunicationService] - Sending start communication
09:56:21.957 [DEBUG] [belheatpump.protocol.SerialConnector] - Send request message : (00)01 00 08 07 (04)10 03
09:56:22.034 [DEBUG] [atpump.internal.CommunicationService] - reached end of response message.
09:56:22.073 [INFO ] [atpump.internal.CommunicationService] - Request (00)01 03 0B 07 (04)10 03  received response : (00)01 03 0B 07
09:56:23.302 [INFO ] [atpump.internal.CommunicationService] - Prepare response for request byte %02X
09:56:23.331 [DEBUG] [belheatpump.protocol.SerialConnector] - Send request message : (00)01 00 0A 09 (04)10 03
09:56:24.401 [DEBUG] [atpump.internal.CommunicationService] - retry request!
09:56:24.424 [DEBUG] [atpump.internal.CommunicationService] - Sending start communication
09:56:24.491 [DEBUG] [belheatpump.protocol.SerialConnector] - Send request message : (00)01 00 0A 09 (04)10 03
09:56:24.586 [DEBUG] [atpump.internal.CommunicationService] - reached end of response message.
09:56:24.633 [INFO ] [atpump.internal.CommunicationService] - Request (00)01 00 1C 09 (04)0B 07 00 00 (08)09 80 00 63 (12)02 12 10 08)09 80 00 63 (12)02 12 10 03
09:56:25.864 [INFO ] [atpump.internal.CommunicationService] - Prepare response for request byte %02X
09:56:25.878 [DEBUG] [belheatpump.protocol.SerialConnector] - Send request message : (00)01 00 11 10 (04)10 10 03
09:56:27.007 [DEBUG] [atpump.internal.CommunicationService] - retry request!
09:56:27.030 [DEBUG] [atpump.internal.CommunicationService] - Sending start communication
09:56:27.097 [DEBUG] [belheatpump.protocol.SerialConnector] - Send request message : (00)01 00 11 10 (04)10 10 03
09:56:27.223 [DEBUG] [atpump.internal.CommunicationService] - reached end of response message.
09:56:27.257 [INFO ] [atpump.internal.CommunicationService] - Request (00)01 03 14 10 (04)10 10 03  received response : (00)01 03 14

3. Regarding your last post about channeltype definitions for different heatpump versions, maybe you can post a short example?

Regards
Holger

Hi Holger,
// update uploaded for 1.

great to see things are moving on your side.

  1. yes, will put it on my todo.should be an easy one and done sone
    originally it was intented to be used to start from scratch andget some inital bytes from the heatpump.
    If you get your heatpump already online and the version fits you get the parsed values in the debug log
  2. in the thing paramaters you can find a parameter called waiting time. default value is set to 1200 ms
    this its the time between the request. some heatpumps do have limited CPU and boud rate and do need some time to get a nother request. For my LWZ303i 2.06 the default value worked reliable
    a possible scenario could be also that there is no response coming from the heatpump to the send request.
  3. you can find the examples in the github thingtpye

I am currently abroad and hae limited testing capabilities
By end of next week i will be able to upload a new version.
I will try to upload something today, but the code was not verified and tested on my heatpump

/Peter

Hi Peter,
your last upload does not work:

[DEBUG] [tpump.handler.stiebelheatpumpHandler] - Exception occurred during getting inital setting from thing channelgroup configuration stiebelheatpump:channelGroupTypeNominalValues: Rounding necessary

But take your time!
Holger

upps will do some improvements on typ conversion and upload a new verision
will need to debug on my heatpump

/peter

uploaded new version

update: improved the link and unlink of channels and keep the list of request up to date

new feature added to the binding and uploaded.

added the heating , ventilation and hot water program to the settings.
it was quit difficult to handle the bit and time information. the bit information, e.g. program enabled are now handled as a switch in the paperUI.
also stablized the and resolved bug.
Setting of parameter settings works well
i have started to create some charts in habpanel , will post some pictures soon.

BR
peter

here a screenshot of the measurements in habpanel

upper values are measuerment of the energymeter and below 2 charts temperature measurements of the heatpump

/peter

Hi John ,

i finally found the interface in the heatpump.

I guess it is the EIB extern terminal to connect to.
Do you recommended a CAN to USB or RS232 converter ?

The link you provided contains all information to implement an additional binding or extend the existing binding.
The reason why i am interested is that the rs232 interface is quit slow and always works with register. on the CAN bus it seems you can access and set individual parameter.

Br
peter

Hi Holger,
any news on the heatpump version you have.
Do you need some suppor to define the channels?

BR
peter

Hi Peter,
due to a bereavement in our family I can not continue here for a while.
What I can tell you so far is that the exception (“Rounding necessary”) is gone. I think I understood how to adapt the XML file for a different firmware version. Please update your github code, then I can start coding later.

Regards
Holger

my deepest condolences, take your time…

Will keep my git clone updated .
Sooner or later i will create a pull request.
I propose that with the knowledge i have from the Fhem etc. i could add the basic 5.09 and 5.39 channels. e.g. version, time , current measurements

As you can see i added quit a lot of additional channels for advanced parameters.
These once will require more testing.

BR
peter

i always have issues with the git ;-( and as i work on >2 binding i created an own branch for our stiebel binding.
In case you like to contribute please use this link here

BR
peter

after brwosing through this thread I still dont understand
does the binding use

  • ISG fromstiebel? (which? normal ? plus?..)
  • or can bus + tinkering can to serial stuff?

cheers

is connects directy to the serial interface of the heatpump
see here

cool there a ready to use adapter for can bus to usb or rs?
(something in a german online shop maybe?)
or must be soldered?

adatper is describe in link provide
http://robert.penz.name/heat-pump-lwz/

yes I saw that. just thought maybe somebody already offers a ready one to buy.

so probably not and some soldering needed