Home Information Management

Last Updated on : 2024-08-23 09:47:59download

This topic describes how to implement the features of home management using APIs.

  • Create a home: How to create a new home and set its basic information.
  • Delete a home: How to remove a home and all its associated information.
  • Modify home information: How to update the name, location and other information of the home.
  • Get home information: How to query the detailed information of the home, including the device and group list.
  • Get weather information: How to get the weather information of the area where the home is located.
  • Join a home: How to join a home through an invitation code or invitation.
  • Sort devices and groups: How to sort the devices and groups under the home.
  • Register event listener: How to register a listener to receive room-based event callbacks within the home.

With these features, you can fully manage and control all kinds of information and devices in the home to meet various needs of smart scenes.

Description

The class ThingSmartFamilyBiz is used for home management to implement operations on a home.

Compared to ThingSmartHomeManager, ThingSmartFamilyBiz provides more features. If you are still using ThingSmartHomeManager, please refer to this document.

Class (or protocol) Description
ThingSmartFamilyBiz The home management class.
ThingSmartHomeModel The coarse-grained home model.
ThingSmartHome The fine-grained home model.
ThingSmartFamilyBizDelegate The home delegate protocol.

Data model of ThingSmartHomeModel

Field Type Description
homeId long long The home ID.
name NSString The name of the home.
geoName NSString The location of the home.
latitude double The latitude of the home.
longitude double The longitude of the home.

API list

Create a default home

If no home exists under the user account, create a default home and pass in the home name. Make a callback on success to return homeId.

Additionally, you can register a listener and implement the delegate method ThingSmartFamilyBizDelegate to receive a callback when a default home is created.

API description

- (void)createDefaultFamilyWithName:(NSString *)name
                            success:(void(^)(long long homeId))success
                            failure:(ThingFailureError)failure;

Parameters

Parameter Description
name The name of the home.
success The success callback.
failure The failure callback.

Example

Objective-C:

- (void)createDefaultFamily {
    [[ThingSmartFamilyBiz sharedInstance] createDefaultFamilyWithName:@"" success:^(long long homeId) {

    } failure:^(NSError *error) {

    }];
}

Swift:

 func createDefaultFamily() {
    ThingSmartFamilyBiz.sharedInstance().createDefaultFamily(withName: "") { homeId in

    } failure: { error in

    }
}

Create a home

The user creates a home with the necessary information, including home name, room, and location. Make a callback on success to return homeId.

Additionally, you can register a listener and implement the delegate method ThingSmartFamilyBizDelegate to receive a callback when a home is created.

API description

- (void)addFamilyWithModel:(ThingSmartFamilyRequestModel *)model
                   success:(void(^)(long long homeId))success
                   failure:(ThingFailureError)failure;

Parameters

Parameter Description
model The request model to create a home.
success The success callback.
failure The failure callback.

Data model of ThingSmartFamilyRequestModel

Field Type Description
name NSString The name of the home.
geoName NSString The name of the city where the home is located.
latitude double The latitude of the home.
longitude double The longitude of the home.
rooms NSArray The list of room names in a home.

Example

Objective-C:

- (void)addFamily {
    ThingSmartFamilyRequestModel *requestModel = [[ThingSmartFamilyRequestModel alloc] init];
    requestModel.geoName = @"";
    requestModel.latitude = 3;
    requestModel.longitude = 45;
    requestModel.name = @"family name";
    requestModel.rooms = @[];
    [[ThingSmartFamilyBiz sharedInstance] addFamilyWithModel:requestModel success:^(long long homeId) {

    } failure:^(NSError *error) {

    }];
}

Swift:

func addFamily() {
    let requestModel = ThingSmartFamilyRequestModel()
    requestModel.geoName = ""
    requestModel.latitude = 3
    requestModel.longitude = 45
    requestModel.name = "family name"
    requestModel.rooms = []
    ThingSmartFamilyBiz.sharedInstance().addFamily(with: requestModel) { homeId in

    } failure: { error in

    }
}

Delete a home

The home owner deletes a home. All the devices in the home will be reset.

Additionally, you can register a listener and implement the delegate method ThingSmartFamilyBizDelegate to receive a callback when a home is deleted.

API description

- (void)deleteFamilyWithHomeId:(long long)homeId
                       success:(ThingSuccessHandler)success
                       failure:(ThingFailureError)failure;

Parameters

Parameter Description
homeId The home ID.
success The success callback.
failure The failure callback.

Example

Objective-C:

- (void)removeFamily:(long long)homeId {
    [[ThingSmartFamilyBiz sharedInstance] deleteFamilyWithHomeId:homeId success:^{

    } failure:^(NSError *error) {

    }];
}

Swift:

func removeFamily(homeId:Int64) {
    ThingSmartFamilyBiz.sharedInstance().deleteFamily(withHomeId: homeId) {

    } fai
lure: { error in

    }
}

Update home information

Update the location, name, latitude and longitude, and rooms of a home.

Additionally, you can register a listener and implement the delegate method ThingSmartFamilyBizDelegate to receive a callback when a home is updated.

API description

- (void)updateFamilyWithHomeId:(long long)homeId
                         model:(ThingSmartFamilyRequestModel *)model
                       success:(ThingSuccessHandler)success
                       failure:(ThingFailureError)failure;

Parameters

Parameter Description
homeId The home ID.
model The request model to update a home.
success The success callback.
failure The failure callback.

Data model of ThingSmartFamilyRequestModel

Field Type Description
name NSString The name of the home.
geoName NSString The name of the city where the home is located.
latitude double The latitude of the home.
longitude double The longitude of the home.
rooms NSArray The list of room names in a home.

Example

Objective-C:

- (void)updateFamily:(long long)homeId {
    ThingSmartFamilyRequestModel *requestModel = [[ThingSmartFamilyRequestModel alloc] init];
    requestModel.geoName = @"";
    requestModel.latitude = 123;
    requestModel.longitude = 30;
    requestModel.name = @"new family name";
    requestModel.rooms = @[];
    [[ThingSmartFamilyBiz sharedInstance] updateFamilyWithHomeId:homeId model:requestModel success:^{

    } failure:^(NSError *error) {

    }];
}

Swift:

func updateFamily(homeId:Int64) {
    let requestModel = ThingSmartFamilyRequestModel()
    requestModel.geoName = ""
    requestModel.latitude = 123
    requestModel.longitude = 30
    requestModel.name = "new family name"
    requestModel.rooms = []
    ThingSmartFamilyBiz.sharedInstance().updateFamily(withHomeId: homeId, model: requestModel) {

    } failure: { error in

    }
}

Get coarse-grained home information

Get the list of all homes under an account.

API description

- (void)getFamilyListWithSuccess:(void(^)(NSArray<ThingSmartHomeModel *> * homes))success
                         failure:(ThingFailureError)failure;

Parameters

Parameter Description
success The success callback.
failure The failure callback.

Example

Objective-C:

- (void)getFamilyList {
    [[ThingSmartFamilyBiz sharedInstance] getFamilyListWithSuccess:^(NSArray<ThingSmartHomeModel *> *homes) {

    } failure:^(NSError *error) {

    }];
}

Swift:

func getFamilyList() {
    ThingSmartFamilyBiz.sharedInstance().getFamilyList { familyList in

    } failure: { error in

    }
}

Get the list of cache homes

After the request for the list of cache homes is completed, the list will be updated automatically. After [ThingSmartFamilyBiz getFamilyListWithSuccess:failure:] is called, the data can be fed to the list of cache homes.

API description

- (NSArray <ThingSmartHomeModel *>*)getCachedHomes;

Return value

The cache home model. For more information, see the data model ThingSmartHomeModel.

Example

Objective-C:

[[ThingSmartFamilyBiz sharedInstance] getCachedHomes];

Swift:

ThingSmartFamilyBiz.sharedInstance().getCachedHomes()

Get home details

Get the details of a home, including the list of rooms, devices, and groups.

API description

- (void)getFamilyDetailWithHomeId:(long long)homeId
                          success:(void(^)(ThingSmartHome *home))success
                          failure:(ThingFailureError)failure;

Parameters

Parameter Description
homeId The home ID.
success The success callback.
failure The failure callback.

Example

Objective-C:

- (void)getFamilyDetail:(long long)homeId {
    [[ThingSmartFamilyBiz sharedInstance] getFamilyDetailWithHomeId:homeId success:^(ThingSmartHome *home) {

    } failure:^(NSError *error) {

    }];
}

Swift:

func getFamilyDetail(homeId:Int64) {
    ThingSmartFamilyBiz.sharedInstance().getFamilyDetail(withHomeId: homeId) { home in

    } failure: { error in

    }
}

Get the information about the city of home

API description

- (void)getCityInfo:(double)latitude
          longitude:(double)longitude
            success:(void(^)(ThingSmartFamilyCityModel *cityModel))success
            failure:(ThingFailureError)failure;

Parameters

Parameter Description
latitude The latitude of the home.
longitude The longitude of the home.
success The success callback.
failure The failure callback.

Data model of ThingSmartFamilyCityModel

Field Type Description
area NSString The area where the home is located.
province NSString The province where the home is located.
city NSString The city where the home is located.

Example

Objective-C:

- (void)getFamilyCity {
    [[ThingSmartFamilyBiz sharedInstance] getCityInfo:12 longitude:12 success:^(ThingSmartFamilyCityModel *cityModel) {

    } failure:^(NSError *error) {

    }];
}

Swift:

func getFamilyCity() {
    ThingSmartFamilyBiz.sharedInstance().getCityInfo(12, longitude: 12) { cityInfo in

    } failure: { error in

    }
}

Get coarse-grained weather data

Get the weather overview of the city where the home is located, including the city name, weather conditions (such as sunny, cloudy, or rainy), and weather icons.

API description

- (void)getHomeWeatherSketchWithHomeId:(long long)homeId
                               success:(void(^)(ThingSmartWeatherSketchModel *))success
                               failure:(ThingFailureError)failure;

Parameters

Parameter Description
homeId The home ID.
success The success callback.
failure The failure callback.

Data model of ThingSmartWeatherSketchModel

Field Type Description
condition NSString The weather conditions, such as sunny, cloudy, and rainy.
iconUrl NSString The URL of a weather icon.
inIconUrl NSString The URL of a highlighted weather icon.
temp NSString The temperature.

Example

Objective-C:

- (void)getWeather:(long long)homeId {
    [[ThingSmartFamilyBiz sharedInstance] getHomeWeatherSketchWithHomeId:homeId success:^(ThingSmartWeatherSketchModel *weather) {

    } failure:^(NSError *error) {

    }];
}

Swift:

func getWeather(homeId:Int64) {
    ThingSmartFamilyBiz.sharedInstance().getHomeWeatherSketch(withHomeId: homeId) { weather in

    } failure: { error in

    }
}

Get fine-grained weather data

API description

- (void)getHomeWeatherDetailWithHomeId:(long long)homeId
                                option:(ThingSmartWeatherOptionModel *)optionModel
                               success:(void(^)(NSArray<ThingSmartWeatherModel *> *))success
                               failure:(ThingFailureError)failure;

Parameters

Parameter Description
homeId The home ID.
optionModel The model for setting the unit to measure a weather variable.
success The success callback.
failure The failure callback.

Data model of ThingSmartWeatherOptionModel

Field Type Description
pressureUnit ThingSmartWeatherOptionPressureUnit The unit of atmospheric pressure.
windspeedUnit ThingSmartWeatherOptionWindSpeedUnit The unit of wind speed.
temperatureUnit ThingSmartWeatherOptionTemperatureUnit The unit of temperature.
limit NSInteger The number of weather variables to return. If not set, all weather variables are returned.

Data model of ThingSmartWeatherModel

Field Type Description
icon NSString The URL of the icon for a weather variable.
name NSString The name of a weather variable.
unit NSString The unit of a weather variable.
value NSString The value of a weather variable.

Example

Objective-C:

- (void)getWeatherDetail:(long long)homeId {
    ThingSmartWeatherOptionModel *option = [[ThingSmartWeatherOptionModel alloc] init];
    option.pressureUnit = ThingSmartWeatherOptionPressureUnit_hPa;
    [[ThingSmartFamilyBiz sharedInstance] getHomeWeatherDetailWithHomeId:homeId option:option success:^(NSArray<ThingSmartWeatherModel *> *weathers) {

    } failure:^(NSError *error) {

    }];
}

Swift:

func getWeatherDetail(homeId:Int64) {
    let option = ThingSmartWeatherOptionModel()
    ThingSmartFamilyBiz.sharedInstance().getHomeWeatherDetail(withHomeId: homeId, option: option) { weathers in

    } failure: { error in

    }
}

Leave a home

Remove a member from a home. A home owner can remove an admin and a role with low privileges. An admin can remove a common member and a role with low privileges.

Member information management defines three types of roles (ThingHomeRoleType):

  • owner: Home owner
  • admin: Admin
  • member: Common member

The supported operations vary by the role of a memberId.

  • After a home admin or common member leaves a home, the home will not be dismissed and all the devices in the home will not be reset.
  • After a home owner leaves a home, the home will be dismissed and all the devices in the home will be reset, the same as the result of deleting a home.

API description

- (void)leaveFamilyWithHomeId:(long long)homeId
                     memberId:(long long)memberId
                      success:(ThingSuccessHandler)success
                      failure:(ThingFailureError)failure;

Parameters

Parameter Description
homeId The home ID.
memberId The ID of the member to leave.
success The success callback.
failure The failure callback.

Example

Objective-C:

- (void)leaveFamily:(long long)homeId memberId:(long long)memberId {
    [[ThingSmartFamilyBiz sharedInstance] leaveFamilyWithHomeId:homeId memberId:memberId success:^{

    } failure:^(NSError *error) {

    }];
}

Swift:

func leaveFamily(homeId:Int64, memberId:Int64) {
    ThingSmartFamilyBiz.sharedInstance().leaveFamily(withHomeId: homeId, memberId: memberId) {

    } failure: { error in

    }
}

Join a home with an invitation code

The user can join a home with an invitation code.

API description

- (void)joinFamilyWithInvitationCode:(NSString *)invitationCode
                             success:(ThingSuccessBOOL)success
                             failure:(ThingFailureError)failure;

Parameters

Parameter Description
invitationCode The invitation code.
success The success callback.
failure The failure callback.

Example

Objective-C:

- (void)joinFamily:(NSString *)invitationCode {
    [[ThingSmartFamilyBiz sharedInstance] joinFamilyWithInvitationCode:invitationCode success:^(BOOL result) {

    } failure:^(NSError *error) {

    }];
}

Swift:

func joinFamily(invitationCode:String) {
    ThingSmartFamilyBiz.sharedInstance().joinFamily(withInvitationCode: invitationCode) { result in

    } failure: { error in

    }
}

Accept an invitation to join a home

If the autoAccept is set to NO in the Add Home Member API, the invitee should accept the invitation before joining the home. This method is called when the invitee accepts an invitation.

API description

- (void)acceptJoinFamilyWithHomeId:(long long)homeId
                           success:(ThingSuccessBOOL)success
                           failure:(ThingFailureError)failure;

Parameters

Parameter Description
homeId The ID of the home to join.
success The success callback.
failure The failure callback.

Example

Objective-C:

- (void)acceptFamily:(long long)homeId {
    [[ThingSmartFamilyBiz sharedInstance] acceptJoinFamilyWithHomeId:homeId success:^(BOOL result) {

    } failure:^(NSError *error) {

    }];
}

Swift:

func acceptFamily(homeId:Int64) {
    ThingSmartFamilyBiz.sharedInstance().acceptJoinFamily(withHomeId: homeId) { result in

    } failure: { error in

    }
}

Decline an invitation to join a home

If the autoAccept is set to NO in the Add Home Member API, the invitee should accept the invitation before joining the home. This method is called when the invitee declines an invitation.

API description

- (void)rejectJoinFamilyWithHomeId:(long long)homeId
                           success:(ThingSuccessBOOL)success
                           failure:(ThingFailureError)failure;

Parameters

Parameter Description
homeId The ID of the home to join.
success The success callback.
failure The failure callback.

Example

Objective-C:

- (void)rejectFamily:(long long)homeId {
    [[ThingSmartFamilyBiz sharedInstance] rejectJoinFamilyWithHomeId:homeId success:^(BOOL result) {

    } failure:^(NSError *error) {

    }];
}

Swift:

func rejectFamily(homeId:Int64) {
    ThingSmartFamilyBiz.sharedInstance().rejectJoinFamily(withHomeId: homeId) { result in

    } failure: { error in

    }
}

Sort devices and groups in a home

API description

- (void)sortDeviceOrGroupWithHomeId:(long long)homeId
                          orderList:(NSArray<ThingSmartFamilyDeviceGroupOrderRequestModel *> *)orderList
                            success:(ThingSuccessHandler)success
                            failure:(ThingFailureError)failure;

Parameters

Parameter Description
homeId The home ID.
orderList The ordered list.
success The success callback.
failure The failure callback.

Data model of ThingSmartFamilyDeviceGroupOrderRequestModel

Field Type Description
bizId NSString The device ID or group ID.
bizType ThingSmartFamilyParentBizType The type of bIzId:
  • ThingSmartFamilyParentBizTypeGroup: Group
  • ThingSmartFamilyParentBizTypeDevice: Device

Example

Objective-C:

- (void)sortDeviceList:(long long)homeId {
    [[ThingSmartFamilyBiz sharedInstance] sortDeviceOrGroupWithHomeId:homeId orderList:@[] success:^{

    } failure:^(NSError *error) {

    }];
}

Swift:

func sortDeviceList(homeId:Int64) {
    ThingSmartFamilyBiz.sharedInstance().sortDeviceOrGroup(withHomeId: homeId, orderList: []) {

    } failure: { error in

    }
}

Get the ID of the current home

API description

- (long long)getCurrentFamilyId;

Return value

The ID of the current home.

Example

Objective-C:

[[ThingSmartFamilyBiz sharedInstance] getCurrentFamilyId];

Swift:

ThingSmartFamilyBiz.sharedInstance().getCurrentFamilyId()

Get the current home model

API description

- (ThingSmartHomeModel *)getCurrentFamily;

Return value

The home model. For more information, see the data model ThingSmartHomeModel.

Example

Objective-C:

[[ThingSmartFamilyBiz sharedInstance] getCurrentFamily];

Swift:

ThingSmartFamilyBiz.sharedInstance().getCurrentFamily()

Set the ID of the current home

When the user switches to another home, set the ID of this home and cache it.

API description

- (void)setCurrentFamilyId:(long long)homeId;

Parameters

Parameter Description
homeId The home ID.

Example

Objective-C:

- (void)setCurrentFamilyId:(long long)homeId {
    [[ThingSmartFamilyBiz sharedInstance] setCurrentFamilyId:homeId];
}

Swift:

func setCurrentFamily(homeId:Int64) {
    ThingSmartFamilyBiz.sharedInstance().setCurrentFamilyId(homeId)
}

Load the current home

After the app is launched, call this method to load the last selected current home and set appGroupName. If no current home has been selected, the first home in the list of homes is taken as the current home.

API description

- (void)launchCurrentFamilyWithAppGroupName:(NSString * _Nullable )appGroupName;

Parameters

Parameter Description
appGroupName The group name shown on the app.

Example

Objective-C:

[[ThingSmartFamilyBiz sharedInstance] launchCurrentFamilyWithAppGroupName:[ThingCustomConfig sharedInstance].appGroupName];

Swift:

ThingSmartFamilyBiz.sharedInstance().launchCurrentFamilyWithAppGroupName("")

Clear the cache of the current home

API description

- (void)clearCurrentFamily;

Example

Objective-C:

[[ThingSmartFamilyBiz sharedInstance] clearCurrentFamily];

Swift:

ThingSmartFamilyBiz.sharedInstance().clearCurrentFamily()

Hide a device

The hidden state is a UI display property. When a home has many devices or groups, you can enable the hidden property for some devices. Import the header file.

#import <ThingSmartDeviceCoreKit/ThingSmartDeviceCoreKit.h>

Get the hidden devices and groups

Query the list of hidden devices and groups in the current home. The success callback returns the list.

- (void)diyHomeFetchHiddenItemsWithGID:(long long)gID
                               success:(void (^_Nullable)(NSArray<NSString *> * deviceIds,
                                                          NSArray<NSString *> * groupIds))success
                               failure:(ThingFailureError _Nullable)failure;

Parameters

Parameter Description
gID The home ID.
success The success callback.
  • deviceIds: The list of device IDs.
  • groupIds: The list of group IDs.
failure The failure callback.

Example

- (void)diyHomeFetchHiddenItemsWithGID:(long long)gID {
    [self.diyHomeExtention diyHomeFetchHiddenItemsWithGID:gID success:^(NSArray<NSString *> * _Nonnull deviceIds, NSArray<NSString *> * _Nonnull groupIds) {
        //
    } failure:^(NSError *error) {
        //
    }];
}

Change the hidden state

- (void)diyHomeModifyHiddenItemsWithGID:(long long)gID
                              deviceIds:(nullable NSArray<NSString *> *)deviceIds
                               groupIds:(nullable NSArray<NSString *> *)groupIds
                                 hidden:(BOOL)hidden
                                success:(ThingSuccessHandler _Nullable)success
                                failure:(ThingFailureError _Nullable)failure;

Parameters

Parameter Description
gID The home ID.
deviceIds The list of devices.
groupIds The list of groups.
hidden
  • YES: Hide
  • NO: Show
success The success callback.
failure The failure callback.

Example

- (void)diyHomeModifyDeviceHidden:(long long)gID deviceIds:(NSArray<NSString *> *)deviceIds {
    [self.diyHomeExtention diyHomeModifyHiddenItemsWithGID:gID
                                                 deviceIds:deviceIds
                                                  groupIds:nil
                                                    hidden:YES
                                                   success:^{
        //
    } failure:^(NSError *error) {
        //
    }];
}

Event callback

ThingSmartFamilyBizDelegate is the delegate protocol for the home management class. You can implement this protocol and register a listener to receive the callback for home events.

Register a listener

API description

- (void)addObserver:(id<ThingSmartFamilyBizDelegate>)observer;

Parameters

Parameter Description
observer The listener.

Example

Objective-C:

- (void)addObserver:(id<ThingSmartFamilyBizDelegate>)observer {
    [[ThingSmartRoomBiz sharedInstance] addObserver:observer];
}

Swift:

func add(observer:ThingSmartFamilyBizDelegate) {
    ThingSmartRoomBiz.sharedInstance().addObserver(observer)
}

Remove a listener

API description

- (void)removeObserver:(id<ThingSmartFamilyBizDelegate>)observer;

Parameters

Parameter Description
observer The listener.

Example

Objective-C:

- (void)removeObserver:(id<ThingSmartFamilyBizDelegate>)observer {
    [[ThingSmartRoomBiz sharedInstance] removeObserver:observer];
}

Swift:

func remove(observer:ThingSmartFamilyBizDelegate) {
    ThingSmartRoomBiz.sharedInstance().removeObserver(observer)
}

Home delegate

ThingSmartFamilyBizDelegate is the delegate protocol for home management. If you implement this protocol, ThingSmartFamilyBiz can notify you of home-based events (including adding or deleting a device) through a callback.

API description

@protocol ThingSmartFamilyBizDelegate <NSObject>

@optional

/**
* MQTT service connection success callback
*/
- (void)serviceConnectedSuccess;

/**
* The delegate that is instantiated when a home is added.
*
* @param familyBiz    Instance of family management
* @param homeModel    The home model
*/
- (void)familyBiz:(ThingSmartFamilyBiz *)familyBiz didAddHome:(ThingSmartHomeModel *)homeModel;

/**
* The delegate that is instantiated when an existing home is removed.
*
* @param familyBiz    Instance of family management
* @param homeModel    The home model
*/
- (void)familyBiz:(ThingSmartFamilyBiz *)familyBiz didRemoveHome:(ThingSmartHomeModel *)homeModel;

/**
* The delegate of home update information, such as the name.
*
* @param familyBiz    Instance of family management
* @param homeModel    The home model.
*/
- (void)familyBiz:(ThingSmartFamilyBiz *)familyBiz didUpdateHome:(ThingSmartHomeModel *)homeModel;

/**
* The delegate of switching the current home
*
* @param familyBiz    Instance of family management
* @param homeModel    The home model
*/
- (void)familyBiz:(ThingSmartFamilyBiz *)familyBiz didChangeCurrentHome:(ThingSmartHomeModel *)homeModel;

/**
* The delegate that is instantiated when a new device is added.
*
* @param familyBiz            Instance of family management
* @param deviceModel       The device model
* @param homeModel            The home model
*/
- (void)familyBiz:(ThingSmartFamilyBiz *)familyBiz didAddDevice:(ThingSmartDeviceModel *)deviceModel atHome:(ThingSmartHomeModel *)homeModel;

/**
* The delegate that is instantiated when an existing device is removed.
*
* @param familyBiz        Instance of family management
* @param deviceId          Deleted Device ID
* @param homeModel        The home model
*/
- (void)familyBiz:(ThingSmartFamilyBiz *)familyBiz
  didRemoveDevice:(NSString *)deviceId
           atHome:(ThingSmartHomeModel *)homeModel;

/**
* The delegate that is instantiated when a new group is added.
*
* @param familyBiz         Instance of family management
* @param groupModel       The group model
* @param homeModel         The home model
*/
- (void)familyBiz:(ThingSmartFamilyBiz *)familyBiz
      didAddGroup:(ThingSmartGroupModel *)groupModel
           atHome:(ThingSmartHomeModel *)homeModel;

/**
* The delegate that is instantiated when an existing group is removed.
*
* @param familyBiz        Instance of family management
* @param groupId            Deleted group ID
* @param homeModel        The home model
*/
- (void)familyBiz:(ThingSmartFamilyBiz *)familyBiz
   didRemoveGroup:(NSString *)groupId
           atHome:(ThingSmartHomeModel *)homeModel;

/**
* The delegate of updates on the shared device list.
*
* @param familyBiz        Instance of family management
* @param homeModel        The home model
*/
- (void)familyBiz:(ThingSmartFamilyBiz *)familyBiz
   didUpdateSharedListAtHome:(ThingSmartHomeModel *)homeModel;

@end

Parameters

Parameter Description
familyBiz The home management class.
homeModel The home model.