From bfb452c661798c14e1e4fc61af4e791764b2bf9a Mon Sep 17 00:00:00 2001 From: Gregg Date: Sun, 21 Jan 2024 14:32:22 -0600 Subject: [PATCH] update --- tools/makeServiceList | 6 +- tools/test.md | 526 +++++++++++++++++++++--------------------- 2 files changed, 266 insertions(+), 266 deletions(-) diff --git a/tools/makeServiceList b/tools/makeServiceList index b2479c6..8f46636 100755 --- a/tools/makeServiceList +++ b/tools/makeServiceList @@ -55,12 +55,12 @@ END { s=services[i] printf("## %s (%s)\n",s,uuid[s]) printf("
%s
\n",desc[s]) - printf("\n") + printf("\n") for(j=0;j") - printf("",char,uuid[char],notes[char]) + printf("",char,uuid[char],servReq[s,j]?":small_blue_diamond":"",notes[char]) printf("",format[char]) printf("",perms[char]) @@ -75,7 +75,7 @@ END { printf("
  • %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 1cc6960..127bcef 100644 --- a/tools/test.md +++ b/tools/test.md @@ -1,411 +1,411 @@ ## AccessoryInformation (3E)
    Required Identification Information. For each Accessory in a HomeSpan device this must be included as the first Service.
    CharacteristicFormatPermsMinMaxValues
    CharacteristicFormatPermsMinMaxConstants/Defaults
    %s (%s)
    • %s
    %s (%s) %s
    • %s
    %s%s%s%s
    - - - - - - - - + + + + + + + +
    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"
    CharacteristicFormatPermsMinMaxConstants/Defaults
    Identify (14) :small_blue_diamond
    • 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
    - - - - - - - - + + + + + + + +
    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--"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)
    CharacteristicFormatPermsMinMaxConstants/Defaults
    Active (B0) :small_blue_diamond
    • indicates if the Service is active/on
    uint8PW+PR+EV01
    • INACTIVE (0)
    • ACTIVE (1)
    CurrentAirPurifierState (A9) :small_blue_diamond
    • indicates current state of air purification
    uint8PR+EV02
    • INACTIVE (0)
    • IDLE (1)
    • PURIFYING (2)
    TargetAirPurifierState (A8) :small_blue_diamond
    uint8PW+PR+EV01
    • MANUAL (0)
    • AUTO (1)
    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.
    - - - - - - - - - - - - - + + + + + + + + + + + + +
    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--"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
    AirQuality (95) :small_blue_diamond
    • 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--"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)
    ## BatteryService (96)
    Defines a standalone Battery Service.
    - - - - - + + + + +
    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--"unnamed"
    CharacteristicFormatPermsMinMaxConstants/Defaults
    BatteryLevel (68) :small_blue_diamond
    • measured as a percentage
    uint8PR+EV01000
    ChargingState (8F) :small_blue_diamond
    • indicates state of battery charging
    uint8PR+EV02
    • NOT_CHARGING (0)
    • CHARGING (1)
    • NOT_CHARGEABLE (2)
    StatusLowBattery (79) :small_blue_diamond
    uint8PR+EV01
    • NOT_LOW_BATTERY (0)
    • LOW_BATTERY (1)
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--"unnamed"
    ## CarbonDioxideSensor (97)
    Defines a Carbon Dioxide Sensor.
    - - - - - - - - - + + + + + + + + +
    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--"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+EV01000000
    CarbonDioxidePeakLevel (94)
    • measured in parts per million (ppm)
    floatPR+EV01000000
    CharacteristicFormatPermsMinMaxConstants/Defaults
    CarbonDioxideDetected (92) :small_blue_diamond
    • 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--"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+EV01000000
    CarbonDioxidePeakLevel (94)
    • measured in parts per million (ppm)
    floatPR+EV01000000
    ## CarbonMonoxideSensor (7F)
    Defines a Carbon Monoxide Sensor.
    - - - - - - - - - + + + + + + + + +
    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--"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+EV01000
    CarbonMonoxidePeakLevel (91)
    • measured in parts per million (ppm)
    floatPR+EV01000
    CharacteristicFormatPermsMinMaxConstants/Defaults
    CarbonMonoxideDetected (69) :small_blue_diamond
    • 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--"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+EV01000
    CarbonMonoxidePeakLevel (91)
    • measured in parts per million (ppm)
    floatPR+EV01000
    ## ContactSensor (80)
    Defines a Contact Sensor.
    - - - - - - - + + + + + + +
    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--"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
    ContactSensorState (6A) :small_blue_diamond
    • 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--"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)
    ## Door (81)
    Defines a motorized Door.
    - - - - - + + + + +
    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)
    CharacteristicFormatPermsMinMaxConstants/Defaults
    CurrentPosition (6D) :small_blue_diamond
    • current position (as a percentage) from fully closed (0) to full open (100)
    uint8PR+EV01000
    TargetPosition (7C) :small_blue_diamond
    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.
    - - - + + +
    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--"unnamed"
    CharacteristicFormatPermsMinMaxConstants/Defaults
    ProgrammableSwitchEvent (73) :small_blue_diamond
    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--"unnamed"
    ## Fan (B7)
    Defines a Fan. Can be used in conjunction with a LightBulb Service to create a Lighted Ceiling Fan.
    - - - - - - - - - + + + + + + + + +
    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--"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+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)
    CharacteristicFormatPermsMinMaxConstants/Defaults
    Active (B0) :small_blue_diamond
    • 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--"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+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).
    - - - - + + + +
    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--"unnamed"
    CharacteristicFormatPermsMinMaxConstants/Defaults
    Active (B0) :small_blue_diamond
    • 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--"unnamed"
    ## FilterMaintenance (BA)
    Defines a Filter Maintainence check.
    - - - - - + + + + +
    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--"unnamed"
    FilterLifeLevel (AB)
    • measures as a percentage of remaining life
    floatPR+EV01000
    ResetFilterIndication (AD)
    uint8PW110
    CharacteristicFormatPermsMinMaxConstants/Defaults
    FilterChangeIndication (AC) :small_blue_diamond
    • 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--"unnamed"
    FilterLifeLevel (AB)
    • measures as a percentage of remaining life
    floatPR+EV01000
    ResetFilterIndication (AD)
    uint8PW110
    ## GarageDoorOpener (41)
    Defines a motorized Garage Door Opener.
    - - - - - - - - + + + + + + + +
    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)
    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--"unnamed"
    Version (37)
    stringPR--"1.0.0"
    CharacteristicFormatPermsMinMaxConstants/Defaults
    CurrentDoorState (E) :small_blue_diamond
    • indicates current state of a door
    uint8PR+EV04
    • OPEN (0)
    • CLOSED (1)
    • OPENING (2)
    • CLOSING (3)
    • STOPPED (4)
    TargetDoorState (32) :small_blue_diamond
    uint8PW+PR+EV01
    • OPEN (0)
    • CLOSED (1)
    ObstructionDetected (24) :small_blue_diamond
    • 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--"unnamed"
    Version (37) :small_blue_diamond
    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.
    - - - - - - - - - - - - + + + + + + + + + + + +
    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+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--"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+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)
    CharacteristicFormatPermsMinMaxConstants/Defaults
    Active (B0) :small_blue_diamond
    • indicates if the Service is active/on
    uint8PW+PR+EV01
    • INACTIVE (0)
    • ACTIVE (1)
    CurrentTemperature (11) :small_blue_diamond
    • current temperature measured in Celsius
    floatPR+EV01000
    CurrentHeaterCoolerState (B1) :small_blue_diamond
    • indicates whether appliance is currently heating, cooling, idle, or off
    uint8PR+EV03
    • INACTIVE (0)
    • IDLE (1)
    • HEATING (2)
    • COOLING (3)
    TargetHeaterCoolerState (B2) :small_blue_diamond
    uint8PW+PR+EV02
    • AUTO (0)
    • HEAT (1)
    • COOL (2)
    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+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.
    - - - - - - - - - - - - + + + + + + + + + + + +
    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+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--"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+EV01000
    LockPhysicalControls (A7)
    • indicates if local control lock is enabled
    uint8PW+PR+EV01
    • CONTROL_LOCK_DISABLED (0)
    • CONTROL_LOCK_ENABLED (1)
    CharacteristicFormatPermsMinMaxConstants/Defaults
    Active (B0) :small_blue_diamond
    • indicates if the Service is active/on
    uint8PW+PR+EV01
    • INACTIVE (0)
    • ACTIVE (1)
    CurrentRelativeHumidity (10) :small_blue_diamond
    • current humidity measured as a percentage
    floatPR+EV01000
    CurrentHumidifierDehumidifierState (B3) :small_blue_diamond
    • indicates current state of humidifier/dehumidifer
    uint8PR+EV03
    • INACTIVE (0)
    • IDLE (1)
    • HUMIDIFYING (2)
    • DEHUMIDIFYING (3)
    TargetHumidifierDehumidifierState (B4) :small_blue_diamond
    uint8PW+PR+EV02
    • AUTO (0)
    • HUMIDIFY (1)
    • DEHUMIDIFY (2)
    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+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.
    - - - - - - - + + + + + + +
    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
    CurrentRelativeHumidity (10) :small_blue_diamond
    • 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)
    ## InputSource (D9)
    Defines an Input Source for a TV. Use only as a Linked Service for the Television Service.
    - - - - - - + + + + + +
    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)
    uint32PR02550
    CurrentVisibilityState (135)
    uint8PR+EV010
    TargetVisibilityState (134)
    uint8PW+PR+EV010
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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) :small_blue_diamond
    uint32PR02550
    CurrentVisibilityState (135)
    uint8PR+EV010
    TargetVisibilityState (134)
    uint8PW+PR+EV010
    ## IrrigationSystem (CF)
    Defines an Irrigation System. Linked Services: Valve Service (at least one required).
    - - - - - - + + + + + +
    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+EV0360060
    StatusFault (77)
    uint8PR+EV01
    • NO_FAULT (0)
    • FAULT (1)
    CharacteristicFormatPermsMinMaxConstants/Defaults
    Active (B0) :small_blue_diamond
    • indicates if the Service is active/on
    uint8PW+PR+EV01
    • INACTIVE (0)
    • ACTIVE (1)
    ProgramMode (D1) :small_blue_diamond
    uint8PR+EV02
    • NONE (0)
    • SCHEDULED (1)
    • SCHEDULE_OVERRIDEN (2)
    InUse (D2) :small_blue_diamond
    • 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+EV0360060
    StatusFault (77)
    uint8PR+EV01
    • NO_FAULT (0)
    • FAULT (1)
    ## LeakSensor (83)
    Defines a Leak Sensor.
    - - - - - - - + + + + + + +
    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--"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
    LeakDetected (70) :small_blue_diamond
    • 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--"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)
    ## LightBulb (43)
    Defines any type of Light.
    - - - - - - - + + + + + + +
    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
    CharacteristicFormatPermsMinMaxConstants/Defaults
    On (25) :small_blue_diamond
    • 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.
    - - - - - - - + + + + + + +
    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
    CurrentAmbientLightLevel (6B) :small_blue_diamond
    • 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)
    ## LockMechanism (45)
    Defines an electronic Lock.
    - - - - - - - + + + + + + +
    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--"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
    CharacteristicFormatPermsMinMaxConstants/Defaults
    LockCurrentState (1D) :small_blue_diamond
    • indictates state of a lock
    uint8PR+EV03
    • UNLOCKED (0)
    • LOCKED (1)
    • JAMMED (2)
    • UNKNOWN (3)
    LockTargetState (1E) :small_blue_diamond
    • 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--"unnamed"
    Mute (11A) :small_blue_diamond
    • 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.
    - - - - - - - + + + + + + +
    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)
    CharacteristicFormatPermsMinMaxConstants/Defaults
    MotionDetected (22) :small_blue_diamond
    • 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)
    ## OccupancySensor (86)
    Defines and Occupancy Sensor.
    - - - - - - - + + + + + + +
    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--"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
    OccupancyDetected (71) :small_blue_diamond
    • 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--"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)
    ## Outlet (47)
    Defines an controllable Outlet used to power any light or appliance.
    - - - - + + + +
    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"
    CharacteristicFormatPermsMinMaxConstants/Defaults
    On (25) :small_blue_diamond
    • indicates if the Service is active/on
    boolPR+PW+EV01
    • OFF (0)
    • ON (1)
    OutletInUse (26) :small_blue_diamond
    • 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.
    - - - - - - - - + + + + + + + +
    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--"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)
    ServiceLabelNamespace (CD)
    uint8PR01
    • DOTS (0)
    • NUMERALS (1)
    CharacteristicFormatPermsMinMaxConstants/Defaults
    SecuritySystemCurrentState (66) :small_blue_diamond
    uint8PR+EV04
    • ARMED_STAY (0)
    • ARMED_AWAY (1)
    • ARMED_NIGHT (2)
    • DISARMED (3)
    • ALARM_TRIGGERED (4)
    SecuritySystemTargetState (67) :small_blue_diamond
    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--"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)
    ServiceLabelNamespace (CD) :small_blue_diamond
    uint8PR01
    • DOTS (0)
    • NUMERALS (1)
    ## Slat (B9)
    Defines a motorized ventilation Slat(s).
    - - - - - - - + + + + + + +
    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--"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-90900
    TargetTiltAngle (C2)
    intPW+PR+EV-90900
    CharacteristicFormatPermsMinMaxConstants/Defaults
    CurrentSlatState (AA) :small_blue_diamond
    • indicates current state of slats
    uint8PR+EV02
    • FIXED (0)
    • JAMMED (1)
    • SWINGING (2)
    SlatType (C0) :small_blue_diamond
    uint8PR01
    • HORIZONTAL (0)
    • VERTICAL (1)
    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-90900
    TargetTiltAngle (C2)
    intPW+PR+EV-90900
    ## SmokeSensor (87)
    Defines a Smoke Sensor.
    - - - - - - - - - - + + + + + + + + + +
    CharacteristicFormatPermsMinMaxValues
    SmokeDetected (76)
    uint8PR+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)
    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
    CharacteristicFormatPermsMinMaxConstants/Defaults
    SmokeDetected (76) :small_blue_diamond
    uint8PR+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)
    Mute (11A) :small_blue_diamond
    • 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.
    - - - + + +
    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--"unnamed"
    CharacteristicFormatPermsMinMaxConstants/Defaults
    ProgrammableSwitchEvent (73) :small_blue_diamond
    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--"unnamed"
    ## Switch (49)
    Defines a generic Switch.
    - - - + + +
    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"
    CharacteristicFormatPermsMinMaxConstants/Defaults
    On (25) :small_blue_diamond
    • 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.
    - - - - - - + + + + + +
    CharacteristicFormatPermsMinMaxValues
    Active (B0)
    • indicates if the Service is active/on
    uint8PW+PR+EV01
    • INACTIVE (0)
    • ACTIVE (1)
    ConfiguredName (E3)
    stringPW+PR+EV--"unnamed"
    ActiveIdentifier (E7)
    • the Identifier of the current Input Source
    uint32PW+PR+EV02550
    RemoteKey (E1)
    uint8PW0160
    PowerModeSelection (DF)
    uint8PW010
    CharacteristicFormatPermsMinMaxConstants/Defaults
    Active (B0) :small_blue_diamond
    • indicates if the Service is active/on
    uint8PW+PR+EV01
    • INACTIVE (0)
    • ACTIVE (1)
    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.
    - - - + + +
    CharacteristicFormatPermsMinMaxValues
    VolumeControlType (E9)
    uint8PR+EV030
    VolumeSelector (EA)
    uint8PW010
    CharacteristicFormatPermsMinMaxConstants/Defaults
    VolumeControlType (E9) :small_blue_diamond
    uint8PR+EV030
    VolumeSelector (EA) :small_blue_diamond
    uint8PW010
    ## TemperatureSensor (8A)
    Defines a Temperature Sensor.
    - - - - - - - + + + + + + +
    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
    CurrentTemperature (11) :small_blue_diamond
    • 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)
    ## Thermostat (4A)
    Defines a Thermostat used to control a furnace, air conditioner, or both.
    - - - - - - - - - - - + + + + + + + + + + +
    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+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+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
    CharacteristicFormatPermsMinMaxConstants/Defaults
    CurrentHeatingCoolingState (F) :small_blue_diamond
    • indicates whether appliance is currently heating, cooling, or just idle
    uint8PR+EV02
    • IDLE (0)
    • HEATING (1)
    • COOLING (2)
    TargetHeatingCoolingState (33) :small_blue_diamond
    uint8PW+PR+EV03
    • OFF (0)
    • HEAT (1)
    • COOL (2)
    • AUTO (3)
    CurrentTemperature (11) :small_blue_diamond
    • current temperature measured in Celsius
    floatPR+EV01000
    TargetTemperature (35) :small_blue_diamond
    floatPW+PR+EV103816
    TemperatureDisplayUnits (36) :small_blue_diamond
    uint8PW+PR+EV01
    • CELSIUS (0)
    • FAHRENHEIT (1)
    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.
    - - - - - - - - - + + + + + + + + +
    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+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--"unnamed"
    CharacteristicFormatPermsMinMaxConstants/Defaults
    Active (B0) :small_blue_diamond
    • indicates if the Service is active/on
    uint8PW+PR+EV01
    • INACTIVE (0)
    • ACTIVE (1)
    InUse (D2) :small_blue_diamond
    • 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) :small_blue_diamond
    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--"unnamed"
    ## Window (8B)
    Defines a motorized Window.
    - - - - - + + + + +
    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)
    CharacteristicFormatPermsMinMaxConstants/Defaults
    CurrentPosition (6D) :small_blue_diamond
    • current position (as a percentage) from fully closed (0) to full open (100)
    uint8PR+EV01000
    TargetPosition (7C) :small_blue_diamond
    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.
    - - - - - - - - - + + + + + + + + +
    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)
    CharacteristicFormatPermsMinMaxConstants/Defaults
    TargetPosition (7C) :small_blue_diamond
    uint8PW+PR+EV01000
    CurrentPosition (6D) :small_blue_diamond
    • 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)