private void dimmLights() { try { ActionDescriptionType.ActionDescription.Builder actionDescriptionBuilder = getNewActionDescription(ActionAuthorityType.ActionAuthority.getDefaultInstance(), ResourceAllocationType.ResourceAllocation.Initiator.SYSTEM, 1000 * 30, ResourceAllocationType.ResourceAllocation.Policy.FIRST, ResourceAllocationType.ResourceAllocation.Priority.NORMAL, locationRemote, BrightnessState.newBuilder().setBrightness(0.5).build(), UnitTemplateType.UnitTemplate.UnitType.DIMMABLE_LIGHT, ServiceTemplateType.ServiceTemplate.ServiceType.BRIGHTNESS_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 dim lights.", ex); } } }
/** * {@inheritDoc } * * @return {@inheritDoc } * @throws NotAvailableException {@inheritDoc } */ @Override protected BrightnessState getNextServiceState() throws NotAvailableException { return BrightnessState.newBuilder().setBrightnessDataUnit(BrightnessState.DataUnit.PERCENT).setBrightness(RANDOM.nextInt(MAX_BRIGHTNESS)).build(); } }
@Override protected void applyDataUpdate(ColorableLightData.Builder internalBuilder, ServiceType serviceType) { switch (serviceType) { case COLOR_STATE_SERVICE: internalBuilder.getBrightnessStateBuilder().setBrightness(internalBuilder.getColorState().getColor().getHsbColor().getBrightness()); internalBuilder.getPowerStateBuilder().setValue(PowerState.State.ON); break; case BRIGHTNESS_STATE_SERVICE: HSBColor hsb = internalBuilder.getColorState().getColor().getHsbColor().toBuilder().setBrightness(internalBuilder.getBrightnessState().getBrightness()).build(); Color color = Color.newBuilder().setType(Color.Type.HSB).setHsbColor(hsb).build(); internalBuilder.setColorState(internalBuilder.getColorState().toBuilder().setColor(color).build()); if (internalBuilder.getBrightnessState().getBrightness() == 0) { internalBuilder.getPowerStateBuilder().setValue(PowerState.State.OFF); } else { internalBuilder.getPowerStateBuilder().setValue(PowerState.State.ON); } break; } } }
@Override public BrightnessState getBrightnessState(final UnitType unitType) throws NotAvailableException { Collection<BrightnessStateOperationService> brightnessStateOperationServices = getServices(unitType); int serviceNumber = brightnessStateOperationServices.size(); Double average = 0d; long timestamp = 0; for (BrightnessStateOperationService service : brightnessStateOperationServices) { if (!((UnitRemote) service).isDataAvailable()) { serviceNumber--; continue; } average += service.getBrightnessState().getBrightness(); timestamp = Math.max(timestamp, service.getBrightnessState().getTimestamp().getTime()); } average /= serviceNumber; return TimestampProcessor.updateTimestamp(timestamp, BrightnessState.newBuilder().setBrightness(average), TimeUnit.MICROSECONDS, logger).build(); } }
private void brightnessSliderStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_brightnessSliderStateChanged try { notifyActionProcessing(getOperationService().setBrightnessState(BrightnessState.newBuilder().setBrightness((double) brightnessSlider.getValue()).build())); } catch (CouldNotPerformException ex) { ExceptionPrinter.printHistory(new CouldNotPerformException("Could not set brightness value!", ex), logger); } }//GEN-LAST:event_brightnessSliderStateChanged
/** * Transform a number to a brightness state by setting the number as the brightness value. * * @param value the brightness value * @return the corresponding brightness state */ public static BrightnessState transform(final Double value) { BrightnessState.Builder state = BrightnessState.newBuilder(); state.setBrightness(value); return state.build(); }