OpenHab 2 and Stiebel Eltron

Here a short comparison how to read the parse tables in the FHEM code and in the OH2 binding

This is a typical parsing definition in FHEM for request byte 17

“17pxx206” => [["p01RoomTempDay: “, 4, 4, “hex”, 10], [” p02RoomTempNight: “, 8, 4, “hex”, 10],
[” p03RoomTempStandby: “, 12, 4, “hex”, 10], [” p04DHWsetTempDay: “, 16, 4, “hex”, 10],
[” p05DHWsetTempNight: “, 20, 4, “hex”, 10], [” p06DHWsetTempStandby: “, 24, 4, “hex”, 10],
[” p07FanStageDay: “, 28, 2, “hex”, 1], [” p08FanStageNight: “, 30, 2, “hex”, 1],
[” p09FanStageStandby: “, 32, 2, “hex”, 1], [” p10HCTempManual: “, 34, 4, “hex”, 10],
[” p11DHWsetTempManual: “, 38, 4, “hex”, 10], [” p12FanStageManual: ", 42, 2, “hex”, 1],

This is a parse definition in OH2 for request byte 17

<record channelid="p01RoomTemperatureStandardMode" requestByte="17" dataType="Settings" position="4" length="2"
	scale="0.1" bitPosition="0" min="10" max="30" step="0.1"></record>
<record channelid="p02RoomTemperatureSetbackMode" requestByte="17" dataType="Settings" position="6" length="2"
	scale="0.1" bitPosition="0" min="10" max="30" step="0.1"></record>
<record channelid="p03RoomTemperatureStandby" requestByte="17" dataType="Settings" position="8" length="2"
	scale="0.1" bitPosition="0" min="10" max="30" step="0.1"></record>
<record channelid="p04DHWTemperatureStandardMode" requestByte="17" dataType="Settings" position="10" length="2"
	scale="0.1" bitPosition="0" min="10" max="55" step="0.1"></record>
<record channelid="p05DHWTemperaturSetbackMode" requestByte="17" dataType="Settings" position="12" length="2"
	scale="0.1" bitPosition="0" min="10" max="55" step="0.1"></record>
<record channelid="p06DHWTemperatureStandby" requestByte="17" dataType="Settings" position="14" length="2"
	scale="0.1" bitPosition="0" min="10" max="55" step="0.1"></record>
<record channelid="p07FanStageStandardMode" requestByte="17" dataType="Settings" position="16" length="1"
	scale="1.0" bitPosition="0" min="0" max="3" step="1.0"></record>
<record channelid="p08FanStageSetbackMode" requestByte="17" dataType="Settings" position="17" length="1"
	scale="1.0" bitPosition="0" min="0" max="3" step="1.0"></record>
<record channelid="p09FanStageStandby" requestByte="17" dataType="Settings" position="18" length="1" scale="1.0"
	bitPosition="0" min="0" max="3" step="1.0"></record>
<record channelid="p10HeatingCircuitTemperatureManual" requestByte="17" dataType="Settings" position="19"
	length="2" scale="0.1" bitPosition="0" min="10" max="65" step="0.1"></record>
<record channelid="p11DHWTemperatureManual" requestByte="17" dataType="Settings" position="21" length="2"
	scale="0.1" bitPosition="0" min="10" max="65" step="0.1"></record>
<record channelid="p12FanStageManual" requestByte="17" dataType="Settings" position="23" length="1" scale="1.0"
	bitPosition="0" min="0" max="3" step="1.0"></record>

["p01RoomTempDay: ", 4, 4, “hex”, 10]

p01RoomTempDay : is equivalent to the channelid and must be unique in the XML
4 (1st): position of byte in the responds of the heatpump,
4 (2nd): count in char and the OH2 in bytes. in FHEM 1 byte is represented a 2 characters, that why in OH binding is half , length is 2 bytes
hex: conversion of the bytes in FHEM , this is currently not necessary in the OH 2
10: is the the divider of the decoded value, in OH2 this is the scale → 0.1 as multipliers

i hope that helps to map these parsing rules to ours

cheers