diff --git a/docs/ServiceList.md b/docs/ServiceList.md
index 2fd83d0..69b9aea 100644
--- a/docs/ServiceList.md
+++ b/docs/ServiceList.md
@@ -31,11 +31,12 @@ The pre-defined constant expressions for enumerated Characteristics are in names
+## Mandatory Services
### AccessoryInformation (3E)
- Required Identification Information. For each Accessory in a HomeSpan device this must be included as the first Service.
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
Identify (14) :small_blue_diamond:
| bool | PW | 1 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
Name (23)
| string | PR | - | - | "unnamed" |
FirmwareRevision (52)
| string | PR+EV | - | - | "1.0.0" |
Manufacturer (20)
| string | PR | - | - | "HomeSpan" |
Model (21)
| string | PR | - | - | "HomeSpan-ESP32" |
HardwareRevision (53)
| string | PR | - | - | "1.0.0" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
BatteryLevel (68) :small_blue_diamond:
| uint8 | PR+EV | 0 | 100 | 100 |
ChargingState (8F) :small_blue_diamond:
| uint8 | PR+EV | 0 | 2 |
|
StatusLowBattery (79) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
On (25) :small_blue_diamond:
| bool | PR+PW+EV | 0 | 1 |
|
Brightness (8)
| int | PR+PW+EV | 0 | 100 | 0 |
Hue (13)
| float | PR+PW+EV | 0 | 360 | 0 |
Saturation (2F)
| float | PR+PW+EV | 0 | 100 | 0 |
ColorTemperature (CE)
| uint32 | PR+PW+EV | 140 | 500 | 200 |
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
On (25) :small_blue_diamond:
| bool | PR+PW+EV | 0 | 1 |
|
OutletInUse (26) :small_blue_diamond:
| bool | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
ProgrammableSwitchEvent (73) :small_blue_diamond:
| uint8 | PR+EV+NV | 0 | 2 |
|
ServiceLabelIndex (CB)
| uint8 | PR | 1 | 255 | 1 |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
On (25) :small_blue_diamond:
| bool | PR+PW+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
Active (B0) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
CurrentAirPurifierState (A9) :small_blue_diamond:
| uint8 | PR+EV | 0 | 2 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
AirQuality (95) :small_blue_diamond:
| uint8 | PR+EV | 0 | 5 |
|
OzoneDensity (C3)
| float | PR+EV | 0 | 1000 | 0 |
NitrogenDioxideDensity (C4)
| float | PR+EV | 0 | 1000 | 0 |
SulphurDioxideDensity (C5)
| float | PR+EV | 0 | 1000 | 0 |
PM25Density (C6)
| float | PR+EV | 0 | 1000 | 0 |
PM10Density (C7)
| float | PR+EV | 0 | 1000 | 0 |
VOCDensity (C8)
| float | PR+EV | 0 | 1000 | 0 |
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
BatteryLevel (68) :small_blue_diamond:
| uint8 | PR+EV | 0 | 100 | 100 |
ChargingState (8F) :small_blue_diamond:
| uint8 | PR+EV | 0 | 2 |
|
StatusLowBattery (79) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CarbonDioxideDetected (92) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
CarbonDioxideLevel (93)
| float | PR+EV | 0 | 100000 | 0 |
CarbonDioxidePeakLevel (94)
| float | PR+EV | 0 | 100000 | 0 |
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CarbonMonoxideDetected (69) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
CarbonMonoxideLevel (90)
| float | PR+EV | 0 | 100 | 0 |
CarbonMonoxidePeakLevel (91)
| float | PR+EV | 0 | 100 | 0 |
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
ContactSensorState (6A) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CurrentPosition (6D) :small_blue_diamond:
| uint8 | PR+EV | 0 | 100 | 0 |
TargetPosition (7C) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 100 | 0 |
ObstructionDetected (24)
| bool | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
ProgrammableSwitchEvent (73) :small_blue_diamond:
| uint8 | PR+EV+NV | 0 | 2 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
Active (B0) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
CurrentFanState (AF)
| uint8 | PR+EV | 0 | 2 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
Active (B0) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
FilterChangeIndication (AC) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
FilterLifeLevel (AB)
| float | PR+EV | 0 | 100 | 0 |
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CurrentDoorState (E) :small_blue_diamond:
| uint8 | PR+EV | 0 | 4 |
|
TargetDoorState (32) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
ObstructionDetected (24) :small_blue_diamond:
| bool | PR+EV | 0 | 1 |
|
LockCurrentState (1D)
| uint8 | PR+EV | 0 | 3 |
|
LockTargetState (1E)
| uint8 | PW+PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
Version (37) :small_blue_diamond:
| string | PR | - | - | "1.0.0" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
Active (B0) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
CurrentTemperature (11) :small_blue_diamond:
| float | PR+EV | 0 | 100 | 0 |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
Active (B0) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
CurrentRelativeHumidity (10) :small_blue_diamond:
| float | PR+EV | 0 | 100 | 0 |
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CurrentRelativeHumidity (10) :small_blue_diamond:
| float | PR+EV | 0 | 100 | 0 |
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
Identifier (E6) :small_blue_diamond:
| uint32 | PR | 0 | 255 | 0 |
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
IsConfigured (D6)
| uint8 | PR+EV | 0 | 1 |
|
CurrentVisibilityState (135)
| uint8 | PR+EV | 0 | 1 |
|
TargetVisibilityState (134)
| uint8 | PW+PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
Active (B0) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
ProgramMode (D1) :small_blue_diamond:
| uint8 | PR+EV | 0 | 2 |
|
InUse (D2) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
RemainingDuration (D4)
| uint32 | PR+EV | 0 | 3600 | 60 |
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
LeakDetected (70) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
On (25) :small_blue_diamond:
| bool | PR+PW+EV | 0 | 1 |
|
Brightness (8)
| int | PR+PW+EV | 0 | 100 | 0 |
Hue (13)
| float | PR+PW+EV | 0 | 360 | 0 |
Saturation (2F)
| float | PR+PW+EV | 0 | 100 | 0 |
ColorTemperature (CE)
| uint32 | PR+PW+EV | 140 | 500 | 200 |
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CurrentAmbientLightLevel (6B) :small_blue_diamond:
| float | PR+EV | 0.0001 | 100000 | 1 |
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
LockCurrentState (1D) :small_blue_diamond:
| uint8 | PR+EV | 0 | 3 |
|
LockTargetState (1E) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
Mute (11A) :small_blue_diamond:
| bool | PW+PR+EV | 0 | 1 |
|
Volume (119)
| uint8 | PW+PR+EV | 0 | 100 | 0 |
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
MotionDetected (22) :small_blue_diamond:
| bool | PR+EV | 0 | 1 |
|
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
OccupancyDetected (71) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
On (25) :small_blue_diamond:
| bool | PR+PW+EV | 0 | 1 |
|
OutletInUse (26) :small_blue_diamond:
| bool | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
SecuritySystemCurrentState (66) :small_blue_diamond:
| uint8 | PR+EV | 0 | 4 |
|
SecuritySystemTargetState (67) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 3 |
|
SecuritySystemAlarmType (8E)
| uint8 | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
ServiceLabelNamespace (CD) :small_blue_diamond:
| uint8 | PR | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CurrentSlatState (AA) :small_blue_diamond:
| uint8 | PR+EV | 0 | 2 |
|
SlatType (C0) :small_blue_diamond:
| uint8 | PR | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
SmokeDetected (76) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
Mute (11A) :small_blue_diamond:
| bool | PW+PR+EV | 0 | 1 |
|
Volume (119)
| uint8 | PW+PR+EV | 0 | 100 | 0 |
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
ProgrammableSwitchEvent (73) :small_blue_diamond:
| uint8 | PR+EV+NV | 0 | 2 |
|
ServiceLabelIndex (CB)
| uint8 | PR | 1 | 255 | 1 |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
On (25) :small_blue_diamond:
| bool | PR+PW+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
Active (B0) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
ActiveIdentifier (E7)
| uint32 | PW+PR+EV | 0 | 255 | 0 |
RemoteKey (E1)
| uint8 | PW | 4 | 15 |
|
PowerModeSelection (DF)
| uint8 | PW | 0 | 0 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
VolumeControlType (E9) :small_blue_diamond:
| uint8 | PR+EV | 0 | 3 |
|
VolumeSelector (EA) :small_blue_diamond:
| uint8 | PW | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CurrentTemperature (11) :small_blue_diamond:
| float | PR+EV | 0 | 100 | 0 |
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CurrentHeatingCoolingState (F) :small_blue_diamond:
| uint8 | PR+EV | 0 | 2 |
|
TargetHeatingCoolingState (33) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 3 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
AirQuality (95) :small_blue_diamond:
| uint8 | PR+EV | 0 | 5 |
|
OzoneDensity (C3)
| float | PR+EV | 0 | 1000 | 0 |
NitrogenDioxideDensity (C4)
| float | PR+EV | 0 | 1000 | 0 |
SulphurDioxideDensity (C5)
| float | PR+EV | 0 | 1000 | 0 |
PM25Density (C6)
| float | PR+EV | 0 | 1000 | 0 |
PM10Density (C7)
| float | PR+EV | 0 | 1000 | 0 |
VOCDensity (C8)
| float | PR+EV | 0 | 1000 | 0 |
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CarbonDioxideDetected (92) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
CarbonDioxideLevel (93)
| float | PR+EV | 0 | 100000 | 0 |
CarbonDioxidePeakLevel (94)
| float | PR+EV | 0 | 100000 | 0 |
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CarbonMonoxideDetected (69) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
CarbonMonoxideLevel (90)
| float | PR+EV | 0 | 100 | 0 |
CarbonMonoxidePeakLevel (91)
| float | PR+EV | 0 | 100 | 0 |
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
ContactSensorState (6A) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CurrentRelativeHumidity (10) :small_blue_diamond:
| float | PR+EV | 0 | 100 | 0 |
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
LeakDetected (70) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CurrentAmbientLightLevel (6B) :small_blue_diamond:
| float | PR+EV | 0.0001 | 100000 | 1 |
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
MotionDetected (22) :small_blue_diamond:
| bool | PR+EV | 0 | 1 |
|
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
OccupancyDetected (71) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
SmokeDetected (76) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CurrentTemperature (11) :small_blue_diamond:
| float | PR+EV | 0 | 100 | 0 |
StatusActive (75)
| bool | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
StatusLowBattery (79)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CurrentPosition (6D) :small_blue_diamond:
| uint8 | PR+EV | 0 | 100 | 0 |
TargetPosition (7C) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 100 | 0 |
ObstructionDetected (24)
| bool | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
ProgrammableSwitchEvent (73) :small_blue_diamond:
| uint8 | PR+EV+NV | 0 | 2 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CurrentDoorState (E) :small_blue_diamond:
| uint8 | PR+EV | 0 | 4 |
|
TargetDoorState (32) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
ObstructionDetected (24) :small_blue_diamond:
| bool | PR+EV | 0 | 1 |
|
LockCurrentState (1D)
| uint8 | PR+EV | 0 | 3 |
|
LockTargetState (1E)
| uint8 | PW+PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
LockCurrentState (1D) :small_blue_diamond:
| uint8 | PR+EV | 0 | 3 |
|
LockTargetState (1E) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CurrentPosition (6D) :small_blue_diamond:
| uint8 | PR+EV | 0 | 100 | 0 |
TargetPosition (7C) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 100 | 0 |
ObstructionDetected (24)
| bool | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
TargetPosition (7C) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 100 | 0 |
CurrentPosition (6D) :small_blue_diamond:
| uint8 | PR+EV | 0 | 100 | 0 |
CurrentHorizontalTiltAngle (6C)
| int | PR+EV | -90 | 90 | 0 |
TargetHorizontalTiltAngle (7B)
| int | PW+PR+EV | -90 | 90 | 0 |
CurrentVerticalTiltAngle (6E)
| int | PR+EV | -90 | 90 | 0 |
TargetVerticalTiltAngle (7D)
| int | PW+PR+EV | -90 | 90 | 0 |
ObstructionDetected (24)
| bool | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
Active (B0) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
Active (B0) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
ProgramMode (D1) :small_blue_diamond:
| uint8 | PR+EV | 0 | 2 |
|
InUse (D2) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
RemainingDuration (D4)
| uint32 | PR+EV | 0 | 3600 | 60 |
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
Active (B0) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
InUse (D2) :small_blue_diamond:
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
CurrentPosition (6D) :small_blue_diamond:
| uint8 | PR+EV | 0 | 100 | 0 |
TargetPosition (7C) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 100 | 0 |
ObstructionDetected (24)
| bool | PR+EV | 0 | 1 |
|
SecuritySystemCurrentState (66) :small_blue_diamond:
| uint8 | PR+EV | 0 | 4 |
|
SecuritySystemTargetState (67) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 3 |
|
SecuritySystemAlarmType (8E)
| uint8 | PR+EV | 0 | 1 |
|
StatusFault (77)
| uint8 | PR+EV | 0 | 1 |
|
StatusTampered (7A)
| uint8 | PR+EV | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
TargetPosition (7C) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 100 | 0 |
CurrentPosition (6D) :small_blue_diamond:
| uint8 | PR+EV | 0 | 100 | 0 |
CurrentHorizontalTiltAngle (6C)
| int | PR+EV | -90 | 90 | 0 |
TargetHorizontalTiltAngle (7B)
| int | PW+PR+EV | -90 | 90 | 0 |
CurrentVerticalTiltAngle (6E)
| int | PR+EV | -90 | 90 | 0 |
TargetVerticalTiltAngle (7D)
| int | PW+PR+EV | -90 | 90 | 0 |
ObstructionDetected (24)
| bool | PR+EV | 0 | 1 |
|
Identifier (E6) :small_blue_diamond:
| uint32 | PR | 0 | 255 | 0 |
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
IsConfigured (D6)
| uint8 | PR+EV | 0 | 1 |
|
CurrentVisibilityState (135)
| uint8 | PR+EV | 0 | 1 |
|
TargetVisibilityState (134)
| uint8 | PW+PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
Active (B0) :small_blue_diamond:
| uint8 | PW+PR+EV | 0 | 1 |
|
ActiveIdentifier (E7)
| uint32 | PW+PR+EV | 0 | 255 | 0 |
RemoteKey (E1)
| uint8 | PW | 4 | 15 |
|
PowerModeSelection (DF)
| uint8 | PW | 0 | 0 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
VolumeControlType (E9) :small_blue_diamond:
| uint8 | PR+EV | 0 | 3 |
|
VolumeSelector (EA) :small_blue_diamond:
| uint8 | PW | 0 | 1 |
|
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|---|---|---|---|---|
ServiceLabelNamespace (CD) :small_blue_diamond:
| uint8 | PR | 0 | 1 |
|
Version (37) :small_blue_diamond:
| string | PR | - | - | "1.0.0" |
Mute (11A) :small_blue_diamond:
| bool | PW+PR+EV | 0 | 1 |
|
Volume (119)
| uint8 | PW+PR+EV | 0 | 100 | 0 |
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
Mute (11A) :small_blue_diamond:
| bool | PW+PR+EV | 0 | 1 |
|
Volume (119)
| uint8 | PW+PR+EV | 0 | 100 | 0 |
ConfiguredName (E3)
| string | PW+PR+EV | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Constants/Defaults |
|---|