découverte de homekit
TRANSCRIPT
« HomeKit is a framework for communicating with and controlling connected accessories in a user’s home. »
Apple
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
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
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
Zone
• liste des pièces
• nom utilisé par Siri
• une pièce peut être dans plusieurs zones
Rooms
HMZone
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
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
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
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
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
Action
• initialisé par le type d’action à réaliser
• HMCharacteristicWriteAction : positionne une valeur cible pour la caractéristique d’un objet
HMCharateristicWriteAction
Characteristic
targetValue
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
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
HMEventTrigger depuis iOS 9• liste d’événements
• HMLocationEvent
• HMCharacteristicEvent
• HMSignificantEventSunrise
• HMSignificantEventSunset
• "predicate" pour valider l’événement
HMEventTrigger
events
predicate
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
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
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
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
HomeKit Accessory Simulator
• à installer en plus d’XCode
• permet de simuler des objets ou des passerelles
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