diff --git a/src/Span.h b/src/Span.h index 427f417..17febee 100644 --- a/src/Span.h +++ b/src/Span.h @@ -32,17 +32,23 @@ // Macros to define services, along with vectors of required and optional characteristics for each Span Service structure // The names of the macros are picked up by external scripts to help generate documentation +// Note: These macros below are also parsed by an external awk script to auto-generate Services and Characteristics documentation. +// +// The CREATE_SERV_DEP() macro is the same as the CREATE_SERV() macro, except that it is used for deprecated Services that will not +// be included in documentation. The OPT_DEP() macro is that same as the OPT() macro, except that it is used for deprecated Characteristics +// that will not be included in documentation. + #define CREATE_SERV(NAME,UUID) struct NAME : SpanService { NAME() : SpanService{#UUID,#NAME}{ #define CREATE_SERV_DEP(NAME,UUID) struct NAME : SpanService { NAME() : SpanService{#UUID,#NAME}{ #define END_SERV }}; #define REQ(HAPCHAR) req.push_back(&hapChars.HAPCHAR) #define OPT(HAPCHAR) opt.push_back(&hapChars.HAPCHAR) -#define DEP(HAPCHAR) opt.push_back(&hapChars.HAPCHAR) +#define OPT_DEP(HAPCHAR) opt.push_back(&hapChars.HAPCHAR) namespace Service { - CREATE_SERV(AccessoryInformation,3E) // Required Identification Information. For each Accessory in a HomeSpan device this must be included as the first Service. + CREATE_SERV(AccessoryInformation,3E) // Required Identification Information. For each Accessory in a HomeSpan device this must be included as the first Service. REQ(Identify); OPT(FirmwareRevision); OPT(Manufacturer); @@ -50,10 +56,10 @@ namespace Service { OPT(Name); OPT(SerialNumber); OPT(HardwareRevision); - DEP(AccessoryFlags); + OPT_DEP(AccessoryFlags); END_SERV - CREATE_SERV(AirPurifier,BB) // Defines a basic Air Purifier with an optional fan. Optional Linked Services: FilterMaintenance, AirQualitySensor, Fan, Slat + CREATE_SERV(AirPurifier,BB) // Defines a basic Air Purifier with an optional fan. Optional Linked Services: FilterMaintenance, AirQualitySensor, Fan, and Slat REQ(Active); REQ(CurrentAirPurifierState); REQ(TargetAirPurifierState); @@ -63,7 +69,7 @@ namespace Service { OPT(LockPhysicalControls); END_SERV - CREATE_SERV(AirQualitySensor,8D) // Defines an Air Quality Sensor with a variety of Air Quality Characteristics. + CREATE_SERV(AirQualitySensor,8D) // Defines an Air Quality Sensor. REQ(AirQuality); OPT(Name); OPT(OzoneDensity); @@ -119,20 +125,20 @@ namespace Service { CREATE_SERV(Door,81) // Defines a motorized Door. REQ(CurrentPosition); REQ(TargetPosition); - DEP(PositionState); + OPT_DEP(PositionState); OPT(Name); - DEP(HoldPosition); + OPT_DEP(HoldPosition); OPT(ObstructionDetected); END_SERV - CREATE_SERV(Doorbell,121) // Defines a Doorbell. + CREATE_SERV(Doorbell,121) // Defines a Doorbell. Can be used on a standalone basis or in conjunction with a LockMechanism Service. REQ(ProgrammableSwitchEvent); OPT(Name); - DEP(Volume); - DEP(Brightness); + OPT_DEP(Volume); + OPT_DEP(Brightness); END_SERV - CREATE_SERV(Fan,B7) // Defines a Fan. Can be used with a LightBulb Service to define a Lighted Ceiling Fan. + CREATE_SERV(Fan,B7) // Defines a Fan. Can be used in conjunction with a LightBulb Service to create a Lighted Ceiling Fan. REQ(Active); OPT(Name); OPT(CurrentFanState); @@ -143,7 +149,7 @@ namespace Service { OPT(LockPhysicalControls); END_SERV - CREATE_SERV(Faucet,D7) // Defines the master control for one or more faucets or shower heads. Linked Services: Valve (at least one required) and HeaterCooler (optional, unless only one linked Valve defined). + CREATE_SERV(Faucet,D7) // Defines the master control for one or more faucets or shower heads. Linked Services: Valve (at least one required), and HeaterCooler (optional, unless only one linked Valve is defined). REQ(Active); OPT(StatusFault); OPT(Name); @@ -169,7 +175,7 @@ namespace Service { REQ(Version); END_SERV - CREATE_SERV(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. + CREATE_SERV(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. REQ(Active); REQ(CurrentTemperature); REQ(CurrentHeaterCoolerState); @@ -183,7 +189,7 @@ namespace Service { OPT(LockPhysicalControls); END_SERV - CREATE_SERV(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. + CREATE_SERV(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. REQ(Active); REQ(CurrentRelativeHumidity); REQ(CurrentHumidifierDehumidifierState); @@ -206,7 +212,7 @@ namespace Service { OPT(StatusLowBattery); END_SERV - CREATE_SERV(InputSource,D9) // Defines an Input Source for a Television. Use only as a Linked Service for the Television Service. + CREATE_SERV(InputSource,D9) // Defines an Input Source for a TV. Use only as a Linked Service for the Television Service. OPT(ConfiguredName); OPT(IsConfigured); REQ(Identifier); @@ -214,7 +220,7 @@ namespace Service { OPT(TargetVisibilityState); END_SERV - CREATE_SERV(IrrigationSystem,CF) // Defines an Irrigation System. Linked Services: Valve Service (at least one required). + CREATE_SERV(IrrigationSystem,CF) // Defines an Irrigation System. Linked Services: Valve Service (at least one required). REQ(Active); REQ(ProgramMode); REQ(InUse); @@ -231,7 +237,7 @@ namespace Service { OPT(StatusLowBattery); END_SERV - CREATE_SERV(LightBulb,43) // Defines a generic Light. + CREATE_SERV(LightBulb,43) // Defines any type of Light. REQ(On); OPT(Brightness); OPT(Hue); @@ -298,7 +304,7 @@ namespace Service { REQ(ServiceLabelNamespace); END_SERV - CREATE_SERV(Slat,B9) // Defines a motorized ventilation Slat (or group of Slats). + CREATE_SERV(Slat,B9) // Defines a motorized ventilation Slat(s). REQ(CurrentSlatState); REQ(SlatType); OPT(Name); @@ -325,7 +331,7 @@ namespace Service { CREATE_SERV(StatelessProgrammableSwitch,89) // Defines a "Stateless" Programmable Switch that can be used to trigger actions in the Home App. REQ(ProgrammableSwitchEvent); OPT(Name); - DEP(ServiceLabelIndex); + OPT_DEP(ServiceLabelIndex); END_SERV CREATE_SERV(Switch,49) // Defines a generic Switch. @@ -333,7 +339,7 @@ namespace Service { OPT(Name); END_SERV - CREATE_SERV(Television,D8) // Defines a Television. Optional Linked Service: InputSource, TelevisionSpeaker + CREATE_SERV(Television,D8) // Defines a TV. Optional Linked Services: InputSource and TelevisionSpeaker. REQ(Active); OPT(ConfiguredName); OPT(ActiveIdentifier); @@ -341,7 +347,7 @@ namespace Service { OPT(PowerModeSelection); END_SERV - CREATE_SERV(TelevisionSpeaker,113) // Defines a TelevisionSpeaker that can be controlled via the Remote Control widget on an iPhone. Use only as a Linked Service for the Television Service. + CREATE_SERV(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. REQ(VolumeControlType); REQ(VolumeSelector); END_SERV @@ -368,14 +374,14 @@ namespace Service { OPT(TargetRelativeHumidity); END_SERV - CREATE_SERV(Valve,D0) // Defines an electronic Valve. Can be used standalone or as a Linked Service in conjunction with the Faucet or IrrigationSystem Services. + CREATE_SERV(Valve,D0) // Defines an electronic Valve. Can be used standalone or as a Linked Service in conjunction with the Faucet and IrrigationSystem Services. REQ(Active); REQ(InUse); REQ(ValveType); OPT(SetDuration); OPT(RemainingDuration); OPT(IsConfigured); - DEP(ServiceLabelIndex); + OPT_DEP(ServiceLabelIndex); OPT(StatusFault); OPT(Name); END_SERV @@ -383,18 +389,18 @@ namespace Service { CREATE_SERV(Window,8B) // Defines a motorized Window. REQ(CurrentPosition); REQ(TargetPosition); - DEP(PositionState); + OPT_DEP(PositionState); OPT(Name); - DEP(HoldPosition); + OPT_DEP(HoldPosition); OPT(ObstructionDetected); END_SERV CREATE_SERV(WindowCovering,8C) // Defines a motorized Window Shade, Screen, Awning, etc. REQ(TargetPosition); REQ(CurrentPosition); - DEP(PositionState); + OPT_DEP(PositionState); OPT(Name); - DEP(HoldPosition); + OPT_DEP(HoldPosition); OPT(CurrentHorizontalTiltAngle); OPT(TargetHorizontalTiltAngle); OPT(CurrentVerticalTiltAngle); diff --git a/tools/test.md b/tools/test.md index b17af9f..b52a936 100644 --- a/tools/test.md +++ b/tools/test.md @@ -1,15 +1,15 @@ ## AccessoryInformation (3E) -
Required Identification Information. For each Accessory in a HomeSpan device this must be included as the first Service.
+
Required Identification Information. For each Accessory in a HomeSpan device this must be included as the first Service.
CharacteristicUUIDFormatPermsMinMaxConstantsNotes
Identify14boolPW01
    FirmwareRevision52stringPR+EV--
      Manufacturer20stringPR--
        Model21stringPR--
          Name23stringPR--
            SerialNumber30stringPR--
              HardwareRevision53stringPR--
                ## AirPurifier (BB) -
                Defines a basic Air Purifier with an optional fan. Optional Linked Services: FilterMaintenance, AirQualitySensor, Fan, Slat
                +
                Defines a basic Air Purifier with an optional fan. Optional Linked Services: FilterMaintenance, AirQualitySensor, Fan, and Slat
                CharacteristicUUIDFormatPermsMinMaxConstantsNotes
                ActiveB0uint8PW+PR+EV01
                • INACTIVE (0)
                • ACTIVE (1)
                CurrentAirPurifierStateA9uint8PR+EV02
                • INACTIVE (0)
                • IDLE (1)
                • PURIFYING (2)
                TargetAirPurifierStateA8uint8PW+PR+EV01
                • MANUAL (0)
                • AUTO (1)
                Name23stringPR--
                  RotationSpeed29floatPR+PW+EV0100
                    SwingModeB6uint8PR+EV+PW01
                    • SWING_DISABLED (0)
                    • SWING_ENABLED (1)
                    LockPhysicalControlsA7uint8PW+PR+EV01
                    • CONTROL_LOCK_DISABLED (0)
                    • CONTROL_LOCK_ENABLED (1)
                    ## AirQualitySensor (8D) -
                    Defines an Air Quality Sensor with a variety of Air Quality Characteristics.
                    +
                    Defines an Air Quality Sensor.
                    CharacteristicUUIDFormatPermsMinMaxConstantsNotes
                    AirQuality95uint8PR+EV05
                    • UNKNOWN (0)
                    • EXCELLENT (1)
                    • GOOD (2)
                    • FAIR (3)
                    • INFERIOR (4)
                    • POOR (5)
                    Name23stringPR--
                      OzoneDensityC3floatPR+EV01000
                        NitrogenDioxideDensityC4floatPR+EV01000
                          SulphurDioxideDensityC5floatPR+EV01000
                            PM25DensityC6floatPR+EV01000
                              PM10DensityC7floatPR+EV01000
                                VOCDensityC8floatPR+EV01000
                                  StatusActive75boolPR+EV01
                                    StatusFault77uint8PR+EV01
                                    • NO_FAULT (0)
                                    • FAULT (1)
                                    StatusTampered7Auint8PR+EV01
                                    • NOT_TAMPERED (0)
                                    • TAMPERED (1)
                                    StatusLowBattery79uint8PR+EV01
                                    • NOT_LOW_BATTERY (0)
                                    • LOW_BATTERY (1)
                                    @@ -39,17 +39,17 @@ CurrentPosition6Duint8PR+EV0100TargetPosition7Cuint8PW+PR+EV0100Name23stringPR--ObstructionDetected24boolPR+EV01 ## Doorbell (121) -
                                    Defines a Doorbell.
                                    +
                                    Defines a Doorbell. Can be used on a standalone basis or in conjunction with a LockMechanism Service.
                                    CharacteristicUUIDFormatPermsMinMaxConstantsNotes
                                    ProgrammableSwitchEvent73uint8PR+EV+NV02
                                    • SINGLE_PRESS (0)
                                    • DOUBLE_PRESS (1)
                                    • LONG_PRESS (2)
                                    Name23stringPR--
                                      ## Fan (B7) -
                                      Defines a Fan. Can be used with a LightBulb Service to define a Lighted Ceiling Fan.
                                      +
                                      Defines a Fan. Can be used in conjunction with a LightBulb Service to create a Lighted Ceiling Fan.
                                      CharacteristicUUIDFormatPermsMinMaxConstantsNotes
                                      ActiveB0uint8PW+PR+EV01
                                      • INACTIVE (0)
                                      • ACTIVE (1)
                                      Name23stringPR--
                                        CurrentFanStateAFuint8PR+EV02
                                        • INACTIVE (0)
                                        • IDLE (1)
                                        • BLOWING (2)
                                        TargetFanStateBFuint8PW+PR+EV01
                                        • MANUAL (0)
                                        • AUTO (1)
                                        RotationDirection28intPR+PW+EV01
                                        • CLOCKWISE (0)
                                        • COUNTERCLOCKWISE (1)
                                        RotationSpeed29floatPR+PW+EV0100
                                          SwingModeB6uint8PR+EV+PW01
                                          • SWING_DISABLED (0)
                                          • SWING_ENABLED (1)
                                          LockPhysicalControlsA7uint8PW+PR+EV01
                                          • CONTROL_LOCK_DISABLED (0)
                                          • CONTROL_LOCK_ENABLED (1)
                                          ## Faucet (D7) -
                                          Defines the master control for one or more faucets or shower heads. Linked Services: Valve (at least one required) and HeaterCooler (optional, unless only one linked Valve defined).
                                          +
                                          Defines the master control for one or more faucets or shower heads. Linked Services: Valve (at least one required), and HeaterCooler (optional, unless only one linked Valve is defined).
                                          CharacteristicUUIDFormatPermsMinMaxConstantsNotes
                                          ActiveB0uint8PW+PR+EV01
                                          • INACTIVE (0)
                                          • ACTIVE (1)
                                          StatusFault77uint8PR+EV01
                                          • NO_FAULT (0)
                                          • FAULT (1)
                                          Name23stringPR--
                                            @@ -64,12 +64,12 @@ CurrentDoorStateEuint8PR+EV04
                                            • OPEN (0)
                                            • CLOSED (1)
                                            • OPENING (2)
                                            • CLOSING (3)
                                            • STOPPED (4)
                                            TargetDoorState32uint8PW+PR+EV01
                                            • OPEN (0)
                                            • CLOSED (1)
                                            ObstructionDetected24boolPR+EV01
                                              LockCurrentState1Duint8PR+EV03
                                              • UNLOCKED (0)
                                              • LOCKED (1)
                                              • JAMMED (2)
                                              • UNKNOWN (3)
                                              LockTargetState1Euint8PW+PR+EV01
                                              • UNLOCK (0)
                                              • LOCK (1)
                                              Name23stringPR--
                                                Version37stringPR--
                                                  ## 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.
                                                  +
                                                  Defines a standalone Heater, Cooler, or combined Heater/Cooler. Can be used with a separate Fan Service and/or Slat Service to extend functionality.
                                                  CharacteristicUUIDFormatPermsMinMaxConstantsNotes
                                                  ActiveB0uint8PW+PR+EV01
                                                  • INACTIVE (0)
                                                  • ACTIVE (1)
                                                  CurrentTemperature11floatPR+EV0100
                                                    CurrentHeaterCoolerStateB1uint8PR+EV03
                                                    • INACTIVE (0)
                                                    • IDLE (1)
                                                    • HEATING (2)
                                                    • COOLING (3)
                                                    TargetHeaterCoolerStateB2uint8PW+PR+EV02
                                                    • AUTO (0)
                                                    • HEAT (1)
                                                    • COOL (2)
                                                    Name23stringPR--
                                                      RotationSpeed29floatPR+PW+EV0100
                                                        TemperatureDisplayUnits36uint8PW+PR+EV01
                                                        • CELSIUS (0)
                                                        • FAHRENHEIT (1)
                                                        SwingModeB6uint8PR+EV+PW01
                                                        • SWING_DISABLED (0)
                                                        • SWING_ENABLED (1)
                                                        CoolingThresholdTemperatureDfloatPR+PW+EV1035
                                                          HeatingThresholdTemperature12floatPR+PW+EV025
                                                            LockPhysicalControlsA7uint8PW+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.
                                                            +
                                                            Defines a Humidifer, Dehumidifier, or combined Humidifer/Dehumidifier. Can be used with a separate Fan Service and/or Slat Service to extend functionality.
                                                            CharacteristicUUIDFormatPermsMinMaxConstantsNotes
                                                            ActiveB0uint8PW+PR+EV01
                                                            • INACTIVE (0)
                                                            • ACTIVE (1)
                                                            CurrentRelativeHumidity10floatPR+EV0100
                                                              CurrentHumidifierDehumidifierStateB3uint8PR+EV03
                                                              • INACTIVE (0)
                                                              • IDLE (1)
                                                              • HUMIDIFYING (2)
                                                              • DEHUMIDIFYING (3)
                                                              TargetHumidifierDehumidifierStateB4uint8PW+PR+EV02
                                                              • AUTO (0)
                                                              • HUMIDIFY (1)
                                                              • DEHUMIDIFY (2)
                                                              Name23stringPR--
                                                                RelativeHumidityDehumidifierThresholdC9floatPR+PW+EV0100
                                                                  RelativeHumidityHumidifierThresholdCAfloatPR+PW+EV0100
                                                                    RotationSpeed29floatPR+PW+EV0100
                                                                      SwingModeB6uint8PR+EV+PW01
                                                                      • SWING_DISABLED (0)
                                                                      • SWING_ENABLED (1)
                                                                      WaterLevelB5floatPR+EV0100
                                                                        LockPhysicalControlsA7uint8PW+PR+EV01
                                                                        • CONTROL_LOCK_DISABLED (0)
                                                                        • CONTROL_LOCK_ENABLED (1)
                                                                        @@ -79,12 +79,12 @@ CurrentRelativeHumidity10floatPR+EV0100
                                                                          Name23stringPR--
                                                                            StatusActive75boolPR+EV01
                                                                              StatusFault77uint8PR+EV01
                                                                              • NO_FAULT (0)
                                                                              • FAULT (1)
                                                                              StatusTampered7Auint8PR+EV01
                                                                              • NOT_TAMPERED (0)
                                                                              • TAMPERED (1)
                                                                              StatusLowBattery79uint8PR+EV01
                                                                              • NOT_LOW_BATTERY (0)
                                                                              • LOW_BATTERY (1)
                                                                              ## InputSource (D9) -
                                                                              Defines an Input Source for a Television. Use only as a Linked Service for the Television Service.
                                                                              +
                                                                              Defines an Input Source for a TV. Use only as a Linked Service for the Television Service.
                                                                              CharacteristicUUIDFormatPermsMinMaxConstantsNotes
                                                                              ConfiguredNameE3stringPW+PR+EV--
                                                                                IsConfiguredD6uint8PR+EV01
                                                                                • NOT_CONFIGURED (0)
                                                                                • CONFIGURED (1)
                                                                                IdentifierE6uint32PR0255
                                                                                  CurrentVisibilityState135uint8PR+EV01
                                                                                    TargetVisibilityState134uint8PW+PR+EV01
                                                                                      ## IrrigationSystem (CF) -
                                                                                      Defines an Irrigation System. Linked Services: Valve Service (at least one required).
                                                                                      +
                                                                                      Defines an Irrigation System. Linked Services: Valve Service (at least one required).
                                                                                      CharacteristicUUIDFormatPermsMinMaxConstantsNotes
                                                                                      ActiveB0uint8PW+PR+EV01
                                                                                      • INACTIVE (0)
                                                                                      • ACTIVE (1)
                                                                                      ProgramModeD1uint8PR+EV02
                                                                                      • NONE (0)
                                                                                      • SCHEDULED (1)
                                                                                      • SCHEDULE_OVERRIDEN (2)
                                                                                      InUseD2uint8PR+EV01
                                                                                      • NOT_IN_USE (0)
                                                                                      • IN_USE (1)
                                                                                      RemainingDurationD4uint32PR+EV03600
                                                                                        StatusFault77uint8PR+EV01
                                                                                        • NO_FAULT (0)
                                                                                        • FAULT (1)
                                                                                        @@ -94,7 +94,7 @@ LeakDetected70uint8PR+EV01
                                                                                        • NOT_DETECTED (0)
                                                                                        • DETECTED (1)
                                                                                        Name23stringPR--
                                                                                          StatusActive75boolPR+EV01
                                                                                            StatusFault77uint8PR+EV01
                                                                                            • NO_FAULT (0)
                                                                                            • FAULT (1)
                                                                                            StatusTampered7Auint8PR+EV01
                                                                                            • NOT_TAMPERED (0)
                                                                                            • TAMPERED (1)
                                                                                            StatusLowBattery79uint8PR+EV01
                                                                                            • NOT_LOW_BATTERY (0)
                                                                                            • LOW_BATTERY (1)
                                                                                            ## LightBulb (43) -
                                                                                            Defines a generic Light.
                                                                                            +
                                                                                            Defines any type of Light.
                                                                                            CharacteristicUUIDFormatPermsMinMaxConstantsNotes
                                                                                            On25boolPR+PW+EV01
                                                                                              Brightness8intPR+PW+EV0100
                                                                                                Hue13floatPR+PW+EV0360
                                                                                                  Name23stringPR--
                                                                                                    Saturation2FfloatPR+PW+EV0100
                                                                                                      ColorTemperatureCEuint32PR+PW+EV140500
                                                                                                        @@ -129,7 +129,7 @@ SecuritySystemCurrentState66uint8PR+EV04
                                                                                                        • ARMED_STAY (0)
                                                                                                        • ARMED_AWAY (1)
                                                                                                        • ARMED_NIGHT (2)
                                                                                                        • DISARMED (3)
                                                                                                        • ALARM_TRIGGERED (4)
                                                                                                        SecuritySystemTargetState67uint8PW+PR+EV03
                                                                                                        • ARM_STAY (0)
                                                                                                        • ARM_AWAY (1)
                                                                                                        • ARM_NIGHT (2)
                                                                                                        • DISARM (3)
                                                                                                        Name23stringPR--
                                                                                                          SecuritySystemAlarmType8Euint8PR+EV01
                                                                                                          • KNOWN (0)
                                                                                                          • UNKNOWN (1)
                                                                                                          StatusFault77uint8PR+EV01
                                                                                                          • NO_FAULT (0)
                                                                                                          • FAULT (1)
                                                                                                          StatusTampered7Auint8PR+EV01
                                                                                                          • NOT_TAMPERED (0)
                                                                                                          • TAMPERED (1)
                                                                                                          ServiceLabelNamespaceCDuint8PR01
                                                                                                          • DOTS (0)
                                                                                                          • NUMERALS (1)
                                                                                                          ## Slat (B9) -
                                                                                                          Defines a motorized ventilation Slat (or group of Slats).
                                                                                                          +
                                                                                                          Defines a motorized ventilation Slat(s).
                                                                                                          CharacteristicUUIDFormatPermsMinMaxConstantsNotes
                                                                                                          CurrentSlatStateAAuint8PR+EV02
                                                                                                          • FIXED (0)
                                                                                                          • JAMMED (1)
                                                                                                          • SWINGING (2)
                                                                                                          SlatTypeC0uint8PR01
                                                                                                          • HORIZONTAL (0)
                                                                                                          • VERTICAL (1)
                                                                                                          Name23stringPR--
                                                                                                            SwingModeB6uint8PR+EV+PW01
                                                                                                            • SWING_DISABLED (0)
                                                                                                            • SWING_ENABLED (1)
                                                                                                            CurrentTiltAngleC1intPR+EV-9090
                                                                                                              TargetTiltAngleC2intPW+PR+EV-9090
                                                                                                                @@ -149,12 +149,12 @@ On25boolPR+PW+EV01
                                                                                                                  Name23stringPR--
                                                                                                                    ## Television (D8) -
                                                                                                                    Defines a Television. Optional Linked Service: InputSource, TelevisionSpeaker
                                                                                                                    +
                                                                                                                    Defines a TV. Optional Linked Services: InputSource and TelevisionSpeaker.
                                                                                                                    CharacteristicUUIDFormatPermsMinMaxConstantsNotes
                                                                                                                    ActiveB0uint8PW+PR+EV01
                                                                                                                    • INACTIVE (0)
                                                                                                                    • ACTIVE (1)
                                                                                                                    ConfiguredNameE3stringPW+PR+EV--
                                                                                                                      ActiveIdentifierE7uint32PW+PR+EV0255
                                                                                                                        RemoteKeyE1uint8PW016
                                                                                                                          PowerModeSelectionDFuint8PW01
                                                                                                                            ## TelevisionSpeaker (113) -
                                                                                                                            Defines a TelevisionSpeaker that can be controlled via the Remote Control widget on an iPhone. Use only as a Linked Service for the Television Service.
                                                                                                                            +
                                                                                                                            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.
                                                                                                                            CharacteristicUUIDFormatPermsMinMaxConstantsNotes
                                                                                                                            VolumeControlTypeE9uint8PR+EV03
                                                                                                                              VolumeSelectorEAuint8PW01
                                                                                                                                @@ -169,7 +169,7 @@ CurrentHeatingCoolingStateFuint8PR+EV02
                                                                                                                                • OFF (0)
                                                                                                                                • HEATING (1)
                                                                                                                                • COOLING (2)
                                                                                                                                TargetHeatingCoolingState33uint8PW+PR+EV03
                                                                                                                                • OFF (0)
                                                                                                                                • HEAT (1)
                                                                                                                                • COOL (2)
                                                                                                                                • AUTO (3)
                                                                                                                                CurrentTemperature11floatPR+EV0100
                                                                                                                                  TargetTemperature35floatPW+PR+EV1038
                                                                                                                                    TemperatureDisplayUnits36uint8PW+PR+EV01
                                                                                                                                    • CELSIUS (0)
                                                                                                                                    • FAHRENHEIT (1)
                                                                                                                                    CoolingThresholdTemperatureDfloatPR+PW+EV1035
                                                                                                                                      CurrentRelativeHumidity10floatPR+EV0100
                                                                                                                                        HeatingThresholdTemperature12floatPR+PW+EV025
                                                                                                                                          Name23stringPR--
                                                                                                                                            TargetRelativeHumidity34floatPW+PR+EV0100
                                                                                                                                              ## Valve (D0) -
                                                                                                                                              Defines an electronic Valve. Can be used standalone or as a Linked Service in conjunction with the Faucet or IrrigationSystem Services.
                                                                                                                                              +
                                                                                                                                              Defines an electronic Valve. Can be used standalone or as a Linked Service in conjunction with the Faucet and IrrigationSystem Services.
                                                                                                                                              CharacteristicUUIDFormatPermsMinMaxConstantsNotes
                                                                                                                                              ActiveB0uint8PW+PR+EV01
                                                                                                                                              • INACTIVE (0)
                                                                                                                                              • ACTIVE (1)
                                                                                                                                              InUseD2uint8PR+EV01
                                                                                                                                              • NOT_IN_USE (0)
                                                                                                                                              • IN_USE (1)
                                                                                                                                              ValveTypeD5uint8PR+EV03
                                                                                                                                                SetDurationD3uint32PW+PR+EV03600
                                                                                                                                                  RemainingDurationD4uint32PR+EV03600
                                                                                                                                                    IsConfiguredD6uint8PR+EV01
                                                                                                                                                    • NOT_CONFIGURED (0)
                                                                                                                                                    • CONFIGURED (1)
                                                                                                                                                    StatusFault77uint8PR+EV01
                                                                                                                                                    • NO_FAULT (0)
                                                                                                                                                    • FAULT (1)
                                                                                                                                                    Name23stringPR--