Skip to content

HomeKit iOS xcode9 beta1

Vincent Dondain edited this page Jun 30, 2017 · 3 revisions

#HomeKit.framework https://github.com/xamarin/xamarin-macios/pull/2276

diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMAccessory.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMAccessory.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMAccessory.h	2016-08-13 01:16:38.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMAccessory.h	2017-05-22 00:31:50.000000000 -0400
@@ -108,6 +108,21 @@
 @property(readonly, getter=isBlocked, nonatomic) BOOL blocked;
 
 /*!
+ *  @abstract   Model of the accessory.
+ */
+@property (nullable, readonly, copy, nonatomic) NSString *model API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
+ *  @abstract   Manufacturer of the accessory.
+ */
+@property (nullable, readonly, copy, nonatomic) NSString *manufacturer API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
+ *  @abstract   Accessory's firmware version.
+ */
+@property (nullable, readonly, copy, nonatomic) NSString *firmwareVersion API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
  * @brief This method is used to change the name of the accessory.
  *
  * @param name New name for the accessory.
@@ -192,6 +207,15 @@
  */
 - (void)accessory:(HMAccessory *)accessory service:(HMService *)service didUpdateValueForCharacteristic:(HMCharacteristic *)characteristic;
 
+/*!
+ * @brief Informs the delegate when firmwareVersion has been changed for an accessory.
+ *
+ * @param accessory Sender of the message.
+ *
+ * @param firmwareVersion The newly updated firmwareVersion.
+ */
+- (void)accessory:(HMAccessory *)accessory didUpdateFirmwareVersion:(NSString *)firmwareVersion API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMAccessoryBrowser.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMAccessoryBrowser.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMAccessoryBrowser.h	2016-09-30 01:33:22.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMAccessoryBrowser.h	2017-05-28 01:39:33.000000000 -0400
@@ -35,8 +35,11 @@
  * @brief Starts searching for accessories that are not associated to any home.
  *
  * @discussion If any accessories are discovered, updates are sent to the delegate.
- *             This will only scan for any accessories that are already on the
- *             infrastructure IP network or any Bluetooth LE accessories.
+ *             This will scan for the following types of accessories:
+ *                 Accessories supporting HomeKit Wireless Accessory Configuration profile
+ *                 Accessories supporting HomeKit Accessory Protocol and are already on
+ *                     the same infrastructure IP network
+ *                 Accessories supporting HomeKit Accessory Protocol on Bluetooth LE transport
  *             The array of discovered accessories will be updated when this method
  *             is called, so applications should clear and reload any stored copies
  *             of that array or previous new accessory objects.
@@ -50,7 +53,7 @@
  * @discussion After this method is called, updates will not be sent to the delegate
  *             if new accessories are found or removed. Scanning may continue for system
  *             reasons or if other delegates are still in active searching sessions.
- *             The array of discovered accessories will not be updated until 
+ *             The contents of the array of discovered accessories will not be updated until 
  *             startSearchingForNewAccessories is called.
  */
 - (void)stopSearchingForNewAccessories;
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCalendarEvent.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCalendarEvent.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCalendarEvent.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCalendarEvent.h	2017-05-28 01:39:33.000000000 -0400
@@ -0,0 +1,55 @@
+//  HMCalendarEvent.h
+//  HomeKit
+//
+//  Copyright (c) 2017 Apple Inc. All rights reserved.
+
+#import <Foundation/Foundation.h>
+#import <HomeKit/HMTimeEvent.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*!
+ * @brief This class is used to represent a calendar event.
+ */
+API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0))
+@interface HMCalendarEvent : HMTimeEvent <NSCopying, NSMutableCopying>
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/*!
+ * @brief Creates a calendar event
+ *
+ * @param fireDateComponents The date component that specifies the time when the event is fired
+ *
+ * @return Instance object representing the event trigger.
+ */
+- (instancetype)initWithFireDateComponents:(NSDateComponents *)fireDateComponents;
+
+
+/*!
+ * @brief The date component that specifies the time when the event is fired
+ */
+@property(readonly, strong, nonatomic) NSDateComponents *fireDateComponents;
+
+@end
+
+
+
+
+
+/*!
+ * @brief This class is used to represent a calendar event.
+ */
+API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0))
+@interface HMMutableCalendarEvent : HMCalendarEvent
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/*!
+ * @brief The date component that specifies the time when the event is fired
+ */
+@property(readwrite, strong, nonatomic) NSDateComponents *fireDateComponents;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCharacteristicEvent.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCharacteristicEvent.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCharacteristicEvent.h	2016-09-30 01:33:22.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCharacteristicEvent.h	2017-05-28 01:39:33.000000000 -0400
@@ -56,7 +56,32 @@
  *                   The NSError provides more information on the status of the request, error
  *                   will be nil on success.
  */
-- (void)updateTriggerValue:(nullable TriggerValueType)triggerValue completionHandler:(void (^)(NSError * __nullable error))completion __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+- (void)updateTriggerValue:(nullable TriggerValueType)triggerValue completionHandler:(void (^)(NSError * __nullable error))completion NS_DEPRECATED_IOS(9_0, 11_0) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+
+@end
+
+
+
+
+/*!
+ * @brief This class represents an event that is evaluated based on the value of a characteristic
+ *        set to a particular value.
+ */
+API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0))
+@interface HMMutableCharacteristicEvent<TriggerValueType : id<NSCopying>> : HMCharacteristicEvent
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/*!
+ * @brief The characteristic associated with the event.
+ */
+@property(readwrite, strong, nonatomic) HMCharacteristic *characteristic;
+
+/*!
+ * @brief The value of the characteristic that triggers the event.
+ *        A value of nil corresponds to any change in the value of the characteristic.
+ */
+@property(readwrite, copy, nonatomic, nullable) TriggerValueType triggerValue;
 
 @end
 
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCharacteristicThresholdRangeEvent.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCharacteristicThresholdRangeEvent.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCharacteristicThresholdRangeEvent.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCharacteristicThresholdRangeEvent.h	2017-05-28 01:39:33.000000000 -0400
@@ -0,0 +1,70 @@
+// HMCharacteristicNumberRangeEvent.h
+// HomeKit
+//
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+
+#import <Foundation/Foundation.h>
+#import <HomeKit/HMEvent.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class HMCharacteristic;
+@class HMNumberRange;
+
+/*!
+ * @brief This class represents an event when a characteristic's value falls within the specified 
+ * number range.
+ */
+API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0))
+@interface HMCharacteristicThresholdRangeEvent : HMEvent <NSCopying, NSMutableCopying>
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/*!
+ * @brief Initializes a new characteristic number range event object
+ *
+ * @param characteristic The characteristic bound to the event. The characteristic must
+ *                       support notification. An exception will be thrown otherwise.
+ *
+ * @param numberRange The range for the characteristic value to trigger the event.
+ *
+ * @return Instance object representing the characteristic event.
+ */
+- (instancetype)initWithCharacteristic:(HMCharacteristic *)characteristic
+                        thresholdRange:(HMNumberRange *)thresholdRange;
+
+/*!
+ * @brief The characteristic associated with the event.
+ */
+@property(readonly, strong, nonatomic) HMCharacteristic *characteristic;
+
+/*!
+ * @brief The range of the characteristic value that triggers the event.
+ */
+@property(readonly, copy, nonatomic) HMNumberRange *thresholdRange;
+
+@end
+
+
+/*!
+ * @brief This class represents an event when a characteristic's value falls within the specified
+ * number range.
+ */
+API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0))
+@interface HMMutableCharacteristicThresholdRangeEvent : HMCharacteristicThresholdRangeEvent
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/*!
+ * @brief The characteristic associated with the event.
+ */
+@property(readwrite, strong, nonatomic) HMCharacteristic *characteristic;
+
+/*!
+ * @brief The range of the characteristic value that triggers the event.
+ */
+@property(readwrite, copy, nonatomic) HMNumberRange *thresholdRange;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCharacteristicTypes.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCharacteristicTypes.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCharacteristicTypes.h	2017-02-24 03:46:16.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMCharacteristicTypes.h	2017-05-22 00:31:50.000000000 -0400
@@ -131,17 +131,17 @@
 /*!
  * @brief Characteristic type for manufacturer. The value of the characteristic is a string.
  */
-HM_EXTERN NSString * const HMCharacteristicTypeManufacturer NS_AVAILABLE_IOS(8_0) __WATCHOS_AVAILABLE(2_0) __TVOS_AVAILABLE(10_0);
+HM_EXTERN NSString * const HMCharacteristicTypeManufacturer API_DEPRECATED_WITH_REPLACEMENT("Use -[HMAccessory manufacturer] instead", ios(8.0,11.0), watchos(2.0,4.0), tvos(10.0,11.0));
 
 /*!
  * @brief Characteristic type for model. The value of the characteristic is a string.
  */
-HM_EXTERN NSString * const HMCharacteristicTypeModel NS_AVAILABLE_IOS(8_0) __WATCHOS_AVAILABLE(2_0) __TVOS_AVAILABLE(10_0);
+HM_EXTERN NSString * const HMCharacteristicTypeModel API_DEPRECATED_WITH_REPLACEMENT("Use -[HMAccessory model] instead", ios(8.0,11.0), watchos(2.0,4.0), tvos(10.0,11.0));
 
 /*!
  * @brief Characteristic type for serial number. The value of the characteristic is a string.
  */
-HM_EXTERN NSString * const HMCharacteristicTypeSerialNumber NS_AVAILABLE_IOS(8_0) __WATCHOS_AVAILABLE(2_0) __TVOS_AVAILABLE(10_0);
+HM_EXTERN NSString * const HMCharacteristicTypeSerialNumber API_DEPRECATED("No longer supported", ios(8.0,11.0), watchos(2.0,4.0), tvos(10.0,11.0));
 
 /*!
  * @brief Characteristic type for identify. The characteristic is write-only that takes a boolean.
@@ -332,7 +332,7 @@
  * @brief Characteristic type for firmware version. The value of the characteristic is a string value
  *        describing the firmware version of the accessory.
  */
-HM_EXTERN NSString * const HMCharacteristicTypeFirmwareVersion NS_AVAILABLE_IOS(9_0) __WATCHOS_AVAILABLE(2_0) __TVOS_AVAILABLE(10_0);
+HM_EXTERN NSString * const HMCharacteristicTypeFirmwareVersion API_DEPRECATED_WITH_REPLACEMENT("Use -[HMAccessory firmwareVersion] instead", ios(8.0,11.0), watchos(2.0,4.0), tvos(10.0,11.0));
 
 /*!
  * @brief Characteristic type for hardware version. The value of the characteristic is a string value
@@ -679,5 +679,10 @@
  */
 HM_EXTERN NSString * const HMCharacteristicTypeHumidifierThreshold NS_AVAILABLE_IOS(10_2) __WATCHOS_AVAILABLE(3_1_1) __TVOS_AVAILABLE(10_1);
 
+/*!
+ * @brief Characteristic type for color temperature. The value of the characteristic is
+ *        an int representing the mired value of the color temperature.
+ */
+HM_EXTERN NSString * const HMCharacteristicTypeColorTemperature API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMDurationEvent.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMDurationEvent.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMDurationEvent.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMDurationEvent.h	2017-05-28 01:39:33.000000000 -0400
@@ -0,0 +1,51 @@
+//  HMDurationEvent.h
+//  HomeKit
+//
+//  Copyright (c) 2017 Apple Inc. All rights reserved.
+
+#import <Foundation/Foundation.h>
+#import <HomeKit/HMTimeEvent.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*!
+ * @brief This class is used to represent a duration of time.
+ */
+API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0))
+@interface HMDurationEvent : HMTimeEvent <NSCopying, NSMutableCopying>
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/*!
+ * @brief Creates a duration time event.
+ *
+ * @param duration The duration of time in seconds.
+ *
+ * @return Instance object representing the significant event.
+ */
+- (instancetype)initWithDuration:(NSTimeInterval)duration;
+
+/*!
+ * @brief duration The duration of time in seconds.
+ */
+@property(readonly, nonatomic, assign) NSTimeInterval duration;
+
+@end
+
+
+/*!
+ * @brief This class is used to represent a duration of time.
+ */
+API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0))
+@interface HMMutableDurationEvent : HMDurationEvent
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/*!
+ * @brief duration The duration of time in seconds.
+ */
+@property(readwrite, nonatomic, assign) NSTimeInterval duration;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMError.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMError.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMError.h	2016-11-09 23:44:47.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMError.h	2017-05-22 00:02:15.000000000 -0400
@@ -105,6 +105,9 @@
     HMErrorCodeBridgedAccessoryNotReachable            NS_ENUM_AVAILABLE_IOS(10) = 88,
     HMErrorCodeNotAuthorizedForMicrophoneAccess        NS_ENUM_AVAILABLE_IOS(10) = 89,
     HMErrorCodeIncompatibleNetwork                     NS_ENUM_AVAILABLE_IOS(10_2) = 90,
+    HMErrorCodeNoHomeHub                               NS_ENUM_AVAILABLE_IOS(11_0) = 91,
+    HMErrorCodeNoCompatibleHomeHub                     NS_ENUM_AVAILABLE_IOS(11_0) = 92,
+    HMErrorCodeIncompatibleHomeHub                     API_DEPRECATED_WITH_REPLACEMENT("HMErrorCodeNoCompatibleHomeHub", ios(11.0, 11.0), watchos(4.0, 4.0), tvos(11.0, 11.0)) = HMErrorCodeNoCompatibleHomeHub,
 } NS_AVAILABLE_IOS(8_0) __WATCHOS_AVAILABLE(2_0) __TVOS_AVAILABLE(10_0);
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMEvent.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMEvent.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMEvent.h	2016-09-30 01:33:22.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMEvent.h	2017-05-28 01:39:33.000000000 -0400
@@ -5,6 +5,8 @@
 
 #import <Foundation/Foundation.h>
 
+@class HMHome;
+
 NS_ASSUME_NONNULL_BEGIN
 
 /*!
@@ -18,6 +20,11 @@
  */
 @property(readonly, copy, nonatomic) NSUUID *uniqueIdentifier;
 
+/*!
+ * @brief Specifies whether the HMEvent can be added to HMEventTrigger on the given home.
+ */
++ (BOOL)isSupportedForHome:(HMHome *)home API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMEventTrigger.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMEventTrigger.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMEventTrigger.h	2016-08-13 01:16:39.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMEventTrigger.h	2017-05-30 01:48:24.000000000 -0400
@@ -7,11 +7,15 @@
 
 #import <Foundation/Foundation.h>
 #import <HomeKit/HMTrigger.h>
+#import <HomeKit/HMEventTriggerActivationState.h>
+#import <HomeKit/HMSignificantTimeEvent.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
 @class HMEvent;
 @class HMCharacteristic;
+@class HMPresenceEvent;
+
 
 /*!
  * @group Specifies a group of events that are deemed significant events in a day.
@@ -28,6 +32,11 @@
  */
 HM_EXTERN NSString * const HMCharacteristicValueKeyPath NS_AVAILABLE_IOS(9_0) __WATCHOS_AVAILABLE(2_0) __TVOS_AVAILABLE(10_0);
 
+/*!
+ * @brief Specifies the key path for a presence event in a NSPredicate
+ */
+HM_EXTERN NSString * const HMPresenceKeyPath API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
 
 /*!
  * @brief Triggers based on events.
@@ -57,16 +66,145 @@
                    predicate:(nullable NSPredicate *)predicate __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
 
 /*!
+ * @brief Initializes a new event trigger object.
+ *
+ * @param name Name of the event trigger.
+ *
+ * @param events Array of events that can trigger the evaluation of the trigger. Note: The trigger will
+ *               be evaluated if any one of the events is true.
+ *
+ * @param endEvents Array of end events that can trigger the restoration to the state before the scene was run.
+ *
+ * @param recurrences Specifies the days of the week when the trigger is to be evaluated. Only the 'weekday' property
+ *                    is honored in NSDateComponents.
+ *
+ * @param predicate The predicate to evaluate before executing any of the actions sets associated to this
+ *                  event.
+ *
+ * @return Instance object representing the event trigger.
+ */
+- (instancetype)initWithName:(NSString *)name
+                      events:(NSArray<HMEvent *> *)events
+                   endEvents:(nullable NSArray<HMEvent *> *)endEvents
+                 recurrences:(nullable NSArray<NSDateComponents *> *)recurrences
+                   predicate:(nullable NSPredicate *)predicate NS_DESIGNATED_INITIALIZER API_AVAILABLE(ios(11.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+
+/*!
  * @brief The events associated with the trigger.
  */
 @property(readonly, copy, nonatomic) NSArray<HMEvent *> *events;
 
 /*!
+ * @brief The events that correspond to executing the restore of the scene before the trigger was executed.
+ *        E.g. Execute the scene for 10 mins and restore original state is achieved by specifying a corresponding
+ *        HMDurationEvent in the list of endEvents. HMCharacteristicEvent or HMCharacteristicThresholdRangeEvents
+ *        can also be added to end events
+ */
+@property(readonly, copy, nonatomic) NSArray<HMEvent *> *endEvents API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
  * @brief The predicate to evaluate before executing the action sets associated with the trigger.
  */
 @property(readonly, copy, nonatomic, nullable) NSPredicate *predicate;
 
 /*!
+ * @param recurrences Specifies the recurrences for when the trigger is evaluated. This only supports days of the week.
+ */
+@property(readonly, copy, nonatomic, nullable) NSArray<NSDateComponents *> *recurrences API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
+ * @brief Specifies whether this trigger is executed only once after which the trigger is disabled.
+ */
+@property(readonly, nonatomic) BOOL executeOnce API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
+ * @brief Specifies the current activation state of the trigger.
+ */
+@property(readonly, assign, nonatomic) HMEventTriggerActivationState triggerActivationState;
+
+
+/*!
+ * @brief Adds a new event to the event trigger.
+ *
+ * @param event Event to add to the event trigger.
+ *
+ * @param completion Block that is invoked once the request is processed. 
+ *                   The NSError provides more information on the status of the request, error
+ *                   will be nil on success.
+ */
+- (void)addEvent:(HMEvent *)event completionHandler:(void (^)(NSError * __nullable error))completion API_DEPRECATED("Use updateEvents:completionHandler: instead", ios(9.0, 11.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+
+/*!
+ * @brief Removes the specified event from the event trigger.
+ *
+ * @param event Event to remove from the event trigger.
+ *
+ * @param completion Block that is invoked once the request is processed. 
+ *                   The NSError provides more information on the status of the request, error
+ *                   will be nil on success.
+ */
+- (void)removeEvent:(HMEvent *)event completionHandler:(void (^)(NSError * __nullable error))completion API_DEPRECATED("Use updateEvents:completionHandler: instead", ios(9.0, 11.0))  __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+
+/*!
+ * @brief Updates the set of events in the event trigger.
+ *
+ * @param events Events to update in the event trigger
+ *
+ * @param completion Block that is invoked once the request is processed.
+ *                   The NSError provides more information on the status of the request, error
+ *                   will be nil on success.
+ */
+- (void)updateEvents:(NSArray<HMEvent *> *)events completionHandler:(void (^)(NSError * __nullable error))completion API_AVAILABLE(ios(11.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+
+/*!
+ * @brief Updates the set of events in the event trigger.
+ *
+ * @param events Events to update in the event trigger
+ *
+ * @param completion Block that is invoked once the request is processed.
+ *                   The NSError provides more information on the status of the request, error
+ *                   will be nil on success.
+ */
+- (void)updateEndEvents:(NSArray<HMEvent *> *)endEvents completionHandler:(void (^)(NSError * __nullable error))completion API_AVAILABLE(ios(11.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+
+/*!
+ * @brief This method replaces the predicate used to evaluate execution of the action sets associated with the trigger.
+ *
+ * @param predicate The new predicate for the event trigger.
+ *
+ * @param completion Block that is invoked once the request is processed.
+ *                   The NSError provides more information on the status of the request,
+ *                   error will be nil on success. 
+ */
+- (void)updatePredicate:(nullable NSPredicate *)predicate completionHandler:(void (^)(NSError * __nullable error))completion __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+
+/*!
+ * @brief This method replaces the recurrences which secifies the days of the week when the trigger is to be evaluated.
+ *
+ * @param recurrences The new recurrences for the event trigger.
+ *
+ * @param completion Block that is invoked once the request is processed.
+ *                   The NSError provides more information on the status of the request,
+ *                   error will be nil on success.
+ */
+- (void)updateRecurrences:(nullable NSArray<NSDateComponents *> *)recurrences completionHandler:(void (^)(NSError * __nullable error))completion API_AVAILABLE(ios(11.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+
+/*!
+ * @brief This method is used to update whether the event trigger repeats or not.
+ *
+ * @param executeOnce Specifies whether the event trigger is repeated or not.
+ *
+ * @param completion Block that is invoked once the request is processed.
+ *                   The NSError provides more information on the status of the request, error
+ *                   will be nil on success.
+ */
+- (void)updateExecuteOnce:(BOOL)executeOnce completionHandler:(void (^)(NSError * __nullable error))completion API_AVAILABLE(ios(11.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+
+@end
+
+@interface HMEventTrigger(NSPredicate)
+
+/*!
  * @brief Creates a predicate that will evaluate whether the event occurred before a significant event.
  *
  * @param significantEvent The significant event to compare against.
@@ -78,12 +216,22 @@
  *
  * @return Predicate object representing a condition to evaluate before executing the action set.
  */
-+ (NSPredicate *)predicateForEvaluatingTriggerOccurringBeforeSignificantEvent:(NSString *)significantEvent applyingOffset:(nullable NSDateComponents *)offset;
++ (NSPredicate *)predicateForEvaluatingTriggerOccurringBeforeSignificantEvent:(NSString *)significantEvent
+                                                               applyingOffset:(nullable NSDateComponents *)offset API_DEPRECATED("Use predicateForEvaluatingTriggerOccurringBeforeSignificantEvent: instead", ios(9.0, 11.0));
 
 /*!
  * @brief Creates a predicate that will evaluate whether the event occurred before a significant event.
  *
  * @param significantEvent The significant event to compare against.
+ *
+ * @return Predicate object representing a condition to evaluate before executing the action set.
+ */
++ (NSPredicate *)predicateForEvaluatingTriggerOccurringBeforeSignificantEvent:(HMSignificantTimeEvent *)significantEvent API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
+ * @brief Creates a predicate that will evaluate whether the event occurred after a significant event.
+ *
+ * @param significantEvent The significant event to compare against.
  *                         The valid values are: HMSignificantEventSunrise and HMSignificantEventSunset.
  *
  * @param offset An offset from the time of the signficant event. To specify an offset after the significant event, the
@@ -92,7 +240,29 @@
  *
  * @return Predicate object representing a condition to evaluate before executing the action set.
  */
-+ (NSPredicate *)predicateForEvaluatingTriggerOccurringAfterSignificantEvent:(NSString *)significantEvent applyingOffset:(nullable NSDateComponents *)offset;
++ (NSPredicate *)predicateForEvaluatingTriggerOccurringAfterSignificantEvent:(NSString *)significantEvent
+                                                              applyingOffset:(nullable NSDateComponents *)offset API_DEPRECATED("Use predicateForEvaluatingTriggerOccurringAfterSignificantEvent: instead", ios(9.0, 11.0));
+
+/*!
+ * @brief Creates a predicate that will evaluate whether the event occurred after a significant event.
+ *
+ * @param significantEvent The significant event to compare against.
+ *
+ * @return Predicate object representing a condition to evaluate before executing the action set.
+ */
++ (NSPredicate *)predicateForEvaluatingTriggerOccurringAfterSignificantEvent:(HMSignificantTimeEvent *)significantEvent API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
+ * @brief Creates a predicate that will evaluate whether the event occurred between two significant events.
+ *
+ * @param firstSignificantEvent The first significant event.
+ *
+ * @param secondSignificantEvent The second significant event.
+ *
+ * @return Predicate object representing a condition to evaluate before executing the action set.
+ */
++ (NSPredicate *)predicateForEvaluatingTriggerOccurringBetweenSignificantEvent:(HMSignificantTimeEvent *)firstSignificantEvent
+                                                        secondSignificantEvent:(HMSignificantTimeEvent *)secondSignificantEvent API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
 
 /*!
  * @brief Creates a predicate that will evaluate whether the event occurred before the time specified.
@@ -139,37 +309,13 @@
                                                          toValue:(id)value;
 
 /*!
- * @brief Adds a new event to the event trigger.
+ * @brief Creates a predicate that will evaluate based on the presence event.
  *
- * @param event Event to add to the event trigger.
+ * @param presenceEvent The presenceEvent that is evaluated as part of the predicate.
  *
- * @param completion Block that is invoked once the request is processed. 
- *                   The NSError provides more information on the status of the request, error
- *                   will be nil on success.
- */
-- (void)addEvent:(HMEvent *)event completionHandler:(void (^)(NSError * __nullable error))completion __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
-
-/*!
- * @brief Removes the specified event from the event trigger.
- *
- * @param event Event to remove from the event trigger.
- *
- * @param completion Block that is invoked once the request is processed. 
- *                   The NSError provides more information on the status of the request, error
- *                   will be nil on success.
- */
-- (void)removeEvent:(HMEvent *)event completionHandler:(void (^)(NSError * __nullable error))completion __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
-
-/*!
- * @brief This method replaces the predicate used to evaluate execution of the action sets associated with the trigger.
- *
- * @param predicate The new predicate for the event trigger.
- *
- * @param completion Block that is invoked once the request is processed.
- *                   The NSError provides more information on the status of the request,
- *                   error will be nil on success. 
+ * @return Predicate object representing a condition to evaluate before executing the action set.
  */
-- (void)updatePredicate:(nullable NSPredicate *)predicate completionHandler:(void (^)(NSError * __nullable error))completion __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
++ (NSPredicate *)predicateForEvaluatingTriggerWithPresence:(HMPresenceEvent *)presenceEvent API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
 
 @end
 
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMEventTriggerActivationState.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMEventTriggerActivationState.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMEventTriggerActivationState.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMEventTriggerActivationState.h	2017-05-28 01:39:33.000000000 -0400
@@ -0,0 +1,46 @@
+//
+//  HMEventTriggerActivationState.h
+//  HomeKit
+//
+//  Copyright © 2017 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*!
+ * @abstract This enumeration describes the setting for audio on the recipient of the camera stream.
+ */
+API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0))
+typedef NS_ENUM(NSUInteger, HMEventTriggerActivationState)
+{
+    /*!
+     * Trigger is not active because it is disabled
+     */
+    HMEventTriggerActivationStateDisabled = 0,
+    
+    /*!
+     * Trigger is not active because there is no HomeHub
+     */
+    HMEventTriggerActivationStateDisabledNoHomeHub = 1,
+    
+    /*!
+     * Trigger is not active because there is no compatible HomeHub
+     */
+    HMEventTriggerActivationStateDisabledNoCompatibleHomeHub = 2,
+    
+    /*!
+     * Trigger is not active because Location Authorization has been turned off by user
+     */
+    HMEventTriggerActivationStateDisabledNoLocationServicesAuthorization = 3,
+    
+    /*!
+     * Trigger is currently active
+     */
+    HMEventTriggerActivationStateEnabled = 4,
+};
+
+NS_ASSUME_NONNULL_END
+
+
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMHome.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMHome.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMHome.h	2016-10-05 17:19:43.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMHome.h	2017-05-22 00:31:50.000000000 -0400
@@ -22,6 +22,20 @@
 @protocol HMHomeDelegate;
 
 /*!
+ @enum      HMHomeHubState
+
+ @constant  HMHomeHubStateNotAvailable      No home hub is present.
+ @constant  HMHomeHubStateConnected         Home hub is connected.
+ @constant  HMHomeHubStateDisconnected      No home hub is connected.
+ */
+typedef NS_ENUM(NSUInteger, HMHomeHubState)
+{
+    HMHomeHubStateNotAvailable = 0,
+    HMHomeHubStateConnected,
+    HMHomeHubStateDisconnected
+} NS_ENUM_AVAILABLE_IOS(11_0);
+
+/*!
  * @brief Represents a home.
  *
  * @discussion This class represents a home and is the entry point to communicate and
@@ -50,6 +64,11 @@
 @property(readonly, getter=isPrimary, nonatomic) BOOL primary;
 
 /*!
+ * @brief Specifies the state of the home hub.
+ */
+@property(readonly, nonatomic) HMHomeHubState homeHubState API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
  * @brief A unique identifier for the home.
  */
 @property(readonly, copy, nonatomic) NSUUID *uniqueIdentifier NS_AVAILABLE_IOS(9_0);
@@ -362,8 +381,8 @@
 /*!
  * @brief Retrieve a built-in action set for the home.
  *
- * @param type Type of the builtin action set. Supported action set types are HMActionSetTypeWakeUp,
- *             HMActionSetTypeSleep, HMActionSetTypeHomeDeparture and HMActionSetTypeHomeArrival.
+ * @param actionSetType Type of the builtin action set. Supported action set types are HMActionSetTypeWakeUp,
+ *                      HMActionSetTypeSleep, HMActionSetTypeHomeDeparture and HMActionSetTypeHomeArrival.
  *
  * @return Reference to the built-in action set corresponding to type argument,
  *         nil if no matching action set is found.
@@ -427,6 +446,13 @@
 - (void)homeDidUpdateName:(HMHome *)home;
 
 /*!
+ * @brief Informs the delegate when the access control for current user has been updated.
+ *
+ * @param home Sender of the message.
+ */
+- (void)homeDidUpdateAccessControlForCurrentUser:(HMHome *)home API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
  * @brief Informs the delegate of addition of an accessory to the home.
  *
  * @param home Sender of the message.
@@ -696,6 +722,15 @@
 
 - (void)home:(HMHome *)home didEncounterError:(NSError*)error forAccessory:(HMAccessory *)accessory;
 
+/*!
+ * @brief Informs the delegate when state of the home hub changes.
+ *
+ * @param home Sender of the message.
+ *
+ * @param homeHubState The new home hub state.
+ */
+- (void)home:(HMHome *)home didUpdateHomeHubState:(HMHomeHubState)homeHubState API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
 @end
 
 /*!
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMHomeAccessControl.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMHomeAccessControl.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMHomeAccessControl.h	2016-09-30 01:33:22.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMHomeAccessControl.h	2017-05-28 01:39:33.000000000 -0400
@@ -10,7 +10,7 @@
 /*!
  * @brief Represents the access control of a user associated with a home.
  */
-NS_CLASS_AVAILABLE_IOS(9_0) __WATCHOS_AVAILABLE(2_0) __TVOS_AVAILABLE(10_0)
+API_AVAILABLE(ios(9.0), watchos(2.0), tvos(10.0))
 @interface HMHomeAccessControl : NSObject
 
 - (instancetype)init NS_UNAVAILABLE;
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMLocationEvent.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMLocationEvent.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMLocationEvent.h	2016-09-30 01:33:22.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMLocationEvent.h	2017-05-28 01:39:33.000000000 -0400
@@ -17,7 +17,7 @@
  *        exit from a Region
  */
 NS_CLASS_AVAILABLE_IOS(9_0) __WATCHOS_AVAILABLE(2_0) __TVOS_AVAILABLE(10_0)
-@interface HMLocationEvent : HMEvent
+@interface HMLocationEvent : HMEvent <NSCopying, NSMutableCopying>
 
 - (instancetype)init NS_UNAVAILABLE;
 
@@ -45,7 +45,25 @@
  *                   The NSError provides more information on the status of the request, error
  *                   will be nil on success.
  */
-- (void)updateRegion:(CLRegion *)region completionHandler:(void (^)(NSError * __nullable error))completion __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+- (void)updateRegion:(CLRegion *)region completionHandler:(void (^)(NSError * __nullable error))completion NS_DEPRECATED_IOS(9_0, 11_0) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+
+@end
+
+
+/*!
+ * @brief This class represents an event that is evaluated based on entry to and/or
+ *        exit from a Region
+ */
+API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0))
+@interface HMMutableLocationEvent : HMLocationEvent
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/*!
+ * @brief Region on which events are triggered based on the properties notifyOnEntry and notifyOnExit.
+ *        This property will be nil when an application is not authorized for location services.
+ */
+@property(readwrite, strong, nonatomic, nullable) CLRegion *region;
 
 @end
 
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMNumberRange.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMNumberRange.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMNumberRange.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMNumberRange.h	2017-05-28 01:39:33.000000000 -0400
@@ -0,0 +1,56 @@
+// HMNumberRange.h
+// HomeKit
+//
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*!
+ * @brief This class describes a range of numbers: [min, max]
+ *
+ */
+API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0))
+@interface HMNumberRange : NSObject
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/*!
+ * @brief Initializes a new range of numbers
+ *
+ * @param minValue The minimum value of the range.
+ *
+ * @param maxVlaue The maximum value of the range.
+ */
++ (instancetype)numberRangeWithMinValue:(NSNumber *)minValue maxValue:(NSNumber *)maxValue;
+
+/*!
+ * @brief Initializes a new range of numbers. The maximum value is set to a large value.
+ *
+ * @param minValue The minimum value of the range.
+ *
+ */
++ (instancetype)numberRangeWithMinValue:(NSNumber *)minValue;
+
+/*!
+ * @brief Initializes a new range of numbers. The minimum value is set to a small value.
+ *
+ * @param minValue The minimum value of the range.
+ *
+ */
++ (instancetype)numberRangeWithMaxValue:(NSNumber *)maxValue;
+
+/*!
+ * @brief The minimum value of the range.
+ */
+@property(nullable, readonly, strong, nonatomic) NSNumber *minValue;
+
+/*!
+ * @brief The maximum value of the range.
+ */
+@property(nullable, readonly, strong, nonatomic) NSNumber *maxValue;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMPresenceEvent.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMPresenceEvent.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMPresenceEvent.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMPresenceEvent.h	2017-05-28 01:39:33.000000000 -0400
@@ -0,0 +1,52 @@
+//  HMPresenceEvent.h
+//  HomeKit
+//
+//  Copyright (c) 2017 Apple Inc. All rights reserved.
+
+#import <Foundation/Foundation.h>
+#import <HomeKit/HMEvent.h>
+#import <HomeKit/HMPresenceTypes.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*!
+ * @brief This class is used to represent the presence of users or other entities in a home.
+ */
+API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0))
+@interface HMPresenceEvent : HMEvent <NSCopying, NSMutableCopying>
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/*!
+ * @brief Creates a duration time event.
+ *
+ * @param presenceType The type of presence desired for the event.
+ *
+ * @return Instance object representing the significant event.
+ */
+- (instancetype)initWithPresenceType:(HMPresenceType)presenceType;
+
+/*!
+ * @brief presenceType The type of presence that will trigger the event.
+ */
+@property(readonly, copy, nonatomic) HMPresenceType presenceType;
+
+@end
+
+
+/*!
+ * @brief This class is used to represent the presence of users or other entities in a home.
+ */
+API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0))
+@interface HMMutablePresenceEvent : HMPresenceEvent
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/*!
+ * @brief presenceType The type of presence that will trigger the event.
+ */
+@property(readwrite, copy, nonatomic) HMPresenceType presenceType;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMPresenceTypes.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMPresenceTypes.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMPresenceTypes.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMPresenceTypes.h	2017-05-28 01:39:33.000000000 -0400
@@ -0,0 +1,42 @@
+//
+//  HMPresenceTypes.h
+//  HomeKit
+//
+//  Copyright © 2017 Apple Inc. All rights reserved.
+//
+
+/*!
+ * @brief Type respresenting presence.
+ */
+typedef NSString * HMPresenceType NS_EXTENSIBLE_STRING_ENUM;
+
+/*!
+ * @brief Event describing when the current user is at home.
+ */
+extern HMPresenceType const HMPresenceTypeCurrentUserAtHome API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
+ * @brief Event describing when the current user is not at home.
+ */
+extern HMPresenceType const HMPresenceTypeCurrentUserNotAtHome API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
+ * @brief Event describing when any user is present is at home.
+ */
+extern HMPresenceType const HMPresenceTypeAnyUserAtHome API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
+ * @brief Event describing when no user is present is at home.
+ */
+extern HMPresenceType const HMPresenceTypeNoUserAtHome API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
+ * @brief Event describing selecting customs users present at home.
+ */
+extern HMPresenceType const HMPresenceTypeUsersAtHome API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
+/*!
+ * @brief Event describing selecting customs users not being present at home.
+ */
+extern HMPresenceType const HMPresenceTypeUsersNotAtHome API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0));
+
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMSignificantEvents.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMSignificantEvents.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMSignificantEvents.h	2016-09-30 01:33:22.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMSignificantEvents.h	2017-05-28 01:39:33.000000000 -0400
@@ -11,14 +11,19 @@
 NS_ASSUME_NONNULL_BEGIN
 
 /*!
+ * @brief Type corresponding to significant events.
+ */
+typedef NSString * HMSignificantEvent NS_EXTENSIBLE_STRING_ENUM;
+
+/*!
  * @brief Event corresponding to sunrise
  */
-HM_EXTERN NSString * const HMSignificantEventSunrise NS_AVAILABLE_IOS(9_0) __WATCHOS_AVAILABLE(2_0) __TVOS_AVAILABLE(10_0);
+HM_EXTERN HMSignificantEvent const HMSignificantEventSunrise NS_AVAILABLE_IOS(9_0) __WATCHOS_AVAILABLE(2_0) __TVOS_AVAILABLE(10_0);
 
 /*!
  * @brief Event corresponding to sunset
  */
-HM_EXTERN NSString * const HMSignificantEventSunset NS_AVAILABLE_IOS(9_0) __WATCHOS_AVAILABLE(2_0) __TVOS_AVAILABLE(10_0);
+HM_EXTERN HMSignificantEvent const HMSignificantEventSunset NS_AVAILABLE_IOS(9_0) __WATCHOS_AVAILABLE(2_0) __TVOS_AVAILABLE(10_0);
 
 NS_ASSUME_NONNULL_END
 
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMSignificantTimeEvent.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMSignificantTimeEvent.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMSignificantTimeEvent.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMSignificantTimeEvent.h	2017-05-28 01:39:33.000000000 -0400
@@ -0,0 +1,69 @@
+//  HMSignificantTimeEvent.h
+//  HomeKit
+//
+//  Copyright (c) 2017 Apple Inc. All rights reserved.
+
+#import <Foundation/Foundation.h>
+#import <HomeKit/HMTimeEvent.h>
+#import <HomeKit/HMSignificantEvents.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*!
+ * @brief This class is used to represent a calendar event.
+ */
+API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0))
+@interface HMSignificantTimeEvent : HMTimeEvent <NSCopying, NSMutableCopying>
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/*!
+ * @brief Creates a significant time event.
+ *
+ * @param significantEvent The significant event for the trigger.
+ *
+ * @param offset An offset from the time of the signficant event. To specify an offset before the significant event, the
+ *               properties of the NSDateComponents must be negative value. e.g. To specify 30 mins before sunset, the
+ *               'minute' property must be set to -30.
+ *
+ * @return Instance object representing the significant event.
+ */
+- (instancetype)initWithSignificantEvent:(HMSignificantEvent)significantEvent
+                                  offset:(nullable NSDateComponents *)offset;
+
+/*!
+ * @brief significantEvent The significant event for the trigger.
+ */
+@property(readonly, strong, nonatomic) HMSignificantEvent significantEvent;
+
+/*!
+ * @param offset An offset from the time of the signficant event. To specify an offset before the significant event, the
+ *               properties of the NSDateComponents must be negative value. e.g. To specify 30 mins before sunset, the
+ *               'minute' property must be set to -30.
+ */
+@property(readonly, strong, nonatomic, nullable) NSDateComponents *offset;
+
+@end
+
+
+
+
+
+
+@interface HMMutableSignificantTimeEvent : HMSignificantTimeEvent
+
+/*!
+ * @brief significantEvent The significant event for the trigger.
+ */
+@property(readwrite, strong, nonatomic) HMSignificantEvent significantEvent;
+
+/*!
+ * @param offset An offset from the time of the signficant event. To specify an offset before the significant event, the
+ *               properties of the NSDateComponents must be negative value. e.g. To specify 30 mins before sunset, the
+ *               'minute' property must be set to -30.
+ */
+@property(readwrite, strong, nonatomic) NSDateComponents *offset;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMTimeEvent.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMTimeEvent.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMTimeEvent.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMTimeEvent.h	2017-05-28 01:39:33.000000000 -0400
@@ -0,0 +1,19 @@
+// HMTimeEvent.h
+// HomeKit
+//
+// Copyright (c) 2017 Apple Inc. All rights reserved.
+
+#import <Foundation/Foundation.h>
+#import <HomeKit/HMEvent.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*!
+ * @brief This class is used to represent a generic time event.
+ */
+API_AVAILABLE(ios(11.0), watchos(4.0), tvos(11.0))
+@interface HMTimeEvent : HMEvent
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMTimerTrigger.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMTimerTrigger.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMTimerTrigger.h	2016-09-30 01:33:22.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HMTimerTrigger.h	2017-05-30 01:48:24.000000000 -0400
@@ -50,7 +50,6 @@
                   recurrence:(nullable NSDateComponents *)recurrence
           recurrenceCalendar:(nullable NSCalendar *)recurrenceCalendar NS_DESIGNATED_INITIALIZER __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
 
-
 /*!
  * @brief Specifies when, in an absolute time, the trigger should fire the first time.
  *
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HomeKit.apinotes /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HomeKit.apinotes
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HomeKit.apinotes	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HomeKit.apinotes	2017-05-28 01:39:33.000000000 -0400
@@ -0,0 +1,67 @@
+---
+Name: HomeKit
+Classes:
+- Name: HMCameraAudioControl
+  Methods:
+  - Selector: 'readOn:'
+    SwiftName: 'readOn(_:)'
+    MethodKind: Instance
+  - Selector: 'writeOn:completionHandler:'
+    SwiftName: 'writeOn(_:completionHandler:)'
+    MethodKind: Instance
+- Name: HMEventTrigger
+  Methods:
+  - Selector: 'predicateForEvaluatingTriggerOccurringBeforeSignificantEvent:applyingOffset:'
+    SwiftName: 'predicateForEvaluatingTrigger(occurringBefore:applyingOffset:)'
+    MethodKind: Class
+  - Selector: 'predicateForEvaluatingTriggerOccurringAfterSignificantEvent:applyingOffset:'
+    SwiftName: 'predicateForEvaluatingTrigger(occurringAfter:applyingOffset:)'
+    MethodKind: Class
+  - Selector: 'predicateForEvaluatingTriggerOccurringBeforeDateWithComponents:'
+    SwiftName: 'predicateForEvaluatingTrigger(occurringBefore:)'
+    MethodKind: Class
+  - Selector: 'predicateForEvaluatingTriggerOccurringOnDateWithComponents:'
+    SwiftName: 'predicateForEvaluatingTrigger(occurringOn:)'
+    MethodKind: Class
+  - Selector: 'predicateForEvaluatingTriggerOccurringAfterDateWithComponents:'
+    SwiftName: 'predicateForEvaluatingTrigger(occurringAfter:)'
+    MethodKind: Class
+  - Selector: 'predicateForEvaluatingTriggerWithCharacteristic:relatedBy:toValue:'
+    SwiftName: 'predicateForEvaluatingTrigger(_:relatedBy:toValue:)'
+    MethodKind: Class
+- Name: HMHome
+  Methods:
+  - Selector: 'servicesWithTypes:'
+    SwiftName: 'servicesWithTypes(_:)'
+    MethodKind: Instance
+  - Selector: 'addRoomWithName:completionHandler:'
+    SwiftName: 'addRoom(name:completionHandler:NSError?):)'
+    MethodKind: Instance
+  - Selector: 'addZoneWithName:completionHandler:'
+    SwiftName: 'addZone(name:completionHandler:NSError?):)'
+    MethodKind: Instance
+  - Selector: 'addServiceGroupWithName:completionHandler:'
+    SwiftName: 'addServiceGroup(name:completionHandler:NSError?):)'
+    MethodKind: Instance
+  - Selector: 'addActionSetWithName:completionHandler:'
+    SwiftName: 'addActionSet(name:completionHandler:NSError?):)'
+    MethodKind: Instance
+- Name: HMHomeManager
+  Methods:
+  - Selector: 'addHomeWithName:completionHandler:'
+    SwiftName: 'addHome(name:completionHandler:NSError?):)'
+    MethodKind: Instance
+- Name: HMTimerTrigger
+  Methods:
+  - Selector: 'initWithName:fireDate:timeZone:recurrence:recurrenceCalendar:'
+    SwiftName: 'init(name:fireDate:timeZone:recurrence:recurrenceCalendar:)'
+    MethodKind: Instance
+  - Selector: 'updateFireDate:completionHandler:'
+    SwiftName: 'updateFireDate(_:completionHandler:)'
+    MethodKind: Instance
+  - Selector: 'initWithName:fireDate:timeZone:recurrences:'
+    SwiftName: 'init(name:fireDate:timeZone:recurrences:)'
+    MethodKind: Instance
+Tags:
+- Name: HMErrorCode
+  NSErrorDomain: HMErrorDomain
diff -ruN /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HomeKit.h /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HomeKit.h
--- /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HomeKit.h	2016-09-30 01:33:22.000000000 -0400
+++ /Applications/Xcode9-beta1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/HomeKit.framework/Headers/HomeKit.h	2017-05-28 01:39:33.000000000 -0400
@@ -22,12 +22,23 @@
 #import <HomeKit/HMUser.h>
 #import <HomeKit/HMHomeAccessControl.h>
 #import <HomeKit/HMAccessoryCategory.h>
+
 #import <HomeKit/HMEvent.h>
 #import <HomeKit/HMCharacteristicEvent.h>
 #import <HomeKit/HMLocationEvent.h>
+#import <HomeKit/HMCalendarEvent.h>
+#import <HomeKit/HMCalendarEvent.h>
+
 #import <HomeKit/HMEventTrigger.h>
 #import <HomeKit/HMError.h>
 #import <HomeKit/HMAccessoryProfile.h>
+#import <HomeKit/HMSignificantTimeEvent.h>
+#import <HomeKit/HMDurationEvent.h>
+#import <HomeKit/HMCharacteristicThresholdRangeEvent.h>
+#import <HomeKit/HMPresenceTypes.h>
+#import <HomeKit/HMPresenceEvent.h>
+#import <HomeKit/HMNumberRange.h>
+#import <HomeKit/HMEventTriggerActivationState.h>
 #import <HomeKit/HMSignificantEvents.h>
 
 #if __has_include(<UIKit/UIView.h>)
Clone this wiki locally