Fixed thermostat socket updates

This commit is contained in:
Claudio Maggioni (maggicl) 2020-05-03 14:14:24 +02:00
parent e8a3480add
commit aad6cc52ce
2 changed files with 9 additions and 20 deletions

View file

@ -24,14 +24,10 @@ public class Thermostat extends Switchable implements BooleanTriggerable {
computeState();
}
/**
* Computes the new thermostat state, for when the thermostat is on;
*
* @return true if the state changed, false if not;
*/
public boolean computeState() {
/** Computes the new thermostat state, for when the thermostat is on */
public void computeState() {
if (mode == Thermostat.Mode.OFF) {
return false;
return;
}
BigDecimal measured = this.getMeasuredTemperature();
@ -39,23 +35,18 @@ public class Thermostat extends Switchable implements BooleanTriggerable {
if (measured == null) {
this.setMode(Thermostat.Mode.IDLE);
return true;
return;
}
BigDecimal delta = target.subtract(measured);
if (delta.abs().doubleValue() < 0.25) {
if (this.getMode() == Thermostat.Mode.IDLE) return false;
this.setMode(Thermostat.Mode.IDLE);
} else if (delta.signum() > 0) {
if (this.getMode() == Thermostat.Mode.HEATING) return false;
this.setMode(Thermostat.Mode.HEATING);
} else {
if (this.getMode() == Thermostat.Mode.COOLING) return false;
this.setMode(Thermostat.Mode.COOLING);
}
return true;
}
@Override

View file

@ -45,19 +45,17 @@ public class ThermostatService {
return Utils.toList(all);
}
public boolean computeState(Thermostat t) {
public void computeState(Thermostat t) {
populateMeasuredTemperature(t);
return t.computeState();
t.computeState();
}
private void updateState(Thermostat t) {
boolean shouldUpdate = this.computeState(t);
this.computeState(t);
if (shouldUpdate) {
deviceService.saveAsOwner(t, thermostatRepository.findUser(t.getId()).getUsername());
endpoint.queueDeviceUpdate(t, thermostatRepository.findUser(t.getId()));
}
}
public void updateStates() {
Iterable<Thermostat> ts = thermostatRepository.findAll();