Merge branch '68-thermostat-updates-on-sensor-only-are-not-sent' into 'dev'
Resolve "Thermostat updates on sensor only are not sent" Closes #68 See merge request sa4-2020/the-sanmarinoes/backend!108
This commit is contained in:
commit
01541a843e
2 changed files with 9 additions and 20 deletions
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue