OpenWebinars

Robótica y Hardware

Desarrolla tu propio sistema domótico con Home Assistant

No necesitas gastar miles de euros para automatizar tu casa de forma avanzada. Home Assistant permite centralizar el control de tus dispositivos, crear rutinas inteligentes y mejorar tu confort. Aquí aprenderás a construir tu propio sistema domótico desde cero.

Luis López Cuerva

Luis López Cuerva

Lectura 7 minutos

Publicado el 7 de julio de 2025

Compartir

¿Es “Do it yourself!” tu lema de vida? ¿Quieres conocer en mayor medida Home Assistant? ¿Quieres encontrar un sistema de domótica en el que integrar dispositivos de más de mil marcas?

Si has dicho sí a algunas de estas preguntas quiero darte la bienvenida a este artículo. A continuación, hablaremos de domótica, de Home Assistant y de cómo podemos extender este sistema para que se adapte mejor a nosotros.

Además, veremos ejemplos de marcas, como Tapo, que han creado integraciones oficiales para hacer que sus dispositivos sean compatibles con Home Assistant y aprenderemos a emularles.

En resumen, vamos a ver cómo podemos extender Home Assistant para adaptar la domótica a nuestras necesidades en lugar de tener que adaptarnos nosotros a la domótica.

¡Manos a la domótica!

La evolución de la domótica DIY

DIY (Do it yourself!) es un término que desde 1912 se asocia con la filosofía de mejorar tu propia casa a partir de materiales básicos y sin ayuda de expertos, aprendiendo y disfrutando en el proceso, reduciendo costes y personalizando el resultado final. Sin embargo, con los años ha surgido todo un movimiento ético y social basado en el DIY, en el que se promueve que todas y todos somos capaces de realizar una gran variedad de trabajos sin necesitar la ayuda de expertos.

Esta filosofía ha calado muy fuerte en el ámbito de la informática, la electrónica y la domótica, donde a partir de elementos básicos, herramientas open-source y nuestras habilidades de programación podemos crear herramientas personalizadas que nos faciliten la vida y hagan que nuestra casa sea más nuestra que nunca.

Mejora tus habilidades dentro del sector IT
Lleva tus conocimientos a otro nivel realizando nuestras formaciones para destacar dentro del sector IT, ya sean las formaciones técnicas como las formaciones transversales.
Descubrir planes

Preparación del entorno de desarrollo

El primer paso para poder ampliar nuestro Home Assistant es preparar el entorno de desarrollo, para ello necesitaremos cumplir dos requisitos: tener instalado Home Assistant y poder acceder a los ficheros internos de Home Assistant.

Requisitos de hardware para alojar Home Assistant

Home Assistant es un sistema de domótica que se puede ejecutar de muchas maneras y en muchos dispositivos diferentes, de manera que siempre se adapta a las necesidades de los usuarios. Cada dispositivo tiene sus propios requisitos, pero de manera general se puede afirmar que se Home Assistant requiere de:

  • Procesador: 1 GHz de velocidad.
  • RAM: 2GB de almacenamiento.
  • SD: 32GB de almacenamiento.

Instalación de Home Assistant

Home Assistant se puede instalar en multitud de dispositivos y de múltiples maneras, sin embargo, los métodos de instalación más frecuentes y los recomendados de manera oficial son los siguientes:

  • Home Assistant Green: es el hardware recomendado por Home Assistant, este dispositivo viene de serie con Home Assistant instalado.
  • Raspberry Pi: instalar Home Assistant en una Raspberry Pi es tan sencillo como instalar cualquier otro sistema operativo en tu Raspberry. Lo único que debes hacer es instalar el sistema operativo “Home Assistant OS” desde la aplicación oficial de Raspberry Pi para instalar sistemas operativos.
  • Home Assistant Yellow: es el kit de extensión de Home Assistant, este kit proporciona todas las herramientas para exprimir al 100% tu instalación de Home Assistant. Para utilizar este método se debe instalar Home Assistant en una Raspberry Pi y conectar la Raspberry Pi al kit Home Assistant Yellow.
  • Ordenadores antiguos y mini PCs: A la hora de utilizar Home Assistant en ordenadores antiguos y mini PCs tienes dos opciones: instalar el sistema operativo “Home Assistant OS” en tu dispositivo o utilizar la imagen Docker oficial de Home Assistant.

Integración de Arduino con Home Assistant

Arduino es una plataforma de desarrollo basada en una placa electrónica de hardware libre que incorpora un microcontrolador y una serie de pines para conectar el Arduino con otros dispositivos. Esto hace que Arduino sea una plataforma perfecta para controlar sensores y dispositivos electrónicos sin tener que recurrir a software propietario de grandes empresas.

Conexión de sensores y actuadores

Existe una gran cantidad de sensores y actuadores que se pueden controlar mediante Arduino, sin embargo, todos ellos tienen algo en común, el proceso para conectarlos siempre es el siguiente:

  • Selección de sensores y actuadores: en primer lugar debemos elegir que sensor y/o actuador queremos utilizar en nuestro proyecto. Existen sensores y actuadores para cualquier cosa, por ejemplo existen sensores de temperatura, de luz, de movimiento, etc. Y cada sensor tendrá sus características especiales que lo hagan idóneo para un caso de uso concreto.
  • Análisis de la interfaz de comunicación: cada sensor y/o actuador se comunica de una forma diferente con nuestro Arduino. Algunos sensores utilizarán una medida de voltaje para indicar los valores, otros utilizarán protocolos como Modbus o i2c para compartir su información. Por ello es crucial analizar cómo va a compartir la información nuestro sensor.
  • Conectar el hardware: el siguiente paso consiste en conectar físicamente el hardware, es decir, unir mediante cables nuestro sensor/actuador con nuestro Arduino y de acuerdo a las instrucciones de los fabricantes.
  • Programar los dispositivos: a continuación programaremos el Arduino para que recupere la información de los sensores o envíe órdenes a los actuadores. Es importante recordar que para este paso nos podemos ayudar de librerías de terceros.

Comunicación mediante MQTT

El método más sencillo para conectar nuestro Arduino con Home Assistant es utilizar el protocolo de comunicación MQTT. Concretamente lo que haremos será enviar toda la información recabada por nuestro Arduino a un servidor MQTT, el cual estará escuchando nuestra instancia de Home Assistant.

De esta manera toda la información recibida por nuestro Arduino también estará disponible en Home Assistant. Este proceso es muy sencillo de realizar con Home Assistant gracias al addon Mosquitto broker. Cuando añadimos dicho addon se crea automáticamente un broker mqtt en nuestra instancia de Home Assistant, de manera que no tenemos que preocuparnos por crear y controlar un servidor MQTT externo.

Automatización con Node.js

Home Assistant ofrece una gran cantidad variedad de formas de integración con múltiples lenguajes gracias a sus dos APIs principales, la API REST Home Assistant y la API WebSocket. Si bien estas dos API son agnósticas respecto al lenguaje de programación recomendamos utilizar Node.js ya que existe un proyecto open-source node-homeassistant que introduce la API REST Home Assistant como una librería fácil de usar, basada en promesas y adaptada a Node.js.

Desarrollo de scripts personalizados

Utilizando Node.js y la librería node-homeassistant podemos crear scripts que interactúen con Home Assistant de manera sencilla y con todas. Dentro de esta librería queremos destacar dos componentes: el objeto base Home Assistant y la representación de sus estados.

  • Objeto Base: la librería hacer uso de un objeto base Home Assistant para representar nuestra instancia de Home Assistant. En el siguiente snippet de código podemos ver sus parámetros y un ejemplo.

    const hass = new HomeAssistant({
       host: "http://localhost" // dirección de nuestro Home Assistant
        port: 8123, //puerto en el que se ejectura Home Assistant, por defecto 8123
        token: "xxx-xxx-xxx-xxx" //token de seguridad de Home Assistant
    )}
    
  • Estados: Representa los estados de los diferentes objetos de Home Assistant. Permite tanto recuperar el estado de los objetos como modificarlo.

    //Ejemplo recuperar la temperatura medida por nuestro sensor
    hass.states.get('sensor', 'temperature'); //El primer parámetro indica el dominio del sensor y el segundo indica la entidad en concreto
    //Ejemplo para actualizar el estado de una entidad
    hass.states.update('sensor', 'temperature', {
     state: 80,
     attributes: {
       unit_of_measurement: '°F'
     }
     }); //Para actualizar el estado de una entidad los dos primeros parámetros vuelven a ser el dominio y la entidad objetivo, el tercer parámetro es un diccionario en el que se indica el nuevo valor y atributos opcionales, como es en este caso la unidad de medida
    

Integración con Home Assistant

Para integrar el código desarrollado con Home Assistant solamente necesitamos obtener el token de seguridad de la API de Home Assistant. Para ello seguiremos los siguientes pasos:

  • Acceder a nuestro perfil.
  • Acceder a Seguridad.
  • Crear token.
  • Darle un nombre al token.
  • Copiar el token.
  • Añadirlo a nuestro objeto base tal y como acabamos ver.

Si te ha quedado alguna duda mira la siguiente imagen.

Imagen 0 en Desarrolla tu propio sistema domótico con Home Assistant

Creación de componentes personalizados en Python

Python es el lenguaje propuesto por Home Assistant para crear nuevos componentes que utilizaremos en nuestras integraciones. Mediante nuevos componentes podemos integrar nuevos sensores y dispositivos, agruparlos para crear una superentidad o adaptar un dispositivo ya existente a nuestras necesidades.

Desarrollo de nuevos componentes

A la hora de desarrollar nuevos componentes debemos tener en cuenta 4 aspectos claves:

  • Estructura del directorio: los nuevos componentes que desarrollemos deben estructurarse en nuevas integraciones, es decir, como paquetes que expanden las funcionalidades de Home Assistant. Concretamente el código se debe estructurar de la siguiente manera:

    config/
    └── custom_components/
      └── mi_nuevo_componente/
          ├── __init__.py
          ├── sensor.py (o el tipo de plataforma que estés creando, ej. switch.py, light.py)
          └── manifest.json
    

Las nuevas integraciones se deben guardar dentro de la carpeta custom_components la cual podemos encontrar en dentro de la carpeta config.

  • Fichero manifest.json: este es el archivo básico de todas las nuevas integraciones de Home Assistant. Recoge todos los metadatos asociados al proyecto, por ejemplo, recoge el nombre de los autores, el número de la versión, el nombre del proyecto, las dependencias y los requisitos.

  • Fichero init.py: al igual que con la mayoría de los frameworks de Python este fichero será el punto de inicio de nuestro código. En este fichero definiremos la lógica de inicialización y registraremos los nuevos componentes.

  • Ficheros de componentes: en estos ficheros implementaremos nuestros nuevos componentes, los cuáles generalmente serán entidades o dispositivos que heredarán de las clases básicas de Home Assistant y las expandirán con nuevos métodos que amplíen sus funcionalidades.

Implementación y pruebas

Es tan importante desarrollar nuevas funcionalidades como probarlas y evaluarlas. Para implementar y evaluar nuevos componentes recomendamos el siguiente flujo de trabajo:

  • Implementación de archivos clave: el primer paso a realizar consistirá en crear e implementar los tres archivos vistos previamente y siguiendo la estructura de carpetas presentadas. Es recomendable incluir logs a lo largo de nuestro código que nos permitan entender qué está pasando en cada momento.

  • Reinicio de Home Assistant: a continuación es necesario reiniciar Home Assistant para que los cambios ejecutados sobre el código se apliquen.

  • Configuración de componentes: a continuación deberemos configurar los componentes que hemos creado, ya sea a través de una integración tipo helper o a través del fichero configuration.yaml.

  • Pruebas exhaustivas: finalmente deberemos probar de manera exhaustiva nuestra integración, asegurando así que los nuevos componentes se comportan correctamente.

Implementación de protocolos de comunicación

Home Assistant es un sistema extremadamente flexible capaz de utilizar una gran cantidad de protocolos de comunicación para conectarse e integrarse con una gran variedad de dispositivos. A continuación, veremos algunos de estos protocolos y cómo integrar dispositivos.

Uso de MQTT y otros protocolos

MQTT (Message Queuing Telemetry Transport) es un protocolo estándar diseñado para IoT (Internet of Things). Está basado en un modelo publicación/suscripción, lo cuál lo hace idóneo para cuando tenemos muchos sensores enviando información a intervalos de tiempo irregulares a Home Assistant. Además, tal y como hemos mencionado previamente, el uso de MQTT dentro de Home Assistant es muy sencillo gracias al addon Mosquitto broker, el cuál permite desplegar un servidor MQTT dentro de Home Assistant.

Además de MQTT hay muchos otros protocolos que también se puede utilizar con Home Assisant. Destacan:

  • Zigbee: un protocolo estándar inalámbrico diseñado para el uso con dispositivos como luces, interruptores y sensores.
  • Wi-Fi: es la tecnología inalámbrica que nos permite conectarnos a internet y a redes locales sin cable, de manera que se puede utilizar para situar sensores/actuadores en la misma red que nuestro Home Assistant, permitiendo que se comuniquen.
  • KNX: Un estándar europeo para el control de edificios, comúnmente utilizado en instalaciones profesionales y amateurs.

Integración con dispositivos existentes

La manera más sencilla de integrar nuevos dispositivos con Home Assitant es a través de alguna de las muchas integraciones oficiales y comunitarias disponibles. A continuación, vamos a repasar algunas de las más útiles:

  • ESPHome: es un framework de firmware de código abierto que simplifica el proceso de crear programas propios que se ejecuten en microcontroladores.
  • HACS (Home Assistant Community Store): HACS es un repositorio no oficial de aplicaciones para Home Assistant que te permite acceder a una gran cantidad de integraciones desarrolladas por la comunidad.
  • Integraciones nativas: muchas marcas populares como Philips Hue, IKEA, TP-Link (Tapo) o Shelly tienen integraciones nativas en Home Assistant que les permiten comunicarse directamente.

Casos prácticos y ejemplos

Existen muchos casos prácticos en los que la domótica, y especialmente Home Assistant, nos facilitan el día a día y nos hacen estar más cómodos en nuestros hogares y oficinas. A continuación vamos a ver algunos de los más comunes.

Automatización de luces y climatización

Las luces y la climatización son algunos de los primeros casos de uso que surgieron en la domótica. Poder apagar y encender estos dispositivos en franjas de tiempo determinadas o en función de si hay alguna persona cerca son casos de uso útiles tanto en tiendas como en nuestros hogares. A continuación vamos a entrar en más detalle.

  • Luces inteligentes:

    • Iluminación basada en presencia: mediante sensores de movimiento o presencia podemos encender o apagar las luces automáticamente cuando alguien entra o sale de una habitación.
    • Control por horario y luminosidad: podemos encender luces exteriores al anochecer y apagarlas al amanecer, ajustando la intensidad según la luz natural detectada por un sensor de luminosidad.
    • Rutinas de despertar y dormir: podemos crear rutinas para las luces del dormitorio, de manera que se enciendan gradualmente por la mañana, simulando el amanecer, o para que se atenúen por la noche para ayudar a conciliar el sueño.
  • Climatización inteligente:

    • Control de termostato adaptativo: podemos ajustar la temperatura del termostato según si hay alguien en el domicilio, la temperatura exterior y la predicción meteorológica maximizando así el confort y la eficiencia energética.

Monitoreo de seguridad y energía

Otro caso de uso clásico de Home Asdsistant es la monitorización de energía y seguridad, entendiendo seguridad desde una perspectiva amplia, en la que entra el desde el control de alarmas y cámaras de vigilancia hasta la gestión de detección de fugas de gas o la capacidad de supervisar a tus mascotas cuando estás fuera de casa.

  • Seguridad del hogar:

    • Sistema de alarma personalizado: podemos utilizar sensores de puertas/ventanas y de movimiento para detectar cuando una persona accede a nuestro hogar y hacer que Home Assistant envíe una notificación a tu móvil.
    • Detección de fugas de gas: si situamos sensores de gas cerca de botellas de butano, fuegos y calentadores podemos detectar fugas de gas y hacer sonar una alarma.
    • Gestión de cámaras: si configuramos nuestras cámaras con Home Assistant podemos acceder a estas desde nuestro móvil, pudiendo ver a través de ellas en cualquier momento y así echar un ojo a nuestros perros, gatos y loros.
  • Gestión y monitoreo de energía:

    • Monitorización de consumo: mediante enchufes inteligentes podemos medir el consumo eléctrico de los electrodomésticos de nuestro hogar, detectando así que electrodomésticos consumen las energía, apagar y encender enchufes de forma remota y permitiéndonos entender nuestros patrones de consumo.
Diseña con nosotros la formación que hará crecer a tus equipos
Te ofrecemos formaciones prácticas y actualizadas, impartidas por profesionales, para que tus equipos mejoren sus habilidades y tu empresa aumente su potencial.
Solicitar más información

Conclusiones

Home Assistant es un sistema de domótica open-source que se caracteriza por ser fácilmente extensible. Si bien la forma más sencilla de crear integraciones que amplíen sus funcionalidades es utilizando Python ofrece alternativas para utilizar el lenguaje de programación de nuestra elección.

El hecho de que Home Assistant sea fácilmente extensible se puede apreciar en los miles de proyectos (tanto open-source como creados por empresas privadas) creados por la comunidad, los cuales amplían las funcionalidades de Home Assistant y hacen posibles miles de casos de uso diversos que nos permiten desde ver cómo se encuentran nuestras mascotas mientras estamos de viaje hasta hacer una micro gestión de nuestro consumo eléctrico que tenga un gran impacto en nuestra factura de la luz. Mientras Home Assistant sea tan diverso, satisfaga tantos casos de uso continuará siendo respaldado por una gran comunidad y por tanto se mantendrá como el mejor sistema de domótica open-source.

¡Si Home Assistant no se adapta a tus necesidades adapta Home Assistant!

Bombilla

Lo que deberías recordar de un sistema domótico con Home Assistant

  • Home Assistant es un sistema de domótica fácilmente extensible.
  • Dispone de una API REST y una API WebSocket.
  • Python es el lenguaje de programación que usamos para crear nuevos componentes.
  • Home Assistant se puede integrar con dispositivos de más de mil marcas.
  • También se puede utilizar para monitorizar y gestionar nuestros activos energéticos.
  • Se puede instalar en multitud de dispositivos.
Compartir este post

También te puede interesar

Icono de la tecnología
Curso

Arduino

Intermedio
3 h. y 59 min.

Curso para aprender a programar en Arduino desde cero de manera practica para que puedas crear tu propios...

Varios profesores
4.3