Skip to content

Commit

Permalink
Merge pull request openhab#2 from t2000/stibelTecalorThingType
Browse files Browse the repository at this point in the history
Add tecalor thing-type and fix percent channel
  • Loading branch information
kreutpet authored May 20, 2020
2 parents c82ecc3 + c833845 commit 138da65
Show file tree
Hide file tree
Showing 5 changed files with 122 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public class StiebelHeatPumpBindingConstants {
public static final ThingTypeUID THING_TYPE_LWZ539 = new ThingTypeUID(BINDING_ID, "LWZ_THZ303_5_39");
public static final ThingTypeUID THING_TYPE_LWZ739 = new ThingTypeUID(BINDING_ID, "LWZ_THZ303_7_39");
public static final ThingTypeUID THING_TYPE_LWZ759 = new ThingTypeUID(BINDING_ID, "LWZ_THZ504_7_59");
public static final ThingTypeUID THING_TYPE_THZ55_762 = new ThingTypeUID(BINDING_ID, "THZ55_7_62");
public static final ThingTypeUID THING_TYPE_THZ55_762 = new ThingTypeUID(BINDING_ID, "Tecalor_THZ55_7_62");

// List of important Channel ids
public static final String CHANNELGROUP_VERSION = "channelGroupTypeVersion";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,7 @@ public void initialize() {
heatPumpConfiguration.setRequests(configLocator.getRequests());
}
categorizeHeatPumpConfiguration();
updateRefreshRequests();

this.config = getConfigAs(StiebelHeatPumpConfiguration.class);
if (!validateConfiguration(config)) {
Expand Down Expand Up @@ -412,7 +413,6 @@ private void getInitialHeatPumpSettings() {

updateStatus(ThingStatus.ONLINE);
startTimeRefresh();
updateRefreshRequests();
startAutomaticRefresh();
}

Expand Down Expand Up @@ -549,19 +549,20 @@ private boolean categorizeHeatPumpConfiguration() {

private void updateRefreshRequests() {
for (Channel channel : getThing().getChannels()) {
if (this.isLinked(channel.getUID())) {
ChannelUID channelUID = channel.getUID();
String[] parts = channelUID.getId()
.split(Pattern.quote(StiebelHeatPumpBindingConstants.CHANNELGROUPSEPERATOR));
String channelId = parts[parts.length - 1];
Request request = heatPumpConfiguration.getRequestByChannelId(channelId);
if (request != null && !heatPumpRefresh.getRequests().contains(request)) {
heatPumpRefresh.getRequests().add(request);
// there is still a channel link in the thing which will require updates
String requestbyte = String.format("%02X", request.getRequestByte());
logger.info("Request {} added to refresh scheduler.", requestbyte);
}
// TODO: i am not too sure how expensive such a call is and I think this might not be necessary to check
// if (isLinked(channel.getUID())) {
ChannelUID channelUID = channel.getUID();
String[] parts = channelUID.getId()
.split(Pattern.quote(StiebelHeatPumpBindingConstants.CHANNELGROUPSEPERATOR));
String channelId = parts[parts.length - 1];
Request request = heatPumpConfiguration.getRequestByChannelId(channelId);
if (request != null && !heatPumpRefresh.getRequests().contains(request)) {
heatPumpRefresh.getRequests().add(request);
// there is still a channel link in the thing which will require updates
String requestbyte = String.format("%02X", request.getRequestByte());
logger.info("Request {} added to refresh scheduler.", requestbyte);
}
// }
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@
<state pattern="%.1f %unit%" readOnly="true" />
</channel-type>
<channel-type id="speed">
<item-type>Number:Dimensionless:Percent</item-type>
<item-type>Number:Dimensionless</item-type>
<label>Fan speed in %</label>
<state pattern="%d %unit%" readOnly="true" />
<state pattern="%.0f %%" readOnly="true" />
</channel-type>
<channel-type id="hourCounter">
<item-type>Number</item-type>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
xsi:schemaLocation="http://eclipse.org/smarthome/schemas/thing-description/v1.0.0 http://eclipse.org/smarthome/schemas/thing-description-1.0.0.xsd">


<thing-type id="THZ55_7_62">
<thing-type id="Tecalor_THZ55_7_62">
<label>Tecalor heat pump THZ 5.5 7.62</label>
<description>Tecalor heat pump for THZ connecting via serial USB/RS232 interface to firmware version 7.62.
</description>
Expand All @@ -16,7 +16,7 @@
<channel-group id="currentValues" typeId="channelGroupTypeCurrentValues" />
<channel-group id="operationCounters" typeId="channelGroupTypeOperationCounters" />
<channel-group id="nominalValues" typeId="channelGroupTypeNominalValues" />
<channel-group id="tecalorDebug" typeId="tecalorDebugGroup" />
<!-- <channel-group id="tecalorDebug" typeId="tecalorDebugGroup" /> -->
</channel-groups>
<properties>
<property name="vendor">Tecalor</property>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
<?xml version="1.0" ?>
<records>
<record channelid="version" requestByte="FD" dataType="Status" position="4" length="2" scale="0.01"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="weekday" requestByte="FC" dataType="Settings" position="5" length="1" scale="1.0"
bitPosition="0" min="1" max="7" step="1.0"></record>
<record channelid="hours" requestByte="FC" dataType="Settings" position="6" length="1" scale="1.0"
bitPosition="0" min="0" max="23" step="1.0"></record>
<record channelid="minutes" requestByte="FC" dataType="Settings" position="7" length="1" scale="1.0"
bitPosition="0" min="0" max="59" step="1.0"></record>
<record channelid="seconds" requestByte="FC" dataType="Settings" position="8" length="1" scale="1.0"
bitPosition="0" min="0" max="59" step="1.0"></record>
<record channelid="year" requestByte="FC" dataType="Settings" position="9" length="1" scale="1.0"
bitPosition="0" min="0" max="99" step="1.0"></record>
<record channelid="month" requestByte="FC" dataType="Settings" position="11" length="1" scale="1.0"
bitPosition="0" min="1" max="12" step="1.0"></record>
<record channelid="day" requestByte="FC" dataType="Settings" position="12" length="1" scale="1.0"
bitPosition="0" min="1" max="31" step="1.0"></record>
<record channelid="collectorTemperatur" requestByte="FB" dataType="Sensor" position="4" length="2" scale="0.1"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="outsideTemperatur" requestByte="FB" dataType="Sensor" position="6" length="2" scale="0.1"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="flowTemperatur" requestByte="FB" dataType="Sensor" position="8" length="2" scale="0.1"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="returnTemperatur" requestByte="FB" dataType="Sensor" position="10" length="2" scale="0.1"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="hotGasTemperatur" requestByte="FB" dataType="Sensor" position="12" length="2" scale="0.1"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="dHWTemperatur" requestByte="FB" dataType="Sensor" position="14" length="2" scale="0.1"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="flowHC2Temperatur" requestByte="FB" dataType="Sensor" position="16" length="2" scale="0.1"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="insideTemperatur" requestByte="FB" dataType="Sensor" position="18" length="2" scale="0.1"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="evaporatorTemperatur" requestByte="FB" dataType="Sensor" position="20" length="2" scale="0.1"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="condenserTemperature" requestByte="FB" dataType="Sensor" position="22" length="2" scale="0.1"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="extractFanSpeed" requestByte="FB" dataType="Sensor" position="30" length="1" scale="1.0"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="supplyFanSpeed" requestByte="FB" dataType="Sensor" position="31" length="1" scale="1.0"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="exhaustFanSpeed" requestByte="FB" dataType="Sensor" position="32" length="1" scale="1.0"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="filteredOutsideTemperatur" requestByte="FB" dataType="Sensor" position="34" length="2"
scale="0.1" bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="dHWPumpStatus" requestByte="FB" dataType="Sensor" position="24" length="1" scale="1.0"
bitPosition="1" min="0" max="1" step="0.0"></record>
<record channelid="heatingCircuitPumpStatus" requestByte="FB" dataType="Sensor" position="24" length="1"
scale="1.0" bitPosition="2" min="0" max="1" step="0.0"></record>
<record channelid="solarPumpStatus" requestByte="FB" dataType="Sensor" position="24" length="1" scale="1.0"
bitPosition="3" min="0" max="1" step="0.0"></record>
<record channelid="mixerOpen" requestByte="FB" dataType="Sensor" position="24" length="1" scale="1.0"
bitPosition="4" min="0" max="1" step="0.0"></record>
<record channelid="mixerClose" requestByte="FB" dataType="Sensor" position="24" length="1" scale="1.0"
bitPosition="5" min="0" max="1" step="0.0"></record>
<record channelid="heatPipeValve" requestByte="FB" dataType="Sensor" position="24" length="1" scale="1.0"
bitPosition="6" min="0" max="1" step="0.0"></record>
<record channelid="DiverterValve" requestByte="FB" dataType="Sensor" position="24" length="1" scale="1.0"
bitPosition="7" min="0" max="1" step="0.0"></record>
<record channelid="CompressorStatus" requestByte="FB" dataType="Sensor" position="25" length="1" scale="1.0"
bitPosition="4" min="0" max="1" step="0.0"></record>
<record channelid="BoosterStage3" requestByte="FB" dataType="Sensor" position="25" length="1" scale="1.0"
bitPosition="5" min="0" max="1" step="0.0"></record>
<record channelid="BoosterStage2" requestByte="FB" dataType="Sensor" position="25" length="1" scale="1.0"
bitPosition="6" min="0" max="1" step="0.0"></record>
<record channelid="BoosterStage1" requestByte="FB" dataType="Sensor" position="25" length="1" scale="1.0"
bitPosition="7" min="0" max="1" step="0.0"></record>
<record channelid="compressorA" requestByte="09" dataType="Status" position="4" length="2" scale="1.0"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="compressorB" requestByte="09" dataType="Status" position="6" length="2" scale="1.0"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="heatingMode" requestByte="09" dataType="Status" position="8" length="2" scale="1.0"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="dHWMode" requestByte="09" dataType="Status" position="10" length="2" scale="1.0"
bitPosition="0" min="0" max="0" step="0.0"></record>
<record channelid="coolingMode" requestByte="09" dataType="Status" position="12" length="2" scale="1.0"
bitPosition="0" min="0" max="0" step="0.0"></record>
<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>
</records>

0 comments on commit 138da65

Please sign in to comment.