Categorías
Home Assistant Raspberry Pi Tutoriales

Instalación Home Assistant en Raspberry Pi

Gracias al siguiente tutorial vamos a conseguir instalar Home Assistant en Raspberry Pi y tenerlo arrancado en pocos pasos.

Requisitos

A nivel de Hardware, necesitaremos lo siguiente:

  • Una Raspberry Pi 4, su Fuente de alimentación y un cable MicroHDMI. Funciona perfectamente con versiones anteriores pero si tienes muchas integraciones el Giga de RAM se queda corto rápidamente.
  • Tarjeta MicroSD de 32 Gigas o más (yo recomiendo 64 si tenemos muchas integraciones – el espacio se llena bastante rápido – y porque es más fácil encontrarlas de tipo A2). Se recomienda que sea una tarjeta A2 debido a las lecturas y escrituras intensivas que va a sufrir la tarjeta. Si viene sin lector o adaptador de tarjetas, comprar uno.
  • Opcionalmente (y recomendado), un cable Ethernet, aunque se puede usar WiFi.
  • Existen kits con caja, ventilador, disipadores, fuente, memoria, cables y la Raspberry, que siempre vienen bien como kit de iniciación y nos ahorrarán unos euros.

Con respecto al Software, necesitaremos:

  • Descargar y descomprimir la imagen para Raspberry Pi 4 (link). Se recomienda la de 32 bit porque hay ciertas funcionalidades que aún no se pueden usar o son experimentales en la de 64 bits.
  • Descargar e instalar balenaEtcher. Yo soy partidario de descargar el portable para así poder tenerlo en un USB y poder usarlo donde necesite.

Instalación

Cargar la imagen en la MicroSD

  • Introduce la tarjeta MicroSD en el lector del PC.
  • Abre balenaEtcher, selecciona el fichero descomprimido de la imagen descargada anteriormente, el destino (la MicroSD) y pulsa Flash. Tras unos minutos ya tendrás Home Assistant cargado en la MicroSD.
  • Si la unidad no se desmonta automáticamente, desmóntala como hagas habitualmente con los medios extraíbles.

Configurar manualmente la Red (Opcional)

  • Nota: estos pasos son opcionales, sólo tendrás que usarlos si quieres conectar por wifi o tener una IP fija manualmente (recomendado).
  • Nota 2: estos pasos sólo funcionarán si los haces en el primer arranque de Home Assistant, nosotros no hemos conseguido hacerlos funcionar tras el primer arranque.
  • Formatea un pincho USB en FAT32. Como nombre de unidad ponle CONFIG.
  • Crea una carpeta llamada network en la raiz del USB.
  • Dentro de la carpeta añade un fichero llamado my-network, sin extensión.
  • Copia alguno de los ejemplos que ponemos más adelante dentro del fichero o sigue los que se indican en la web de Home Assistant:
    • Nota: Para generar una UUID puedes usar uuidgenerator.
    • Si quieres usar una IP dinámica en LAN, usa la Configuración 1.
    • Si quieres usar una IP fija en LAN, usa la Configuración 2. Recuerda rellenar adecuadamente las IP, Puerta de Enlace y DNS.
    • Si quieres configurar una WiFi, usa la Configuración 3. Recuerda rellenar adecuadamente la SSID y PASS de la WiFi.
    • Puedes combinar cualquiera de ellas para cubrir tus necesidades.
  • Inserta el USB en la Raspberry antes de arrancar por primera vez.
# CONFIGURACIÓN 1

[connection]
id=my-network
uuid=d55162b4-6152-4310-9312-8f4c54d86afa
type=802-3-ethernet

[ipv4]
method=auto

[ipv6]
addr-gen-mode=stable-privacy
method=auto
# CONFIGURACIÓN 2

[connection]
id=my-network
uuid=d55162b4-6152-4310-9312-8f4c54d86afa
type=802-3-ethernet

[ipv4]
method=manual 
address=192.168.1.111/24;192.168.1.1 
dns=8.8.8.8;8.8.4.4;

[ipv6]
addr-gen-mode=stable-privacy
method=auto
# CONFIGURACIÓN 3

[connection]
id=my-network
uuid=72111c67-4a5d-4d5c-925e-f8ee26efb3c3
type=802-11-wireless

[802-11-wireless]
mode=infrastructure
ssid=MY_SSID
# Uncomment below if your SSID is not broadcasted
#hidden=true

[802-11-wireless-security]
auth-alg=open
key-mgmt=wpa-psk
psk=MY_WLAN_SECRET_KEY

[ipv4]
method=auto

[ipv6]
addr-gen-mode=stable-privacy
method=auto

Primer arranque

  • Con la Raspberry Pi apagada, inserta la MicroSD (y el USB si vas a hacer cambios en la Red).
  • Conecta el HDMI a tu pantalla (opcional, sólo para ver en consola ya que todo el Front-End es web), el cable de Red y, por último, el cable de Alimentación, que encenderá la Raspberry.
  • El primer arranque suele ser bastante lento (unos 20 minutos), ya que se dedica a descargar, instalar y configurar todas las dependencias de Home Assistant. Ten paciencia y no apagues ni reinicies la Raspberry Pi.
  • Podrás conectar a tu Home Assistant de alguna de las siguientes maneras:
  • Una vez arrancado y estabilizado el sistema, podrás desconectar el USB donde configuraste la Red si lo usaste.

Bien, con esto ya tendríamos instalado Home Assistant en Raspberry Pi. Lo siguiente será configurarla.

Categorías
Home Assistant Tutoriales

Nuevo Tutorial: Controlar tu casa con Home Assistant

Tras mucho tiempo de inactividad, volvemos a la carga con más contenido! Esta vez nos vamos a centrar en una serie de tutoriales para integrar toda nuestra domótica en un único lugar. Para ello, haremos uso de Home Assistant, una aplicación que nos hará la tarea más fácil.

¿Qué es Home Assistant?

Home Assistant es una aplicación web (un conjunto de automatizaciones con un front-end web realmente) que unifica en una sola página todos los componentes de domótica que tengas en tu casa. De este modo, se puede observar, controlar y automatizar cada uno de los elementos de manera única o combinada.

  • Observar: trazando el estado de cada componente y guardando un historial de estos.
  • Controlar: permitiendo gestionar cada componente de manera local y sin almacenar ningún dato en la nube.
  • Automatizar: creando reglas para controlar de manera automática uno o varios componentes.

Todo esto se puede combinar y conseguir infinidad de soluciones que harán de tu hogar un Hogar Inteligente:

  • Que se enciendan las luces del porche cuando caiga el sol.
  • Apagar o encender la caldera a una hora dada.
  • Activar la alarma si detecta que no hay ningún usuario en casa.
  • Encender el Aire Acondicionado cuando estés llegando a casa y la temperatura sea superior a 27º.
  • Recibir una alerta si se enciende alguna luz cuando no estés en casa.
  • Y mucho más.

Por si esto no fuera suficiente, dispone de innumerables integraciones con otras plataformas como pueden ser:

  • Amazon Alexa
  • MQTT
  • Xiaomi (MiJia, Yeelight)
  • PLEX
  • Routers de todo tipo.
  • Tasmota (Sonoff y otros, haremos un tutorial específico)
  • Iluminación: HUE, IKEA, etc.
  • Etc.

Gracias a su extensa comunidad y a todos sus programadores, existe una extensa documentación y ayuda para que no te pierdas si no te sale algo.

Nosotros intentaremos simplificar aún más esta ayuda con muchos mini-tutoriales.

Comencemos…

Categorías
Raspberry Pi

Raspberry Pi 3: Arrancar desde USB (II)

Como ya dijimos en un post anterior, la Raspberry Pi tiene un problema que arrastra (aunque cada vez menos) desde su primera versión: La facilidad de corromper las tarjetas SD o MicroSD.

Un corte de corriente, un reinicio o un bloqueo puede hacer que en el peor de los casos perdamos todo nuestro trabajo en un momento. Es por eso que la posibilidad de que se arranque por USB (que suelen ser más resistentes) es para nosotros un gran avance en lo que a estabilidad y seguridad se refiere.

En el otro tutorial se complicaba mucho a partir de los pasos en los que transferíamos nuestros datos de la MicroSD al USB, pero eso ha cambiado drásticamente desde la versión de Raspbian que salió el 10/04/2017… donde únicamente es necesario grabar la imagen en el USB para que arranque!

Gracias a este tutorial vamos a resolver este problema y a dar un poco más de vida a nuestro querido mini-pc, reproductor multimedia, consola retro, etc…

Categorías
AngularJS Tutoriales

Tutorial de AngularJS: Tema 7 – Una calculadora

Hola de nuevo!

Ha pasado ya bastante tiempo desde que hicimos nuestra última entrada. Temas laborales y de otra índole han hecho que no podamos prestar la atención que necesita el blog.

Tal como prometimos en el post anterior, hoy vamos a dedicarnos a hacer una calculadora básica para practicar lo poco que hemos aprendido hasta ahora. Allá vamos…

Categorías
Raspberry Pi

Raspberry PI 3: Arrancar desde USB

NOTA: Aquí hay una actualización del post donde ya no necesitamos hacer los últimos pasos.

Uno de los principales problemas que tiene la Raspberry Pi (especialmente para los que la usamos de manera intensiva) es la facilidad que tiene para corromper las tarjetas SD.

Gracias a este tutorial vamos a resolver este problema y a dar un poco más de vida a nuestro querido mini-pc, reproductor multimedia, consola retro, etc…

Categorías
AngularJS Tutoriales

Tutorial de AngularJS: Tema 6 – Mi primer Controlador

Hola, en nuestro anterior tutorial de AngularJS aprendimos a programar nuestro primer Hola Mundo. En el totorial de hoy vamos a meternos en harina y empezaremos a programar en JavaScript un primer Controlador para la aplicación.

Categorías
AngularJS Tutoriales

Tutorial de AngularJS: Tema 5 – Hola Mundo

Después de unos días de inactividad volvemos a la carga con nuestros tutoriales de AngularJS.

Hoy vamos a programar nuestra primera web-app en AngularJS, nuestro primer Hola Mundo!

Categorías
AngularJS Tutoriales

Tutorial de AngularJS: Tema 4 – Estructura

Hola de nuevo!

Hoy vamos a ver la estructura de carpetas y ficheros propuesta por Angular cuando empezamos a hacer un proyecto en AngularJS.

Categorías
AngularJS Tutoriales

Tutorial de AngularJS: Tema 3 – Conceptos

En este post vamos a ir recopilando los conceptos necesarios para comprender y utilizar toda la potencia que nos proporcionan JavaScript, AngularJS y el resto de herramientas que utilizaremos a lo largo de los temas.

Será un post autoincremental, ya que añadiremos conceptos conforme vayamos detectando que se necesita una aclaración de alguno de ellos. Intentaremos que sea resumido y claro, que para ampliar la información tenemos Wikipedia, la documentación de cada herramienta y miles de páginas web que tratan de lo mismo.

Comencemos…

Categorías
AngularJS Tutoriales

Tutorial de AngularJS: Tema 2 – Requisitos

En el tutorial de hoy nos vamos a centrar en los requisitos de AngularJS, a nivel del entorno de programación, de los conocimientos de programación de quien esté leyendo estas líneas y de cara al cliente final.