/** * Copyright (c) 2014-2017 by the respective copyright holders. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.eclipse.smarthome.binding.digitalstrom.internal.lib.structure.scene.constants; import java.util.HashMap; /** * The {@link SceneEnum} lists all available scenes of digitalSTROM. * * @author Alexander Betker * @version digitalSTROM-API 1.14.5 * * @author Michael Ochel - add new scenes and missing java-doc * @author Mathias Siegele - add new scenes and missing java-doc * * @see http://developer.digitalstrom.org/Architecture/ds-basics.pdf appendix B, page 44 */ public enum SceneEnum implements Scene { /* Area scene commands */ AREA_1_OFF((short) 1), // Set output value to Preset Area 1 Off (Default: Off) AREA_1_ON((short) 6), // Set output value to Preset Area 1 On (Default: On) AREA_1_INCREMENT((short) 43), // Initial command to increment output value AREA_1_DECREMENT((short) 42), // Initial command to decrement output value AREA_1_STOP((short) 52), // Stop output value change at current position AREA_STEPPING_CONTINUE((short) 10), // Next step to increment or decrement AREA_2_OFF((short) 2), // Set output value to Area 2 Off (Default: Off) AREA_2_ON((short) 7), // Set output value to Area 2 On (Default: On) AREA_2_INCREMENT((short) 45), // Initial command to increment output value AREA_2_DECREMENT((short) 44), // Initial command to decrement output value AREA_2_STOP((short) 53), // Stop output value change at current position AREA_3_OFF((short) 3), // Set output value to Area 3 Off (Default: Off) AREA_3_ON((short) 8), // Set output value to Area 3 On (Default: On) AREA_3_INCREMENT((short) 47), // Initial command to increment output value AREA_3_DECREMENT((short) 46), // Initial command to decrement output value AREA_3_STOP((short) 54), // Stop output value change at current position AREA_4_OFF((short) 4), // Set output value to Area 4 Off (Default: Off) AREA_4_ON((short) 9), // Set output value to Area 4 On (Default: On) AREA_4_INCREMENT((short) 49), // Initial command to increment output value AREA_4_DECREMENT((short) 48), // Initial command to decrement output value AREA_4_STOP((short) 55), // Stop output value change at current position /* local pushbutton scene commands */ DEVICE_ON((short) 51), // Local on DEVICE_OFF((short) 50), // Local off DEVICE_STOP((short) 15), // Stop output value change at current position /* special scene commands */ MINIMUM((short) 13), // Minimum output value MAXIMUM((short) 14), // Maximum output value STOP((short) 15), // Stop output value change at current position AUTO_OFF((short) 40), // slowly fade down to off /* stepping scene commands */ INCREMENT((short) 12), // Increment output value (in the basic.pdf it is 11 but its wrong) DECREMENT((short) 11), // Decrement output value (in the basic.pdf it is 12 but its wrong) /* presets */ PRESET_0((short) 0), // Set output value to Preset 0 (Default: Off) PRESET_1((short) 5), // Set output value to Preset 1 (Default: On) PRESET_2((short) 17), // Set output value to Preset 2 PRESET_3((short) 18), // Set output value to Preset 3 PRESET_4((short) 19), // Set output value to Preset 4 PRESET_10((short) 32), // Set output value to Preset 10 (Default: Off) PRESET_11((short) 33), // Set output value to Preset 11 (Default: On) PRESET_12((short) 20), // Set output value to Preset 12 PRESET_13((short) 21), // Set output value to Preset 13 PRESET_14((short) 22), // Set output value to Preset 14 PRESET_20((short) 34), // Set output value to Preset 20 (Default: Off) PRESET_21((short) 35), // Set output value to Preset 21 (Default: On) PRESET_22((short) 23), // Set output value to Preset 22 PRESET_23((short) 24), // Set output value to Preset 23 PRESET_24((short) 25), // Set output value to Preset 24 PRESET_30((short) 36), // Set output value to Preset 30 (Default: Off) PRESET_31((short) 37), // Set output value to Preset 31 (Default: On) PRESET_32((short) 26), // Set output value to Preset 32 PRESET_33((short) 27), // Set output value to Preset 33 PRESET_34((short) 28), // Set output value to Preset 34 PRESET_40((short) 38), // Set output value to Preset 40 (Default: Off) PRESET_41((short) 39), // Set output value to Preset 41 (Default: On) PRESET_42((short) 29), // Set output value to Preset 42 PRESET_43((short) 30), // Set output value to Preset 43 PRESET_44((short) 31), // Set output value to Preset 44 /* group independent scene commands */ DEEP_OFF((short) 68), ENERGY_OVERLOAD((short) 66), STANDBY((short) 67), ZONE_ACTIVE((short) 75), ALARM_SIGNAL((short) 74), AUTO_STANDBY((short) 64), ABSENT((short) 72), PRESENT((short) 71), SLEEPING((short) 69), WAKEUP((short) 70), DOOR_BELL((short) 73), PANIC((short) 65), FIRE((short) 76), ALARM_1((short) 74), ALARM_2((short) 83), ALARM_3((short) 84), ALARM_4((short) 85), WIND((short) 86), NO_WIND((short) 87), RAIN((short) 88), NO_RAIN((short) 89), HAIL((short) 90), NO_HAIL((short) 91); private final short sceneNumber; static final HashMap<Short, SceneEnum> digitalstromScenes = new HashMap<Short, SceneEnum>(); static { for (SceneEnum zs : SceneEnum.values()) { digitalstromScenes.put(zs.getSceneNumber(), zs); } } private SceneEnum(short sceneNumber) { this.sceneNumber = sceneNumber; } /** * Returns the {@link SceneEnum} for the given scene number. * * @param sceneNumber * @return SceneEnum */ public static SceneEnum getScene(short sceneNumber) { return digitalstromScenes.get(sceneNumber); } /** * Returns true, if the given scene number contains in digitalSTROM scenes, otherwise false. * * @param sceneNumber * @return true, if contains otherwise false */ public static boolean containsScene(Short sceneNumber) { return digitalstromScenes.keySet().contains(sceneNumber); } @Override public short getSceneNumber() { return this.sceneNumber; } }