2. « HomeKit is a framework for communicating with and
controlling connected accessories in a user’s home. »
Apple
3. Principes d’une application HomeKit
• configurer sa ou ses maisons
• gérer ses objets connectés
• définir les actions à réaliser sur ses objets
• gérer les utilisateurs de la maison
• utiliser Siri pour piloter sa maison
5. Home Manager
• point d’entrée pour découvrir les
maisons d’un utilisateur
• liste des maisons
• permet d’ajouter/supprimer des
maisons
• accès direct maison principale
HMHomeManager
domicile
Agay
Campagne
6. Maison
• distribution des objets dans les pièces et les
zones
• liste des groupes de services disponibles
• liste des actions définies par l’utilisateur
• liste des scénarios définis par l’utilisateur
• point d’entrée pour agir sur les objets
Accessories
Rooms
Zones
ServiceGroups
ActionsSet
HMHome
Triggers
7. Pièce
• liste les objets dans la pièce
• nom utilisé par Siri
Accessories
HMRoom
8. Zone
• liste des pièces
• nom utilisé par Siri
• une pièce peut être dans plusieurs zones
Rooms
HMZone
9. Objet
• nom utilisé par Siri
• localisation
• liste des fonctions (services) fournies par l’objet
• 3 statuts
• joignable
• bloqué
• derrière une passerelle (bloque les actions d’ajout/
suppression)
• fonction pour demander à l’objet de s’identifier
• pour trouver les objets : HMAccessoryBrowser
Services
HMAccessory
service : ventilateurservice : lumière
10. Service
• représente une fonction pour un objet
• un service n’a pas obligatoirement un nom
• ex : une mise à jour de firmware n’a pas de nom
• les services sans nom ne doivent pas être affichés à l’utilisateur
• le type de fonction (serviceType)
• "fonction associée" possible pour les prises ou les interrupteurs
• liste des caractéristiques
• Siri reconnait le nom ou le serviceType
Characteristics
HMService
11. Caractéristique
• donne le type de paramètre et la valeur
• liste des propriétés du paramètre (lecture/écriture/notification)
• mode asynchrone pour la mise à jour d’une valeur
• metadata : informations complémentaires fournies par le fabriquant de
l’objet
• unité de la valeur (ex °C ou °F)
• valeurs minimales, maximales
• format
• notification possible mais seulement en cas de changement de valeur
depuis l’objet (valeur remontée par une sonde, action de l’utilisateur)
HMCharacteristic
properties
metadata
12. Groupes de services
• utilisé pour contrôler un ensemble
d’objets
• nom utilisé par Siri
• liste des services du groupe
• un service peut appartenir à plusieurs
groupes
HMServiceGroup
services
13. ActionSet
• rassemble un ensemble d’actions
• nom utilisé par Siri
• liste d’actions
• état d’exécution
• 4 actionsSet fournis par Apple
• WakeUP, Sleep, Departure, Arrival
HMActionSet
actions
14. Action
• initialisé par le type d’action à réaliser
• HMCharacteristicWriteAction :
positionne une valeur cible pour la
caractéristique d’un objet
HMCharateristicWriteAction
Characteristic
targetValue
15. Scénario
• initialisé avec un type d’activateur
• soit activé par un événement
• soit programmé ou récurrent
• liste d’actionSets
• état du scénario : actif/inactif
• nom utilisé par Siri
• la date de la dernière exécution
• exécuté en tache de fond
HMTrigger
actionsSets
16. HMTimerTrigger
• activation programmée ou récurrente
• heure de prochaine exécution (ne gère pas les secondes)
• intervalle : entre 5 minutes et 5 semaines, "nil" si pas de
récurrence
• date de prochaine activation calculée à chaque fois que
l’événement est déclenché
• calendrier à utiliser pour déterminer la prochaine date
d’exécution
• /! selon les calendriers il est possible que certaines dates
ne soient pas calculées
• timeZone : à fixer sur le fuseau horaire des objets
• si non fixé, basé sur le fuseau horaire de l’utilisateur…
HMTimerTrigger
fireDate
reccurence
calendarReccurence
calendarReccurence
17. HMEventTrigger depuis iOS 9
• liste d’événements
• HMLocationEvent
• HMCharacteristicEvent
• HMSignificantEventSunrise
• HMSignificantEventSunset
• "predicate" pour valider l’événement
HMEventTrigger
events
predicate
18. Home Kit Accessory Protocol (HAP)
• communication avec les objets HomeKit
• Bluetooth LE ou IP
• échange crypté
• bi directionnel
• puce d’authentification MFi obligatoire
• pour les objets connectés en IP :
• Bonjour utilisé pour les découvrir sur le réseau
• Mode passerelle disponible lorsque plusieurs objets sont connectés à un
accessoire HomeKit
• les mobiles sous iOS 9 n’ont plus besoin d’Apple TV pour avoir un accès distant
• les objets communiquent directement avec iCloud
19. Gestion des utilisateurs
• l’utilisateur créateur de la maison est
administrateur
• ajout/suppression d’utilisateurs via leur Apple ID
• droits restreints pour les invités:
• identifier les accessoires
• lire/écrire des données, être notifié des
changements
• exécuter des actions
20. Synchronisation des données
• une base HomeKit par
maison
• iCloud pour la
synchronisation entre les
mobiles des utilisateurs
• les applications ne
tournent pas en arrière
plan
21. Mise à jour des données
• mode asynchrone pour
prendre en compte le résultat
• applications au premier plan :
notification de mise à jour
reçue
• application en arrière plan : au
lancement une notification
invite à recharger toutes les
données
23. Freins au développement d’HomeKit
• pour les développeurs : un système encore jeune
• des fonctions manquantes
• prix du ticket d’entrée élevé
• pour les utilisateurs : l’écosystème Apple
• dépendance à la certification MFi
• pas d’accès en dehors des appareils iOS
• dépendance au cloud
• Obsolescence programmée