| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
Identify (14)
| bool | PW | 0 | 1 |
|
FirmwareRevision (52)
| string | PR+EV | - | - | "1.0.0" |
Manufacturer (20)
| string | PR | - | - | "HomeSpan" |
Model (21)
| string | PR | - | - | "HomeSpan-ESP32" |
Name (23)
| string | PR | - | - | "unnamed" |
| SerialNumber (30) | string | PR | - | - | "HS-12345" |
HardwareRevision (53)
| string | PR | - | - | "1.0.0" |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
Active (B0)
| uint8 | PW+PR+EV | 0 | 1 |
|
CurrentAirPurifierState (A9)
| uint8 | PR+EV | 0 | 2 |
|
| TargetAirPurifierState (A8) | uint8 | PW+PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| RotationSpeed (29) | float | PR+PW+EV | 0 | 100 | 0 |
| SwingMode (B6) | uint8 | PR+EV+PW | 0 | 1 |
|
LockPhysicalControls (A7)
| uint8 | PW+PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
AirQuality (95)
| uint8 | PR+EV | 0 | 5 |
|
Name (23)
| string | PR | - | - | "unnamed" |
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 | 1 |
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
| StatusTampered (7A) | uint8 | PR+EV | 0 | 1 |
|
| StatusLowBattery (79) | uint8 | PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
BatteryLevel (68)
| uint8 | PR+EV | 0 | 100 | 0 |
ChargingState (8F)
| uint8 | PR+EV | 0 | 2 |
|
| StatusLowBattery (79) | uint8 | PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
CarbonDioxideDetected (92)
| uint8 | PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| StatusActive (75) | bool | PR+EV | 0 | 1 | 1 |
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
| StatusTampered (7A) | uint8 | PR+EV | 0 | 1 |
|
| StatusLowBattery (79) | uint8 | PR+EV | 0 | 1 |
|
CarbonDioxideLevel (93)
| float | PR+EV | 0 | 100000 | 0 |
CarbonDioxidePeakLevel (94)
| float | PR+EV | 0 | 100000 | 0 |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
CarbonMonoxideDetected (69)
| uint8 | PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| StatusActive (75) | bool | PR+EV | 0 | 1 | 1 |
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
| StatusTampered (7A) | uint8 | PR+EV | 0 | 1 |
|
| StatusLowBattery (79) | uint8 | PR+EV | 0 | 1 |
|
CarbonMonoxideLevel (90)
| float | PR+EV | 0 | 100 | 0 |
CarbonMonoxidePeakLevel (91)
| float | PR+EV | 0 | 100 | 0 |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
ContactSensorState (6A)
| uint8 | PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| StatusActive (75) | bool | PR+EV | 0 | 1 | 1 |
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
| StatusTampered (7A) | uint8 | PR+EV | 0 | 1 |
|
| StatusLowBattery (79) | uint8 | PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
CurrentPosition (6D)
| uint8 | PR+EV | 0 | 100 | 0 |
| TargetPosition (7C) | uint8 | PW+PR+EV | 0 | 100 | 0 |
Name (23)
| string | PR | - | - | "unnamed" |
ObstructionDetected (24)
| bool | PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
| ProgrammableSwitchEvent (73) | uint8 | PR+EV+NV | 0 | 2 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
Active (B0)
| uint8 | PW+PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
CurrentFanState (AF)
| uint8 | PR+EV | 0 | 2 |
|
| TargetFanState (BF) | uint8 | PW+PR+EV | 0 | 1 |
|
| RotationDirection (28) | int | PR+PW+EV | 0 | 1 |
|
| RotationSpeed (29) | float | PR+PW+EV | 0 | 100 | 0 |
| SwingMode (B6) | uint8 | PR+EV+PW | 0 | 1 |
|
LockPhysicalControls (A7)
| uint8 | PW+PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
Active (B0)
| uint8 | PW+PR+EV | 0 | 1 |
|
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
FilterChangeIndication (AC)
| uint8 | PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
FilterLifeLevel (AB)
| float | PR+EV | 0 | 100 | 0 |
| ResetFilterIndication (AD) | uint8 | PW | 1 | 1 | 0 |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
CurrentDoorState (E)
| uint8 | PR+EV | 0 | 4 |
|
| TargetDoorState (32) | uint8 | PW+PR+EV | 0 | 1 |
|
ObstructionDetected (24)
| bool | PR+EV | 0 | 1 |
|
LockCurrentState (1D)
| uint8 | PR+EV | 0 | 3 |
|
LockTargetState (1E)
| uint8 | PW+PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| Version (37) | string | PR | - | - | "1.0.0" |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
Active (B0)
| uint8 | PW+PR+EV | 0 | 1 |
|
CurrentTemperature (11)
| float | PR+EV | 0 | 100 | 0 |
CurrentHeaterCoolerState (B1)
| uint8 | PR+EV | 0 | 3 |
|
| TargetHeaterCoolerState (B2) | uint8 | PW+PR+EV | 0 | 2 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| RotationSpeed (29) | float | PR+PW+EV | 0 | 100 | 0 |
| TemperatureDisplayUnits (36) | uint8 | PW+PR+EV | 0 | 1 |
|
| SwingMode (B6) | uint8 | PR+EV+PW | 0 | 1 |
|
CoolingThresholdTemperature (D)
| float | PR+PW+EV | 10 | 35 | 10 |
HeatingThresholdTemperature (12)
| float | PR+PW+EV | 0 | 25 | 16 |
LockPhysicalControls (A7)
| uint8 | PW+PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
Active (B0)
| uint8 | PW+PR+EV | 0 | 1 |
|
CurrentRelativeHumidity (10)
| float | PR+EV | 0 | 100 | 0 |
CurrentHumidifierDehumidifierState (B3)
| uint8 | PR+EV | 0 | 3 |
|
| TargetHumidifierDehumidifierState (B4) | uint8 | PW+PR+EV | 0 | 2 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| RelativeHumidityDehumidifierThreshold (C9) | float | PR+PW+EV | 0 | 100 | 50 |
| RelativeHumidityHumidifierThreshold (CA) | float | PR+PW+EV | 0 | 100 | 50 |
| RotationSpeed (29) | float | PR+PW+EV | 0 | 100 | 0 |
| SwingMode (B6) | uint8 | PR+EV+PW | 0 | 1 |
|
| WaterLevel (B5) | float | PR+EV | 0 | 100 | 0 |
LockPhysicalControls (A7)
| uint8 | PW+PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
CurrentRelativeHumidity (10)
| float | PR+EV | 0 | 100 | 0 |
Name (23)
| string | PR | - | - | "unnamed" |
| StatusActive (75) | bool | PR+EV | 0 | 1 | 1 |
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
| StatusTampered (7A) | uint8 | PR+EV | 0 | 1 |
|
| StatusLowBattery (79) | uint8 | PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
| ConfiguredName (E3) | string | PW+PR+EV | - | - | "unnamed" |
IsConfigured (D6)
| uint8 | PR+EV | 0 | 1 |
|
| Identifier (E6) | uint32 | PR | 0 | 255 | 0 |
| CurrentVisibilityState (135) | uint8 | PR+EV | 0 | 1 | 0 |
| TargetVisibilityState (134) | uint8 | PW+PR+EV | 0 | 1 | 0 |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
Active (B0)
| uint8 | PW+PR+EV | 0 | 1 |
|
| ProgramMode (D1) | uint8 | PR+EV | 0 | 2 |
|
InUse (D2)
| uint8 | PR+EV | 0 | 1 |
|
| RemainingDuration (D4) | uint32 | PR+EV | 0 | 3600 | 60 |
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
LeakDetected (70)
| uint8 | PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| StatusActive (75) | bool | PR+EV | 0 | 1 | 1 |
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
| StatusTampered (7A) | uint8 | PR+EV | 0 | 1 |
|
| StatusLowBattery (79) | uint8 | PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
On (25)
| bool | PR+PW+EV | 0 | 1 |
|
Brightness (8)
| int | PR+PW+EV | 0 | 100 | 0 |
Hue (13)
| float | PR+PW+EV | 0 | 360 | 0 |
Name (23)
| string | PR | - | - | "unnamed" |
| Saturation (2F) | float | PR+PW+EV | 0 | 100 | 0 |
ColorTemperature (CE)
| uint32 | PR+PW+EV | 140 | 500 | 200 |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
CurrentAmbientLightLevel (6B)
| float | PR+EV | 0.0001 | 100000 | 1 |
Name (23)
| string | PR | - | - | "unnamed" |
| StatusActive (75) | bool | PR+EV | 0 | 1 | 1 |
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
| StatusTampered (7A) | uint8 | PR+EV | 0 | 1 |
|
| StatusLowBattery (79) | uint8 | PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
LockCurrentState (1D)
| uint8 | PR+EV | 0 | 3 |
|
LockTargetState (1E)
| uint8 | PW+PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
Mute (11A)
| bool | PW+PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| Volume (119) | uint8 | PW+PR+EV | 0 | 100 | 0 |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
MotionDetected (22)
| bool | PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| StatusActive (75) | bool | PR+EV | 0 | 1 | 1 |
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
| StatusTampered (7A) | uint8 | PR+EV | 0 | 1 |
|
| StatusLowBattery (79) | uint8 | PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
OccupancyDetected (71)
| uint8 | PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| StatusActive (75) | bool | PR+EV | 0 | 1 | 1 |
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
| StatusTampered (7A) | uint8 | PR+EV | 0 | 1 |
|
| StatusLowBattery (79) | uint8 | PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
On (25)
| bool | PR+PW+EV | 0 | 1 |
|
OutletInUse (26)
| bool | PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
| SecuritySystemCurrentState (66) | uint8 | PR+EV | 0 | 4 |
|
| SecuritySystemTargetState (67) | uint8 | PW+PR+EV | 0 | 3 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| SecuritySystemAlarmType (8E) | uint8 | PR+EV | 0 | 1 |
|
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
| StatusTampered (7A) | uint8 | PR+EV | 0 | 1 |
|
| ServiceLabelNamespace (CD) | uint8 | PR | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
CurrentSlatState (AA)
| uint8 | PR+EV | 0 | 2 |
|
| SlatType (C0) | uint8 | PR | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| SwingMode (B6) | uint8 | PR+EV+PW | 0 | 1 |
|
CurrentTiltAngle (C1)
| int | PR+EV | -90 | 90 | 0 |
| TargetTiltAngle (C2) | int | PW+PR+EV | -90 | 90 | 0 |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
| SmokeDetected (76) | uint8 | PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| StatusActive (75) | bool | PR+EV | 0 | 1 | 1 |
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
| StatusTampered (7A) | uint8 | PR+EV | 0 | 1 |
|
| StatusLowBattery (79) | uint8 | PR+EV | 0 | 1 |
|
Mute (11A)
| bool | PW+PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| Volume (119) | uint8 | PW+PR+EV | 0 | 100 | 0 |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
| ProgrammableSwitchEvent (73) | uint8 | PR+EV+NV | 0 | 2 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
On (25)
| bool | PR+PW+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
Active (B0)
| uint8 | PW+PR+EV | 0 | 1 |
|
| ConfiguredName (E3) | string | PW+PR+EV | - | - | "unnamed" |
ActiveIdentifier (E7)
| uint32 | PW+PR+EV | 0 | 255 | 0 |
| RemoteKey (E1) | uint8 | PW | 0 | 16 | 0 |
| PowerModeSelection (DF) | uint8 | PW | 0 | 1 | 0 |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
| VolumeControlType (E9) | uint8 | PR+EV | 0 | 3 | 0 |
| VolumeSelector (EA) | uint8 | PW | 0 | 1 | 0 |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
CurrentTemperature (11)
| float | PR+EV | 0 | 100 | 0 |
Name (23)
| string | PR | - | - | "unnamed" |
| StatusActive (75) | bool | PR+EV | 0 | 1 | 1 |
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
| StatusTampered (7A) | uint8 | PR+EV | 0 | 1 |
|
| StatusLowBattery (79) | uint8 | PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
CurrentHeatingCoolingState (F)
| uint8 | PR+EV | 0 | 2 |
|
| TargetHeatingCoolingState (33) | uint8 | PW+PR+EV | 0 | 3 |
|
CurrentTemperature (11)
| float | PR+EV | 0 | 100 | 0 |
| TargetTemperature (35) | float | PW+PR+EV | 10 | 38 | 16 |
| TemperatureDisplayUnits (36) | uint8 | PW+PR+EV | 0 | 1 |
|
CoolingThresholdTemperature (D)
| float | PR+PW+EV | 10 | 35 | 10 |
CurrentRelativeHumidity (10)
| float | PR+EV | 0 | 100 | 0 |
HeatingThresholdTemperature (12)
| float | PR+PW+EV | 0 | 25 | 16 |
Name (23)
| string | PR | - | - | "unnamed" |
| TargetRelativeHumidity (34) | float | PW+PR+EV | 0 | 100 | 0 |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
Active (B0)
| uint8 | PW+PR+EV | 0 | 1 |
|
InUse (D2)
| uint8 | PR+EV | 0 | 1 |
|
| ValveType (D5) | uint8 | PR+EV | 0 | 3 | 0 |
| SetDuration (D3) | uint32 | PW+PR+EV | 0 | 3600 | 60 |
| RemainingDuration (D4) | uint32 | PR+EV | 0 | 3600 | 60 |
IsConfigured (D6)
| uint8 | PR+EV | 0 | 1 |
|
| StatusFault (77) | uint8 | PR+EV | 0 | 1 |
|
Name (23)
| string | PR | - | - | "unnamed" |
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
CurrentPosition (6D)
| uint8 | PR+EV | 0 | 100 | 0 |
| TargetPosition (7C) | uint8 | PW+PR+EV | 0 | 100 | 0 |
Name (23)
| string | PR | - | - | "unnamed" |
ObstructionDetected (24)
| bool | PR+EV | 0 | 1 |
|
| Characteristic | Format | Perms | Min | Max | Values |
|---|---|---|---|---|---|
| TargetPosition (7C) | uint8 | PW+PR+EV | 0 | 100 | 0 |
CurrentPosition (6D)
| uint8 | PR+EV | 0 | 100 | 0 |
Name (23)
| string | PR | - | - | "unnamed" |
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 |
|