2016-07-15 5 views
-2

내 요구 사항은 액세서리 및 위치 이벤트에 대한 HMEventTrigger를 만들어야합니다. 예 : acc1이라는 액세서리가 있는데 전원 특성이 있습니다. 예를 들어 acc1이 켜져 있고 어떤 위치에 도착할 때 HMEventTrigger를 만들고 싶습니다. 이 경우 나는 HMLocationEventHMLocationEvent에 대한 NSPredicate 준비

HMLocationEvent *b = (HMLocationEvent*)[locationsArr objectAtIndex:0]; 
NSDateComponents *com = [[NSDateComponents alloc] init]; 
NSPredicate *pred2 = [HMEventTrigger predicateForEvaluatingTriggerOccurringOnDateWithComponents:com]; 

EX에 대한 HMCharacteristicWriteAction

HMCharacteristicWriteAction *chWr = [writeActionsArr objectAtIndex:0]; 
NSPredicate *pred1 = [HMEventTrigger predicateForEvaluatingTriggerWithCharacteristic:chWr.characteristic relatedBy:NSEqualToPredicateOperatorType toValue:chWr.targetValue]; 

술어 아래

LIKE 술어 ACC1에 대한 조건을 만들었습니다 ACC1.ON 및 LOCATIONEVENT THEN IF 공연 HMACTIONSET

pred1과 pred2 오브젝트를 결합하면 현재 날짜도 포함되지만 날짜를 포함하고 싶지는 않습니다. 그래서 pred1과 pred2를 사용하여 시간이나 날짜를 포함하지 않고 트리거를 만들어야합니다. 위치 만 포함하면됩니다. 내 게시물을 읽어 주셔서 감사합니다. 어떤 아이디어/제안이 도움이됩니다.

답변

1

문제 설명이 명확하지 않습니다. 배열 events 배열의 유일한 개체로 위치 이벤트를 사용하여 새 HMEventTrigger을 만들 수 있습니까?

HMHome *home = ... // home 
HMLocationEvent *locationEvent = ... // your event variable 
NSDateComponents *dateComponents = [[NSDateComponents alloc] init]; // create your date components 
HMEventTrigger *trigger = [[HMEventTrigger alloc] initWithName:@"eventName" events:@[locationEvent] predicate:[HMEventTrigger predicateForEvaluatingTriggerOccurringOnDateWithComponents:dateComponents]]; 
[home addTrigger:trigger completionHandler:^(NSError *error) { 
    // ... 
}]; 
+0

안녕 아이슬 질문에 대답 해 주셔서 감사합니다. 내 문제는 HMCharacteristicWriteAction과 HMLocation Event conditions.Ex를 결합해야한다는 것입니다. acc1.ch가 On이고 location.region 인 경우 HMActionSet을 수행해야합니다. – SRI