diff --git a/tools/makeServiceList b/tools/makeServiceList index c88ad16..0eabffd 100755 --- a/tools/makeServiceList +++ b/tools/makeServiceList @@ -5,13 +5,15 @@ BEGIN { servicesFile = "../src/Span.h" charsFile = "../src/Characteristics.h" + ws="[ \t,();]+" # regexp of separators + ltws="^" ws "|" ws "$" # regexp of leading and training separators + nServs=0 while(getline < servicesFile ){ - gsub("^[ ]+","") # strip out any leading spaces - n=split($0,x,"[,();]+") # split line into separate words - print n,$0 + gsub(ltws,"") # strip out leading or trailing separators + n=split($0,x,ws) # split line by separators if(x[1]=="CREATE_SERV"){ currentService=x[2] @@ -42,8 +44,8 @@ BEGIN { while(getline < charsFile){ - gsub("^[ ]+","") # strip out any leading spaces - n=split($0,x,"[,(); ]+") # split line into separate words + gsub(ltws,"") # strip out leading or trailing separators + n=split($0,x,ws) # split line by separators if(x[1]=="HAPCHAR"){ char=x[2] @@ -57,7 +59,6 @@ BEGIN { close(charsFile) - for(i=0;i%s (%s)
\n",s,uuid[s]) @@ -68,7 +69,6 @@ BEGIN { printf("",servReq[s,j]?"":"",char,uuid[char],servReq[s,j]?"":"") printf("",format[char]) printf("",perms[char]) - printf("*** %s ***",nVals[char]) if(format[char]=="STRING"){ printf("") } @@ -76,7 +76,7 @@ BEGIN { printf("") } else if(nVals[char]==0){ - printf("HELLO",min[char],max[char]) + printf("",min[char],max[char]) } else { printf("
%s%s (%s)%s%s%s(max 64 characters)false (0)
true (1)
%g-%g%s-%s") diff --git a/tools/test.md b/tools/test.md index 1e4efba..13d3120 100644 --- a/tools/test.md +++ b/tools/test.md @@ -1,360 +1,360 @@
AccessoryInformation (3E)
- - - - - - - - + + + + + + + +
Characteristic (UUID)FormatPermsValues
Identify (14)BOOLPW
FirmwareRevision (52)STRINGPR+EV-
Manufacturer (20)STRINGPR-
Model (21)STRINGPR-
Name (23)STRINGPR-
SerialNumber (30)STRINGPR-
HardwareRevision (53)STRINGPR-
AccessoryFlags (A6)UINT32PR+EV
Identify (14)BOOLPWfalse (0)
true (1)
FirmwareRevision (52)STRINGPR+EV(max 64 characters)
Manufacturer (20)STRINGPR(max 64 characters)
Model (21)STRINGPR(max 64 characters)
Name (23)STRINGPR(max 64 characters)
SerialNumber (30)STRINGPR(max 64 characters)
HardwareRevision (53)STRINGPR(max 64 characters)
AccessoryFlags (A6)UINT32PR+EV1-1

AirPurifier (BB)
- - - - - - - + + + + + + +
Characteristic (UUID)FormatPermsValues
Active (B0)UINT8PW+PR+EV
CurrentAirPurifierState (A9)UINT8PR+EV
TargetAirPurifierState (A8)UINT8PW+PR+EV
Name (23)STRINGPR-
RotationSpeed (29)FLOATPR+PW+EV
SwingMode (B6)UINT8PR+EV+PW
LockPhysicalControls (A7)UINT8PW+PR+EV
Active (B0)UINT8PW+PR+EVINACTIVE
ACIVE
CurrentAirPurifierState (A9)UINT8PR+EVINACTIVE
IDLE
PURIFYING
TargetAirPurifierState (A8)UINT8PW+PR+EVMANUAL
AUTO
Name (23)STRINGPR(max 64 characters)
RotationSpeed (29)FLOATPR+PW+EV0-100
SwingMode (B6)UINT8PR+EV+PWSWING_DISABLED
SWING_ENABLED
LockPhysicalControls (A7)UINT8PW+PR+EVCONTROL_LOCK_DISABLED
CONTROL_LOCK_ENABLED

AirQualitySensor (8D)
- - - - - - - - - - - - + + + + + + + + + + + +
Characteristic (UUID)FormatPermsValues
AirQuality (95)UINT8PR+EV
Name (23)STRINGPR-
OzoneDensity (C3)FLOATPR+EV
NitrogenDioxideDensity (C4)FLOATPR+EV
SulphurDioxideDensity (C5)FLOATPR+EV
PM25Density (C6)FLOATPR+EV
PM10Density (C7)FLOATPR+EV
VOCDensity (C8)FLOATPR+EV
StatusActive (75)BOOLPR+EV
StatusFault (77)UINT8PR+EV
StatusTampered (7A)UINT8PR+EV
StatusLowBattery (79)UINT8PR+EV
AirQuality (95)UINT8PR+EVUNKNOWN
EXCELLENT
GOOD
FAIR
INFERIOR
POOR
Name (23)STRINGPR(max 64 characters)
OzoneDensity (C3)FLOATPR+EV0-1000
NitrogenDioxideDensity (C4)FLOATPR+EV0-1000
SulphurDioxideDensity (C5)FLOATPR+EV0-1000
PM25Density (C6)FLOATPR+EV0-1000
PM10Density (C7)FLOATPR+EV0-1000
VOCDensity (C8)FLOATPR+EV0-1000
StatusActive (75)BOOLPR+EVfalse (0)
true (1)
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT
StatusTampered (7A)UINT8PR+EVNOT_TAMPERED
TAMPERED
StatusLowBattery (79)UINT8PR+EVNOT_LOW_BATTERY
LOW_BATTERY

BatteryService (96)
- - - - + + + +
Characteristic (UUID)FormatPermsValues
BatteryLevel (68)UINT8PR+EV
ChargingState (8F)UINT8PR+EV
StatusLowBattery (79)UINT8PR+EV
Name (23)STRINGPR-
BatteryLevel (68)UINT8PR+EV0-100
ChargingState (8F)UINT8PR+EVNOT_CHARGING
CHARGING
NOT_CHARGEABLE
StatusLowBattery (79)UINT8PR+EVNOT_LOW_BATTERY
LOW_BATTERY
Name (23)STRINGPR(max 64 characters)

CarbonDioxideSensor (97)
- - - - - - - - + + + + + + + +
Characteristic (UUID)FormatPermsValues
CarbonDioxideDetected (92)UINT8PR+EV
Name (23)STRINGPR-
StatusActive (75)BOOLPR+EV
StatusFault (77)UINT8PR+EV
StatusTampered (7A)UINT8PR+EV
StatusLowBattery (79)UINT8PR+EV
CarbonDioxideLevel (93)FLOATPR+EV
CarbonDioxidePeakLevel (94)FLOATPR+EV
CarbonDioxideDetected (92)UINT8PR+EVNORMAL
ABNORMAL
Name (23)STRINGPR(max 64 characters)
StatusActive (75)BOOLPR+EVfalse (0)
true (1)
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT
StatusTampered (7A)UINT8PR+EVNOT_TAMPERED
TAMPERED
StatusLowBattery (79)UINT8PR+EVNOT_LOW_BATTERY
LOW_BATTERY
CarbonDioxideLevel (93)FLOATPR+EV0-100000
CarbonDioxidePeakLevel (94)FLOATPR+EV0-100000

CarbonMonoxideSensor (7F)
- - - - - - - - + + + + + + + +
Characteristic (UUID)FormatPermsValues
CarbonMonoxideDetected (69)UINT8PR+EV
Name (23)STRINGPR-
StatusActive (75)BOOLPR+EV
StatusFault (77)UINT8PR+EV
StatusTampered (7A)UINT8PR+EV
StatusLowBattery (79)UINT8PR+EV
CarbonMonoxideLevel (90)FLOATPR+EV
CarbonMonoxidePeakLevel (91)FLOATPR+EV
CarbonMonoxideDetected (69)UINT8PR+EVNORMAL
ABNORMAL
Name (23)STRINGPR(max 64 characters)
StatusActive (75)BOOLPR+EVfalse (0)
true (1)
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT
StatusTampered (7A)UINT8PR+EVNOT_TAMPERED
TAMPERED
StatusLowBattery (79)UINT8PR+EVNOT_LOW_BATTERY
LOW_BATTERY
CarbonMonoxideLevel (90)FLOATPR+EV0-100
CarbonMonoxidePeakLevel (91)FLOATPR+EV0-100

ContactSensor (80)
- - - - - - + + + + + +
Characteristic (UUID)FormatPermsValues
ContactSensorState (6A)UINT8PR+EV
Name (23)STRINGPR-
StatusActive (75)BOOLPR+EV
StatusFault (77)UINT8PR+EV
StatusTampered (7A)UINT8PR+EV
StatusLowBattery (79)UINT8PR+EV
ContactSensorState (6A)UINT8PR+EVDETECTED
NOT_DETECTED
Name (23)STRINGPR(max 64 characters)
StatusActive (75)BOOLPR+EVfalse (0)
true (1)
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT
StatusTampered (7A)UINT8PR+EVNOT_TAMPERED
TAMPERED
StatusLowBattery (79)UINT8PR+EVNOT_LOW_BATTERY
LOW_BATTERY

Door (81)
- - - - - - + + + + + +
Characteristic (UUID)FormatPermsValues
CurrentPosition (6D)UINT8PR+EV
TargetPosition (7C)UINT8PW+PR+EV
PositionState (72)UINT8PR+EV
Name (23)STRINGPR-
HoldPosition (6F)BOOLPW
ObstructionDetected (24)BOOLPR+EV
CurrentPosition (6D)UINT8PR+EV0-100
TargetPosition (7C)UINT8PW+PR+EV0-100
PositionState (72)UINT8PR+EVGOING_TO_MINIMUM
GOING_TO_MAXIMUM
STOPPED
Name (23)STRINGPR(max 64 characters)
HoldPosition (6F)BOOLPWfalse (0)
true (1)
ObstructionDetected (24)BOOLPR+EVfalse (0)
true (1)

Doorbell (121)
- - - - + + + +
Characteristic (UUID)FormatPermsValues
ProgrammableSwitchEvent (73)UINT8PR+EV+NV
Name (23)STRINGPR-
Volume (119)UINT8PW+PR+EV
Brightness (8)INTPR+PW+EV
ProgrammableSwitchEvent (73)UINT8PR+EV+NVSINGLE_PRESS
DOUBLE_PRESS
LONG_PRESS
Name (23)STRINGPR(max 64 characters)
Volume (119)UINT8PW+PR+EV0-100
Brightness (8)INTPR+PW+EV0-100

Fan (B7)
- - - - - - - - + + + + + + + +
Characteristic (UUID)FormatPermsValues
Active (B0)UINT8PW+PR+EV
Name (23)STRINGPR-
CurrentFanState (AF)UINT8PR+EV
TargetFanState (BF)UINT8PW+PR+EV
RotationDirection (28)INTPR+PW+EV
RotationSpeed (29)FLOATPR+PW+EV
SwingMode (B6)UINT8PR+EV+PW
LockPhysicalControls (A7)UINT8PW+PR+EV
Active (B0)UINT8PW+PR+EVINACTIVE
ACIVE
Name (23)STRINGPR(max 64 characters)
CurrentFanState (AF)UINT8PR+EVINACTIVE
IDLE
BLOWING
TargetFanState (BF)UINT8PW+PR+EVMANUAL
AUTO
RotationDirection (28)INTPR+PW+EVCLOCKWISE
COUNTERCLOCKWISE
RotationSpeed (29)FLOATPR+PW+EV0-100
SwingMode (B6)UINT8PR+EV+PWSWING_DISABLED
SWING_ENABLED
LockPhysicalControls (A7)UINT8PW+PR+EVCONTROL_LOCK_DISABLED
CONTROL_LOCK_ENABLED

Faucet (D7)
- - - + + +
Characteristic (UUID)FormatPermsValues
Active (B0)UINT8PW+PR+EV
StatusFault (77)UINT8PR+EV
Name (23)STRINGPR-
Active (B0)UINT8PW+PR+EVINACTIVE
ACIVE
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT
Name (23)STRINGPR(max 64 characters)

FilterMaintenance (BA)
- - - - + + + +
Characteristic (UUID)FormatPermsValues
FilterChangeIndication (AC)UINT8PR+EV
Name (23)STRINGPR-
FilterLifeLevel (AB)FLOATPR+EV
ResetFilterIndication (AD)UINT8PW
FilterChangeIndication (AC)UINT8PR+EVNO_CHANGE_NEEDED
CHANGE_NEEDED
Name (23)STRINGPR(max 64 characters)
FilterLifeLevel (AB)FLOATPR+EV0-100
ResetFilterIndication (AD)UINT8PW1-1

GarageDoorOpener (41)
- - - - - - + + + + + +
Characteristic (UUID)FormatPermsValues
CurrentDoorState (E)UINT8PR+EV
TargetDoorState (32)UINT8PW+PR+EV
ObstructionDetected (24)BOOLPR+EV
LockCurrentState (1D)UINT8PR+EV
LockTargetState (1E)UINT8PW+PR+EV
Name (23)STRINGPR-
CurrentDoorState (E)UINT8PR+EVOPEN
CLOSED
OPENING
CLOSING
STOPPED
TargetDoorState (32)UINT8PW+PR+EVOPEN
CLOSED
ObstructionDetected (24)BOOLPR+EVfalse (0)
true (1)
LockCurrentState (1D)UINT8PR+EVUNLOCKED
LOCKED
JAMMED
UNKNOWN
LockTargetState (1E)UINT8PW+PR+EVUNLOCK
LOCK
Name (23)STRINGPR(max 64 characters)

HAPProtocolInformation (A2)
- +
Characteristic (UUID)FormatPermsValues
Version (37)STRINGPR-
Version (37)STRINGPR(max 64 characters)

HeaterCooler (BC)
- - - - - - - - - - - + + + + + + + + + + +
Characteristic (UUID)FormatPermsValues
Active (B0)UINT8PW+PR+EV
CurrentTemperature (11)FLOATPR+EV
CurrentHeaterCoolerState (B1)UINT8PR+EV
TargetHeaterCoolerState (B2)UINT8PW+PR+EV
Name (23)STRINGPR-
RotationSpeed (29)FLOATPR+PW+EV
TemperatureDisplayUnits (36)UINT8PW+PR+EV
SwingMode (B6)UINT8PR+EV+PW
CoolingThresholdTemperature (D)FLOATPR+PW+EV
HeatingThresholdTemperature (12)FLOATPR+PW+EV
LockPhysicalControls (A7)UINT8PW+PR+EV
Active (B0)UINT8PW+PR+EVINACTIVE
ACIVE
CurrentTemperature (11)FLOATPR+EV0-100
CurrentHeaterCoolerState (B1)UINT8PR+EVINACTIVE
IDLE
HEATING
COOLING
TargetHeaterCoolerState (B2)UINT8PW+PR+EVAUTO
HEAT
COOL
Name (23)STRINGPR(max 64 characters)
RotationSpeed (29)FLOATPR+PW+EV0-100
TemperatureDisplayUnits (36)UINT8PW+PR+EVCELSIUS
FAHRENHEIT
SwingMode (B6)UINT8PR+EV+PWSWING_DISABLED
SWING_ENABLED
CoolingThresholdTemperature (D)FLOATPR+PW+EV10-35
HeatingThresholdTemperature (12)FLOATPR+PW+EV0-25
LockPhysicalControls (A7)UINT8PW+PR+EVCONTROL_LOCK_DISABLED
CONTROL_LOCK_ENABLED

HumidifierDehumidifier (BD)
- - - - - - - - - - - + + + + + + + + + + +
Characteristic (UUID)FormatPermsValues
Active (B0)UINT8PW+PR+EV
CurrentRelativeHumidity (10)FLOATPR+EV
CurrentHumidifierDehumidifierState (B3)UINT8PR+EV
TargetHumidifierDehumidifierState (B4)UINT8PW+PR+EV
Name (23)STRINGPR-
RelativeHumidityDehumidifierThreshold (C9)FLOATPR+PW+EV
RelativeHumidityHumidifierThreshold (CA)FLOATPR+PW+EV
RotationSpeed (29)FLOATPR+PW+EV
SwingMode (B6)UINT8PR+EV+PW
WaterLevel (B5)FLOATPR+EV
LockPhysicalControls (A7)UINT8PW+PR+EV
Active (B0)UINT8PW+PR+EVINACTIVE
ACIVE
CurrentRelativeHumidity (10)FLOATPR+EV0-100
CurrentHumidifierDehumidifierState (B3)UINT8PR+EVINACTIVE
IDLE
HUMIDIFYING
DEHUMIDIFYING
TargetHumidifierDehumidifierState (B4)UINT8PW+PR+EVAUTO
HUMIDIFY
DEHUMIDIFY
Name (23)STRINGPR(max 64 characters)
RelativeHumidityDehumidifierThreshold (C9)FLOATPR+PW+EV0-100
RelativeHumidityHumidifierThreshold (CA)FLOATPR+PW+EV0-100
RotationSpeed (29)FLOATPR+PW+EV0-100
SwingMode (B6)UINT8PR+EV+PWSWING_DISABLED
SWING_ENABLED
WaterLevel (B5)FLOATPR+EV0-100
LockPhysicalControls (A7)UINT8PW+PR+EVCONTROL_LOCK_DISABLED
CONTROL_LOCK_ENABLED

HumiditySensor (82)
- - - - - - + + + + + +
Characteristic (UUID)FormatPermsValues
CurrentRelativeHumidity (10)FLOATPR+EV
Name (23)STRINGPR-
StatusActive (75)BOOLPR+EV
StatusFault (77)UINT8PR+EV
StatusTampered (7A)UINT8PR+EV
StatusLowBattery (79)UINT8PR+EV
CurrentRelativeHumidity (10)FLOATPR+EV0-100
Name (23)STRINGPR(max 64 characters)
StatusActive (75)BOOLPR+EVfalse (0)
true (1)
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT
StatusTampered (7A)UINT8PR+EVNOT_TAMPERED
TAMPERED
StatusLowBattery (79)UINT8PR+EVNOT_LOW_BATTERY
LOW_BATTERY

InputSource (D9)
- - - - - + + + + +
Characteristic (UUID)FormatPermsValues
ConfiguredName (E3)STRINGPW+PR+EV-
IsConfigured (D6)UINT8PR+EV
Identifier (E6)UINT32PR
CurrentVisibilityState (135)UINT8PR+EV
TargetVisibilityState (134)UINT8PW+PR+EV
ConfiguredName (E3)STRINGPW+PR+EV(max 64 characters)
IsConfigured (D6)UINT8PR+EVNOT_CONFIGURED
CONFIGURED
Identifier (E6)UINT32PR0-255
CurrentVisibilityState (135)UINT8PR+EV0-1
TargetVisibilityState (134)UINT8PW+PR+EV0-1

IrrigationSystem (CF)
- - - - - + + + + +
Characteristic (UUID)FormatPermsValues
Active (B0)UINT8PW+PR+EV
ProgramMode (D1)UINT8PR+EV
InUse (D2)UINT8PR+EV
RemainingDuration (D4)UINT32PR+EV
StatusFault (77)UINT8PR+EV
Active (B0)UINT8PW+PR+EVINACTIVE
ACIVE
ProgramMode (D1)UINT8PR+EVNONE
SCHEDULED
SCHEDULE_OVERRIDEN
InUse (D2)UINT8PR+EVNOT_IN_USE
IN_USE
RemainingDuration (D4)UINT32PR+EV0-3600
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT

LeakSensor (83)
- - - - - - + + + + + +
Characteristic (UUID)FormatPermsValues
LeakDetected (70)UINT8PR+EV
Name (23)STRINGPR-
StatusActive (75)BOOLPR+EV
StatusFault (77)UINT8PR+EV
StatusTampered (7A)UINT8PR+EV
StatusLowBattery (79)UINT8PR+EV
LeakDetected (70)UINT8PR+EVNOT_DETECTED
DETECTED
Name (23)STRINGPR(max 64 characters)
StatusActive (75)BOOLPR+EVfalse (0)
true (1)
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT
StatusTampered (7A)UINT8PR+EVNOT_TAMPERED
TAMPERED
StatusLowBattery (79)UINT8PR+EVNOT_LOW_BATTERY
LOW_BATTERY

LightBulb (43)
- - - - - - + + + + + +
Characteristic (UUID)FormatPermsValues
On (25)BOOLPR+PW+EV
Brightness (8)INTPR+PW+EV
Hue (13)FLOATPR+PW+EV
Name (23)STRINGPR-
Saturation (2F)FLOATPR+PW+EV
ColorTemperature (CE)UINT32PR+PW+EV
On (25)BOOLPR+PW+EVfalse (0)
true (1)
Brightness (8)INTPR+PW+EV0-100
Hue (13)FLOATPR+PW+EV0-360
Name (23)STRINGPR(max 64 characters)
Saturation (2F)FLOATPR+PW+EV0-100
ColorTemperature (CE)UINT32PR+PW+EV140-500

LightSensor (84)
- - - - - - + + + + + +
Characteristic (UUID)FormatPermsValues
CurrentAmbientLightLevel (6B)FLOATPR+EV
Name (23)STRINGPR-
StatusActive (75)BOOLPR+EV
StatusFault (77)UINT8PR+EV
StatusTampered (7A)UINT8PR+EV
StatusLowBattery (79)UINT8PR+EV
CurrentAmbientLightLevel (6B)FLOATPR+EV0.0001-100000
Name (23)STRINGPR(max 64 characters)
StatusActive (75)BOOLPR+EVfalse (0)
true (1)
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT
StatusTampered (7A)UINT8PR+EVNOT_TAMPERED
TAMPERED
StatusLowBattery (79)UINT8PR+EVNOT_LOW_BATTERY
LOW_BATTERY

LockMechanism (45)
- - - + + +
Characteristic (UUID)FormatPermsValues
LockCurrentState (1D)UINT8PR+EV
LockTargetState (1E)UINT8PW+PR+EV
Name (23)STRINGPR-
LockCurrentState (1D)UINT8PR+EVUNLOCKED
LOCKED
JAMMED
UNKNOWN
LockTargetState (1E)UINT8PW+PR+EVUNLOCK
LOCK
Name (23)STRINGPR(max 64 characters)

Microphone (112)
- - - + + +
Characteristic (UUID)FormatPermsValues
Mute (11A)BOOLPW+PR+EV
Name (23)STRINGPR-
Volume (119)UINT8PW+PR+EV
Mute (11A)BOOLPW+PR+EVfalse (0)
true (1)
Name (23)STRINGPR(max 64 characters)
Volume (119)UINT8PW+PR+EV0-100

MotionSensor (85)
- - - - - - + + + + + +
Characteristic (UUID)FormatPermsValues
MotionDetected (22)BOOLPR+EV
Name (23)STRINGPR-
StatusActive (75)BOOLPR+EV
StatusFault (77)UINT8PR+EV
StatusTampered (7A)UINT8PR+EV
StatusLowBattery (79)UINT8PR+EV
MotionDetected (22)BOOLPR+EVfalse (0)
true (1)
Name (23)STRINGPR(max 64 characters)
StatusActive (75)BOOLPR+EVfalse (0)
true (1)
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT
StatusTampered (7A)UINT8PR+EVNOT_TAMPERED
TAMPERED
StatusLowBattery (79)UINT8PR+EVNOT_LOW_BATTERY
LOW_BATTERY

OccupancySensor (86)
- - - - - - + + + + + +
Characteristic (UUID)FormatPermsValues
OccupancyDetected (71)UINT8PR+EV
Name (23)STRINGPR-
StatusActive (75)BOOLPR+EV
StatusFault (77)UINT8PR+EV
StatusTampered (7A)UINT8PR+EV
StatusLowBattery (79)UINT8PR+EV
OccupancyDetected (71)UINT8PR+EVNOT_DETECTED
DETECTED
Name (23)STRINGPR(max 64 characters)
StatusActive (75)BOOLPR+EVfalse (0)
true (1)
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT
StatusTampered (7A)UINT8PR+EVNOT_TAMPERED
TAMPERED
StatusLowBattery (79)UINT8PR+EVNOT_LOW_BATTERY
LOW_BATTERY

Outlet (47)
- - - + + +
Characteristic (UUID)FormatPermsValues
On (25)BOOLPR+PW+EV
OutletInUse (26)BOOLPR+EV
Name (23)STRINGPR-
On (25)BOOLPR+PW+EVfalse (0)
true (1)
OutletInUse (26)BOOLPR+EVfalse (0)
true (1)
Name (23)STRINGPR(max 64 characters)

SecuritySystem (7E)
- - - - - - + + + + + +
Characteristic (UUID)FormatPermsValues
SecuritySystemCurrentState (66)UINT8PR+EV
SecuritySystemTargetState (67)UINT8PW+PR+EV
Name (23)STRINGPR-
SecuritySystemAlarmType (8E)UINT8PR+EV
StatusFault (77)UINT8PR+EV
StatusTampered (7A)UINT8PR+EV
SecuritySystemCurrentState (66)UINT8PR+EVARMED_STAY
ARMED_AWAY
ARMED_NIGHT
DISARMED
ALARM_TRIGGERED
SecuritySystemTargetState (67)UINT8PW+PR+EVARM_STAY
ARM_AWAY
ARM_NIGHT
DISARM
Name (23)STRINGPR(max 64 characters)
SecuritySystemAlarmType (8E)UINT8PR+EVKNOWN
UNKNOWN
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT
StatusTampered (7A)UINT8PR+EVNOT_TAMPERED
TAMPERED

ServiceLabel (CC)
- +
Characteristic (UUID)FormatPermsValues
ServiceLabelNamespace (CD)UINT8PR
ServiceLabelNamespace (CD)UINT8PRDOTS
NUMERALS

Slat (B9)
- - - - - - + + + + + +
Characteristic (UUID)FormatPermsValues
CurrentSlatState (AA)UINT8PR+EV
SlatType (C0)UINT8PR
Name (23)STRINGPR-
SwingMode (B6)UINT8PR+EV+PW
CurrentTiltAngle (C1)INTPR+EV
TargetTiltAngle (C2)INTPW+PR+EV
CurrentSlatState (AA)UINT8PR+EVFIXED
JAMMED
SWINGING
SlatType (C0)UINT8PRHORIZONTAL
VERTICAL
Name (23)STRINGPR(max 64 characters)
SwingMode (B6)UINT8PR+EV+PWSWING_DISABLED
SWING_ENABLED
CurrentTiltAngle (C1)INTPR+EV-90-90
TargetTiltAngle (C2)INTPW+PR+EV-90-90

SmokeSensor (87)
- - - - - - + + + + + +
Characteristic (UUID)FormatPermsValues
SmokeDetected (76)UINT8PR+EV
Name (23)STRINGPR-
StatusActive (75)BOOLPR+EV
StatusFault (77)UINT8PR+EV
StatusTampered (7A)UINT8PR+EV
StatusLowBattery (79)UINT8PR+EV
SmokeDetected (76)UINT8PR+EVNOT_DETECTED
DETECTED
Name (23)STRINGPR(max 64 characters)
StatusActive (75)BOOLPR+EVfalse (0)
true (1)
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT
StatusTampered (7A)UINT8PR+EVNOT_TAMPERED
TAMPERED
StatusLowBattery (79)UINT8PR+EVNOT_LOW_BATTERY
LOW_BATTERY

Speaker (113)
- - - + + +
Characteristic (UUID)FormatPermsValues
Mute (11A)BOOLPW+PR+EV
Name (23)STRINGPR-
Volume (119)UINT8PW+PR+EV
Mute (11A)BOOLPW+PR+EVfalse (0)
true (1)
Name (23)STRINGPR(max 64 characters)
Volume (119)UINT8PW+PR+EV0-100

StatelessProgrammableSwitch (89)
- - - + + +
Characteristic (UUID)FormatPermsValues
ProgrammableSwitchEvent (73)UINT8PR+EV+NV
Name (23)STRINGPR-
ServiceLabelIndex (CB)UINT8PR
ProgrammableSwitchEvent (73)UINT8PR+EV+NVSINGLE_PRESS
DOUBLE_PRESS
LONG_PRESS
Name (23)STRINGPR(max 64 characters)
ServiceLabelIndex (CB)UINT8PR1-255

Switch (49)
- - + +
Characteristic (UUID)FormatPermsValues
On (25)BOOLPR+PW+EV
Name (23)STRINGPR-
On (25)BOOLPR+PW+EVfalse (0)
true (1)
Name (23)STRINGPR(max 64 characters)

Television (D8)
- - - - - + + + + +
Characteristic (UUID)FormatPermsValues
Active (B0)UINT8PW+PR+EV
ConfiguredName (E3)STRINGPW+PR+EV-
ActiveIdentifier (E7)UINT32PW+PR+EV
RemoteKey (E1)UINT8PW
PowerModeSelection (DF)UINT8PW
Active (B0)UINT8PW+PR+EVINACTIVE
ACIVE
ConfiguredName (E3)STRINGPW+PR+EV(max 64 characters)
ActiveIdentifier (E7)UINT32PW+PR+EV0-255
RemoteKey (E1)UINT8PW0-16
PowerModeSelection (DF)UINT8PW0-1

TelevisionSpeaker (113)
- - + +
Characteristic (UUID)FormatPermsValues
VolumeControlType (E9)UINT8PR+EV
VolumeSelector (EA)UINT8PW
VolumeControlType (E9)UINT8PR+EV0-3
VolumeSelector (EA)UINT8PW0-1

TemperatureSensor (8A)
- - - - - - + + + + + +
Characteristic (UUID)FormatPermsValues
CurrentTemperature (11)FLOATPR+EV
Name (23)STRINGPR-
StatusActive (75)BOOLPR+EV
StatusFault (77)UINT8PR+EV
StatusTampered (7A)UINT8PR+EV
StatusLowBattery (79)UINT8PR+EV
CurrentTemperature (11)FLOATPR+EV0-100
Name (23)STRINGPR(max 64 characters)
StatusActive (75)BOOLPR+EVfalse (0)
true (1)
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT
StatusTampered (7A)UINT8PR+EVNOT_TAMPERED
TAMPERED
StatusLowBattery (79)UINT8PR+EVNOT_LOW_BATTERY
LOW_BATTERY

Thermostat (4A)
- - - - - - - - - - + + + + + + + + + +
Characteristic (UUID)FormatPermsValues
CurrentHeatingCoolingState (F)UINT8PR+EV
TargetHeatingCoolingState (33)UINT8PW+PR+EV
CurrentTemperature (11)FLOATPR+EV
TargetTemperature (35)FLOATPW+PR+EV
TemperatureDisplayUnits (36)UINT8PW+PR+EV
CoolingThresholdTemperature (D)FLOATPR+PW+EV
CurrentRelativeHumidity (10)FLOATPR+EV
HeatingThresholdTemperature (12)FLOATPR+PW+EV
Name (23)STRINGPR-
TargetRelativeHumidity (34)FLOATPW+PR+EV
CurrentHeatingCoolingState (F)UINT8PR+EVOFF
HEATING
COOLING
TargetHeatingCoolingState (33)UINT8PW+PR+EVOFF
HEAT
COOL
AUTO
CurrentTemperature (11)FLOATPR+EV0-100
TargetTemperature (35)FLOATPW+PR+EV10-38
TemperatureDisplayUnits (36)UINT8PW+PR+EVCELSIUS
FAHRENHEIT
CoolingThresholdTemperature (D)FLOATPR+PW+EV10-35
CurrentRelativeHumidity (10)FLOATPR+EV0-100
HeatingThresholdTemperature (12)FLOATPR+PW+EV0-25
Name (23)STRINGPR(max 64 characters)
TargetRelativeHumidity (34)FLOATPW+PR+EV0-100

Valve (D0)
- - - - - - - - - + + + + + + + + +
Characteristic (UUID)FormatPermsValues
Active (B0)UINT8PW+PR+EV
InUse (D2)UINT8PR+EV
ValveType (D5)UINT8PR+EV
SetDuration (D3)UINT32PW+PR+EV
RemainingDuration (D4)UINT32PR+EV
IsConfigured (D6)UINT8PR+EV
ServiceLabelIndex (CB)UINT8PR
StatusFault (77)UINT8PR+EV
Name (23)STRINGPR-
Active (B0)UINT8PW+PR+EVINACTIVE
ACIVE
InUse (D2)UINT8PR+EVNOT_IN_USE
IN_USE
ValveType (D5)UINT8PR+EV0-3
SetDuration (D3)UINT32PW+PR+EV0-3600
RemainingDuration (D4)UINT32PR+EV0-3600
IsConfigured (D6)UINT8PR+EVNOT_CONFIGURED
CONFIGURED
ServiceLabelIndex (CB)UINT8PR1-255
StatusFault (77)UINT8PR+EVNO_FAULT
FAULT
Name (23)STRINGPR(max 64 characters)

Window (8B)
- - - - - - + + + + + +
Characteristic (UUID)FormatPermsValues
CurrentPosition (6D)UINT8PR+EV
TargetPosition (7C)UINT8PW+PR+EV
PositionState (72)UINT8PR+EV
Name (23)STRINGPR-
HoldPosition (6F)BOOLPW
ObstructionDetected (24)BOOLPR+EV
CurrentPosition (6D)UINT8PR+EV0-100
TargetPosition (7C)UINT8PW+PR+EV0-100
PositionState (72)UINT8PR+EVGOING_TO_MINIMUM
GOING_TO_MAXIMUM
STOPPED
Name (23)STRINGPR(max 64 characters)
HoldPosition (6F)BOOLPWfalse (0)
true (1)
ObstructionDetected (24)BOOLPR+EVfalse (0)
true (1)

WindowCovering (8C)
- - - - - - - - - - + + + + + + + + + +
Characteristic (UUID)FormatPermsValues
TargetPosition (7C)UINT8PW+PR+EV
CurrentPosition (6D)UINT8PR+EV
PositionState (72)UINT8PR+EV
Name (23)STRINGPR-
HoldPosition (6F)BOOLPW
CurrentHorizontalTiltAngle (6C)INTPR+EV
TargetHorizontalTiltAngle (7B)INTPW+PR+EV
CurrentVerticalTiltAngle (6E)INTPR+EV
TargetVerticalTiltAngle (7D)INTPW+PR+EV
ObstructionDetected (24)BOOLPR+EV
TargetPosition (7C)UINT8PW+PR+EV0-100
CurrentPosition (6D)UINT8PR+EV0-100
PositionState (72)UINT8PR+EVGOING_TO_MINIMUM
GOING_TO_MAXIMUM
STOPPED
Name (23)STRINGPR(max 64 characters)
HoldPosition (6F)BOOLPWfalse (0)
true (1)
CurrentHorizontalTiltAngle (6C)INTPR+EV-90-90
TargetHorizontalTiltAngle (7B)INTPW+PR+EV-90-90
CurrentVerticalTiltAngle (6E)INTPR+EV-90-90
TargetVerticalTiltAngle (7D)INTPW+PR+EV-90-90
ObstructionDetected (24)BOOLPR+EVfalse (0)
true (1)