diff --git a/src/HAPConstants.h b/src/HAPConstants.h index cfe8ff7..9fa680c 100644 --- a/src/HAPConstants.h +++ b/src/HAPConstants.h @@ -130,6 +130,7 @@ struct HapCharList { HAPCHAR( Manufacturer, 20, PR ); HAPCHAR( Model, 21, PR ); HAPCHAR( MotionDetected, 22, PR+EV ); + HAPCHAR( Mute, 11A, PW+PR+EV ); HAPCHAR( Name, 23, PR ); HAPCHAR( NitrogenDioxideDensity, C4, PR+EV ); HAPCHAR( ObstructionDetected, 24, PR+EV ); @@ -149,6 +150,9 @@ struct HapCharList { HAPCHAR( RotationDirection, 28, PR+PW+EV ); HAPCHAR( RotationSpeed, 29, PR+PW+EV ); HAPCHAR( Saturation , 2F, PR+PW+EV ); + HAPCHAR( SecuritySystemAlarmType , 8E, PR+EV ); + HAPCHAR( SecuritySystemCurrentState , 66, PR+EV ); + HAPCHAR( SecuritySystemTargetState , 67, PW+PR+EV ); HAPCHAR( SerialNumber, 30, PR ); HAPCHAR( ServiceLabelIndex, CB, PR ); HAPCHAR( ServiceLabelNamespace, CD, PR ); diff --git a/src/Services.h b/src/Services.h index 4a78fca..c6466a9 100644 --- a/src/Services.h +++ b/src/Services.h @@ -209,6 +209,18 @@ namespace Service { OPT(StatusLowBattery); }}; + struct LockMechanism : SpanService { LockMechanism() : SpanService{"45","LockMechanism"}{ + REQ(LockCurrentState); + REQ(LockTargetState); + OPT(Name); + }}; + + struct Microphone : SpanService { Microphone() : SpanService{"112","Microphone"}{ + REQ(Mute); + OPT(Name); + OPT(Volume); + }}; + struct MotionSensor : SpanService { MotionSensor() : SpanService{"85","MotionSensor"}{ REQ(MotionDetected); OPT(Name); @@ -233,7 +245,16 @@ namespace Service { OPT(Name); }}; - struct ServiceLabel : SpanService { ServiceLabel() : SpanService{"47","ServiceLabel"}{ + struct SecuritySystem : SpanService { SecuritySystem() : SpanService{"7E","SecuritySystem"}{ + REQ(SecuritySystemCurrentState); + REQ(SecuritySystemTargetState); + OPT(Name); + OPT(SecuritySystemAlarmType); + OPT(StatusFault); + OPT(StatusTampered); + }}; + + struct ServiceLabel : SpanService { ServiceLabel() : SpanService{"CC","ServiceLabel"}{ REQ(ServiceLabelNamespace); }};