/
EControlUse.cs
239 lines (234 loc) · 10.3 KB
/
EControlUse.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
using System;
using HomeSeer.PluginSdk.Devices.Identification;
namespace HomeSeer.PluginSdk.Devices.Controls {
/// <summary>
/// Defines what a <see cref="StatusControl"/> is used for.
/// </summary>
/// <remarks>
/// This is primarily used to improve integrations with 3rd-party systems.
/// It helps determine how a control is used within the context of the owning <see cref="HsFeature"/>.
/// </remarks>
public enum EControlUse {
/// <summary>
/// Default use. The control's use is not defined.
/// </summary>
NotSpecified = 0,
/// <summary>
/// This control is used to turn something on.
/// </summary>
On = 1,
/// <summary>
/// This control is used to turn something off.
/// </summary>
Off = 2,
/// <summary>
/// This control is used to adjust the brightness of a light.
/// </summary>
Dim = 3,
/// <summary>
/// This control is used as an alternative command to turn something on.
/// </summary>
OnAlternate = 4,
/// <summary>
/// This control is used to play media.
/// </summary>
/// <remarks>This is for media devices</remarks>
/// <seealso cref="EMediaFeatureSubType"/>
Play = 5,
/// <summary>
/// This control is used to pause media playback.
/// </summary>
/// <remarks>This is for media devices</remarks>
/// <seealso cref="EMediaFeatureSubType"/>
Pause = 6,
/// <summary>
/// This control is used to stop media playback.
/// </summary>
/// <remarks>This is for media devices</remarks>
/// <seealso cref="EMediaFeatureSubType"/>
Stop = 7,
/// <summary>
/// This control is used to fast-forward media playback.
/// </summary>
/// <remarks>This is for media devices</remarks>
/// <seealso cref="EMediaFeatureSubType"/>
Forward = 8,
/// <summary>
/// This control is used to rewind media playback.
/// </summary>
/// <remarks>This is for media devices</remarks>
/// <seealso cref="EMediaFeatureSubType"/>
Rewind = 9,
/// <summary>
/// This control is used to repeat media playback.
/// </summary>
/// <remarks>This is for media devices</remarks>
/// <seealso cref="EMediaFeatureSubType"/>
Repeat = 10,
/// <summary>
/// This control is used to shuffle the media playback.
/// </summary>
/// <remarks>This is for media devices</remarks>
/// <seealso cref="EMediaFeatureSubType"/>
Shuffle = 11,
/// <summary>
/// This control is used to set the desired temperature when heating.
/// </summary>
/// <remarks>This is for thermostat devices</remarks>
/// <seealso cref="EThermostatControlFeatureSubType"/>
/// <seealso cref="EThermostatControlFeatureSubType.HeatingSetPoint"/>
HeatSetPoint = 12,
/// <summary>
/// This control is used to set the desired temperature when cooling.
/// </summary>
/// <remarks>This is for thermostat devices</remarks>
/// <seealso cref="EThermostatControlFeatureSubType"/>
/// <seealso cref="EThermostatControlFeatureSubType.CoolingSetPoint"/>
CoolSetPoint = 13,
/// <summary>
/// This control is used to set the thermostat operation mode to off.
/// </summary>
/// <remarks>This is for thermostat devices</remarks>
/// <seealso cref="EThermostatControlFeatureSubType"/>
/// <seealso cref="EThermostatControlFeatureSubType.ModeSet"/>
/// <seealso cref="EThermostatControlFeatureSubType.OperatingMode"/>
ThermModeOff = 14,
/// <summary>
/// This control is used to set the thermostat operation mode to heat.
/// </summary>
/// <remarks>This is for thermostat devices</remarks>
/// <seealso cref="EThermostatControlFeatureSubType"/>
/// <seealso cref="EThermostatControlFeatureSubType.ModeSet"/>
/// <seealso cref="EThermostatControlFeatureSubType.OperatingMode"/>
ThermModeHeat = 15,
/// <summary>
/// This control is used to set the thermostat operation mode to cool.
/// </summary>
/// <remarks>This is for thermostat devices</remarks>
/// <seealso cref="EThermostatControlFeatureSubType"/>
/// <seealso cref="EThermostatControlFeatureSubType.ModeSet"/>
/// <seealso cref="EThermostatControlFeatureSubType.OperatingMode"/>
ThermModeCool = 16,
/// <summary>
/// This control is used to set the thermostat operation mode to auto.
/// </summary>
/// <remarks>This is for thermostat devices</remarks>
/// <seealso cref="EThermostatControlFeatureSubType"/>
/// <seealso cref="EThermostatControlFeatureSubType.ModeSet"/>
/// <seealso cref="EThermostatControlFeatureSubType.OperatingMode"/>
ThermModeAuto = 17,
/// <summary>
/// This control is used to lock a door.
/// </summary>
DoorLock = 18,
/// <summary>
/// This control is used to unlock a door.
/// </summary>
DoorUnLock = 19,
/// <summary>
/// This control is used to set the fan mode for a thermostat to auto.
/// </summary>
/// <remarks>This is for thermostat devices</remarks>
/// <seealso cref="EThermostatControlFeatureSubType"/>
/// <seealso cref="EThermostatControlFeatureSubType.FanModeSet"/>
ThermFanAuto = 20,
/// <summary>
/// This control is used to set the fan mode for a thermostat to on.
/// </summary>
/// <remarks>This is for thermostat devices</remarks>
/// <seealso cref="EThermostatControlFeatureSubType"/>
/// <seealso cref="EThermostatControlFeatureSubType.FanModeSet"/>
ThermFanOn = 21,
/// <summary>
/// This control is used to adjust the color of a feature.
/// </summary>
/// <seealso cref="EControlType.ColorPicker"/>
ColorControl = 22,
/// <summary>
/// This control is used to adjust the rate for a fan.
/// </summary>
DimFan = 23,
/// <summary>
/// Used for integrations to represent a status indicating active motion.
/// </summary>
/// <remarks>
/// This is a carry over from the legacy API. It is out of place; as <see cref="EControlUse"/> defines the
/// use of a control and not the use of a status.
/// </remarks>
[Obsolete("This will be moved to a new enum type. Please prepare to change to an EStatusUse type.", false)]
MotionActive = 24,
/// <summary>
/// Used for integrations to represent a status indicating a motion sensor resetting to idle.
/// </summary>
/// <remarks>
/// This is a carry over from the legacy API. It is out of place; as <see cref="EControlUse"/> defines the
/// use of a control and not the use of a status.
/// </remarks>
[Obsolete("This will be moved to a new enum type. Please prepare to change to an EStatusUse type.", false)]
MotionInActive = 25,
/// <summary>
/// Used for integrations to represent a status indicating a contact sensor triggering.
/// </summary>
/// <remarks>
/// This is a carry over from the legacy API. It is out of place; as <see cref="EControlUse"/> defines the
/// use of a control and not the use of a status.
/// </remarks>
[Obsolete("This will be moved to a new enum type. Please prepare to change to an EStatusUse type.", false)]
ContactActive = 26,
/// <summary>
/// Used for integrations to represent a status indicating a contact sensor being reset.
/// </summary>
/// <remarks>
/// This is a carry over from the legacy API. It is out of place; as <see cref="EControlUse"/> defines the
/// use of a control and not the use of a status.
/// </remarks>
[Obsolete("This will be moved to a new enum type. Please prepare to change to an EStatusUse type.", false)]
ContactInActive = 27,
/// <summary>
/// This control is used to mute media playback.
/// </summary>
/// <remarks>This is for media devices</remarks>
/// <seealso cref="EMediaFeatureSubType"/>
Mute = 28,
/// <summary>
/// This control is used to un-mute media playback.
/// </summary>
/// <remarks>This is for media devices</remarks>
/// <seealso cref="EMediaFeatureSubType"/>
UnMute = 29,
/// <summary>
/// This control is used to mute or un-mute media playback.
/// </summary>
/// <remarks>This is for media devices</remarks>
/// <seealso cref="EMediaFeatureSubType"/>
MuteToggle = 30,
/// <summary>
/// This control is used to advance to the next track available for playback.
/// </summary>
/// <remarks>This is for media devices</remarks>
/// <seealso cref="EMediaFeatureSubType"/>
Next = 31,
/// <summary>
/// This control is used to select the previous track for media playback.
/// </summary>
/// <remarks>This is for media devices</remarks>
/// <seealso cref="EMediaFeatureSubType"/>
Previous = 32,
/// <summary>
/// This control is used to adjust the volume of media playback.
/// </summary>
/// <remarks>This is for media devices</remarks>
/// <seealso cref="EMediaFeatureSubType"/>
Volume = 33,
/// <summary>
/// This control is used to increment the value of a feature.
/// </summary>
/// <remarks>This can be used for example for thermostat setpoints or media volume</remarks>
IncrementValue = 34,
/// <summary>
/// This control is used to decrement the value of a feature.
/// </summary>
/// <remarks>This can be used for example for thermostat setpoints or media volume</remarks>
DecrementValue = 35
}
}