From 1fa225f40f9ccd9820f87dc6342cda681dc72cd6 Mon Sep 17 00:00:00 2001 From: HomeSpan Date: Sat, 18 Feb 2023 15:50:57 -0600 Subject: [PATCH] Update ServiceList.md --- docs/ServiceList.md | 312 ++++++++++++++++++++++---------------------- 1 file changed, 159 insertions(+), 153 deletions(-) diff --git a/docs/ServiceList.md b/docs/ServiceList.md index 52af85d..331ca7a 100644 --- a/docs/ServiceList.md +++ b/docs/ServiceList.md @@ -21,161 +21,167 @@ Additionally, when first starting up, HomeSpan begins by validating the device's ### Service List -| Service | Required Characteristics | Optional Characteristics | -| ------- | -------------------- | ------------------- | -| AccessoryInformation| FirmwareRevision
Identity
Manufacturer
Model
Name
SerialNumber | HardwareRevision | -| AirPurifier | Active
CurrentAirPurifierState
TargetAirPurifierState | Name
RotationSpeed
SwingMode
LockPhysicalControls | -| AirQualitySensor | AirQuality | Name
OzoneDensity
NitrogenDioxideDensity
SulphurDioxideDensity
PM25Density
PM10Density
VOCDensity
StatusActive
StatusFault
StatusTampered
StatusLowBattery | -| BatteryService | BatteryLevel
ChargingState
StatusLowBattery | Name | -| CarbonDioxideSensor | CarbonDioxideDetected | Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery
CarbonDioxideLevel
CarbonDioxidePeakLevel | -| CarbonMonoxideSensor | CarbonMonoxideDetected | Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery
CarbonMonoxideLevel
CarbonMonoxidePeakLevel | -| ContactSensor | ContactSensorState | Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery | -| Door | CurrentPosition
TargetPosition
PositionState | Name
HoldPosition
ObstructionDetected | -| Doorbell | ProgrammableSwitchEvent | Name
Volume
Brightness | -| Fan | Active | Name
CurrentFanState
TargetFanState
RotationDirection
RotationSpeed
SwingMode
LockPhysicalControls | -| Faucet | Active | StatusFault
Name | -| FilterMaintenance | FilterChangeIndication | Name
FilterLifeLevel
ResetFilterIndication | -| GarageDoorOpener | CurrentDoorState
TargetDoorState
ObstructionDetected | LockCurrentState
LockTargetState
Name | -| HAPProtocolInformation | Version | *none* | -| HeaterCooler | Active
CurrentTemperature
CurrentHeaterCoolerState
TargetHeaterCoolerState | Name
RotationSpeed
TemperatureDisplayUnits
SwingMode
CoolingThresholdTemperature
HeatingThresholdTemperature
LockPhysicalControls | -| HumidifierDehumidifier | Active
CurrentRelativeHumidity
CurrentHumidifierDehumidifierState
TargetHumidifierDehumidifierState | Name
RelativeHumidityDehumidifierThreshold
RelativeHumidityHumidifierThreshold
RotationSpeed
SwingMode
WaterLevel
LockPhysicalControls | -| HumiditySensor | CurrentRelativeHumidity | Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery | -| InputSource | Identifier | ConfiguredName
IsConfigured
CurrentVisibilityState
TargetVisibilityState | -| IrrigationSystem | Active
ProgramMode
InUse | RemainingDuration
Name
StatusFault | -| LeakSensor | LeakDetected | Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery | -| LightBulb | On | Brightness
Hue
Name
Saturation
ColorTemperature | -| LightSensor | CurrentAmbientLightLevel | Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery | -| LockMechanism | LockCurrentState
LockTargetState | Name | -| Microphone | Mute | Name
Volume | -| MotionSensor | MotionDetected | Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery | -| OccupancySensor | OccupancyDetected | Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery | -| Outlet | On
OutletInUse | Name | -| SecuritySystem | SecuritySystemCurrentState
SecuritySystemTargetState | Name
SecuritySystemAlarmType
StatusFault
StatusTampered | -| ServiceLabel | ServiceLabelNamespace | *none* | -| Slat | CurrentSlatState
SlatType | Name
SwingMode
CurrentTiltAngle
TargetTiltAngle | -| SmokeSensor | SmokeDetected | Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery | -| Speaker | Mute | Name
Volume | -| StatelessProgrammableSwitch | ProgrammableSwitchEvent | Name
ServiceLabelIndex | -| Switch | On | Name | -| Television | Active | ConfiguredName
ActiveIdentifier
RemoteKey
PowerModeSelection | -| TemperatureSensor | CurrentTemperature | Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery | -| Thermostat | CurrentHeatingCoolingState
TargetHeatingCoolingState
CurrentTemperature
TargetTemperature
TemperatureDisplayUnits | CoolingThresholdTemperature
CurrentRelativeHumidity
HeatingThresholdTemperature
Name
TargetRelativeHumidity | -| Valve | Active
InUse
ValveType | SetDuration
RemainingDuration
IsConfigured
ServiceLabelIndex
StatusFault
Name | -| Window | CurrentPosition
TargetPosition
PositionState | Name
HoldPosition
ObstructionDetected | -| WindowCovering | CurrentPosition
TargetPosition | Name
PositionState
HoldPosition
CurrentHorizontalTiltAngle
TargetHorizontalTiltAngle
CurrentVerticalTiltAngle
TargetVerticalTiltAngle
ObstructionDetected | - +|Service|Required Characteristics|Optional Characteristics| +|-|-|-| +|AccessoryInformation|Identify|FirmwareRevision
Manufacturer
Model
Name
SerialNumber
HardwareRevision
AccessoryFlags| +|AirPurifier|Active
CurrentAirPurifierState
TargetAirPurifierState|Name
RotationSpeed
SwingMode
LockPhysicalControls| +|AirQualitySensor|AirQuality|Name
OzoneDensity
NitrogenDioxideDensity
SulphurDioxideDensity
PM25Density
PM10Density
VOCDensity
StatusActive
StatusFault
StatusTampered
StatusLowBattery| +|BatteryService|BatteryLevel
ChargingState
StatusLowBattery|Name| +|CarbonDioxideSensor|CarbonDioxideDetected|Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery
CarbonDioxideLevel
CarbonDioxidePeakLevel| +|CarbonMonoxideSensor|CarbonMonoxideDetected|Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery
CarbonMonoxideLevel
CarbonMonoxidePeakLevel| +|ContactSensor|ContactSensorState|Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery| +|Door|CurrentPosition
TargetPosition
PositionState|Name
HoldPosition
ObstructionDetected| +|Doorbell|ProgrammableSwitchEvent|Name
Volume
Brightness| +|Fan|Active|Name
CurrentFanState
TargetFanState
RotationDirection
RotationSpeed
SwingMode
LockPhysicalControls| +|Faucet|Active|StatusFault
Name| +|FilterMaintenance|FilterChangeIndication|Name
FilterLifeLevel
ResetFilterIndication| +|GarageDoorOpener|CurrentDoorState
TargetDoorState
ObstructionDetected|LockCurrentState
LockTargetState
Name| +|HAPProtocolInformation|Version||HeaterCooler|Active
CurrentTemperature
CurrentHeaterCoolerState
TargetHeaterCoolerState|Name
RotationSpeed
TemperatureDisplayUnits
SwingMode
CoolingThresholdTemperature
HeatingThresholdTemperature
LockPhysicalControls| +|HumidifierDehumidifier|Active
CurrentRelativeHumidity
CurrentHumidifierDehumidifierState
TargetHumidifierDehumidifierState|Name
RelativeHumidityDehumidifierThreshold
RelativeHumidityHumidifierThreshold
RotationSpeed
SwingMode
WaterLevel
LockPhysicalControls| +|HumiditySensor|CurrentRelativeHumidity|Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery| +|InputSource|Identifier|ConfiguredName
IsConfigured
CurrentVisibilityState
TargetVisibilityState| +|IrrigationSystem|Active
ProgramMode
InUse|RemainingDuration
StatusFault| +|LeakSensor|LeakDetected|Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery| +|LightBulb|On|Brightness
Hue
Name
Saturation
ColorTemperature| +|LightSensor|CurrentAmbientLightLevel|Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery| +|LockMechanism|LockCurrentState
LockTargetState|Name| +|Microphone|Mute|Name
Volume| +|MotionSensor|MotionDetected|Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery| +|OccupancySensor|OccupancyDetected|Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery| +|Outlet|On
OutletInUse|Name| +|SecuritySystem|SecuritySystemCurrentState
SecuritySystemTargetState|Name
SecuritySystemAlarmType
StatusFault
StatusTampered| +|ServiceLabel|ServiceLabelNamespace||Slat|CurrentSlatState
SlatType|Name
SwingMode
CurrentTiltAngle
TargetTiltAngle| +|SmokeSensor|SmokeDetected|Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery| +|Speaker|Mute|Name
Volume| +|StatelessProgrammableSwitch|ProgrammableSwitchEvent|Name
ServiceLabelIndex| +|Switch|On|Name| +|Television|Active|ConfiguredName
ActiveIdentifier
RemoteKey
PowerModeSelection| +|TelevisionSpeaker|VolumeControlType
VolumeSelector||TemperatureSensor|CurrentTemperature|Name
StatusActive
StatusFault
StatusTampered
StatusLowBattery| +|Thermostat|CurrentHeatingCoolingState
TargetHeatingCoolingState
CurrentTemperature
TargetTemperature
TemperatureDisplayUnits|CoolingThresholdTemperature
CurrentRelativeHumidity
HeatingThresholdTemperature
Name
TargetRelativeHumidity| +|Valve|Active
InUse
ValveType|SetDuration
RemainingDuration
IsConfigured
ServiceLabelIndex
StatusFault
Name| +|Window|CurrentPosition
TargetPosition
PositionState|Name
HoldPosition
ObstructionDetected| +|WindowCovering|TargetPosition
CurrentPosition
PositionState|Name
HoldPosition
CurrentHorizontalTiltAngle
TargetHorizontalTiltAngle
CurrentVerticalTiltAngle
TargetVerticalTiltAngle
ObstructionDetected| ### Characteristic Types and Defaults -|Characteristic|Type|Default -|---|---|---| -|Active|uint8_t|0| -|ActiveIdentifier|uint32_t|0| -|AirQuality|uint8_t|0| -|BatteryLevel|uint8_t|0| -|Brightness|int|0| -|CarbonMonoxideLevel|double|0| -|CarbonMonoxidePeakLevel|double|0| -|CarbonMonoxideDetected|uint8_t|0| -|CarbonDioxideLevel|double|0| -|CarbonDioxidePeakLevel|double|0| -|CarbonDioxideDetected|uint8_t|0| -|ChargingState|uint8_t|0| -|CoolingThresholdTemperature|double|10| -|ColorTemperature|uint32_t|50| -|ConfiguredName|char \*|"unnamed"| -|ContactSensorState|uint8_t|1| -|CurrentAmbientLightLevel|double|1| -|CurrentHorizontalTiltAngle|int|0| -|CurrentAirPurifierState|uint8_t|1| -|CurrentSlatState|uint8_t|0| -|CurrentPosition|uint8_t|0| -|CurrentVerticalTiltAngle|int|0| -|CurrentHumidifierDehumidifierState|uint8_t|1| -|CurrentDoorState|uint8_t|1| -|CurrentFanState|uint8_t|1| -|CurrentHeatingCoolingState|uint8_t|0| -|CurrentHeaterCoolerState|uint8_t|1| -|CurrentRelativeHumidity|double|0| -|CurrentTemperature|double|0| -|CurrentTiltAngle|int|0| -|CurrentVisibilityState|uint8_t|0| -|FilterLifeLevel|double|0| -|FilterChangeIndication|uint8_t|0| -|FirmwareRevision|char \*|"1.0.0"| -|HardwareRevision|char \*|"1.0.0"| -|HeatingThresholdTemperature|double|16| -|HoldPosition|boolean|false| -|Hue|double|0| -|Identifier|uint32_t|0| -|Identify|boolean|false| -|InUse|uint8_t|0| -|IsConfigured|uint8_t|0| -|LeakDetected|uint8_t|0| -|LockCurrentState|uint8_t|0| -|LockPhysicalControls|uint8_t|0| -|LockTargetState|uint8_t|0| -|Manufacturer|char \*|"HomeSpan"| -|Model|char \*|"HomeSpan-ESP32"| -|MotionDetected|boolean|false| -|Mute|boolean|false| -|Name|char \*|"unnamed"| -|NitrogenDioxideDensity|double|0| -|ObstructionDetected|boolean|false| -|PM25Density|double|0| -|OccupancyDetected|uint8_t|0| -|OutletInUse|boolean|false| -|On|boolean|false| -|OzoneDensity|double|0| -|PM10Density|double|0| -|PositionState|uint8_t|2| -|PowerModeSelection|uint8_t|0| -|ProgramMode|uint8_t|0| -|ProgrammableSwitchEvent|uint8_t|0| -|RelativeHumidityDehumidifierThreshold|double|50| -|RelativeHumidityHumidifierThreshold|double|50| -|RemainingDuration|uint32_t|60| -|RemoteKey|uint8_t|0| -|ResetFilterIndication|uint8_t|0| -|RotationDirection|int|0| -|RotationSpeed|double|0| -|Saturation|double|0| -|SecuritySystemAlarmType|uint8_t|0| -|SecuritySystemCurrentState|uint8_t|3| -|SecuritySystemTargetState|uint8_t|3| -|SerialNumber|char \*|"HS-12345"| -|ServiceLabelIndex|uint8_t|1| -|ServiceLabelNamespace|uint8_t|1| -|SlatType|uint8_t|0| -|SmokeDetected|uint8_t|0| -|StatusActive|boolean|true| -|StatusFault|uint8_t|0| -|StatusJammed|uint8_t|0| -|StatusLowBattery|uint8_t|0| -|StatusTampered|uint8_t|0| -|SulphurDioxideDensity|double|0| -|SwingMode|uint8_t|0| -|TargetAirPurifierState|uint8_t|1| -|TargetFanState|uint8_t|1| -|TargetTiltAngle|int|0| -|SetDuration|uint32_t|60| -|TargetHorizontalTiltAngle|int|0| -|TargetHumidifierDehumidifierState|uint8_t|0| -|TargetPosition|uint8_t|0| -|TargetDoorState|uint8_t|1| -|TargetHeaterCoolerState|uint8_t|0| -|TargetHeatingCoolingState|uint8_t|0| -|TargetRelativeHumidity|double|0| -|TargetTemperature|double|16| -|TemperatureDisplayUnits|uint8_t|0| -|TargetVerticalTiltAngle|int|0| -|TargetVisibilityState|uint8_t|0| -|ValveType|uint8_t|0| -|Version|char \*|"1.0.0"| -|VOCDensity|double|0| -|Volume|uint8_t|0| -|WaterLevel|double|0| - +|Characteristic|Type|Default|Range| +|-|-|-|-| +AccessoryFlags|uint32_t|1|[1,1]| +Active|uint8_t|0|[0,1]| +ActiveIdentifier|uint32_t|0|[0,255]| +AirQuality|uint8_t|0|[0,5]| +BatteryLevel|uint8_t|0|[0,100]| +Brightness|int|0|[0,100]| +CarbonMonoxideLevel|double|0|[0,100]| +CarbonMonoxidePeakLevel|double|0|[0,100]| +CarbonMonoxideDetected|uint8_t|0|[0,1]| +CarbonDioxideLevel|double|0|[0,100000]| +CarbonDioxidePeakLevel|double|0|[0,100000]| +CarbonDioxideDetected|uint8_t|0|[0,1]| +ChargingState|uint8_t|0|[0,2]| +ClosedCaptions|uint8_t|0|[0,1]| +CoolingThresholdTemperature|double|10|[10,35]| +ColorTemperature|uint32_t|200|[140,500]| +ContactSensorState|uint8_t|1|[0,1]| +ConfiguredName|char \*|"unnamed"||| +CurrentAmbientLightLevel|double|1|[0.0001,100000]| +CurrentHorizontalTiltAngle|int|0|[-90,90]| +CurrentAirPurifierState|uint8_t|1|[0,2]| +CurrentSlatState|uint8_t|0|[0,2]| +CurrentPosition|uint8_t|0|[0,100]| +CurrentVerticalTiltAngle|int|0|[-90,90]| +CurrentVisibilityState|uint8_t|0|[0,1]| +CurrentHumidifierDehumidifierState|uint8_t|1|[0,3]| +CurrentDoorState|uint8_t|1|[0,4]| +CurrentFanState|uint8_t|1|[0,2]| +CurrentHeatingCoolingState|uint8_t|0|[0,2]| +CurrentHeaterCoolerState|uint8_t|1|[0,3]| +CurrentMediaState|uint8_t|0|[0,5]| +CurrentRelativeHumidity|double|0|[0,100]| +CurrentTemperature|double|0|[0,100]| +CurrentTiltAngle|int|0|[-90,90]| +FilterLifeLevel|double|0|[0,100]| +FilterChangeIndication|uint8_t|0|[0,1]| +FirmwareRevision|char \*|"1.0.0"||| +HardwareRevision|char \*|"1.0.0"||| +HeatingThresholdTemperature|double|16|[0,25]| +HoldPosition|boolean|false|[0,1]| +Hue|double|0|[0,360]| +Identify|boolean|false|[0,1]| +Identifier|uint32_t|0|[0,255]| +InputDeviceType|uint8_t|0|[0,6]| +InputSourceType|uint8_t|0|[0,10]| +InUse|uint8_t|0|[0,1]| +IsConfigured|uint8_t|0|[0,1]| +LeakDetected|uint8_t|0|[0,1]| +LockCurrentState|uint8_t|0|[0,3]| +LockPhysicalControls|uint8_t|0|[0,1]| +LockTargetState|uint8_t|0|[0,1]| +Manufacturer|char \*|"HomeSpan"||| +Model|char \*|"HomeSpan-ESP32"||| +MotionDetected|boolean|false|[0,1]| +Mute|boolean|false|[0,1]| +Name|char \*|"unnamed"||| +NitrogenDioxideDensity|double|0|[0,1000]| +ObstructionDetected|boolean|false|[0,1]| +PM25Density|double|0|[0,1000]| +OccupancyDetected|uint8_t|0|[0,1]| +OutletInUse|boolean|false|[0,1]| +On|boolean|false|[0,1]| +OzoneDensity|double|0|[0,1000]| +PictureMode|uint8_t|0|[0,13]| +PM10Density|double|0|[0,1000]| +PositionState|uint8_t|2|[0,2]| +PowerModeSelection|uint8_t|0|[0,1]| +ProgramMode|uint8_t|0|[0,2]| +ProgrammableSwitchEvent|uint8_t|0|[0,2]| +RelativeHumidityDehumidifierThreshold|double|50|[0,100]| +RelativeHumidityHumidifierThreshold|double|50|[0,100]| +RemainingDuration|uint32_t|60|[0,3600]| +RemoteKey|uint8_t|0|[0,16]| +ResetFilterIndication|uint8_t|0|[1,1]| +RotationDirection|int|0|[0,1]| +RotationSpeed|double|0|[0,100]| +Saturation|double|0|[0,100]| +SecuritySystemAlarmType|uint8_t|0|[0,1]| +SecuritySystemCurrentState|uint8_t|3|[0,4]| +SecuritySystemTargetState|uint8_t|3|[0,3]| +SerialNumber|char \*|"HS-12345"||| +ServiceLabelIndex|uint8_t|1|[1,255]| +ServiceLabelNamespace|uint8_t|1|[0,1]| +SlatType|uint8_t|0|[0,1]| +SleepDiscoveryMode|uint8_t|0|[0,1]| +SmokeDetected|uint8_t|0|[0,1]| +StatusActive|boolean|true|[0,1]| +StatusFault|uint8_t|0|[0,1]| +StatusJammed|uint8_t|0|[0,1]| +StatusLowBattery|uint8_t|0|[0,1]| +StatusTampered|uint8_t|0|[0,1]| +SulphurDioxideDensity|double|0|[0,1000]| +SwingMode|uint8_t|0|[0,1]| +TargetAirPurifierState|uint8_t|1|[0,1]| +TargetFanState|uint8_t|1|[0,1]| +TargetTiltAngle|int|0|[-90,90]| +TargetHeaterCoolerState|uint8_t|0|[0,2]| +SetDuration|uint32_t|60|[0,3600]| +TargetHorizontalTiltAngle|int|0|[-90,90]| +TargetHumidifierDehumidifierState|uint8_t|0|[0,2]| +TargetPosition|uint8_t|0|[0,100]| +TargetDoorState|uint8_t|1|[0,1]| +TargetHeatingCoolingState|uint8_t|0|[0,3]| +TargetMediaState|uint8_t|0|[0,2]| +TargetRelativeHumidity|double|0|[0,100]| +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) @@ -190,7 +196,7 @@ Additionally, when first starting up, HomeSpan begins by validating the device's |FLOAT|double| |STRING|char \*| |TLV8|(not implemented)| -|DATA|(not implemented)| +|DATA|uint8_t *| ---