Home » Análisis » HomeKit, domótica en tus dispositivos iOS
HomeKit, Domótica en tus dispositivos iOS

HomeKit, domótica en tus dispositivos iOS

HomeKit, una librería a disposición de los desarrolladores desde iOS 8 pero que, junto a otras soluciones para domótica, no termina de despegar a nivel popular. Pero, ¿qué es la domótica? Podríamos definirla como la capacidad que tienen determinados accesorios del hogar de comunicarse y manejarse a distancia, normalmente a través de una centralita.

Domótica

Que un accesorio pueda ser manejado remotamente (una bombilla, un termostato, una cámara, un interruptor, un enchufe…) no lo convierte en domótica ya que estaríamos hablando solo de un dispositivo o accesorio. Para referirnos a este término tendríamos que hablar de una instalación de varios accesorios, es decir, una configuración que de una solución centralizada con opción remota para un conjunto de accesorios inteligentes en casa.

Las configuraciones más comunes suelen incluir instalaciones con un conjunto de control de iluminación, climatización e instalación térmica (calefacción) controlada mediante termostato y persianas. Pero esto es solo una configuración básica que puede ampliarse con multitud de opciones más como cerraduras, puertas de garaje, cámaras IP, interruptores…

HomeKit

En cuanto a la situación de la domótica a día de hoy, nos encontramos dos estándares muy implantados en el mercado llamados X10 y Z-Wave. En el primer caso hablamos de un sistema con más de 30 años y que funciona a través de la red eléctrica o por radiofrecuencia, enviando las órdenes a los diferentes dispositivos o accesorios que formen parte de la red domótica del hogar. El segundo, Z-Wave, funciona a través de una red inalámbrica aunque en frecuencias diferentes a una red WiFi (y no compatible) que transmite las órdenes en lo que se denomina una red mallada, donde cada accesorio es emisor y receptor (actuando como repetidor) lo que amplia la cobertura de comunicación domótica en el hogar.

Pero al final, una instalación domótica tiene que tener un punto de control: una centralita o dispositivo que se encargue de controlar en un solo entorno todos los accesorios o componentes de la red. Y ese es el papel que juega HomeKit dentro de este ecosistema: el servir de centralita que envía órdenes, recibe estados, clasifica los accesorios por su ubicación y servicios, permite crear acciones que engloben uno o más elementos y sirve de punto neurálgico de control de nuestra casa o casas (porque soporta más de una a la vez).

Y alguno pensará, acertadamente, que en iOS no hay una aplicación HomeKit como sí una de Salud, por ejemplo, que es la interfaz del sistema para HealthKit (la librería de datos de salud). Y eso es porque HomeKit no tiene una app específica como tal. Porque la interfaz de HomeKit, la centralita que todos tenemos en nuestro teléfono o en nuestro Apple Watch, se llama Siri. HomeKit se estructura en sus componentes en un espacio de nombres único y de categorías de clasificación, que permiten que Siri contextualice nuestra petición y sepa cómo obedecer a la orden de “apaga las luces del salón” o “pon la temperatura a 22 grados”.

HomeKit

HomeKit es una base de datos. Una común a todo el sistema y que cualquier app puede consultar, escribir o programar. Y esa base de datos se vertebra en una estructura muy sencilla: tenemos una entidad para casas de la que a su vez dependen habitaciones (las que tenga cada casa), que engloba accesorios situados en cada habitación y que, por último, exponen servicios a través de esos accesorios. Además los accesorios puede agruparse para crear acciones que afecten a todo un conjunto. Y lo más importante, no se almacena ningún dato en ningún lugar externo, solo (en caso de tenerlo) en nuestro Apple Watch donde dicha base de datos permanece en modo espejo con la del iPhone.

HomeKit 02

Todas las comunicaciones que se realizan entre nuestro iPhone o reloj son encriptadas punto a punto y, en principio, dentro de la red local del hogar a través de WiFi o incluso de Bluetooth si el accesorio en cuestión usara este tipo de conectividad. Hasta iOS 8, la única forma de manejar remotamente nuestra casa (desde fuera de ella) era a través de un Apple TV que tuviéramos en casa que hacía las veces de repetidor de órdenes o servidor remoto. Pero ahora, con iOS 9, Apple ha incorporado una tecnología de tunnelling que permite, a través de iCloud, conectar directamente con los dispositivos desde fuera de casa ya que estos (a través de nuestra red) estarán unidos también a la nube de Apple. E incluso en ese caso, la comunicación es encriptada punto a punto y Apple no puede saber en forma alguna que dato está pasando por su sistema.

Cada entidad que hemos comentado, tiene su clase y sus métodos que permiten añadir o quitar elementos así como invocar a cualquier servicio para realizar órdenes o solicitar datos o estados (como si una bombilla está encendida o apagada, la temperatura de un termostato…). Obviamente disponemos de métodos de solo lectura, o de lectura y escritura en caso que sea necesario. Y luego, el propio sistema incorpora la posibilidad de crear acciones que globalicen una serie de cambios en distintos dispositivos o incluso disparadores (triggers) que lancen a su vez acciones en determinadas circunstancias del entorno o del estado de los accesorios. Este último caso sería el de activar un modo noche a una hora concreta todos los días para bajar la temperatura, apagar las luces de casa y bajar las persianas, o que en caso que la temperatura llegue a unos grados que indiquen frío, se encienda la calefacción y se bajen las persianas para mejorar el aislamiento. Estos modos especiales pueden ser activados por Siri con una sola orden del tipo: “Modo noche”.

El funcionamiento de la librería se basa principalmente en el patrón de diseño software de delegación, que lanza una función determinada en nuestra clase cuando sucede algo. Desde la búsqueda de dispositivos en un momento determinado y su delegación cada vez que uno se encuentra, hasta aquellos que se lanzan cuando las órdenes o peticiones que le damos al dispositivo se realizan.

HomeKit Simulator 1

Existe en Xcode una herramienta llamada HomeKit Simulator, que nos permite crear accesorios virtuales con el fin de probar cualquier implementación que hagamos, con propiedades concretas, y podemos programar y ver cómo funciona y afectan los cambios que pidamos en cada momento. Pero para que un accesorio sea compatible con HomeKit, es necesario que este cumpla la norma MFi (Made for iPhone) de Apple y que responda a las propiedades y métodos preconfigurados para cada una de las categorías que Apple tiene creadas.

Nuestro accesorio podría incorporar más, pero solo aquellas que formen parte de la norma serán sobre las que Siri pueda efectuar operaciones. Eso crea situaciones extrañas como que las bombillas inteligentes que forman parte de la norma HomeKit tienen un nivel de Hue que nivela el color de la misma, por lo que cualquier bombilla inteligente sin esta característica no pasará la norma, aunque sí podrá ser usada unida a un interruptor que permita apagarla o encenderla.

Las posibilidades son muchas y al final, lo que persigue la norma, es proporcionar una pasarela o plataforma que permita a cualquier accesorio ser manejado directamente desde el iPhone sin tener que acudir a una app dedicada o a una centralita domótica externa al iPhone (o incluso a una app dedicada para el iPhone que haga de control de una centralita externa).

Apple ofrece esta opción al mercado con la idea de conseguir que la domótica se integre en iOS y que a través de Siri pueda ser manejada. Obviamente, tenemos el problema que el fabricante tiene que querer que su dispositivo cumpla la citada norma MFi, pero por otro lado, el accesorio podría cumplirla en muchos casos con una simple actualización de firmware y sin necesidad de dejar de funcionar con otras normas diferentes a esta (siempre y cuando la conectividad lo permita).

Conclusiones

No hemos entrado en el detalle técnico porque lo haremos más adelante, pero en principio lo importante es entender a nivel teórico qué es HomeKit, cómo funciona, qué es la domótica, qué puede aportar Apple en este punto y si realmente puede o no tener futuro donde no es la opción mayoritaria elegida por los fabricantes y donde existen opciones dedicadas que incluso usan el iPhone como mando de control (pero fuera de integrarlo en el sistema como permite HomeKit).

Si os ha gustado el tema, os invito a oír el episodio del pasado 18 de enero en el podcast Applelianos, donde estuve invitado para hablar del tema, junto a dos expertos en domótica: Jose María Ortiz, consultor de accesibilidad web y móvil, así como Jorge Rodríguez Nagy, Ingeniero Técnico de Telecomunicación y MBA con amplia experiencia en instalaciones domóticas.

Espero que hayáis aprendido algo interesante de lo que volveremos a hablar y como decimos siempre, investigad, probad y Good Apple Coding.

Acerca de Julio César Fernández

Analista, consultor y periodista tecnológico, desarrollador, empresario, productor audiovisual, actor de doblaje e ingeniero de vídeo y audio.

Otras recomendaciones

Swift 3.1

Swift 3.1 ha llegado, análisis de todos sus cambios

Swift 3.1 ha llegado de la mano de la hornada de actualizaciones lanzadas por Apple. Analizamos sus cambios más importantes e incorporaciones más destacadas. Nuevas formas de convertir closures que no escapan en los que sí lo hace, conversiones seguras de números, genéricos más eficientes... descubre en nuestros análisis con ejemplos concretos todos los cambios y descúbrelos por ti mismo.