2 * Copyright (c) 2010-2021 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.digitalstrom.internal.lib.structure.devices;
15 import java.util.List;
18 import org.openhab.binding.digitalstrom.internal.lib.config.Config;
19 import org.openhab.binding.digitalstrom.internal.lib.event.types.EventItem;
20 import org.openhab.binding.digitalstrom.internal.lib.structure.devices.deviceparameters.DeviceSceneSpec;
21 import org.openhab.binding.digitalstrom.internal.lib.structure.devices.deviceparameters.DeviceStateUpdate;
22 import org.openhab.binding.digitalstrom.internal.lib.structure.devices.deviceparameters.constants.DeviceBinarayInputEnum;
23 import org.openhab.binding.digitalstrom.internal.lib.structure.devices.deviceparameters.constants.FunctionalColorGroupEnum;
24 import org.openhab.binding.digitalstrom.internal.lib.structure.devices.deviceparameters.constants.OutputModeEnum;
25 import org.openhab.binding.digitalstrom.internal.lib.structure.devices.deviceparameters.constants.SensorEnum;
26 import org.openhab.binding.digitalstrom.internal.lib.structure.devices.deviceparameters.impl.DSID;
27 import org.openhab.binding.digitalstrom.internal.lib.structure.devices.deviceparameters.impl.DeviceBinaryInput;
28 import org.openhab.binding.digitalstrom.internal.lib.structure.devices.deviceparameters.impl.DeviceSensorValue;
29 import org.openhab.binding.digitalstrom.internal.lib.structure.scene.InternalScene;
32 * The {@link Device} represents a digitalSTROM internal stored device.
34 * @author Alexander Betker - Initial contribution
35 * @author Michael Ochel - add methods for ESH, new functionalities and JavaDoc
36 * @author Mathias Siegele - add methods for ESH, new functionalities and JavaDoc
38 public interface Device extends GeneralDeviceInformation {
41 * Returns the id of the dS-Meter in which the device is registered.
48 * Sets the id of the dS-Meter in which the device is registered.
50 * @param meterDSID to set
53 void setMeterDSID(String meterDSID);
56 * Returns the hardware info of this device.
57 * You can see all available hardware info at
58 * http://www.digitalstrom.com/Partner/Support/Techn-Dokumentation/
60 * @return hardware info
65 * Returns the zone id in which this device is in.
72 * Sets the zoneID of this device.
74 * @param zoneID to set
76 void setZoneId(int zoneID);
79 * Returns true, if this device is on, otherwise false.
81 * @return is on (true = on | false = off)
86 * Adds an on command as {@link DeviceStateUpdate}, if the flag is true or off command, if it is false to the list
88 * outstanding commands.
90 * @param flag (true = on | false = off)
92 void setIsOn(boolean flag);
95 * Returns true, if this shade device is open, otherwise false.
97 * @return is on (true = open | false = closed)
102 * Adds an open command as {@link DeviceStateUpdate}, if the flag is true or closed command, if it is false to the
103 * list of outstanding commands.
105 * @param flag (true = open | false = closed)
107 void setIsOpen(boolean flag);
110 * Returns true, if this device is dimmable, otherwise false.
112 * @return is dimmable (true = yes | false = no)
114 boolean isDimmable();
117 * Returns true, if this device is a shade device (grey), otherwise false.
119 * @return is shade (true = yes | false = no)
124 * Returns true, if the device output mode isn't disabled.
126 * @return have output mode (true = yes | false = no)
128 boolean isDeviceWithOutput();
131 * Returns the current functional color group of this device.
132 * For more informations please have a look at {@link FunctionalColorGroupEnum}.
134 * @return current functional color group
136 FunctionalColorGroupEnum getFunctionalColorGroup();
139 * Sets the functional color group of this device.
141 * @param fuctionalColorGroup to set
143 void setFunctionalColorGroup(FunctionalColorGroupEnum fuctionalColorGroup);
146 * Returns the current output mode of this device.
147 * Some devices are able to have different output modes e.g. the device GE-KM200 is able to
148 * be in dimm mode, switch mode or disabled.
149 * For more informations please have a look at {@link OutputModeEnum}.
151 * @return the current output mode of this device
153 OutputModeEnum getOutputMode();
156 * Adds an increase command as {@link DeviceStateUpdate} to the list of outstanding commands.
161 * Adds an decrease command as {@link DeviceStateUpdate} to the list of outstanding commands.
166 * Returns the current slat position of this device.
168 * @return current slat position
170 int getSlatPosition();
173 * Adds an set slat position command as {@link DeviceStateUpdate} with the given slat position to the list of
174 * outstanding commands.
176 * @param slatPosition to set
178 void setSlatPosition(int slatPosition);
181 * Returns the maximal slat position value of this device.
183 * @return maximal slat position value
185 int getMaxSlatPosition();
188 * Returns the minimal slat position value of this device.
190 * @return minimal slat position value
192 int getMinSlatPosition();
195 * Returns the current output value of this device.
196 * This can be the slat position or the brightness of this device.
198 * @return current output value
200 short getOutputValue();
203 * Adds an set output value command as {@link DeviceStateUpdate} with the given output value to the list of
204 * outstanding commands.
206 * @param outputValue to set
208 void setOutputValue(short outputValue);
211 * Returns the maximal output value of this device.
213 * @return maximal output value
215 short getMaxOutputValue();
218 * Returns a list with group id's in which the device is part of.
220 * @return List of group id's
222 List<Short> getGroups();
225 * Adds the given groupID to the group list.
227 * @param groupID to add
229 void addGroup(Short groupID);
232 * Overrides the existing group list with the given new.
234 * @param newGroupList to set
236 void setGroups(List<Short> newGroupList);
239 * Returns the scene output value of this device of the given scene id as {@link Integer} array. The first field is
240 * the output value and the second is the angle value or -1 if no angle value exists.
241 * If the method returns null, this scene id isn't read yet.
243 * @param sceneID of the scene
244 * @return scene output value and scene angle value or null, if it isn't read out yet
246 Integer[] getSceneOutputValue(short sceneID);
249 * Sets the scene output value of this device for the given scene id and scene output value.
251 * @param sceneId to set
252 * @param sceneOutputValue to set
254 void setSceneOutputValue(short sceneId, int sceneOutputValue);
257 * This configuration is very important. The devices can
258 * be configured to not react to some commands (scene calls).
259 * So you can't imply that a device automatically turns on (by default yes,
260 * but if someone configured his own scenes, then maybe not) after a
261 * scene call. This method returns true or false, if the configuration
262 * for this sceneID already has been read
264 * @param sceneId the sceneID
265 * @return true if this device has the configuration for this specific scene
267 boolean containsSceneConfig(short sceneId);
270 * Add the config for this scene. The config has the configuration
271 * for the specific sceneID.
273 * @param sceneId scene call id
274 * @param sceneSpec config for this sceneID
276 void addSceneConfig(short sceneId, DeviceSceneSpec sceneSpec);
279 * Get the config for this scene. The config has the configuration
280 * for the specific sceneID.
282 * @param sceneId scene call id
283 * @return sceneSpec config for this sceneID
285 DeviceSceneSpec getSceneConfig(short sceneId);
288 * Should the device react on this scene call or not .
290 * @param sceneId scene call id
291 * @return true, if this device should react on this sceneID
293 boolean doIgnoreScene(short sceneId);
295 // follow methods added by Michael Ochel and Matthias Siegele
297 * Returns true, if all sensor data are up to date or false if some have to be updated.
299 * @return is up to date (true = yes | false = no)
301 boolean isSensorDataUpToDate();
304 * Sets the priority to refresh the data of the sensors to the given priorities.
305 * They can be never, low, medium or high.
307 * @param powerConsumptionRefreshPriority to set
308 * @param electricMeterRefreshPriority to set
309 * @param energyMeterRefreshPriority to set
311 void setSensorDataRefreshPriority(String powerConsumptionRefreshPriority, String electricMeterRefreshPriority,
312 String energyMeterRefreshPriority);
315 * Returns true, if the device is up to date.
317 * @return digitalSTROM-Device is up to date (true = yes | false = no)
319 boolean isDeviceUpToDate();
322 * Returns the next {@link DeviceStateUpdate} to update the digitalSTROM-Device on the digitalSTROM-Server.
324 * @return DeviceStateUpdate for digitalSTROM-Device
326 DeviceStateUpdate getNextDeviceUpdateState();
329 * Update the internal stored device object.
331 * @param deviceStateUpdate to update
333 void updateInternalDeviceState(DeviceStateUpdate deviceStateUpdate);
336 * Call the given {@link InternalScene} on this {@link Device} and updates it.
338 * @param scene to call
340 void callInternalScene(InternalScene scene);
343 * Undo the given {@link InternalScene} on this {@link Device} and updates it.
345 * @param scene to undo
347 void undoInternalScene(InternalScene scene);
350 * Initial a call scene for the given scene number.
352 * @param sceneNumber to call
354 void callScene(Short sceneNumber);
357 * Returns the current active {@link InternalScene}, otherwise null.
359 * @return active {@link InternalScene} or null
361 InternalScene getAcitiveScene();
364 * Undo the active scene if a scene is active.
369 * Checks the scene configuration for the given scene number and initial a scene configuration reading with the
370 * given priority if no scene configuration exists.
372 * @param sceneNumber to check
373 * @param prio to update
375 void checkSceneConfig(Short sceneNumber, short prio);
378 * Sets the given output mode as new output mode of this {@link Device}.
380 * @param newOutputMode to set
382 void setOutputMode(OutputModeEnum newOutputMode);
385 * Returns a {@link List} of all saved scene-IDs configurations.
387 * @return a {@link List} of all saved scene-IDs
389 List<Short> getSavedScenes();
392 * Initializes a internal device update as call scene for the given scene number.
394 * @param sceneNumber to call
396 void internalCallScene(Short sceneNumber);
399 * Initializes a internal device update as undo scene.
401 void internalUndoScene();
404 * Returns true, if this {@link Device} is a device with a switch output mode.
406 * @return true, if it is a switch otherwise false
411 * Sets the given {@link Config} as new {@link Config}.
413 * @param config to set
415 void setConfig(Config config);
418 * Returns the current angle position of the {@link Device}.
420 * @return current angle position
422 short getAnglePosition();
425 * Adds an set angle value command as {@link DeviceStateUpdate} with the given angle value to the list of
426 * outstanding commands.
428 * @param angle to set
430 void setAnglePosition(int angle);
433 * Sets the scene output value and scene output angle of this device for the given scene id, scene output value and
434 * scene output angle.
436 * @param sceneId to set
437 * @param value to set
438 * @param angle to set
440 void setSceneOutputValue(short sceneId, int value, int angle);
443 * Returns the max angle value of the slat.
445 * @return max slat angle
447 int getMaxSlatAngle();
450 * Returns the min angle value of the slat.
452 * @return min slat angle
454 int getMinSlatAngle();
457 * Returns true, if it is a blind device.
459 * @return is blind (true = yes | false = no
464 * Saves scene configurations from the given sceneProperties in the {@link Device}. <br>
465 * The {@link Map} has to be like the following format:
467 * <li><b>Key:</b> scene[sceneID]</li>
468 * <li><b>Value:</b> {Scene: [sceneID], dontcare: [don't care flag], localPrio: [local prio flag], specialMode:
469 * [special mode flag]}(0..1), {sceneValue: [scene value], sceneAngle: [scene angle]}(0..1))</li>
472 * @param sceneProperties to save
474 void saveConfigSceneSpecificationIntoDevice(Map<String, String> sceneProperties);
477 * Returns the min output value.
479 * @return min output value
481 short getMinOutputValue();
484 * Adds a slat increase command as {@link DeviceStateUpdate} to the list of outstanding commands.
486 void increaseSlatAngle();
489 * Adds a slat decrease command as {@link DeviceStateUpdate} to the list of outstanding commands.
491 void decreaseSlatAngle();
494 * Saves scene configurations from the given sceneProperties in the {@link Device}. <br>
496 * <b>The {@link String} has to be like the following format:</b><br>
497 * {[sceneID] = }(1){Scene: [sceneID], dontcare: [don't care flag], localPrio: [local prio flag], specialMode:
498 * [special mode flag]}(0..1), {sceneValue: [sceneValue]{, sceneAngle: [scene angle]}(0..1)}{\n}(0..1)<br>
500 * e.g. "10 = Scene: PRESET_4, dontcare: false, localPrio: false, specialMode: false, flashMode: false, sceneValue:
503 * @param propertries to save
505 void saveConfigSceneSpecificationIntoDevice(String propertries);
508 * Returns true, if this {@link Device} is a sensor device. That means, that this {@link Device} has no output
510 * ({@link OutputModeEnum#DISABLED}), but climate sensors.
512 * @return true, if it is a sensor device
514 boolean isSensorDevice();
517 * Returns true, if this {@link Device} is a heating device. That means, that the output mode of this {@link Device}
518 * is one of the following modes {@link OutputModeEnum#PWM} or {@link OutputModeEnum#SWITCH} and the
519 * {@link FuncNameAndColorGroupEnum} is {@link FuncNameAndColorGroupEnum#HEATING}.
521 * @return true, if it is a heating device
523 boolean isHeatingDevice();
526 * Sets the refresh priority for the given power sensor as {@link SensorEnum}. <br>
528 * 1. The device must have this sensor type, otherwise the set has no effect.<br>
530 * 2. Valid priorities are:<br>
531 * - {@link Config#REFRESH_PRIORITY_NEVER}<br>
532 * - {@link Config#REFRESH_PRIORITY_LOW}<br>
533 * - {@link Config#REFRESH_PRIORITY_MEDIUM}<br>
534 * - {@link Config#REFRESH_PRIORITY_HIGH}<br>
536 * 3. Valid sensor types are:<br>
537 * - {@link SensorEnum#POWER_CONSUMPTION}<br>
538 * - {@link SensorEnum#OUTPUT_CURRENT}<br>
539 * - {@link SensorEnum#ELECTRIC_METER}<br>
540 * - {@link SensorEnum#ACTIVE_POWER}<br>
542 * @param powerSensorType the power sensor to set
543 * @param refreshPriority the new refresh priority
545 void setSensorDataRefreshPriority(SensorEnum powerSensorType, String refreshPriority);
548 * Returns the refresh priority of the given power sensor type as {@link SensorEnum}. If the sensor type is not
550 * this {@link Device} or it is not a power sensor it will be returned null.
552 * @param powerSensorType of the sensor
553 * @return the refresh priority
555 String getPowerSensorRefreshPriority(SensorEnum powerSensorType);
558 * Returns a {@link List} with all power sensors, which are supported by this {@link Device}.
560 * @return all supported power sensors
562 List<SensorEnum> getPowerSensorTypes();
565 * Returns a {@link List} with all climate sensors, which are supported by this {@link Device}.
567 * @return all supported climate sensors
569 List<SensorEnum> getClimateSensorTypes();
572 * Returns all {@link DeviceSensorValue}'s of this {@link Device}.
574 * @return list of all {@link DeviceSensorValue}'s
576 List<DeviceSensorValue> getDeviceSensorValues();
579 * Sets the given {@link DeviceSensorValue}. That means the given {@link DeviceSensorValue} will be added, if this
580 * type of {@link DeviceSensorValue} does not exist before, otherwise the existing {@link DeviceSensorValue} will be
582 * if the given {@link DeviceSensorValue} is newer.
584 * @param deviceSensorValue the new device sensor value
586 void setDeviceSensorValue(DeviceSensorValue deviceSensorValue);
589 * Returns the {@link DeviceSensorValue} of the given sensor type as {@link SensorEnum} or null, if no
590 * {@link DeviceSensorValue} exists for the given sensor type.
592 * @param sensorType of the sensor
593 * @return the {@link DeviceSensorValue} or null
595 DeviceSensorValue getDeviceSensorValue(SensorEnum sensorType);
598 * Returns the {@link DeviceSensorValue} of the given sensor index as {@link Short} or null, if no
599 * {@link DeviceSensorValue} exists for the given sensor index.
601 * @param sensorIndex of the sensor
602 * @return the {@link DeviceSensorValue} or null
604 DeviceSensorValue getDeviceSensorValue(Short sensorIndex);
607 * Returns the sensor index for the given sensor type as {@link SensorEnum} of the {@link Device} or null, if the
608 * sensor type does not exist. It will be needed to readout the current sensor value of the digitalSTROM device.
610 * @param sensorType of the sensor
611 * @return sensor index for the sensor type
613 Short getSensorIndex(SensorEnum sensorType);
616 * Returns the sensor type as {@link SensorEnum} of the given sensor index or null, if the given sensor type does
619 * @param sensorIndex of the sensor
620 * @return the sensor type or null
622 SensorEnum getSensorType(Short sensorIndex);
625 * Returns the internal digitalSTROM sensor value for the given sensor type as {@link SensorEnum}, if the sensor
626 * type exists and the value is valid. The resolution can be found at {@link SensorEnum}.
628 * @param sensorType of the sensor
629 * @return the internal digitalSTROM sensor value or null
631 Integer getDsSensorValue(SensorEnum sensorType);
634 * Returns the internal digitalSTROM sensor value for the given sensor index as {@link Short}, if the sensor
635 * index exists and the value is valid. The resolution can be found at {@link SensorEnum}.
637 * @param sensorIndex of the sensor
638 * @return the internal digitalSTROM sensor value or null
640 Integer getDsSensorValue(Short sensorIndex);
643 * Returns the float sensor value for the given sensor type as {@link SensorEnum}, if the sensor
644 * type exists and the value is valid. The resolution can be found at {@link SensorEnum}.
646 * @param sensorType of the sensor
647 * @return the float sensor value or null
649 Float getFloatSensorValue(SensorEnum sensorType);
652 * Returns the float sensor value for the given sensor index as {@link Short}, if the sensor
653 * index exists and the value is valid. The resolution can be found at {@link SensorEnum}.
655 * @param sensorIndex of the sensor
656 * @return the float sensor value or null
658 Float getFloatSensorValue(Short sensorIndex);
661 * Sets the float sensor value for a given sensor type as {@link SensorEnum}. If the sensor type does not exist, it
662 * will be returned false.
664 * @param sensorType of the sensor
665 * @param floatSensorValue the new float sensor value
666 * @return true, if it was successful, otherwise false
668 boolean setFloatSensorValue(SensorEnum sensorType, Float floatSensorValue);
671 * Sets the float sensor value for a given sensor index as {@link Short}. If the sensor type does not exist, it
672 * will be returned false.
674 * @param sensorIndex of the sensor
675 * @param floatSensorValue the new float sensor value
676 * @return true, if it was successful, otherwise false
678 boolean setFloatSensorValue(Short sensorIndex, Float floatSensorValue);
681 * Sets the internal digitalSTROM sensor value for a given sensor index as {@link Short}. If the sensor index does
682 * not exist, it will be returned false.
684 * @param sensorIndex of the sensor
685 * @param dSSensorValue the new internal digitalSTROM sensor value
686 * @return true, if it was successful, otherwise false
688 boolean setDsSensorValue(Short sensorIndex, Integer dSSensorValue);
691 * Sets the internal digitalSTROM sensor value for a given sensor type as {@link SensorEnum}. If the sensor type
693 * not exist, it will be returned false.
695 * @param sensorType of the sensor
696 * @param dSSensorValue the new internal digitalSTROM sensor value
697 * @return true, if it was successful, otherwise false
699 boolean setDsSensorValue(SensorEnum sensorType, Integer dSSensorValue);
702 * Sets the internal digitalSTROM and float sensor value for a given sensor index as {@link Short}. If the sensor
703 * index does not exist, it will be returned false.
705 * @param sensorIndex of the sensor
706 * @param dSSensorValue the new internal digitalSTROM sensor value
707 * @param floatSensorValue the new float sensor value
708 * @return true, if it was successful, otherwise false
710 boolean setDsSensorValue(Short sensorIndex, Integer dSSensorValue, Float floatSensorValue);
713 * Sets the internal digitalSTROM and float sensor value for a given sensor type as {@link SensorEnum}. If the
714 * sensor type does not exist, it will be returned false.
716 * @param sensorType of the sensor
717 * @param dSSensorValue the new internal digitalSTROM sensor value
718 * @param floatSensorValue the new float sensor value
719 * @return true, if it was successful, otherwise false
721 boolean setDsSensorValue(SensorEnum sensorType, Integer dSSensorValue, Float floatSensorValue);
724 * Returns true, if this {@link Device} has sensors, otherwise false.
726 * @return true, if device has sensors
728 boolean hasSensors();
731 * Returns true, if this {@link Device} has climate sensors, otherwise false.
733 * @return true, if device has climate sensors
735 boolean hasClimateSensors();
738 * Returns true, if this {@link Device} has power sensors, otherwise false.
740 * @return true, if device has power sensors
742 boolean hasPowerSensors();
745 * Only needed for {@link DeviceConsumptionSensorJob}'s. To set the internal digitalSTROM sensor value please use
746 * {@link #setDsSensorValue(SensorEnum, Integer)}.
748 * @param sensorType of the sensor
749 * @param value new value
751 void setDeviceSensorDsValueBySensorJob(SensorEnum sensorType, Integer value);
754 * Enables the internal sensor echo box for {@link EventNames#DEVICE_SENSOR_VALUE} events.
756 void enableSensorEchoBox();
759 * Disables the internal sensor echo box for {@link EventNames#DEVICE_SENSOR_VALUE} events.
761 void disableSensorEchoBox();
764 * Returns true, if the internal sensor echo box is enabled, otherwise false.
766 * @return true, if the internal sensor echo box is enabled
768 boolean isSensorEchoBoxEnabled();
771 * Sets the {@link DeviceSensorValue} through a {@link EventItem} of the type
772 * {@link EventNames#DEVICE_SENSOR_VALUE}.
774 * @param event of the sensor update
776 void setDeviceSensorByEvent(EventItem event);
779 * Returns true, if the refresh priority of the given power sensor type as {@link SensorEnum} is equals
780 * {@link Config#REFRESH_PRIORITY_NEVER}, otherwise false.
782 * @param powerSensorType of the sensor
783 * @return true, if refresh priority is never
785 boolean checkPowerSensorRefreshPriorityNever(SensorEnum powerSensorType);
788 * Returns true, if the given sensor type as {@link SensorEnum} is supported by this {@link Device}, otherwise
791 * @param sensorType of the sensor
792 * @return true, if the sensor type is supported
794 boolean supportsSensorType(SensorEnum sensorType);
797 * Returns true, if this {@link Device} is a temperature controlled device, otherwise false. That means, that the
798 * output mode is one of the output modes in
799 * {@link OutputModeEnum#outputModeIsTemperationControlled(OutputModeEnum)}.
801 * @return true, if this {@link Device} is a temperature controlled
803 boolean isTemperatureControlledDevice();
806 * Returns true, if this {@link Device} is a binary input device. That means it have no output mode
807 * ({@link OutputModeEnum#DISABLED}), but {@link DeviceBinaryInput}'s.
809 * @return true, if this {@link Device} is a binary input device
811 boolean isBinaryInputDevice();
814 * Returns a {@link List} which contains all currently configured {@link DeviceBinaryInput}'s.
816 * @return list with all configured {@link DeviceBinaryInput}'s
818 List<DeviceBinaryInput> getBinaryInputs();
821 * Returns the {@link DeviceBinaryInput} of the given binary input type as {@link DeviceBinarayInputEnum}} or null,
822 * if the binary input type does not exist.
824 * @param binaryInputType of the {@link DeviceBinaryInput}
825 * @return the {@link DeviceBinaryInput} or null
827 DeviceBinaryInput getBinaryInput(DeviceBinarayInputEnum binaryInputType);
830 * Returns the state of the given binary input type as {@link DeviceBinarayInputEnum}} or null, if the binary input
831 * type does not exist.
833 * @param binaryInputType of the {@link DeviceBinaryInput}
834 * @return state of the given binary input type or null
836 Short getBinaryInputState(DeviceBinarayInputEnum binaryInputType);
839 * Sets the state of an existing {@link DeviceBinaryInput}. If the given {@link DeviceBinarayInputEnum} does not
840 * exist, it will returned false, otherwise true.
842 * @param binaryInputType of the {@link DeviceBinaryInput}
843 * @param newState the new state
844 * @return true, if it was successful, otherwise false
846 boolean setBinaryInputState(DeviceBinarayInputEnum binaryInputType, Short newState);
849 * Sets the given {@link List} of {@link DeviceBinaryInput}'s as supported binary inputs.
851 * @param newBinaryInputs to set
853 void setBinaryInputs(List<DeviceBinaryInput> newBinaryInputs);
856 * Returns true, if the given power sensor type as {@link SensorEnum} is up to date and does not need a refresh,
857 * otherwise it will returned false.
859 * @param powerSensorType of the sensor
860 * @return true, if the power sensor is up to date
862 boolean isPowerSensorUpToDate(SensorEnum powerSensorType);
865 * Returns a {@link List} of all supported sensor types as {@link SensorEnum}.
867 * @return all supported sensor types
869 List<SensorEnum> getSensorTypes();