From e3de23525d3c2e734c3ece85ec354927958c0127 Mon Sep 17 00:00:00 2001 From: Gregg Date: Sun, 21 Jan 2024 14:21:34 -0600 Subject: [PATCH] update --- tools/makeServiceList | 4 +- tools/test.md | 332 +++++++++++++++++++++--------------------- 2 files changed, 168 insertions(+), 168 deletions(-) diff --git a/tools/makeServiceList b/tools/makeServiceList index c4b7d38..b2479c6 100755 --- a/tools/makeServiceList +++ b/tools/makeServiceList @@ -55,7 +55,7 @@ END { s=services[i] printf("## %s (%s)\n",s,uuid[s]) printf("
%s
\n",desc[s]) - printf("\n") + printf("\n") for(j=0;j%s%s (%d)%s",default[char]==k?"":"",vals[char,k],k,default[char]==k?"":"") printf("") } else { - # printf("",default[char]) + printf("",default[char]) } printf("\n") diff --git a/tools/test.md b/tools/test.md index 4582eac..1cc6960 100644 --- a/tools/test.md +++ b/tools/test.md @@ -1,39 +1,39 @@ ## AccessoryInformation (3E)
Required Identification Information. For each Accessory in a HomeSpan device this must be included as the first Service.
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
%s%s
- - - - - - - - + + + + + + + +
CharacteristicFormatPermsMinMaxConstants/Defaults
Identify (14)
  • the Home App set this to RUN_ID when it wants the device to run its identification routine
boolPW01
  • IDLE (0)
  • RUN_ID (1)
FirmwareRevision (52)
  • must be in form x[.y[.z]] - informational only
stringPR+EV--
Manufacturer (20)
  • any string - informational only
stringPR--
Model (21)
  • any string - informational only
stringPR--
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
SerialNumber (30)
stringPR--
HardwareRevision (53)
  • must be in form x[.y[.z]] - informational only
stringPR--
CharacteristicFormatPermsMinMaxValues
Identify (14)
  • the Home App sets this to RUN_ID when it wants the device to run its identification routine
boolPW01
  • IDLE (0)
  • RUN_ID (1)
FirmwareRevision (52)
  • must be in form x[.y[.z]] - informational only
stringPR+EV--"1.0.0"
Manufacturer (20)
  • any string - informational only
stringPR--"HomeSpan"
Model (21)
  • any string - informational only
stringPR--"HomeSpan-ESP32"
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
SerialNumber (30)
stringPR--"HS-12345"
HardwareRevision (53)
  • must be in form x[.y[.z]] - informational only
stringPR--"1.0.0"
## AirPurifier (BB)
Defines a basic Air Purifier with an optional fan. Optional Linked Services: FilterMaintenance, AirQualitySensor, Fan, and Slat
- + - - + +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
Active (B0)
  • indicates if the Service is active/on
uint8PW+PR+EV01
  • INACTIVE (0)
  • ACTIVE (1)
CurrentAirPurifierState (A9)
  • indicates current state of air purification
uint8PR+EV02
  • INACTIVE (0)
  • IDLE (1)
  • PURIFYING (2)
TargetAirPurifierState (A8)
uint8PW+PR+EV01
  • MANUAL (0)
  • AUTO (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
RotationSpeed (29)
floatPR+PW+EV0100
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
RotationSpeed (29)
floatPR+PW+EV01000
SwingMode (B6)
uint8PR+EV+PW01
  • SWING_DISABLED (0)
  • SWING_ENABLED (1)
LockPhysicalControls (A7)
  • indicates if local control lock is enabled
uint8PW+PR+EV01
  • CONTROL_LOCK_DISABLED (0)
  • CONTROL_LOCK_ENABLED (1)
## AirQualitySensor (8D)
Defines an Air Quality Sensor.
- + - - - - - - - - + + + + + + + + @@ -41,45 +41,45 @@ ## BatteryService (96)
Defines a standalone Battery Service.
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
AirQuality (95)
  • a subjective description
uint8PR+EV05
  • UNKNOWN (0)
  • EXCELLENT (1)
  • GOOD (2)
  • FAIR (3)
  • INFERIOR (4)
  • POOR (5)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
OzoneDensity (C3)
  • measured in µg/m3
floatPR+EV01000
NitrogenDioxideDensity (C4)
  • measured in µg/m3
floatPR+EV01000
SulphurDioxideDensity (C5)
floatPR+EV01000
PM25Density (C6)
  • 2.5-micron particulate density, measured in µg/m3
floatPR+EV01000
PM10Density (C7)
  • 10-micron particulate density, measured in µg/m3
floatPR+EV01000
VOCDensity (C8)
floatPR+EV01000
StatusActive (75)
boolPR+EV01
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
OzoneDensity (C3)
  • measured in µg/m3
floatPR+EV010000
NitrogenDioxideDensity (C4)
  • measured in µg/m3
floatPR+EV010000
SulphurDioxideDensity (C5)
floatPR+EV010000
PM25Density (C6)
  • 2.5-micron particulate density, measured in µg/m3
floatPR+EV010000
PM10Density (C7)
  • 10-micron particulate density, measured in µg/m3
floatPR+EV010000
VOCDensity (C8)
floatPR+EV010000
StatusActive (75)
boolPR+EV011
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
StatusTampered (7A)
uint8PR+EV01
  • NOT_TAMPERED (0)
  • TAMPERED (1)
StatusLowBattery (79)
uint8PR+EV01
  • NOT_LOW_BATTERY (0)
  • LOW_BATTERY (1)
- - + + - +
CharacteristicFormatPermsMinMaxConstants/Defaults
BatteryLevel (68)
  • measured as a percentage
uint8PR+EV0100
CharacteristicFormatPermsMinMaxValues
BatteryLevel (68)
  • measured as a percentage
uint8PR+EV01000
ChargingState (8F)
  • indicates state of battery charging
uint8PR+EV02
  • NOT_CHARGING (0)
  • CHARGING (1)
  • NOT_CHARGEABLE (2)
StatusLowBattery (79)
uint8PR+EV01
  • NOT_LOW_BATTERY (0)
  • LOW_BATTERY (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
## CarbonDioxideSensor (97)
Defines a Carbon Dioxide Sensor.
- + - - + + - - + +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
CarbonDioxideDetected (92)
  • indicates if abnormal level is detected
uint8PR+EV01
  • NORMAL (0)
  • ABNORMAL (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
StatusActive (75)
boolPR+EV01
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
StatusActive (75)
boolPR+EV011
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
StatusTampered (7A)
uint8PR+EV01
  • NOT_TAMPERED (0)
  • TAMPERED (1)
StatusLowBattery (79)
uint8PR+EV01
  • NOT_LOW_BATTERY (0)
  • LOW_BATTERY (1)
CarbonDioxideLevel (93)
  • measured on parts per million (ppm)
floatPR+EV0100000
CarbonDioxidePeakLevel (94)
  • measured in parts per million (ppm)
floatPR+EV0100000
CarbonDioxideLevel (93)
  • measured on parts per million (ppm)
floatPR+EV01000000
CarbonDioxidePeakLevel (94)
  • measured in parts per million (ppm)
floatPR+EV01000000
## CarbonMonoxideSensor (7F)
Defines a Carbon Monoxide Sensor.
- + - - + + - - + +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
CarbonMonoxideDetected (69)
  • indicates if abnormal level is detected
uint8PR+EV01
  • NORMAL (0)
  • ABNORMAL (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
StatusActive (75)
boolPR+EV01
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
StatusActive (75)
boolPR+EV011
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
StatusTampered (7A)
uint8PR+EV01
  • NOT_TAMPERED (0)
  • TAMPERED (1)
StatusLowBattery (79)
uint8PR+EV01
  • NOT_LOW_BATTERY (0)
  • LOW_BATTERY (1)
CarbonMonoxideLevel (90)
  • measured in parts per million (ppm)
floatPR+EV0100
CarbonMonoxidePeakLevel (91)
  • measured in parts per million (ppm)
floatPR+EV0100
CarbonMonoxideLevel (90)
  • measured in parts per million (ppm)
floatPR+EV01000
CarbonMonoxidePeakLevel (91)
  • measured in parts per million (ppm)
floatPR+EV01000
## ContactSensor (80)
Defines a Contact Sensor.
- + - - + + @@ -87,100 +87,100 @@ ## Door (81)
Defines a motorized Door.
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
ContactSensorState (6A)
  • indictates if contact is detected (i.e. closed)
uint8PR+EV01
  • DETECTED (0)
  • NOT_DETECTED (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
StatusActive (75)
boolPR+EV01
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
StatusActive (75)
boolPR+EV011
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
StatusTampered (7A)
uint8PR+EV01
  • NOT_TAMPERED (0)
  • TAMPERED (1)
StatusLowBattery (79)
uint8PR+EV01
  • NOT_LOW_BATTERY (0)
  • LOW_BATTERY (1)
- - - - - + + + + +
CharacteristicFormatPermsMinMaxConstants/Defaults
CurrentPosition (6D)
  • current position (as a percentage) from fully closed (0) to full open (100)
uint8PR+EV0100
TargetPosition (7C)
uint8PW+PR+EV0100
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
ObstructionDetected (24)
  • indicates if obstruction is detected
boolPR+EV01
  • NOT_DETECTED (0)
  • DETECTED (1)
CharacteristicFormatPermsMinMaxValues
CurrentPosition (6D)
  • current position (as a percentage) from fully closed (0) to full open (100)
uint8PR+EV01000
TargetPosition (7C)
uint8PW+PR+EV01000
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
ObstructionDetected (24)
  • indicates if obstruction is detected
boolPR+EV01
  • NOT_DETECTED (0)
  • DETECTED (1)
## Doorbell (121)
Defines a Doorbell. Can be used on a standalone basis or in conjunction with a LockMechanism Service.
- + - +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
ProgrammableSwitchEvent (73)
uint8PR+EV+NV02
  • SINGLE_PRESS (0)
  • DOUBLE_PRESS (1)
  • LONG_PRESS (2)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
## Fan (B7)
Defines a Fan. Can be used in conjunction with a LightBulb Service to create a Lighted Ceiling Fan.
- + - + - +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
Active (B0)
  • indicates if the Service is active/on
uint8PW+PR+EV01
  • INACTIVE (0)
  • ACTIVE (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
CurrentFanState (AF)
  • indicates current state of a fan
uint8PR+EV02
  • INACTIVE (0)
  • IDLE (1)
  • BLOWING (2)
TargetFanState (BF)
uint8PW+PR+EV01
  • MANUAL (0)
  • AUTO (1)
RotationDirection (28)
intPR+PW+EV01
  • CLOCKWISE (0)
  • COUNTERCLOCKWISE (1)
RotationSpeed (29)
floatPR+PW+EV0100
RotationSpeed (29)
floatPR+PW+EV01000
SwingMode (B6)
uint8PR+EV+PW01
  • SWING_DISABLED (0)
  • SWING_ENABLED (1)
LockPhysicalControls (A7)
  • indicates if local control lock is enabled
uint8PW+PR+EV01
  • CONTROL_LOCK_DISABLED (0)
  • CONTROL_LOCK_ENABLED (1)
## Faucet (D7)
Defines the master control for a multi-Valve appliance. Linked Services: Valve (at least one required), and HeaterCooler (optional).
- + - +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
Active (B0)
  • indicates if the Service is active/on
uint8PW+PR+EV01
  • INACTIVE (0)
  • ACTIVE (1)
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
## FilterMaintenance (BA)
Defines a Filter Maintainence check.
- + - - - + + +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
FilterChangeIndication (AC)
  • indicates state of filter
uint8PR+EV01
  • NO_CHANGE_NEEDED (0)
  • CHANGE_NEEDED (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
FilterLifeLevel (AB)
  • measures as a percentage of remaining life
floatPR+EV0100
ResetFilterIndication (AD)
uint8PW11
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
FilterLifeLevel (AB)
  • measures as a percentage of remaining life
floatPR+EV01000
ResetFilterIndication (AD)
uint8PW110
## GarageDoorOpener (41)
Defines a motorized Garage Door Opener.
- + - + - - + +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
CurrentDoorState (E)
  • indicates current state of a door
uint8PR+EV04
  • OPEN (0)
  • CLOSED (1)
  • OPENING (2)
  • CLOSING (3)
  • STOPPED (4)
TargetDoorState (32)
uint8PW+PR+EV01
  • OPEN (0)
  • CLOSED (1)
ObstructionDetected (24)
  • indicates if obstruction is detected
boolPR+EV01
  • NOT_DETECTED (0)
  • DETECTED (1)
ObstructionDetected (24)
  • indicates if obstruction is detected
boolPR+EV01
  • NOT_DETECTED (0)
  • DETECTED (1)
LockCurrentState (1D)
  • indictates state of a lock
uint8PR+EV03
  • UNLOCKED (0)
  • LOCKED (1)
  • JAMMED (2)
  • UNKNOWN (3)
LockTargetState (1E)
  • indicates desired state of lock
uint8PW+PR+EV01
  • UNLOCK (0)
  • LOCK (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
Version (37)
stringPR--
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
Version (37)
stringPR--"1.0.0"
## HeaterCooler (BC)
Defines a standalone Heater, Cooler, or combined Heater/Cooler. Can be used with a separate Fan Service and/or Slat Service to extend functionality.
- + - + - - + + - - + +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
Active (B0)
  • indicates if the Service is active/on
uint8PW+PR+EV01
  • INACTIVE (0)
  • ACTIVE (1)
CurrentTemperature (11)
  • current temperature measured in Celsius
floatPR+EV0100
CurrentTemperature (11)
  • current temperature measured in Celsius
floatPR+EV01000
CurrentHeaterCoolerState (B1)
  • indicates whether appliance is currently heating, cooling, idle, or off
uint8PR+EV03
  • INACTIVE (0)
  • IDLE (1)
  • HEATING (2)
  • COOLING (3)
TargetHeaterCoolerState (B2)
uint8PW+PR+EV02
  • AUTO (0)
  • HEAT (1)
  • COOL (2)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
RotationSpeed (29)
floatPR+PW+EV0100
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
RotationSpeed (29)
floatPR+PW+EV01000
TemperatureDisplayUnits (36)
uint8PW+PR+EV01
  • CELSIUS (0)
  • FAHRENHEIT (1)
SwingMode (B6)
uint8PR+EV+PW01
  • SWING_DISABLED (0)
  • SWING_ENABLED (1)
CoolingThresholdTemperature (D)
  • cooling turns on when temperature (in Celsius) rises above this threshold
floatPR+PW+EV1035
HeatingThresholdTemperature (12)
  • heating turns on when temperature (in Celsius) falls below this threshold
floatPR+PW+EV025
CoolingThresholdTemperature (D)
  • cooling turns on when temperature (in Celsius) rises above this threshold
floatPR+PW+EV103510
HeatingThresholdTemperature (12)
  • heating turns on when temperature (in Celsius) falls below this threshold
floatPR+PW+EV02516
LockPhysicalControls (A7)
  • indicates if local control lock is enabled
uint8PW+PR+EV01
  • CONTROL_LOCK_DISABLED (0)
  • CONTROL_LOCK_ENABLED (1)
## HumidifierDehumidifier (BD)
Defines a Humidifer, Dehumidifier, or combined Humidifer/Dehumidifier. Can be used with a separate Fan Service and/or Slat Service to extend functionality.
- + - + - - - - + + + + - +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
Active (B0)
  • indicates if the Service is active/on
uint8PW+PR+EV01
  • INACTIVE (0)
  • ACTIVE (1)
CurrentRelativeHumidity (10)
  • current humidity measured as a percentage
floatPR+EV0100
CurrentRelativeHumidity (10)
  • current humidity measured as a percentage
floatPR+EV01000
CurrentHumidifierDehumidifierState (B3)
  • indicates current state of humidifier/dehumidifer
uint8PR+EV03
  • INACTIVE (0)
  • IDLE (1)
  • HUMIDIFYING (2)
  • DEHUMIDIFYING (3)
TargetHumidifierDehumidifierState (B4)
uint8PW+PR+EV02
  • AUTO (0)
  • HUMIDIFY (1)
  • DEHUMIDIFY (2)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
RelativeHumidityDehumidifierThreshold (C9)
floatPR+PW+EV0100
RelativeHumidityHumidifierThreshold (CA)
floatPR+PW+EV0100
RotationSpeed (29)
floatPR+PW+EV0100
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
RelativeHumidityDehumidifierThreshold (C9)
floatPR+PW+EV010050
RelativeHumidityHumidifierThreshold (CA)
floatPR+PW+EV010050
RotationSpeed (29)
floatPR+PW+EV01000
SwingMode (B6)
uint8PR+EV+PW01
  • SWING_DISABLED (0)
  • SWING_ENABLED (1)
WaterLevel (B5)
floatPR+EV0100
WaterLevel (B5)
floatPR+EV01000
LockPhysicalControls (A7)
  • indicates if local control lock is enabled
uint8PW+PR+EV01
  • CONTROL_LOCK_DISABLED (0)
  • CONTROL_LOCK_ENABLED (1)
## HumiditySensor (82)
Defines a Humidity Sensor.
- - - - + + + + @@ -188,30 +188,30 @@ ## InputSource (D9)
Defines an Input Source for a TV. Use only as a Linked Service for the Television Service.
CharacteristicFormatPermsMinMaxConstants/Defaults
CurrentRelativeHumidity (10)
  • current humidity measured as a percentage
floatPR+EV0100
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
StatusActive (75)
boolPR+EV01
CharacteristicFormatPermsMinMaxValues
CurrentRelativeHumidity (10)
  • current humidity measured as a percentage
floatPR+EV01000
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
StatusActive (75)
boolPR+EV011
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
StatusTampered (7A)
uint8PR+EV01
  • NOT_TAMPERED (0)
  • TAMPERED (1)
StatusLowBattery (79)
uint8PR+EV01
  • NOT_LOW_BATTERY (0)
  • LOW_BATTERY (1)
- - + + - - - + + +
CharacteristicFormatPermsMinMaxConstants/Defaults
ConfiguredName (E3)
stringPW+PR+EV--
CharacteristicFormatPermsMinMaxValues
ConfiguredName (E3)
stringPW+PR+EV--"unnamed"
IsConfigured (D6)
  • indicates if a predefined Service has been configured
uint8PR+EV01
  • NOT_CONFIGURED (0)
  • CONFIGURED (1)
Identifier (E6)
uint32PR0255
CurrentVisibilityState (135)
uint8PR+EV01
TargetVisibilityState (134)
uint8PW+PR+EV01
Identifier (E6)
uint32PR02550
CurrentVisibilityState (135)
uint8PR+EV010
TargetVisibilityState (134)
uint8PW+PR+EV010
## IrrigationSystem (CF)
Defines an Irrigation System. Linked Services: Valve Service (at least one required).
- + - +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
Active (B0)
  • indicates if the Service is active/on
uint8PW+PR+EV01
  • INACTIVE (0)
  • ACTIVE (1)
ProgramMode (D1)
uint8PR+EV02
  • NONE (0)
  • SCHEDULED (1)
  • SCHEDULE_OVERRIDEN (2)
InUse (D2)
  • if Service is set to active, this indictes whether it is currently in use
uint8PR+EV01
  • NOT_IN_USE (0)
  • IN_USE (1)
RemainingDuration (D4)
uint32PR+EV03600
RemainingDuration (D4)
uint32PR+EV0360060
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
## LeakSensor (83)
Defines a Leak Sensor.
- + - - + + @@ -219,21 +219,21 @@ ## LightBulb (43)
Defines any type of Light.
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
LeakDetected (70)
  • indictates if a leak is detected
uint8PR+EV01
  • NOT_DETECTED (0)
  • DETECTED (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
StatusActive (75)
boolPR+EV01
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
StatusActive (75)
boolPR+EV011
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
StatusTampered (7A)
uint8PR+EV01
  • NOT_TAMPERED (0)
  • TAMPERED (1)
StatusLowBattery (79)
uint8PR+EV01
  • NOT_LOW_BATTERY (0)
  • LOW_BATTERY (1)
- - - - - - - + + + + + + +
CharacteristicFormatPermsMinMaxConstants/Defaults
On (25)
  • indicates if the Service is active/on
boolPR+PW+EV01
  • OFF (0)
  • ON (1)
Brightness (8)
  • measured as a percentage
intPR+PW+EV0100
Hue (13)
  • color (in degrees) from red (0) to green (120) to blue (240) and back to red (360)
floatPR+PW+EV0360
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
Saturation (2F)
floatPR+PW+EV0100
ColorTemperature (CE)
  • measured in inverse megaKelvin (= 1,000,000 / Kelvin)
uint32PR+PW+EV140500
CharacteristicFormatPermsMinMaxValues
On (25)
  • indicates if the Service is active/on
boolPR+PW+EV01
  • OFF (0)
  • ON (1)
Brightness (8)
  • measured as a percentage
intPR+PW+EV01000
Hue (13)
  • color (in degrees) from red (0) to green (120) to blue (240) and back to red (360)
floatPR+PW+EV03600
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
Saturation (2F)
floatPR+PW+EV01000
ColorTemperature (CE)
  • measured in inverse megaKelvin (= 1,000,000 / Kelvin)
uint32PR+PW+EV140500200
## LightSensor (84)
Defines a Light Sensor.
- - - - + + + + @@ -241,21 +241,21 @@ ## LockMechanism (45)
Defines an electronic Lock.
CharacteristicFormatPermsMinMaxConstants/Defaults
CurrentAmbientLightLevel (6B)
  • measured in Lux (lumens/m2
floatPR+EV0.0001100000
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
StatusActive (75)
boolPR+EV01
CharacteristicFormatPermsMinMaxValues
CurrentAmbientLightLevel (6B)
  • measured in Lux (lumens/m2
floatPR+EV0.00011000001
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
StatusActive (75)
boolPR+EV011
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
StatusTampered (7A)
uint8PR+EV01
  • NOT_TAMPERED (0)
  • TAMPERED (1)
StatusLowBattery (79)
uint8PR+EV01
  • NOT_LOW_BATTERY (0)
  • LOW_BATTERY (1)
- + - - - - + + + +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
LockCurrentState (1D)
  • indictates state of a lock
uint8PR+EV03
  • UNLOCKED (0)
  • LOCKED (1)
  • JAMMED (2)
  • UNKNOWN (3)
LockTargetState (1E)
  • indicates desired state of lock
uint8PW+PR+EV01
  • UNLOCK (0)
  • LOCK (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
Mute (11A)
  • not used
boolPW+PR+EV01
  • OFF (0)
  • ON (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
Volume (119)
uint8PW+PR+EV0100
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
Mute (11A)
  • not used
boolPW+PR+EV01
  • OFF (0)
  • ON (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
Volume (119)
uint8PW+PR+EV01000
## MotionSensor (85)
Defines a Motion Sensor.
- - - - + + + + @@ -263,10 +263,10 @@ ## OccupancySensor (86)
Defines and Occupancy Sensor.
CharacteristicFormatPermsMinMaxConstants/Defaults
MotionDetected (22)
  • indicates if motion is detected
boolPR+EV01
  • NOT_DETECTED (0)
  • DETECTED (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
StatusActive (75)
boolPR+EV01
CharacteristicFormatPermsMinMaxValues
MotionDetected (22)
  • indicates if motion is detected
boolPR+EV01
  • NOT_DETECTED (0)
  • DETECTED (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
StatusActive (75)
boolPR+EV011
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
StatusTampered (7A)
uint8PR+EV01
  • NOT_TAMPERED (0)
  • TAMPERED (1)
StatusLowBattery (79)
uint8PR+EV01
  • NOT_LOW_BATTERY (0)
  • LOW_BATTERY (1)
- + - - + + @@ -274,18 +274,18 @@ ## Outlet (47)
Defines an controllable Outlet used to power any light or appliance.
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
OccupancyDetected (71)
  • indicates if occupanccy is detected
uint8PR+EV01
  • NOT_DETECTED (0)
  • DETECTED (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
StatusActive (75)
boolPR+EV01
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
StatusActive (75)
boolPR+EV011
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
StatusTampered (7A)
uint8PR+EV01
  • NOT_TAMPERED (0)
  • TAMPERED (1)
StatusLowBattery (79)
uint8PR+EV01
  • NOT_LOW_BATTERY (0)
  • LOW_BATTERY (1)
- - - - + + + +
CharacteristicFormatPermsMinMaxConstants/Defaults
On (25)
  • indicates if the Service is active/on
boolPR+PW+EV01
  • OFF (0)
  • ON (1)
OutletInUse (26)
  • indicates if an appliance or light is plugged into the outlet, regardless of whether on or off
boolPR+EV01
  • NOT_IN_USE (0)
  • IN_USE (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
CharacteristicFormatPermsMinMaxValues
On (25)
  • indicates if the Service is active/on
boolPR+PW+EV01
  • OFF (0)
  • ON (1)
OutletInUse (26)
  • indicates if an appliance or light is plugged into the outlet, regardless of whether on or off
boolPR+EV01
  • NOT_IN_USE (0)
  • IN_USE (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
## SecuritySystem (7E)
Defines a Security System.
- + - + @@ -294,66 +294,66 @@ ## Slat (B9)
Defines a motorized ventilation Slat(s).
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
SecuritySystemCurrentState (66)
uint8PR+EV04
  • ARMED_STAY (0)
  • ARMED_AWAY (1)
  • ARMED_NIGHT (2)
  • DISARMED (3)
  • ALARM_TRIGGERED (4)
SecuritySystemTargetState (67)
uint8PW+PR+EV03
  • ARM_STAY (0)
  • ARM_AWAY (1)
  • ARM_NIGHT (2)
  • DISARM (3)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
SecuritySystemAlarmType (8E)
uint8PR+EV01
  • KNOWN (0)
  • UNKNOWN (1)
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
StatusTampered (7A)
uint8PR+EV01
  • NOT_TAMPERED (0)
  • TAMPERED (1)
- + - + - - + +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
CurrentSlatState (AA)
  • indicates current state of slats
uint8PR+EV02
  • FIXED (0)
  • JAMMED (1)
  • SWINGING (2)
SlatType (C0)
uint8PR01
  • HORIZONTAL (0)
  • VERTICAL (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
SwingMode (B6)
uint8PR+EV+PW01
  • SWING_DISABLED (0)
  • SWING_ENABLED (1)
CurrentTiltAngle (C1)
  • angle (in degrees) of slats from fully up or left (-90) to fully open (0) to fully down or right (90)
intPR+EV-9090
TargetTiltAngle (C2)
intPW+PR+EV-9090
CurrentTiltAngle (C1)
  • angle (in degrees) of slats from fully up or left (-90) to fully open (0) to fully down or right (90)
intPR+EV-90900
TargetTiltAngle (C2)
intPW+PR+EV-90900
## SmokeSensor (87)
Defines a Smoke Sensor.
- + - - + + - - - + + +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
SmokeDetected (76)
uint8PR+EV01
  • NOT_DETECTED (0)
  • DETECTED (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
StatusActive (75)
boolPR+EV01
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
StatusActive (75)
boolPR+EV011
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
StatusTampered (7A)
uint8PR+EV01
  • NOT_TAMPERED (0)
  • TAMPERED (1)
StatusLowBattery (79)
uint8PR+EV01
  • NOT_LOW_BATTERY (0)
  • LOW_BATTERY (1)
Mute (11A)
  • not used
boolPW+PR+EV01
  • OFF (0)
  • ON (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
Volume (119)
uint8PW+PR+EV0100
Mute (11A)
  • not used
boolPW+PR+EV01
  • OFF (0)
  • ON (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
Volume (119)
uint8PW+PR+EV01000
## StatelessProgrammableSwitch (89)
Defines a "Stateless" Programmable Switch that can be used to trigger actions in the Home App.
- + - +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
ProgrammableSwitchEvent (73)
uint8PR+EV+NV02
  • SINGLE_PRESS (0)
  • DOUBLE_PRESS (1)
  • LONG_PRESS (2)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
## Switch (49)
Defines a generic Switch.
- - - + + +
CharacteristicFormatPermsMinMaxConstants/Defaults
On (25)
  • indicates if the Service is active/on
boolPR+PW+EV01
  • OFF (0)
  • ON (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
CharacteristicFormatPermsMinMaxValues
On (25)
  • indicates if the Service is active/on
boolPR+PW+EV01
  • OFF (0)
  • ON (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
## Television (D8)
Defines a TV. Optional Linked Services: InputSource and TelevisionSpeaker.
- + - - - - + + + +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
Active (B0)
  • indicates if the Service is active/on
uint8PW+PR+EV01
  • INACTIVE (0)
  • ACTIVE (1)
ConfiguredName (E3)
stringPW+PR+EV--
ActiveIdentifier (E7)
  • the Identifier of the current Input Source
uint32PW+PR+EV0255
RemoteKey (E1)
uint8PW016
PowerModeSelection (DF)
uint8PW01
ConfiguredName (E3)
stringPW+PR+EV--"unnamed"
ActiveIdentifier (E7)
  • the Identifier of the current Input Source
uint32PW+PR+EV02550
RemoteKey (E1)
uint8PW0160
PowerModeSelection (DF)
uint8PW010
## TelevisionSpeaker (113)
Defines a Television Speaker that can be controlled via the Remote Control widget on an iPhone. Use only as a Linked Service for the Television Service.
- - - + + +
CharacteristicFormatPermsMinMaxConstants/Defaults
VolumeControlType (E9)
uint8PR+EV03
VolumeSelector (EA)
uint8PW01
CharacteristicFormatPermsMinMaxValues
VolumeControlType (E9)
uint8PR+EV030
VolumeSelector (EA)
uint8PW010
## TemperatureSensor (8A)
Defines a Temperature Sensor.
- - - - + + + + @@ -361,51 +361,51 @@ ## Thermostat (4A)
Defines a Thermostat used to control a furnace, air conditioner, or both.
CharacteristicFormatPermsMinMaxConstants/Defaults
CurrentTemperature (11)
  • current temperature measured in Celsius
floatPR+EV0100
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
StatusActive (75)
boolPR+EV01
CharacteristicFormatPermsMinMaxValues
CurrentTemperature (11)
  • current temperature measured in Celsius
floatPR+EV01000
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
StatusActive (75)
boolPR+EV011
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
StatusTampered (7A)
uint8PR+EV01
  • NOT_TAMPERED (0)
  • TAMPERED (1)
StatusLowBattery (79)
uint8PR+EV01
  • NOT_LOW_BATTERY (0)
  • LOW_BATTERY (1)
- + - - + + - - - - - + + + + +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
CurrentHeatingCoolingState (F)
  • indicates whether appliance is currently heating, cooling, or just idle
uint8PR+EV02
  • IDLE (0)
  • HEATING (1)
  • COOLING (2)
TargetHeatingCoolingState (33)
uint8PW+PR+EV03
  • OFF (0)
  • HEAT (1)
  • COOL (2)
  • AUTO (3)
CurrentTemperature (11)
  • current temperature measured in Celsius
floatPR+EV0100
TargetTemperature (35)
floatPW+PR+EV1038
CurrentTemperature (11)
  • current temperature measured in Celsius
floatPR+EV01000
TargetTemperature (35)
floatPW+PR+EV103816
TemperatureDisplayUnits (36)
uint8PW+PR+EV01
  • CELSIUS (0)
  • FAHRENHEIT (1)
CoolingThresholdTemperature (D)
  • cooling turns on when temperature (in Celsius) rises above this threshold
floatPR+PW+EV1035
CurrentRelativeHumidity (10)
  • current humidity measured as a percentage
floatPR+EV0100
HeatingThresholdTemperature (12)
  • heating turns on when temperature (in Celsius) falls below this threshold
floatPR+PW+EV025
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
TargetRelativeHumidity (34)
floatPW+PR+EV0100
CoolingThresholdTemperature (D)
  • cooling turns on when temperature (in Celsius) rises above this threshold
floatPR+PW+EV103510
CurrentRelativeHumidity (10)
  • current humidity measured as a percentage
floatPR+EV01000
HeatingThresholdTemperature (12)
  • heating turns on when temperature (in Celsius) falls below this threshold
floatPR+PW+EV02516
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
TargetRelativeHumidity (34)
floatPW+PR+EV01000
## Valve (D0)
Defines an electronic Valve. Can be used standalone or as a Linked Service in conjunction with the Faucet and IrrigationSystem Services.
- + - - - + + + - +
CharacteristicFormatPermsMinMaxConstants/Defaults
CharacteristicFormatPermsMinMaxValues
Active (B0)
  • indicates if the Service is active/on
uint8PW+PR+EV01
  • INACTIVE (0)
  • ACTIVE (1)
InUse (D2)
  • if Service is set to active, this indictes whether it is currently in use
uint8PR+EV01
  • NOT_IN_USE (0)
  • IN_USE (1)
ValveType (D5)
uint8PR+EV03
SetDuration (D3)
uint32PW+PR+EV03600
RemainingDuration (D4)
uint32PR+EV03600
ValveType (D5)
uint8PR+EV030
SetDuration (D3)
uint32PW+PR+EV0360060
RemainingDuration (D4)
uint32PR+EV0360060
IsConfigured (D6)
  • indicates if a predefined Service has been configured
uint8PR+EV01
  • NOT_CONFIGURED (0)
  • CONFIGURED (1)
StatusFault (77)
uint8PR+EV01
  • NO_FAULT (0)
  • FAULT (1)
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
## Window (8B)
Defines a motorized Window.
- - - - - + + + + +
CharacteristicFormatPermsMinMaxConstants/Defaults
CurrentPosition (6D)
  • current position (as a percentage) from fully closed (0) to full open (100)
uint8PR+EV0100
TargetPosition (7C)
uint8PW+PR+EV0100
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
ObstructionDetected (24)
  • indicates if obstruction is detected
boolPR+EV01
  • NOT_DETECTED (0)
  • DETECTED (1)
CharacteristicFormatPermsMinMaxValues
CurrentPosition (6D)
  • current position (as a percentage) from fully closed (0) to full open (100)
uint8PR+EV01000
TargetPosition (7C)
uint8PW+PR+EV01000
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
ObstructionDetected (24)
  • indicates if obstruction is detected
boolPR+EV01
  • NOT_DETECTED (0)
  • DETECTED (1)
## WindowCovering (8C)
Defines a motorized Window Shade, Screen, Awning, etc.
- - - - - - - - - + + + + + + + + +
CharacteristicFormatPermsMinMaxConstants/Defaults
TargetPosition (7C)
uint8PW+PR+EV0100
CurrentPosition (6D)
  • current position (as a percentage) from fully closed (0) to full open (100)
uint8PR+EV0100
Name (23)
  • default name of a Service used only during initial pairing
stringPR--
CurrentHorizontalTiltAngle (6C)
  • current angle (in degrees) of slats from fully up (-90) to fully open (0) to fully down (90)
intPR+EV-9090
TargetHorizontalTiltAngle (7B)
intPW+PR+EV-9090
CurrentVerticalTiltAngle (6E)
  • current angle (in degrees) of slats from fully left (-90) to fully open (0) to fully right (90)
intPR+EV-9090
TargetVerticalTiltAngle (7D)
intPW+PR+EV-9090
ObstructionDetected (24)
  • indicates if obstruction is detected
boolPR+EV01
  • NOT_DETECTED (0)
  • DETECTED (1)
CharacteristicFormatPermsMinMaxValues
TargetPosition (7C)
uint8PW+PR+EV01000
CurrentPosition (6D)
  • current position (as a percentage) from fully closed (0) to full open (100)
uint8PR+EV01000
Name (23)
  • default name of a Service used only during initial pairing
stringPR--"unnamed"
CurrentHorizontalTiltAngle (6C)
  • current angle (in degrees) of slats from fully up (-90) to fully open (0) to fully down (90)
intPR+EV-90900
TargetHorizontalTiltAngle (7B)
intPW+PR+EV-90900
CurrentVerticalTiltAngle (6E)
  • current angle (in degrees) of slats from fully left (-90) to fully open (0) to fully right (90)
intPR+EV-90900
TargetVerticalTiltAngle (7D)
intPW+PR+EV-90900
ObstructionDetected (24)
  • indicates if obstruction is detected
boolPR+EV01
  • NOT_DETECTED (0)
  • DETECTED (1)