Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[radiothermostat] Fix JSON thermostat data parsing error #11635

Merged
merged 1 commit into from
Nov 23, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions bundles/org.openhab.binding.radiothermostat/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ The thermostat information that is retrieved is available as these channels:

radiotherm.map:

```text
```
UNDEF_stus=-
NULL_stus=-
-_stus=-
Expand Down Expand Up @@ -117,14 +117,14 @@ NULL_over=-

radiotherm.things:

```java
```
radiothermostat:rtherm:mytherm1 "My 1st floor thermostat" [ hostName="192.168.10.1", refresh=2, logRefresh=10, isCT80=false, disableLogs=false, setpointMode="temporary" ]
radiothermostat:rtherm:mytherm2 "My 2nd floor thermostat" [ hostName="mythermhost2", refresh=1, logRefresh=20, isCT80=true, disableLogs=false, setpointMode="absolute" ]
```

radiotherm.items:

```java
```
Number:Temperature Therm_Temp "Current Temperature [%.1f °F] " <temperature> { channel="radiothermostat:rtherm:mytherm1:temperature" }
// Humidity only supported on CT80
Number Therm_Hum "Current Humidity [%d %%]" <temperature> { channel="radiothermostat:rtherm:mytherm1:humidity" }
Expand Down Expand Up @@ -158,7 +158,7 @@ Switch Therm_mysetting "Send my preferred setting"

radiotherm.sitemap:

```perl
```
sitemap radiotherm label="My Thermostat" {
Frame label="My 1st floor thermostat" {
Text item=Therm_Temp icon="temperature" valuecolor=[>76="orange",>67.5="green",<=67.5="blue"]
Expand Down Expand Up @@ -196,7 +196,7 @@ sitemap radiotherm label="My Thermostat" {

radiotherm.rules:

```java
```
rule "Send my thermostat command"
when
Item Therm_mysetting received command
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ public class RadioThermostatTstatDTO {
private Integer programMode;

@SerializedName("t_heat")
private Integer heatTarget;
private Double heatTarget;

@SerializedName("t_cool")
private Integer coolTarget;
private Double coolTarget;

@SerializedName("override")
private Integer override;
Expand Down Expand Up @@ -86,19 +86,19 @@ public void setProgramMode(Integer programMode) {
this.programMode = programMode;
}

public Integer getHeatTarget() {
public Double getHeatTarget() {
return heatTarget;
}

public void setHeatTarget(Integer heatTarget) {
public void setHeatTarget(Double heatTarget) {
this.heatTarget = heatTarget;
}

public Integer getCoolTarget() {
public Double getCoolTarget() {
return coolTarget;
}

public void setCoolTarget(Integer coolTarget) {
public void setCoolTarget(Double coolTarget) {
this.coolTarget = coolTarget;
}

Expand Down Expand Up @@ -129,9 +129,9 @@ public Integer getFanStatus() {
*/
public Integer getSetpoint() {
if (mode == 1) {
return heatTarget;
return heatTarget.intValue();
} else if (mode == 2) {
return coolTarget;
return coolTarget.intValue();
} else {
return 0;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,8 @@ private void startAutomaticLogRefresh() {
};

logRefreshJob = null;
this.logRefreshJob = scheduler.scheduleWithFixedDelay(runnable, 1, logRefreshPeriod, TimeUnit.MINUTES);
this.logRefreshJob = scheduler.scheduleWithFixedDelay(runnable, (!this.clockSync ? 1 : 2), logRefreshPeriod,
TimeUnit.MINUTES);
}
}

Expand Down Expand Up @@ -289,8 +290,8 @@ public void handleCommand(ChannelUID channelUID, Command command) {
// set the new operating mode, reset everything else,
// because refreshing the tstat data below is really slow.
rthermData.getThermostatData().setMode(cmdInt);
rthermData.getThermostatData().setHeatTarget(0);
rthermData.getThermostatData().setCoolTarget(0);
rthermData.getThermostatData().setHeatTarget(Double.valueOf(0));
rthermData.getThermostatData().setCoolTarget(Double.valueOf(0));
updateChannel(SET_POINT, rthermData);
rthermData.getThermostatData().setHold(0);
updateChannel(HOLD, rthermData);
Expand Down Expand Up @@ -323,10 +324,10 @@ public void handleCommand(ChannelUID channelUID, Command command) {
String cmdKey = null;
if (rthermData.getThermostatData().getMode() == 1) {
cmdKey = this.setpointCmdKeyPrefix + "heat";
rthermData.getThermostatData().setHeatTarget(cmdInt);
rthermData.getThermostatData().setHeatTarget(Double.valueOf(cmdInt));
} else if (rthermData.getThermostatData().getMode() == 2) {
cmdKey = this.setpointCmdKeyPrefix + "cool";
rthermData.getThermostatData().setCoolTarget(cmdInt);
rthermData.getThermostatData().setCoolTarget(Double.valueOf(cmdInt));
} else {
// don't do anything if we are not in heat or cool mode
break;
Expand Down