private void regulateHeater() { previousTemperatureState.clear(); try { for (TemperatureControllerRemote remote : locationRemote.getUnits(UnitType.TEMPERATURE_CONTROLLER, true, Units.TEMPERATURE_CONTROLLER)) { previousTemperatureState.put(remote, remote.getTargetTemperatureState()); } } catch (CouldNotPerformException | InterruptedException ex) { logger.error("Could not get all TemperatureControllerRemotes.", ex); } try { ActionDescriptionType.ActionDescription.Builder actionDescriptionBuilder = getNewActionDescription(ActionAuthorityType.ActionAuthority.getDefaultInstance(), ResourceAllocationType.ResourceAllocation.Initiator.SYSTEM, 1000 * 30, ResourceAllocationType.ResourceAllocation.Policy.FIRST, ResourceAllocationType.ResourceAllocation.Priority.NORMAL, locationRemote, TimestampProcessor.updateTimestampWithCurrentTime(TemperatureState.newBuilder().setTemperature(13.0).build()), UnitType.TEMPERATURE_CONTROLLER, ServiceTemplateType.ServiceTemplate.ServiceType.TARGET_TEMPERATURE_STATE_SERVICE, MultiResourceAllocationStrategyType.MultiResourceAllocationStrategy.Strategy.AT_LEAST_ONE); actionRescheduleHelper.startActionRescheduleing(locationRemote.applyAction(actionDescriptionBuilder.build()).get().toBuilder()); } catch (CouldNotPerformException | InterruptedException | ExecutionException ex) { logger.error("Could not set targetTemperatureState.", ex); } }
private void regulateTemperature() { previousTemperatureState.clear(); try { for (TemperatureControllerRemote remote : locationRemote.getUnits(UnitType.TEMPERATURE_CONTROLLER, true, Units.TEMPERATURE_CONTROLLER)) { previousTemperatureState.put(remote, remote.getTargetTemperatureState()); } } catch (CouldNotPerformException | InterruptedException ex) { logger.error("Could not get all TemperatureControllerRemotes.", ex); } try { ActionDescriptionType.ActionDescription.Builder actionDescriptionBuilder = getNewActionDescription(ActionAuthorityType.ActionAuthority.getDefaultInstance(), ResourceAllocationType.ResourceAllocation.Initiator.SYSTEM, 1000 * 30, ResourceAllocationType.ResourceAllocation.Policy.FIRST, ResourceAllocationType.ResourceAllocation.Priority.NORMAL, locationRemote, TimestampProcessor.updateTimestampWithCurrentTime(TemperatureState.newBuilder().setTemperature(13.0).build()), UnitType.TEMPERATURE_CONTROLLER, ServiceTemplateType.ServiceTemplate.ServiceType.TARGET_TEMPERATURE_STATE_SERVICE, MultiResourceAllocationStrategyType.MultiResourceAllocationStrategy.Strategy.AT_LEAST_ONE); actionRescheduleHelper.startActionRescheduleing(locationRemote.applyAction(actionDescriptionBuilder.build()).get().toBuilder()); } catch (CouldNotPerformException | InterruptedException | ExecutionException ex) { logger.error("Could not set targetTemperatureState.", ex); } }
private void setTargetTemperatureValueTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_setTargetTemperatureValueTextFieldActionPerformed try { double value = Double.parseDouble(setTargetTemperatureValueTextField.getText()); notifyActionProcessing(getOperationService().setTargetTemperatureState(TemperatureState.newBuilder().setTemperature(value).build())); } catch (CouldNotPerformException ex) { ExceptionPrinter.printHistory(new CouldNotPerformException("Could not set target temperature!", ex), logger, LogLevel.ERROR); } }//GEN-LAST:event_setTargetTemperatureValueTextFieldActionPerformed
@Override public TemperatureState getTemperatureState(final UnitType unitType) throws NotAvailableException { Double average = 0d; Collection<TemperatureStateProviderService> temperatureStateProviderServices = getServices(unitType); int amount = temperatureStateProviderServices.size(); long timestamp = 0; for (TemperatureStateProviderService service : temperatureStateProviderServices) { if (!((UnitRemote) service).isDataAvailable()) { amount--; continue; } average += service.getTemperatureState().getTemperature(); timestamp = Math.max(timestamp, service.getTemperatureState().getTimestamp().getTime()); } average /= amount; return TimestampProcessor.updateTimestamp(timestamp, TemperatureState.newBuilder().setTemperature(average), TimeUnit.MICROSECONDS, logger).build(); } }
@Override public TemperatureState getTargetTemperatureState(final UnitType unitType) throws NotAvailableException { Double average = 0d; Collection<TargetTemperatureStateOperationService> targetTemperatureStateOperationServices = getServices(unitType); int amount = targetTemperatureStateOperationServices.size(); long timestamp = 0; for (TargetTemperatureStateOperationService service : targetTemperatureStateOperationServices) { if (!((UnitRemote) service).isDataAvailable()) { amount--; continue; } average += service.getTargetTemperatureState().getTemperature(); timestamp = Math.max(timestamp, service.getTargetTemperatureState().getTimestamp().getTime()); } average /= amount; return TimestampProcessor.updateTimestamp(timestamp, TemperatureState.newBuilder().setTemperature(average), TimeUnit.MICROSECONDS, logger).build(); } }
public static TemperatureState transform(final double state) throws CouldNotTransformException { return TemperatureState.newBuilder().setTemperature(state).setTemperatureDataUnit(TemperatureState.DataUnit.CELSIUS).build(); }
/** * {@inheritDoc } * * @return {@inheritDoc } * @throws NotAvailableException {@inheritDoc } */ @Override protected TemperatureState getNextServiceState() throws NotAvailableException { return TemperatureState.newBuilder().setTemperatureDataUnit(TemperatureState.DataUnit.CELSIUS).setTemperature(getSimulatedTemperature()).build(); } }