]> git.basschouten.com Git - openhab-addons.git/blob
33d9fd0596eb390d223aa2cd8ff1ebb762739041
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2024 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
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
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.emotiva.internal;
14
15 import java.util.HashSet;
16 import java.util.List;
17 import java.util.Set;
18
19 import org.eclipse.jdt.annotation.NonNullByDefault;
20 import org.openhab.core.thing.ThingTypeUID;
21
22 /**
23  * The {@link EmotivaBindingConstants} class defines common constants, which are used across the whole binding.
24  *
25  * @author Espen Fossen - Initial contribution
26  */
27 @NonNullByDefault
28 public class EmotivaBindingConstants {
29
30     public static final String BINDING_ID = "emotiva";
31
32     /** Property name to uniquely identify (discovered) things. */
33     static final String UNIQUE_PROPERTY_NAME = "ip4Address";
34
35     /** Default port used to discover Emotiva devices. */
36     static final int DEFAULT_PING_PORT = 7000;
37
38     /** Default port used to receive transponder (discovered) Emotiva devices. */
39     static final int DEFAULT_TRANSPONDER_PORT = 7001;
40
41     /** Default timeout in milliseconds for sending UDP packets. */
42     static final int DEFAULT_UDP_SENDING_TIMEOUT = 1000;
43
44     /** Number of connection attempts, set OFFLINE if no success and a retry job is then started. */
45     static final int DEFAULT_CONNECTION_RETRIES = 3;
46
47     /** Connection retry interval in minutes */
48     static final int DEFAULT_RETRY_INTERVAL_MINUTES = 2;
49
50     /**
51      * Default Emotiva device keep alive in milliseconds. {@link org.openhab.binding.emotiva.internal.dto.ControlDTO}
52      */
53     static final int DEFAULT_KEEP_ALIVE_IN_MILLISECONDS = 7500;
54
55     /** State name for storing keepAlive timestamp messages */
56     public static final String LAST_SEEN_STATE_NAME = "no-channel#last-seen";
57
58     /**
59      * Default Emotiva device considered list in milliseconds.
60      * {@link org.openhab.binding.emotiva.internal.dto.ControlDTO}
61      */
62     static final int DEFAULT_KEEP_ALIVE_CONSIDERED_LOST_IN_MILLISECONDS = 30000;
63
64     /** Default Emotiva control message value **/
65     public static final String DEFAULT_CONTROL_MESSAGE_SET_DEFAULT_VALUE = "0";
66
67     /** Default value for ack property in Emotiva control messages **/
68     public static final String DEFAULT_CONTROL_ACK_VALUE = "yes";
69
70     /** Default discovery timeout in seconds **/
71     public static final int DISCOVERY_TIMEOUT_SECONDS = 5;
72
73     /** Default discovery broadcast address **/
74     public static final String DISCOVERY_BROADCAST_ADDRESS = "255.255.255.255";
75
76     /** List of all Thing Type UIDs **/
77     static final ThingTypeUID THING_PROCESSOR = new ThingTypeUID(BINDING_ID, "processor");
78
79     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = new HashSet<>(List.of(THING_PROCESSOR));
80
81     /** Default values for Emotiva channels **/
82     public static final String DEFAULT_EMOTIVA_PROTOCOL_VERSION = "2.0";
83     public static final int DEFAULT_VOLUME_MIN_DECIBEL = -96;
84     public static final int DEFAULT_VOLUME_MAX_DECIBEL = 15;
85     public static final int DEFAULT_TRIM_MIN_DECIBEL = -12;
86     public static final int DEFAULT_TRIM_MAX_DECIBEL = 12;
87     public static final String MAP_SOURCES_MAIN_ZONE = "sources";
88     public static final String MAP_SOURCES_ZONE_2 = "zone2-sources";
89
90     /** Miscellaneous Constants **/
91     public static final int PROTOCOL_V3_LEVEL_MULTIPLIER = 2;
92     public static final String TRIM_SET_COMMAND_SUFFIX = "_trim_set";
93     static final String MENU_PANEL_CHECKBOX_ON = "on";
94     static final String MENU_PANEL_HIGHLIGHTED = "true";
95     static final String EMOTIVA_SOURCE_COMMAND_PREFIX = "source_";
96
97     /** Emotiva Protocol V1 channels **/
98     public static final String CHANNEL_STANDBY = "general#standby";
99     public static final String CHANNEL_MAIN_ZONE_POWER = "main-zone#power";
100     public static final String CHANNEL_SOURCE = "main-zone#source";
101     public static final String CHANNEL_MENU = "general#menu";
102     public static final String CHANNEL_MENU_CONTROL = "general#menu-control";
103     public static final String CHANNEL_MENU_UP = "general#up";
104     public static final String CHANNEL_MENU_DOWN = "general#down";
105     public static final String CHANNEL_MENU_LEFT = "general#left";
106     public static final String CHANNEL_MENU_RIGHT = "general#right";
107     public static final String CHANNEL_MENU_ENTER = "general#enter";
108     public static final String CHANNEL_MUTE = "main-zone#mute";
109     public static final String CHANNEL_DIM = "general#dim";
110     public static final String CHANNEL_MODE = "general#mode";
111     public static final String CHANNEL_CENTER = "general#center";
112     public static final String CHANNEL_SUBWOOFER = "general#subwoofer";
113     public static final String CHANNEL_SURROUND = "general#surround";
114     public static final String CHANNEL_BACK = "general#back";
115     public static final String CHANNEL_MODE_SURROUND = "general#mode-surround";
116     public static final String CHANNEL_SPEAKER_PRESET = "general#speaker-preset";
117     public static final String CHANNEL_MAIN_VOLUME = "main-zone#volume";
118     public static final String CHANNEL_MAIN_VOLUME_DB = "main-zone#volume_db";
119     public static final String CHANNEL_LOUDNESS = "general#loudness";
120     public static final String CHANNEL_ZONE2_POWER = "zone2#power";
121     public static final String CHANNEL_ZONE2_VOLUME = "zone2#volume";
122     public static final String CHANNEL_ZONE2_VOLUME_DB = "zone2#volume-db";
123     public static final String CHANNEL_ZONE2_MUTE = "zone2#mute";
124     public static final String CHANNEL_ZONE2_SOURCE = "zone2#source";
125     public static final String CHANNEL_FREQUENCY = "general#frequency";
126     public static final String CHANNEL_SEEK = "general#seek";
127     public static final String CHANNEL_CHANNEL = "general#channel";
128     public static final String CHANNEL_TUNER_BAND = "general#tuner-band";
129     public static final String CHANNEL_TUNER_CHANNEL = "general#tuner-channel";
130     public static final String CHANNEL_TUNER_CHANNEL_SELECT = "general#tuner-channel-select";
131     public static final String CHANNEL_TUNER_SIGNAL = "general#tuner-signal";
132     public static final String CHANNEL_TUNER_PROGRAM = "general#tuner-program";
133     public static final String CHANNEL_TUNER_RDS = "general#tuner-RDS";
134     public static final String CHANNEL_AUDIO_INPUT = "general#audio-input";
135     public static final String CHANNEL_AUDIO_BITSTREAM = "general#audio-bitstream";
136     public static final String CHANNEL_AUDIO_BITS = "general#audio-bits";
137     public static final String CHANNEL_VIDEO_INPUT = "general#video-input";
138     public static final String CHANNEL_VIDEO_FORMAT = "general#video-format";
139     public static final String CHANNEL_VIDEO_SPACE = "general#video-space";
140     public static final String CHANNEL_INPUT1 = "general#input-1";
141     public static final String CHANNEL_INPUT2 = "general#input-2";
142     public static final String CHANNEL_INPUT3 = "general#input-3";
143     public static final String CHANNEL_INPUT4 = "general#input-4";
144     public static final String CHANNEL_INPUT5 = "general#input-5";
145     public static final String CHANNEL_INPUT6 = "general#input-6";
146     public static final String CHANNEL_INPUT7 = "general#input-7";
147     public static final String CHANNEL_INPUT8 = "general#input-8";
148     public static final String CHANNEL_MODE_REF_STEREO = "general#mode-ref-stereo";
149     public static final String CHANNEL_SURROUND_MODE = "general#surround-mode";
150     public static final String CHANNEL_MODE_STEREO = "general#mode-stereo";
151     public static final String CHANNEL_MODE_MUSIC = "general#mode-music";
152     public static final String CHANNEL_MODE_MOVIE = "general#mode-movie";
153     public static final String CHANNEL_MODE_DIRECT = "general#mode-direct";
154     public static final String CHANNEL_MODE_DOLBY = "general#mode-dolby";
155     public static final String CHANNEL_MODE_DTS = "general#mode-dts";
156     public static final String CHANNEL_MODE_ALL_STEREO = "general#mode-all-stereo";
157     public static final String CHANNEL_MODE_AUTO = "general#mode-auto";
158
159     /** Emotiva Protocol V2 channels **/
160     public static final String CHANNEL_SELECTED_MODE = "general#selected-mode";
161     public static final String CHANNEL_SELECTED_MOVIE_MUSIC = "general#selected-movie-music";
162
163     /** Emotiva Protocol V3 channels **/
164     public static final String CHANNEL_TREBLE = "general#treble";
165     public static final String CHANNEL_BASS = "general#bass";
166     public static final String CHANNEL_WIDTH = "general#width";
167     public static final String CHANNEL_HEIGHT = "general#height";
168     public static final String CHANNEL_BAR = "general#bar";
169     public static final String CHANNEL_MENU_DISPLAY_PREFIX = "general#menu-display";
170     public static final String CHANNEL_MENU_DISPLAY_HIGHLIGHT = "general#menu-display-highlight";
171 }