diff --git a/src/Span.h b/src/Span.h index 571d92e..cbddad3 100644 --- a/src/Span.h +++ b/src/Span.h @@ -462,7 +462,7 @@ namespace Characteristic { CREATE_CHAR(double,HeatingThresholdTemperature,16,0,25); // heating turns on when temperature (in Celsius) falls below this threshold CREATE_CHAR(boolean,HoldPosition,false,0,1); // deprecated CREATE_CHAR(double,Hue,0,0,360); // color (in degrees) from red (0) to green (120) to blue (240) and back to red (360) - CREATE_CHAR(boolean,Identify,false,0,1,IDLE,RUN_ID); // the Home App set this to RUN_ID when it wants the device to run its identification routine + CREATE_CHAR(boolean,Identify,0,0,1,IDLE,RUN_ID); // the Home App sets this to RUN_ID when it wants the device to run its identification routine CREATE_CHAR(uint32_t,Identifier,0,0,255); CREATE_CHAR(uint8_t,InputDeviceType,0,0,6); CREATE_CHAR(uint8_t,InputSourceType,0,0,10); @@ -474,15 +474,15 @@ namespace Characteristic { CREATE_CHAR(uint8_t,LockTargetState,0,0,1,UNLOCK,LOCK); // indicates desired state of lock CREATE_CHAR(const char *,Manufacturer,"HomeSpan",0,1); // any string - informational only CREATE_CHAR(const char *,Model,"HomeSpan-ESP32",0,1); // any string - informational only - CREATE_CHAR(boolean,MotionDetected,false,0,1,NOT_DETECTED,DETECTED); // indicates if motion is detected - CREATE_CHAR(boolean,Mute,false,0,1,OFF,ON); // not used + CREATE_CHAR(boolean,MotionDetected,0,0,1,NOT_DETECTED,DETECTED); // indicates if motion is detected + CREATE_CHAR(boolean,Mute,0,0,1,OFF,ON); // not used CREATE_CHAR(const char *,Name,"unnamed",0,1); // default name of a Service used only during initial pairing CREATE_CHAR(double,NitrogenDioxideDensity,0,0,1000); // measured in µg/m3 - CREATE_CHAR(boolean,ObstructionDetected,false,0,1,NOT_DETECTED,DETECTED); // indicates if obstruction is detected + CREATE_CHAR(boolean,ObstructionDetected,0,0,1,NOT_DETECTED,DETECTED); // indicates if obstruction is detected CREATE_CHAR(double,PM25Density,0,0,1000); // 2.5-micron particulate density, measured in µg/m3 CREATE_CHAR(uint8_t,OccupancyDetected,0,0,1,NOT_DETECTED,DETECTED); // indicates if occupanccy is detected - CREATE_CHAR(boolean,OutletInUse,false,0,1,NOT_IN_USE,IN_USE); // indicates if an appliance or light is plugged into the outlet, regardless of whether on or off - CREATE_CHAR(boolean,On,false,0,1,OFF,ON); // indicates if the Service is active/on + CREATE_CHAR(boolean,OutletInUse,0,0,1,NOT_IN_USE,IN_USE); // indicates if an appliance or light is plugged into the outlet, regardless of whether on or off + CREATE_CHAR(boolean,On,0,0,1,OFF,ON); // indicates if the Service is active/on CREATE_CHAR(double,OzoneDensity,0,0,1000); // measured in µg/m3 CREATE_CHAR(uint8_t,PictureMode,0,0,13); CREATE_CHAR(double,PM10Density,0,0,1000); // 10-micron particulate density, measured in µg/m3 @@ -507,7 +507,7 @@ namespace Characteristic { CREATE_CHAR(uint8_t,SlatType,0,0,1,HORIZONTAL,VERTICAL); CREATE_CHAR(uint8_t,SleepDiscoveryMode,0,0,1); CREATE_CHAR(uint8_t,SmokeDetected,0,0,1,NOT_DETECTED,DETECTED); - CREATE_CHAR(boolean,StatusActive,true,0,1); + CREATE_CHAR(boolean,StatusActive,1,0,1); CREATE_CHAR(uint8_t,StatusFault,0,0,1,NO_FAULT,FAULT); CREATE_CHAR(uint8_t,StatusJammed,0,0,1,NOT_JAMMED,JAMMED); CREATE_CHAR(uint8_t,StatusLowBattery,0,0,1,NOT_LOW_BATTERY,LOW_BATTERY); diff --git a/tools/makeServiceList b/tools/makeServiceList index b0ab253..c4b7d38 100755 --- a/tools/makeServiceList +++ b/tools/makeServiceList @@ -60,7 +60,6 @@ END { for(j=0;j") - #printf("%s
  • %s
",servReq[s,j]?"":"",char,servReq[s,j]?"":"",notes[char]) printf("%s (%s)
  • %s
",char,uuid[char],notes[char]) printf("%s",format[char]) printf("%s",perms[char]) @@ -76,7 +75,7 @@ END { printf("
  • %s%s (%d)%s
  • ",default[char]==k?"":"",vals[char,k],k,default[char]==k?"":"") printf("") } else { - printf("%s",default[char]) + # printf("%s",default[char]) } printf("\n") diff --git a/tools/test.md b/tools/test.md index 7b98e5a..4582eac 100644 --- a/tools/test.md +++ b/tools/test.md @@ -2,12 +2,12 @@
    Required Identification Information. For each Accessory in a HomeSpan device this must be included as the first Service.
    - - - - - - + + + + + +
    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--"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"
    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--
    ## AirPurifier (BB) @@ -16,8 +16,8 @@ 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 +Name (23)
    • default name of a Service used only during initial pairing
    stringPR-- +RotationSpeed (29)
    floatPR+PW+EV0100 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)
    @@ -26,14 +26,14 @@
    Defines an Air Quality Sensor.
    - - - - - - - - + + + + + + + + @@ -42,44 +42,44 @@ ## BatteryService (96)
    Defines a standalone Battery Service.
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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+EV01true
    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
    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+EV01000
    BatteryLevel (68)
    • measured as a percentage
    uint8PR+EV0100
    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"
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    ## CarbonDioxideSensor (97)
    Defines a Carbon Dioxide Sensor.
    - - + + - - + +
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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+EV01true
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    StatusActive (75)
    boolPR+EV01
    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
    CarbonDioxideLevel (93)
    • measured on parts per million (ppm)
    floatPR+EV0100000
    CarbonDioxidePeakLevel (94)
    • measured in parts per million (ppm)
    floatPR+EV0100000
    ## CarbonMonoxideSensor (7F)
    Defines a Carbon Monoxide Sensor.
    - - + + - - + +
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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+EV01true
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    StatusActive (75)
    boolPR+EV01
    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
    CarbonMonoxideLevel (90)
    • measured in parts per million (ppm)
    floatPR+EV0100
    CarbonMonoxidePeakLevel (91)
    • measured in parts per million (ppm)
    floatPR+EV0100
    ## ContactSensor (80)
    Defines a Contact Sensor.
    - - + + @@ -88,9 +88,9 @@ ## Door (81)
    Defines a motorized Door.
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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+EV01true
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    StatusActive (75)
    boolPR+EV01
    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+EV01000
    TargetPosition (7C)
    uint8PW+PR+EV01000
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--"unnamed"
    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)
    @@ -98,18 +98,18 @@
    Defines a Doorbell. Can be used on a standalone basis or in conjunction with a LockMechanism Service.
    - +
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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"
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    ## Fan (B7)
    Defines a Fan. Can be used in conjunction with a LightBulb Service to create a Lighted Ceiling Fan.
    - + - +
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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"
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    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
    RotationSpeed (29)
    floatPR+PW+EV0100
    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)
    @@ -119,16 +119,16 @@ CharacteristicFormatPermsMinMaxConstants/Defaults 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" +Name (23)
    • default name of a Service used only during initial pairing
    stringPR-- ## FilterMaintenance (BA)
    Defines a Filter Maintainence check.
    - - - + + +
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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
    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
    ## GarageDoorOpener (41) @@ -139,23 +139,23 @@ 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" +Name (23)
    • default name of a Service used only during initial pairing
    stringPR-- +Version (37)
    stringPR-- ## 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
    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
    CurrentTemperature (11)
    • current temperature measured in Celsius
    floatPR+EV0100
    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
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    RotationSpeed (29)
    floatPR+PW+EV0100
    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
    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
    LockPhysicalControls (A7)
    • indicates if local control lock is enabled
    uint8PW+PR+EV01
    • CONTROL_LOCK_DISABLED (0)
    • CONTROL_LOCK_ENABLED (1)
    @@ -163,24 +163,24 @@
    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
    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
    CurrentRelativeHumidity (10)
    • current humidity measured as a percentage
    floatPR+EV0100
    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
    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
    SwingMode (B6)
    uint8PR+EV+PW01
    • SWING_DISABLED (0)
    • SWING_ENABLED (1)
    WaterLevel (B5)
    floatPR+EV01000
    WaterLevel (B5)
    floatPR+EV0100
    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.
    - - - + + + @@ -189,11 +189,11 @@ ## 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+EV01000
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--"unnamed"
    StatusActive (75)
    boolPR+EV01true
    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
    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--"unnamed"
    ConfiguredName (E3)
    stringPW+PR+EV--
    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
    Identifier (E6)
    uint32PR0255
    CurrentVisibilityState (135)
    uint8PR+EV01
    TargetVisibilityState (134)
    uint8PW+PR+EV01
    ## IrrigationSystem (CF) @@ -202,7 +202,7 @@ 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 +RemainingDuration (D4)
    uint32PR+EV03600 StatusFault (77)
    uint8PR+EV01
    • NO_FAULT (0)
    • FAULT (1)
    @@ -210,8 +210,8 @@
    Defines a Leak Sensor.
    - - + + @@ -221,19 +221,19 @@
    Defines any type of Light.
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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+EV01true
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    StatusActive (75)
    boolPR+EV01
    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+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
    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
    ## LightSensor (84)
    Defines a Light Sensor.
    - - - + + + @@ -244,18 +244,18 @@ - + - - + +
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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+EV01true
    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
    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
    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"
    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--"unnamed"
    Volume (119)
    uint8PW+PR+EV01000
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    Volume (119)
    uint8PW+PR+EV0100
    ## MotionSensor (85)
    Defines a Motion Sensor.
    - - + + @@ -265,8 +265,8 @@
    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--"unnamed"
    StatusActive (75)
    boolPR+EV01true
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    StatusActive (75)
    boolPR+EV01
    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)
    - - + + @@ -277,7 +277,7 @@ - +
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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+EV01true
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    StatusActive (75)
    boolPR+EV01
    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--"unnamed"
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    ## SecuritySystem (7E) @@ -285,7 +285,7 @@ CharacteristicFormatPermsMinMaxConstants/Defaults 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" +Name (23)
    • default name of a Service used only during initial pairing
    stringPR-- 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)
    @@ -297,63 +297,63 @@ CharacteristicFormatPermsMinMaxConstants/Defaults 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" +Name (23)
    • default name of a Service used only during initial pairing
    stringPR-- 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 +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 ## SmokeSensor (87)
    Defines a Smoke Sensor.
    - - + + - - + +
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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+EV01true
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    StatusActive (75)
    boolPR+EV01
    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
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    Volume (119)
    uint8PW+PR+EV0100
    ## StatelessProgrammableSwitch (89)
    Defines a "Stateless" Programmable Switch that can be used to trigger actions in the Home App.
    - +
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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"
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    ## 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--"unnamed"
    Name (23)
    • default name of a Service used only during initial pairing
    stringPR--
    ## Television (D8)
    Defines a TV. Optional Linked Services: InputSource and TelevisionSpeaker.
    - - - - + + + +
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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
    ConfiguredName (E3)
    stringPW+PR+EV--
    ActiveIdentifier (E7)
    • the Identifier of the current Input Source
    uint32PW+PR+EV0255
    RemoteKey (E1)
    uint8PW016
    PowerModeSelection (DF)
    uint8PW01
    ## 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+EV030
    VolumeSelector (EA)
    uint8PW010
    VolumeControlType (E9)
    uint8PR+EV03
    VolumeSelector (EA)
    uint8PW01
    ## TemperatureSensor (8A)
    Defines a Temperature Sensor.
    - - - + + + @@ -364,14 +364,14 @@ - - + + - - - - - + + + + +
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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+EV01true
    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
    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
    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
    CurrentTemperature (11)
    • current temperature measured in Celsius
    floatPR+EV0100
    TargetTemperature (35)
    floatPW+PR+EV1038
    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
    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
    ## Valve (D0) @@ -379,33 +379,33 @@ CharacteristicFormatPermsMinMaxConstants/Defaults 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 +ValveType (D5)
    uint8PR+EV03 +SetDuration (D3)
    uint32PW+PR+EV03600 +RemainingDuration (D4)
    uint32PR+EV03600 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" +Name (23)
    • default name of a Service used only during initial pairing
    stringPR-- ## Window (8B)
    Defines a motorized Window.
    - - - + + +
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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"
    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)
    ## WindowCovering (8C)
    Defines a motorized Window Shade, Screen, Awning, etc.
    - - - - - - - + + + + + + +
    CharacteristicFormatPermsMinMaxConstants/Defaults
    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
    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)