Update ServiceList.md

This commit is contained in:
HomeSpan 2023-02-18 15:50:57 -06:00 committed by GitHub
parent cccbceeab7
commit 1fa225f40f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 159 additions and 153 deletions

View File

@ -22,8 +22,8 @@ Additionally, when first starting up, HomeSpan begins by validating the device's
### Service List ### Service List
|Service|Required Characteristics|Optional Characteristics| |Service|Required Characteristics|Optional Characteristics|
| ------- | -------------------- | ------------------- | |-|-|-|
| AccessoryInformation| FirmwareRevision<br>Identity<br>Manufacturer<br>Model<br>Name<br>SerialNumber | HardwareRevision | |AccessoryInformation|Identify|FirmwareRevision<br>Manufacturer<br>Model<br>Name<br>SerialNumber<br>HardwareRevision<br>AccessoryFlags|
|AirPurifier|Active<br>CurrentAirPurifierState<br>TargetAirPurifierState|Name<br>RotationSpeed<br>SwingMode<br>LockPhysicalControls| |AirPurifier|Active<br>CurrentAirPurifierState<br>TargetAirPurifierState|Name<br>RotationSpeed<br>SwingMode<br>LockPhysicalControls|
|AirQualitySensor|AirQuality|Name<br>OzoneDensity<br>NitrogenDioxideDensity<br>SulphurDioxideDensity<br>PM25Density<br>PM10Density<br>VOCDensity<br>StatusActive<br>StatusFault<br>StatusTampered<br>StatusLowBattery| |AirQualitySensor|AirQuality|Name<br>OzoneDensity<br>NitrogenDioxideDensity<br>SulphurDioxideDensity<br>PM25Density<br>PM10Density<br>VOCDensity<br>StatusActive<br>StatusFault<br>StatusTampered<br>StatusLowBattery|
|BatteryService|BatteryLevel<br>ChargingState<br>StatusLowBattery|Name| |BatteryService|BatteryLevel<br>ChargingState<br>StatusLowBattery|Name|
@ -36,12 +36,11 @@ Additionally, when first starting up, HomeSpan begins by validating the device's
|Faucet|Active|StatusFault<br>Name| |Faucet|Active|StatusFault<br>Name|
|FilterMaintenance|FilterChangeIndication|Name<br>FilterLifeLevel<br>ResetFilterIndication| |FilterMaintenance|FilterChangeIndication|Name<br>FilterLifeLevel<br>ResetFilterIndication|
|GarageDoorOpener|CurrentDoorState<br>TargetDoorState<br>ObstructionDetected|LockCurrentState<br>LockTargetState<br>Name| |GarageDoorOpener|CurrentDoorState<br>TargetDoorState<br>ObstructionDetected|LockCurrentState<br>LockTargetState<br>Name|
| HAPProtocolInformation | Version | *none* | |HAPProtocolInformation|Version||HeaterCooler|Active<br>CurrentTemperature<br>CurrentHeaterCoolerState<br>TargetHeaterCoolerState|Name<br>RotationSpeed<br>TemperatureDisplayUnits<br>SwingMode<br>CoolingThresholdTemperature<br>HeatingThresholdTemperature<br>LockPhysicalControls|
| HeaterCooler | Active<br>CurrentTemperature<br>CurrentHeaterCoolerState<br>TargetHeaterCoolerState | Name<br>RotationSpeed<br>TemperatureDisplayUnits<br>SwingMode<br>CoolingThresholdTemperature<br>HeatingThresholdTemperature<br>LockPhysicalControls |
|HumidifierDehumidifier|Active<br>CurrentRelativeHumidity<br>CurrentHumidifierDehumidifierState<br>TargetHumidifierDehumidifierState|Name<br>RelativeHumidityDehumidifierThreshold<br>RelativeHumidityHumidifierThreshold<br>RotationSpeed<br>SwingMode<br>WaterLevel<br>LockPhysicalControls| |HumidifierDehumidifier|Active<br>CurrentRelativeHumidity<br>CurrentHumidifierDehumidifierState<br>TargetHumidifierDehumidifierState|Name<br>RelativeHumidityDehumidifierThreshold<br>RelativeHumidityHumidifierThreshold<br>RotationSpeed<br>SwingMode<br>WaterLevel<br>LockPhysicalControls|
|HumiditySensor|CurrentRelativeHumidity|Name<br>StatusActive<br>StatusFault<br>StatusTampered<br>StatusLowBattery| |HumiditySensor|CurrentRelativeHumidity|Name<br>StatusActive<br>StatusFault<br>StatusTampered<br>StatusLowBattery|
|InputSource|Identifier|ConfiguredName<br>IsConfigured<br>CurrentVisibilityState<br>TargetVisibilityState| |InputSource|Identifier|ConfiguredName<br>IsConfigured<br>CurrentVisibilityState<br>TargetVisibilityState|
| IrrigationSystem | Active<br>ProgramMode<br>InUse | RemainingDuration<br>Name<br>StatusFault | |IrrigationSystem|Active<br>ProgramMode<br>InUse|RemainingDuration<br>StatusFault|
|LeakSensor|LeakDetected|Name<br>StatusActive<br>StatusFault<br>StatusTampered<br>StatusLowBattery| |LeakSensor|LeakDetected|Name<br>StatusActive<br>StatusFault<br>StatusTampered<br>StatusLowBattery|
|LightBulb|On|Brightness<br>Hue<br>Name<br>Saturation<br>ColorTemperature| |LightBulb|On|Brightness<br>Hue<br>Name<br>Saturation<br>ColorTemperature|
|LightSensor|CurrentAmbientLightLevel|Name<br>StatusActive<br>StatusFault<br>StatusTampered<br>StatusLowBattery| |LightSensor|CurrentAmbientLightLevel|Name<br>StatusActive<br>StatusFault<br>StatusTampered<br>StatusLowBattery|
@ -51,131 +50,138 @@ Additionally, when first starting up, HomeSpan begins by validating the device's
|OccupancySensor|OccupancyDetected|Name<br>StatusActive<br>StatusFault<br>StatusTampered<br>StatusLowBattery| |OccupancySensor|OccupancyDetected|Name<br>StatusActive<br>StatusFault<br>StatusTampered<br>StatusLowBattery|
|Outlet|On<br>OutletInUse|Name| |Outlet|On<br>OutletInUse|Name|
|SecuritySystem|SecuritySystemCurrentState<br>SecuritySystemTargetState|Name<br>SecuritySystemAlarmType<br>StatusFault<br>StatusTampered| |SecuritySystem|SecuritySystemCurrentState<br>SecuritySystemTargetState|Name<br>SecuritySystemAlarmType<br>StatusFault<br>StatusTampered|
| ServiceLabel | ServiceLabelNamespace | *none* | |ServiceLabel|ServiceLabelNamespace||Slat|CurrentSlatState<br>SlatType|Name<br>SwingMode<br>CurrentTiltAngle<br>TargetTiltAngle|
| Slat | CurrentSlatState<br>SlatType | Name<br>SwingMode<br>CurrentTiltAngle<br>TargetTiltAngle |
|SmokeSensor|SmokeDetected|Name<br>StatusActive<br>StatusFault<br>StatusTampered<br>StatusLowBattery| |SmokeSensor|SmokeDetected|Name<br>StatusActive<br>StatusFault<br>StatusTampered<br>StatusLowBattery|
|Speaker|Mute|Name<br>Volume| |Speaker|Mute|Name<br>Volume|
|StatelessProgrammableSwitch|ProgrammableSwitchEvent|Name<br>ServiceLabelIndex| |StatelessProgrammableSwitch|ProgrammableSwitchEvent|Name<br>ServiceLabelIndex|
|Switch|On|Name| |Switch|On|Name|
|Television|Active|ConfiguredName<br>ActiveIdentifier<br>RemoteKey<br>PowerModeSelection| |Television|Active|ConfiguredName<br>ActiveIdentifier<br>RemoteKey<br>PowerModeSelection|
| TemperatureSensor | CurrentTemperature | Name<br>StatusActive<br>StatusFault<br>StatusTampered<br>StatusLowBattery | |TelevisionSpeaker|VolumeControlType<br>VolumeSelector||TemperatureSensor|CurrentTemperature|Name<br>StatusActive<br>StatusFault<br>StatusTampered<br>StatusLowBattery|
|Thermostat|CurrentHeatingCoolingState<br>TargetHeatingCoolingState<br>CurrentTemperature<br>TargetTemperature<br>TemperatureDisplayUnits|CoolingThresholdTemperature<br>CurrentRelativeHumidity<br>HeatingThresholdTemperature<br>Name<br>TargetRelativeHumidity| |Thermostat|CurrentHeatingCoolingState<br>TargetHeatingCoolingState<br>CurrentTemperature<br>TargetTemperature<br>TemperatureDisplayUnits|CoolingThresholdTemperature<br>CurrentRelativeHumidity<br>HeatingThresholdTemperature<br>Name<br>TargetRelativeHumidity|
|Valve|Active<br>InUse<br>ValveType|SetDuration<br>RemainingDuration<br>IsConfigured<br>ServiceLabelIndex<br>StatusFault<br>Name| |Valve|Active<br>InUse<br>ValveType|SetDuration<br>RemainingDuration<br>IsConfigured<br>ServiceLabelIndex<br>StatusFault<br>Name|
|Window|CurrentPosition<br>TargetPosition<br>PositionState|Name<br>HoldPosition<br>ObstructionDetected| |Window|CurrentPosition<br>TargetPosition<br>PositionState|Name<br>HoldPosition<br>ObstructionDetected|
| WindowCovering | CurrentPosition<br>TargetPosition | Name<br>PositionState<br>HoldPosition<br>CurrentHorizontalTiltAngle<br>TargetHorizontalTiltAngle<br>CurrentVerticalTiltAngle<br>TargetVerticalTiltAngle<br>ObstructionDetected | |WindowCovering|TargetPosition<br>CurrentPosition<br>PositionState|Name<br>HoldPosition<br>CurrentHorizontalTiltAngle<br>TargetHorizontalTiltAngle<br>CurrentVerticalTiltAngle<br>TargetVerticalTiltAngle<br>ObstructionDetected|
### Characteristic Types and Defaults ### Characteristic Types and Defaults
|Characteristic|Type|Default |Characteristic|Type|Default|Range|
|---|---|---| |-|-|-|-|
|Active|uint8_t|0| AccessoryFlags|uint32_t|1|[1,1]|
|ActiveIdentifier|uint32_t|0| Active|uint8_t|0|[0,1]|
|AirQuality|uint8_t|0| ActiveIdentifier|uint32_t|0|[0,255]|
|BatteryLevel|uint8_t|0| AirQuality|uint8_t|0|[0,5]|
|Brightness|int|0| BatteryLevel|uint8_t|0|[0,100]|
|CarbonMonoxideLevel|double|0| Brightness|int|0|[0,100]|
|CarbonMonoxidePeakLevel|double|0| CarbonMonoxideLevel|double|0|[0,100]|
|CarbonMonoxideDetected|uint8_t|0| CarbonMonoxidePeakLevel|double|0|[0,100]|
|CarbonDioxideLevel|double|0| CarbonMonoxideDetected|uint8_t|0|[0,1]|
|CarbonDioxidePeakLevel|double|0| CarbonDioxideLevel|double|0|[0,100000]|
|CarbonDioxideDetected|uint8_t|0| CarbonDioxidePeakLevel|double|0|[0,100000]|
|ChargingState|uint8_t|0| CarbonDioxideDetected|uint8_t|0|[0,1]|
|CoolingThresholdTemperature|double|10| ChargingState|uint8_t|0|[0,2]|
|ColorTemperature|uint32_t|50| ClosedCaptions|uint8_t|0|[0,1]|
|ConfiguredName|char \*|"unnamed"| CoolingThresholdTemperature|double|10|[10,35]|
|ContactSensorState|uint8_t|1| ColorTemperature|uint32_t|200|[140,500]|
|CurrentAmbientLightLevel|double|1| ContactSensorState|uint8_t|1|[0,1]|
|CurrentHorizontalTiltAngle|int|0| ConfiguredName|char \*|"unnamed"|||
|CurrentAirPurifierState|uint8_t|1| CurrentAmbientLightLevel|double|1|[0.0001,100000]|
|CurrentSlatState|uint8_t|0| CurrentHorizontalTiltAngle|int|0|[-90,90]|
|CurrentPosition|uint8_t|0| CurrentAirPurifierState|uint8_t|1|[0,2]|
|CurrentVerticalTiltAngle|int|0| CurrentSlatState|uint8_t|0|[0,2]|
|CurrentHumidifierDehumidifierState|uint8_t|1| CurrentPosition|uint8_t|0|[0,100]|
|CurrentDoorState|uint8_t|1| CurrentVerticalTiltAngle|int|0|[-90,90]|
|CurrentFanState|uint8_t|1| CurrentVisibilityState|uint8_t|0|[0,1]|
|CurrentHeatingCoolingState|uint8_t|0| CurrentHumidifierDehumidifierState|uint8_t|1|[0,3]|
|CurrentHeaterCoolerState|uint8_t|1| CurrentDoorState|uint8_t|1|[0,4]|
|CurrentRelativeHumidity|double|0| CurrentFanState|uint8_t|1|[0,2]|
|CurrentTemperature|double|0| CurrentHeatingCoolingState|uint8_t|0|[0,2]|
|CurrentTiltAngle|int|0| CurrentHeaterCoolerState|uint8_t|1|[0,3]|
|CurrentVisibilityState|uint8_t|0| CurrentMediaState|uint8_t|0|[0,5]|
|FilterLifeLevel|double|0| CurrentRelativeHumidity|double|0|[0,100]|
|FilterChangeIndication|uint8_t|0| CurrentTemperature|double|0|[0,100]|
|FirmwareRevision|char \*|"1.0.0"| CurrentTiltAngle|int|0|[-90,90]|
|HardwareRevision|char \*|"1.0.0"| FilterLifeLevel|double|0|[0,100]|
|HeatingThresholdTemperature|double|16| FilterChangeIndication|uint8_t|0|[0,1]|
|HoldPosition|boolean|false| FirmwareRevision|char \*|"1.0.0"|||
|Hue|double|0| HardwareRevision|char \*|"1.0.0"|||
|Identifier|uint32_t|0| HeatingThresholdTemperature|double|16|[0,25]|
|Identify|boolean|false| HoldPosition|boolean|false|[0,1]|
|InUse|uint8_t|0| Hue|double|0|[0,360]|
|IsConfigured|uint8_t|0| Identify|boolean|false|[0,1]|
|LeakDetected|uint8_t|0| Identifier|uint32_t|0|[0,255]|
|LockCurrentState|uint8_t|0| InputDeviceType|uint8_t|0|[0,6]|
|LockPhysicalControls|uint8_t|0| InputSourceType|uint8_t|0|[0,10]|
|LockTargetState|uint8_t|0| InUse|uint8_t|0|[0,1]|
|Manufacturer|char \*|"HomeSpan"| IsConfigured|uint8_t|0|[0,1]|
|Model|char \*|"HomeSpan-ESP32"| LeakDetected|uint8_t|0|[0,1]|
|MotionDetected|boolean|false| LockCurrentState|uint8_t|0|[0,3]|
|Mute|boolean|false| LockPhysicalControls|uint8_t|0|[0,1]|
|Name|char \*|"unnamed"| LockTargetState|uint8_t|0|[0,1]|
|NitrogenDioxideDensity|double|0| Manufacturer|char \*|"HomeSpan"|||
|ObstructionDetected|boolean|false| Model|char \*|"HomeSpan-ESP32"|||
|PM25Density|double|0| MotionDetected|boolean|false|[0,1]|
|OccupancyDetected|uint8_t|0| Mute|boolean|false|[0,1]|
|OutletInUse|boolean|false| Name|char \*|"unnamed"|||
|On|boolean|false| NitrogenDioxideDensity|double|0|[0,1000]|
|OzoneDensity|double|0| ObstructionDetected|boolean|false|[0,1]|
|PM10Density|double|0| PM25Density|double|0|[0,1000]|
|PositionState|uint8_t|2| OccupancyDetected|uint8_t|0|[0,1]|
|PowerModeSelection|uint8_t|0| OutletInUse|boolean|false|[0,1]|
|ProgramMode|uint8_t|0| On|boolean|false|[0,1]|
|ProgrammableSwitchEvent|uint8_t|0| OzoneDensity|double|0|[0,1000]|
|RelativeHumidityDehumidifierThreshold|double|50| PictureMode|uint8_t|0|[0,13]|
|RelativeHumidityHumidifierThreshold|double|50| PM10Density|double|0|[0,1000]|
|RemainingDuration|uint32_t|60| PositionState|uint8_t|2|[0,2]|
|RemoteKey|uint8_t|0| PowerModeSelection|uint8_t|0|[0,1]|
|ResetFilterIndication|uint8_t|0| ProgramMode|uint8_t|0|[0,2]|
|RotationDirection|int|0| ProgrammableSwitchEvent|uint8_t|0|[0,2]|
|RotationSpeed|double|0| RelativeHumidityDehumidifierThreshold|double|50|[0,100]|
|Saturation|double|0| RelativeHumidityHumidifierThreshold|double|50|[0,100]|
|SecuritySystemAlarmType|uint8_t|0| RemainingDuration|uint32_t|60|[0,3600]|
|SecuritySystemCurrentState|uint8_t|3| RemoteKey|uint8_t|0|[0,16]|
|SecuritySystemTargetState|uint8_t|3| ResetFilterIndication|uint8_t|0|[1,1]|
|SerialNumber|char \*|"HS-12345"| RotationDirection|int|0|[0,1]|
|ServiceLabelIndex|uint8_t|1| RotationSpeed|double|0|[0,100]|
|ServiceLabelNamespace|uint8_t|1| Saturation|double|0|[0,100]|
|SlatType|uint8_t|0| SecuritySystemAlarmType|uint8_t|0|[0,1]|
|SmokeDetected|uint8_t|0| SecuritySystemCurrentState|uint8_t|3|[0,4]|
|StatusActive|boolean|true| SecuritySystemTargetState|uint8_t|3|[0,3]|
|StatusFault|uint8_t|0| SerialNumber|char \*|"HS-12345"|||
|StatusJammed|uint8_t|0| ServiceLabelIndex|uint8_t|1|[1,255]|
|StatusLowBattery|uint8_t|0| ServiceLabelNamespace|uint8_t|1|[0,1]|
|StatusTampered|uint8_t|0| SlatType|uint8_t|0|[0,1]|
|SulphurDioxideDensity|double|0| SleepDiscoveryMode|uint8_t|0|[0,1]|
|SwingMode|uint8_t|0| SmokeDetected|uint8_t|0|[0,1]|
|TargetAirPurifierState|uint8_t|1| StatusActive|boolean|true|[0,1]|
|TargetFanState|uint8_t|1| StatusFault|uint8_t|0|[0,1]|
|TargetTiltAngle|int|0| StatusJammed|uint8_t|0|[0,1]|
|SetDuration|uint32_t|60| StatusLowBattery|uint8_t|0|[0,1]|
|TargetHorizontalTiltAngle|int|0| StatusTampered|uint8_t|0|[0,1]|
|TargetHumidifierDehumidifierState|uint8_t|0| SulphurDioxideDensity|double|0|[0,1000]|
|TargetPosition|uint8_t|0| SwingMode|uint8_t|0|[0,1]|
|TargetDoorState|uint8_t|1| TargetAirPurifierState|uint8_t|1|[0,1]|
|TargetHeaterCoolerState|uint8_t|0| TargetFanState|uint8_t|1|[0,1]|
|TargetHeatingCoolingState|uint8_t|0| TargetTiltAngle|int|0|[-90,90]|
|TargetRelativeHumidity|double|0| TargetHeaterCoolerState|uint8_t|0|[0,2]|
|TargetTemperature|double|16| SetDuration|uint32_t|60|[0,3600]|
|TemperatureDisplayUnits|uint8_t|0| TargetHorizontalTiltAngle|int|0|[-90,90]|
|TargetVerticalTiltAngle|int|0| TargetHumidifierDehumidifierState|uint8_t|0|[0,2]|
|TargetVisibilityState|uint8_t|0| TargetPosition|uint8_t|0|[0,100]|
|ValveType|uint8_t|0| TargetDoorState|uint8_t|1|[0,1]|
|Version|char \*|"1.0.0"| TargetHeatingCoolingState|uint8_t|0|[0,3]|
|VOCDensity|double|0| TargetMediaState|uint8_t|0|[0,2]|
|Volume|uint8_t|0| TargetRelativeHumidity|double|0|[0,100]|
|WaterLevel|double|0| TargetTemperature|double|16|[10,38]|
TargetVisibilityState|uint8_t|0|[0,1]|
TemperatureDisplayUnits|uint8_t|0|[0,1]|
TargetVerticalTiltAngle|int|0|[-90,90]|
ValveType|uint8_t|0|[0,3]|
Version|char \*|"1.0.0"|||
VOCDensity|double|0|[0,1000]|
Volume|uint8_t|0|[0,100]|
VolumeControlType|uint8_t|0|[0,3]|
VolumeSelector|uint8_t|0|[0,1]|
WaterLevel|double|0|[0,100]|
### HAP Format Codes (HAP-R2 Table 6-5) ### HAP Format Codes (HAP-R2 Table 6-5)
@ -190,7 +196,7 @@ Additionally, when first starting up, HomeSpan begins by validating the device's
|FLOAT|double| |FLOAT|double|
|STRING|char \*| |STRING|char \*|
|TLV8|(not implemented)| |TLV8|(not implemented)|
|DATA|(not implemented)| |DATA|uint8_t *|
--- ---