HomeKit: привязка имен SIRI к пользовательским характеристикам

Я хотел бы связать имя SIRI с характеристиками CUSTOM аксессуара для домашнего комплекта, который я определил с помощью симулятора HomeKit (см. Этот вопрос для получения подробной информации о том, как я это сделал).

Я был бы в состоянии сделать что-то вроде:

  • "Установите для CHARACTERISTICONENAME значение VALUE в HOME"
  • "Включите ACCESSORYNAME в HOME"
  • "Установите для CHARACTERISTICTWONAME значение VOME в HOME"

Это легко возможно, используя предопределенные характеристики, однако я должен быть в состоянии сделать это с пользовательскими характеристиками.

Есть идеи, как мне этого добиться?


РЕДАКТИРОВАТЬ: только класс HMService имеет функцию "updateName". HMCharacteristic не имеет его.

Вот что я получу, если попытаюсь получить доступ к названию сервиса и описанию производителя соответствующей характеристики:

for (int i=0;  i< [accessory.services count]; i++) {
    HMService * service = [accessory.services objectAtIndex:i];
    for (int j=0;  j< [service.characteristics count]; j++) {
    HMCharacteristic * characteristic = [service.characteristics objectAtIndex:j];

    NSLog(@"service name: %@", service.name);

    if ([characteristic.properties containsObject:HMCharacteristicPropertySupportsEventNotification]) {
        NSLog(@"description of characteristic: %@", characteristic.metadata);

        [characteristic enableNotification:TRUE completionHandler:^(NSError *error) {
            if (error) {
                NSLog(@"Error while enabling notification");
            }
            else    {
                NSLog(@"Notification enabled");
            }
        }];
    }
}
}

имя службы: MyServiceName service 2015-08-21 09:40:20.833 AppName[217:5673] описание характеристики: [%@ Формат: строка, максимальная длина: 1, описание производителя: SomethingCustom Mode ]

1 ответ

Я подозреваю, что это невозможно. Siri имеет жестко запрограммированные отношения с homekit, что позволяет ему общаться с определенными типами аксессуаров.

Следует отметить, что siri использует имя службы, чтобы выяснить, куда направлять команды. Поэтому, если у вас есть термостат, который называется "наверху", вы можете сказать siri "установить температуру наверху на 65 градусов". Интерпретация Siri вашего взаимодействия со службами сложна, и похоже, что Apple поддерживает только определенные ими службы, чтобы они могли предоставлять необходимый опыт.

Другие вопросы по тегам