Home Automation post header

Instalar Home Assistant en Proxmox VE

Hoy vamos a ver como instalar Home Assistant OS con una sola línea de código y también como instalar Home Assistant Supervised. Voy a mostrar ambos métodos utilizando una máquina virtual en Proxmox VE, pero el proceso es aplicable a cualquier otro dispositivo con cambios mínimos.

Actualmente utilizo Home Assistant como controlador domótico. Aún mantengo Jeedom en otra máquina virtual y lo utilizo como «pasarela» para controlar las persianas Somfy RTS ya que el dongle USB que utilizo, RFPlayer, no está soportado en Home Assistant. Parecía un dongle muy prometedor pero no tuvo el éxito esperado y la empresa quebró, aunque parece que recientemente lo ha retomado otra empresa así que quizás algún día…

Home Assistant se encarga de toda la domótica y los comandos para el control de las persianas se envían mediante MQTT a Jeedom (aquí podeis ver como instalar Jeedom) que se encarga de reenviarlos.

Formas oficiales de instalar Home Assistant

Ahora mismo existen 4 métodos oficiales de instalar Home Assistant:

  • Home Assistant OS
  • Home Assistant Container
  • Home Assistant Core
  • Home Assistant Supervised

Cada uno de ellos tiene sus ventajas e inconvenientes, aunque como podemos ver aquí sus autores recomiendan usar uno de los dos primeros métodos y los dos últimos se recomiendan solo para usuarios avanzados.

En la siguiente tabla podemos ver las funciones que nos ofrece cada una de las formas de instalación.

Como podemos ver los dos métodos que más funciones nos ofrecen son Home Assistant OS y Home Assistant Supervised.

Método Home Assistant OS

Podemos descargar imágenes de Home Assistant OS ya listas para usar desde aquí. Hay imágenes para Raspberry Pi, Intel NUC, Odroid, etc. También podemos usar estas imagenes para crear una nueva máquina virtual.

Las ventajas de este método son que después de instalar la imagen dispondréis de una instalación de Home Assistant completamente funcional, con el menú Supervisor y Add-ons, todo es compatible, se actualiza de forma regular y no tendréis que preocuparos del mantenimiento del sistema operativo.

Como desventajas, si instalamos Home Assistant OS, por ejemplo en una Raspberry Pi o Odroid, como el sistema operativo está gestionado por Home Assistant no podremos usar el dispositivo para ninguna otra cosa. Además estaremos limitados a los Add-ons que estén disponibles en la Supervisor Store y nada más.

Resumiendo, este método está recomendado si queréis (o no os importa) tener un dispositivo dedicado a Home Assistant.

Método Home Assistant Container

Este es el segundo de los métodos recomendados.

Home Assistant Container es muy fácil de instalar, todo es compatible y se actualiza periódicamente. El único requisito es tener una máquina con Docker en funcionamiento y conexión a Internet para la poder realizar la instalación.

La mayor ventaja de este método es que como cualquier container docker es muy rápido crear una nueva instancia de Home Assistant y es igualmente rápido restaurarla a su estado inicial.

La gran desventaja de Home Assistant Container es que no dispondremos del menú Supervisor ni de los Add-ons.

Método Home Assistant Core

El tercero de los métodos soportados se llama Home Assistant Core.

Podríamos decir que es similar al método anterior pero utilizando un entorno virtual Python en lugar de Docker.

Al igual que en el método Home Assistant Container tampoco dispondremos del menú Supervisor ni de los Add-ons; además la instalación requiere algo más de trabajo en comparación con el método anterior.

Parece ser que este método es el origen del Home Assistant. Mis primeras pruebas fueron utilizando Home Assistant Core, que en aquel momento se llamaba solo Home Assistant.

Después pasé a utilizar el método Home Assistant Container y ahora estoy probando Home Assistant OS y Home Assistant Supervised en dos máquinas virtuales.

Método Home Assistant Supervised

El cuarto y último de los métodos se llama Home Assistant Supervised.

Con este método dispondremos del menú Supervisor y de los Add-ons. La ventaja extra es que el dispositivo no tiene que estar dedicado a Home Assistant como con Home Assistant OS.

Como desventaja nos tendremos que ocupar del mantenimiento de las dependencias y del sistema operativo nosotros mismos.

Instalar Home Assistant OS en Proxmox VE

Realizar la instalación de Home Assistant OS en Proxmox VE es muy, muy sencillo gracias a un script creado por el usuario Whiskerz007. Aquí podéis encontrar el script e información acerca de cómo funciona.

Puesto que en Proxmox VE podemos crear tantas máquinas virtuales como queramos no nos afectará que la máquina virtual no pueda tener otros usos ya que será tan sencillo como crear más máquinas virtuales.

Para instalar Home Assistant OS nos conectaremos por SSH a nuestro servidor Proxmox VE y ejecutaremos el siguiente comando:

bash -c "$(wget -qLO - https://github.com/whiskerz007/proxmox_hassos_install/raw/master/install.sh)"

Dependiendo de con que usuario nos conectemos a nuestro servidor tendremos que ejecutar el comando con sudo.

Como vemos en la imagen anterior, una vez finalizada la instalación nos indicará que el proceso ha sido correcto y la ID de la nueva máquina virtual, en mi caso es 103.

—– Actualización 13/06 —–

Parece que en la versión de Junio de Home Assistant han hecho algunos cambios y al ejecutar el script aparece el siguiente error:

[ERROR] 0@115 Unable to handle file extension 'zip'.

Gracias al usuario mochman por postear la solución aquí. Para solucionarlo ejecutaremos los siguientes comandos:

apt install unzip                                                                    # instalaremos el programa unzip

wget https://github.com/whiskerz007/proxmox_hassos_install/raw/master/install.sh     # descargaremos el script

sed '/*"gz") gunzip -f $FILE;;/a\ \ *"zip") unzip -o $FILE;;' install.sh > temp.sh   # modificaremos el archivo install
mv temp.sh install.sh
chmod 755 install.sh

./install.sh                                                                         # ejecutaremos la instalación

—– Fin de la actualización 13/06 —–

De vuelta a la interface grafica de Proxmox VE veremos que se ha creado una nueva máquina virtual llamada hassosova-x.xx. La máquina virtual aún no está arrancada, y antes de arrancarla deberemos de realizar algunos pequeños ajustes.

Ajustes en la pantalla Hardware

En la pantalla Hardware de la máquina virtual vamos a realizar los siguientes ajustes:

  1. Memory: La cantidad con la que se ha creado la máquina virtual es 512MB. Vamos a aumentar esta cantidad a, al menos 1GB.
  2. Processors: La máquina virtual se ha creado con 1 socket y 1 core. Podemos aumentar la cantidad de cores a 2 o 4 dependiendo de nuestro hardware.
  3. Hard Disk: Por defecto la máquina virtual se crea con disco duro de 32GB. Esto debería de ser suficiente pero en caso contrario podemos configurar el tamaño que queramos.
  4. Network Device: Comprobaremos que el Bridge asignado sea el correcto y si queremos conectar la máquina virtual a alguna VLAN rellenaremos el campo correspondiente.
  5. USB Device: Si tenemos pensado utilizar algún dongle USB, por ejemplo un stick Z-wave o Zigbee necesitaremos añadir estos dispositivos USB haciendo clic en Add — USB Device y eligiendo el dispositivo USB en el desplegable que aparecerá.

Últimos pasos

Después de realizar lo anterior arrancaremos la máquina virtual; en la pantalla «Summary» de la máquina virtual veremos la dirección IP asignada a esta máquina virtual.

Ahora ya nos podremos conectar a Home Assistant a través de nuestro navegador web usando la dirección IP obtenida y el puerto 8123.

Si nos queremos conectar a la máquina virtual utilizando la consola o nuestro cliente SSH utilizaremos el usuario root, por defecto no tiene password.

Instalar Home Assistant Supervised en Proxmox VE

Si queremos instalar Home Assistant Supervised procederemos de la siguiente manera.

Lo primero que vamos a necesitar es una máquina virtual con Debian instalado. Aquí podéis ver cómo.

Para poder instalar Home Assistant Supervised nuestra máquina virtual tiene que cumplir ciertos requisitos. A día de hoy los requisitos son los siguientes, pero podéis obtener la información más reciente aquí.

  • Debian Linux Debian 10 aka Buster (no derivatives)
  • Docker CE >= 19.03
  • Systemd >= 239
  • NetworkManager >= 1.14.6
  • AppArmor == 2.13.x (built into the kernel)

Vamos a revisar rapidamente la lista anterior:

  • Debian 10: Si utilizamos cualquier otro sistema operativo, incluso aunque esté basado en Debian, recibiremos un aviso en el menú Supervisor de Home Assistant indicando que estamos utilizando un sistema operativo no soportado.
  • Docker: A continuación veremos cómo instalarlo.
  • Systemd: Viene instalado por defecto en Debian y cualquier otra distribución basada en Debian.
  • NetworkManager: A continuación veremos cómo instalarlo.
  • AppArmor: A continuación veremos cómo instalarlo.

Instalar dependencias

Nos conectaremos a nuestra máquina virtual a través de la consola de Proxmox VE o de SSH y ejecutaremos los siguientes comandos:

sudo apt-get update
sudo apt-get upgrade -y

A continuación instalaremos NetworkManager, AppArmor y Jq:

sudo apt-get install network-manager apparmor-utils jq -y

Después de esto reiniciaremos la máquina virtual:

sudo reboot

Instalar Docker

Una vez que la máquina virtual se ha reiniciado instalaremos Docker.

Primero actualizamos la lista de paquetes:

sudo apt update

Después ejecutaremos el siguiente comando para instalar algunas paquetes necesarios para que el comando apt pueda utilizar direcciones HTTPS:

sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

Después añadiremos la clave GPC del repositorio oficial:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

A continuación añadiremos el repositorio:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

Actualizaremos de nuevo la lista de paquetes ya que tenemos un nuevo repositorio:

sudo apt update

Nos aseguraremos de que instalamos Docker desde el repositorio oficial y no desde el repositorio de Debian:

apt-cache policy docker-ce

Este comando nos devolverá algo similar a esto; son bastantes líneas, pero nos interesan solo las primeras:

docker-ce:
  Installed: (none)
  Candidate: 5:20.10.7~3-0~debian-buster
  Version table:
     5:20.10.7~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:20.10.6~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:20.10.5~3-0~debian-buster 500

Como vemos no hay ninguna versión instalada y la versión candidata es del repositorio oficial de Docker.

Por ultimo instalaremos Docker:

sudo apt install docker-ce

A continuación comprobaremos que el servicio está activo:

sudo systemctl status docker

La respuesta a este comando será similar a esto:

● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2021-06-08 18:42:43 CEST; 55s ago
     Docs: https://docs.docker.com
 Main PID: 2639 (dockerd)
    Tasks: 9
   Memory: 48.8M
   CGroup: /system.slice/docker.service
           └─2639 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Configurar Docker

Una vez que hemos instalado Docker y nos hemos asegurado que el servicio está activo vamos a añadir nuestro usuario al grupo Docker. Esto es necesario para no tener que utilizar sudo cuando ejecutemos comandos Docker:

sudo usermod -aG docker ${USER}

Aplicaremos los cambios ejecutando el siguiente comando; nos pedirá el password de nuestro usuario:

su - ${USER}

A continuación comprobaremos que nuestro usuario es miembro del grupo Docker ejecutando lo siguiente y comprobando que nuestro usuario se encuentra en la lista que nos devuelve el comando:

id -nG

Instalar Home Assistant Supervised

Llega la hora de instalar Home Assistant Supervised; para ello vamos a utilizar el script oficial de los desarrolladores, podéis obtener más información aquí.

Ejecutaremos el siguiente comando para descargarnos el script:

sudo curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh

A la hora de ejecutar el script vamos a tener que decir en qué tipo de máquina vamos a realizar la instalación, los tipos de máquina soportados son los siguientes:

  • intel-nuc
  • odroid-c2
  • odroid-n2
  • odroid-xu
  • qemuarm
  • qemuarm-64
  • qemux86
  • qemux86-64
  • raspberrypi
  • raspberrypi2
  • raspberrypi3
  • raspberrypi4
  • raspberrypi3-64
  • raspberrypi4-64
  • tinker

En mi caso, una máquina virtual en Proxmox VE, yo necesito utilizar qemux86-64 con el siguiente comando, vosotros podéis sustituirlo por el tipo de máquina que necesiteis.

sudo bash installer.sh --machine qemux86-64

La instalación comenzará con la recomendación de utilizar Home Assistant OS o Home Assistant Container en vez de este método.

En algún momento de la instalación nos preguntará si queremos sobrescribir el archivo /etc/network/interfaces, a lo que responderemos con Y.

La instalación continuará y una vez finalizada nos indicará que la instalación ha sido correcta y nos indicará la dirección IP a la que debemos de conectarnos.

Nos conectaremos a la dirección IP y veremos que la instalación aún está preparando el sistema. Esto puede durar unos cuantos minutos dependiendo de nuestro sistema.

Cuando todo esté listo aparecerá la pantalla donde crearemos nuestro usuario, definiremos nuestra ubicación… etc.

Con esto damos por finalizada la instalación de Home Assistant Supervised.

Conclusiones

Como hemos visto cada uno de los métodos tiene sus ventajas e inconvenientes, así que cada cual debe decidir el que mejor se adapta a sus necesidades.

El mayor inconveniente de Home Assistant OS es que la máquina donde lo instalemos está dedicada exclusivamente a Home Assistant pero si trabajamos con máquinas virtuales este problema es irrelevante.

Home Assistant Supervised va a requerir más atención por nuestra parte ya que deberemos de instalar un sistema operativo determinado, todas las dependencias y también deberemos de mantener el sistema operativo actualizado. A cambio tendremos control total del sistema operativo.

Mi opinión personal es que Home Assistant Supervised es más interesante cuando no utilizamos máquinas virtuales sino algo como una Raspberry Pi, ya que de esta forma podemos dar más usos a la Raspberry Pi. Cuando utilizamos una máquina virtual la gran ventaja de Home Assistant Supervised ya no es importante y utilizando Home Assistant OS nos despreocuparemos de mantener el sistema operativo.

Que pensáis vosotros? Podéis dejar vuestras opiniones en los comentarios.

Si habéis llegado hasta aquí, muchas gracias! Si tenéis alguna pregunta no dudéis en dejarla en los comentarios y haré todo lo posible por ayudar.

Y no olvidéis suscribiros para recibir un correo cuando se publiquen nuevos artículos.

No te pierdas los nuevos post!

We don’t spam! Read more in our privacy policy

1 comentario en “Instalar Home Assistant en Proxmox VE”

Deja un comentario

Tu dirección de correo electrónico no será publicada.