From 0f2c3afbf00e60edec1bc21320aaeffceb5739f9 Mon Sep 17 00:00:00 2001 From: Gregg Date: Thu, 29 Oct 2020 07:21:25 -0500 Subject: [PATCH] Completed adding all Characteristic structures for all HAPCharType To do: Create special-handling code for ProgrammableSwitchEvent Characteristic (according to HAP, it has read permission, but must always return a null). Consider adding special flag to PR+EV --- src/HAPConstants.h | 2 +- src/Services.h | 50 +++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 46 insertions(+), 6 deletions(-) diff --git a/src/HAPConstants.h b/src/HAPConstants.h index 9fa680c..5730a7c 100644 --- a/src/HAPConstants.h +++ b/src/HAPConstants.h @@ -142,7 +142,7 @@ struct HapCharList { HAPCHAR( PM10Density, C7, PR+EV ); HAPCHAR( PositionState, 72, PR+EV ); HAPCHAR( ProgramMode, D1, PR+EV ); - HAPCHAR( ProgrammableSwitchEvent, 73, PR+EV ); + HAPCHAR( ProgrammableSwitchEvent, 73, PR+EV ); // this characteristic requires specical handling HAPCHAR( RelativeHumidityDehumidifierThreshold, C9, PR+PW+EV ); HAPCHAR( RelativeHumidityHumidifierThreshold, CA, PR+PW+EV ); HAPCHAR( RemainingDuration, D4, PR+EV ); diff --git a/src/Services.h b/src/Services.h index 3dddf5c..97d832f 100644 --- a/src/Services.h +++ b/src/Services.h @@ -377,28 +377,55 @@ namespace Characteristic { CREATE_CHAR(CurrentVerticalTiltAngle,int,0); CREATE_CHAR(CurrentHumidifierDehumidifierState,uint8_t,1); CREATE_CHAR(CurrentDoorState,uint8_t,1); - - + CREATE_CHAR(CurrentFanState,uint8_t,1); + CREATE_CHAR(CurrentHeatingCoolingState,uint8_t,0); + CREATE_CHAR(CurrentHeaterCoolerState,uint8_t,1); + CREATE_CHAR(CurrentRelativeHumidity,double,0); CREATE_CHAR(CurrentTemperature,double,0); + CREATE_CHAR(CurrentTiltAngle,int,0); + CREATE_CHAR(FilterLifeLevel,double,0); + CREATE_CHAR(FilterChangeIndication,uint8_t,0); CREATE_CHAR(FirmwareRevision,char *,""); + CREATE_CHAR(HardwareRevision,char *,""); + CREATE_CHAR(HeatingThresholdTemperature,double,16); CREATE_CHAR(HoldPosition,boolean,false); CREATE_CHAR(Hue,double,0); CREATE_CHAR(Identify,boolean,false); + CREATE_CHAR(InUse,uint8_t,0); + CREATE_CHAR(IsConfigured,uint8_t,0); + CREATE_CHAR(LeakDetected,uint8_t,0); + CREATE_CHAR(LockCurrentState,uint8_t,0); + CREATE_CHAR(LockPhysicalControls,uint8_t,0); + CREATE_CHAR(LockTargetState,uint8_t,0); CREATE_CHAR(Manufacturer,char *,""); CREATE_CHAR(Model,char *,""); + CREATE_CHAR(MotionDetected,boolean,false); + CREATE_CHAR(Mute,boolean,false); CREATE_CHAR(Name,char *,""); CREATE_CHAR(NitrogenDioxideDensity,double,0); CREATE_CHAR(ObstructionDetected,boolean,false); - CREATE_CHAR(On,boolean,false); + CREATE_CHAR(PM25Density,double,0); + CREATE_CHAR(OccupancyDetected,uint8_t,0); CREATE_CHAR(OutletInUse,boolean,false); + CREATE_CHAR(On,boolean,false); CREATE_CHAR(OzoneDensity,double,0); CREATE_CHAR(PM10Density,double,0); - CREATE_CHAR(PM25Density,double,0); CREATE_CHAR(PositionState,uint8_t,2); + CREATE_CHAR(ProgramMode,uint8_t,0); + CREATE_CHAR(ProgrammableSwitchEvent,uint8_t,0); + CREATE_CHAR(RelativeHumidityDehumidifierThreshold,double,50); + CREATE_CHAR(RelativeHumidityHumidifierThreshold,double,50); + CREATE_CHAR(RemainingDuration,uint32_t,60); + CREATE_CHAR(ResetFilterIndication,uint8_t,0); CREATE_CHAR(RotationDirection,int,0); CREATE_CHAR(RotationSpeed,double,0); CREATE_CHAR(Saturation,double,0); + CREATE_CHAR(SecuritySystemAlarmType,uint8_t,0); + CREATE_CHAR(SecuritySystemCurrentState,uint8_t,3); + CREATE_CHAR(SecuritySystemTargetState,uint8_t,3); CREATE_CHAR(SerialNumber,char *,""); + CREATE_CHAR(ServiceLabelIndex,uint8_t,1); + CREATE_CHAR(ServiceLabelNamespace,uint8_t,1); CREATE_CHAR(SlatType,uint8_t,0); CREATE_CHAR(SmokeDetected,uint8_t,0); CREATE_CHAR(StatusActive,boolean,true); @@ -408,10 +435,23 @@ namespace Characteristic { CREATE_CHAR(StatusTampered,uint8_t,0); CREATE_CHAR(SulphurDioxideDensity,double,0); CREATE_CHAR(SwingMode,uint8_t,0); - CREATE_CHAR(TargetDoorState,uint8_t,1); + CREATE_CHAR(TargetAirPurifierState,uint8_t,1); + CREATE_CHAR(TargetFanState,uint8_t,1); + CREATE_CHAR(TargetTiltAngle,int,0); + CREATE_CHAR(SetDuration,uint32_t,60); + CREATE_CHAR(TargetHorizontalTiltAngle,int,0); + CREATE_CHAR(TargetHumidifierDehumidifierState,uint8_t,0); CREATE_CHAR(TargetPosition,uint8_t,0); + CREATE_CHAR(TargetDoorState,uint8_t,1); + CREATE_CHAR(TargetHeatingCoolingState,uint8_t,0); + CREATE_CHAR(TargetRelativeHumidity,double,0); + CREATE_CHAR(TargetTemperature,double,16); CREATE_CHAR(TemperatureDisplayUnits,uint8_t,0); + CREATE_CHAR(TargetVerticalTiltAngle,int,0); + CREATE_CHAR(ValveType,uint8_t,0); CREATE_CHAR(Version,char *,""); CREATE_CHAR(VOCDensity,double,0); + CREATE_CHAR(Volume,uint8_t,0); + CREATE_CHAR(WaterLevel,double,0); }