Está en la página 1de 187

http://www.domoticadomestica.

com/
Home Assistant #2: Preparando la
Raspberry Pi

Tutoriales

Como primer paso para poder poner en marcha el sistema, necesitamos poder
ponerlo en algún equipo, puede ser un ordenador convencional, pero, para esta
guía, usaremos una Raspberry Pi3.

Existe un sistema que se flashea directamente en la microSD y se supone que ya


viene todo instalado, pero, después de un tiempo probando, os recomiendo
empezar por una distribución completa llamada Raspbian e instalar directamente
Home Assistant en ella, ya que, en algunos casos es necesario instalar
dependencias en Linux y, con la distribución con todo instalado, es más difícil.

Flasheo de Home Assistant

 Descargar Etcher para flashear la microSD. Es muy sencillo de manejar


 Descargar la distribución mínima Raspbian sin escritorio (no es necesario y
perdemos requisitos)
 Descomprimimos el Zip de Raspbian y ejecutamos Etcher
 Seleccionamos la imagen de Raspbian y, si hemos metido el USB (con la
microSD) o la SD directamente y Etcher lo detecta, aparecerá directamente
seleccionada la unidad donde flashear, aseguraros que es la unidad que
queréis usar y le damos a Flash!
 Tras unos minutos, tendremos el sistema instalado en la microSD
 Ahora, para poder acceder a la Raspbian sin tener que conectarla a una
pantalla ni tener que ponerle un teclado, os recomiendo crear un fichero
llamado “ssh” en la partición boot, sin necesidad que contenga nada, solo
existir el fichero.
 Ponemos la microSD en la Raspberry sin conectar a la corriente y,
entonces, conectamos la red (RJ45) y le conectamos el cargador microUSB
con un cargador que, al menos, de los 2A.
 Para determinar la IP que le ha asignado nuestro router, necesitaremos
conectarnos a la interfaz de web del router para ver las IPs que tenemos en
casa o, por otro lado necesitaremos conectar a una TV o monitor la raspberry y
con un teclado para entrar en el sistema.
 Usuario por defecto: pi
 Contraseña por defecto: raspberry
 Comando para saber la IP del sistema: ifconfig
Ahi podemos ver que la IP de la raspberry es 192.168.1.100. Ahora ya podemos
trabajar en remoto por medio de SSH y empezar en el siguiente tutorial con la
instalación de Home Assistant.

¿Habéis podido concluir con éxito?


Home Assistant #3: Instalamos el sistema y
primer arranque

Ahora que tenemos la Raspberry Pi preparada para poder empezar con la


instalación, es hora de empezar nuestro primer contacto con Home Assistant, algo
que, como veréis, es bastante sencillo, aunque nos llevará un rato de comandos y,
dependiendo de la Raspberry que usemos, mas o menos tiempo de instalación.

Para aquellos que no sabéis exactamente lo que vamos a hacer, os comentaré


que en el post anterior, lo que hicisteis fue instalar Linux en una Raspberry Pi, en
concreto la variante Raspbian, totalmente preparada para funcionar tal cual en
nuestras Raspberrys, y, una vez tenemos instalado el sistema, instalaremos un
programa llamado Home Assistant, que es el que os he comentado desde el
principio y que se será el encargado de poder coordinar todos los aparatos que
conectemos, sean o no de la misma marca.

Instalación de Home Assistant en Raspbian

 Lo primero que tenemos que saber es la ip que nuestro router le ha


asignado a la Raspberry, eso lo podemos hacer, una vez que la hemos
ejecutado, o bien mirando en el router o bien en la propia Raspberry con un
cable hdmi y un teclado entrado con el usuario “pi” y la contraseña “raspberry”
y lanzamos el comando:
ifconfig
 Si hemos sacado la ip para conectarnos de manera remota, tendremos que
conectar por ssh, ya sea usando el puttyen windows o bien desde Linux como
es mi caso, si lo hacéis desde linux, el comando es:
ssh ip_de_la_raspberry -l piDonde cambiamos ip_de_la_raspberry por la ip de
nuestra Raspberry, la cual, tendrá la forma de 192.168… en la mayoría de
casos
 Una vez dentro, comienza la instalación, yo he seguido el tutorial de Home
Assistant que hay aqui, aunque, os lo pongo aquí:

sudo apt-get update

sudo apt-get upgrade -y

De esta forma tenemos el sistema actualizado

sudo apt-get install python3 python3-venv python3-pip

Instalamos las dependencias iniciales de python. Ahora vamos a crear un usuario


en el sistema llamado homeassistant

ACTUALIZACIÓN: En algunos sistemas, es recomendable instalar también si os


da problemas la instalación de Home Assistant:

sudo apt-get install build-essential libssl-dev libffi-dev


python-dev

Después de estas dependencias, seguimos:

sudo useradd -rm homeassistant

Ahora vamos a crear el directorio donde se instalará el Home Assistant


cd /srv

sudo mkdir homeassistant

sudo chown homeassistant:homeassistant homeassistant

Ahora vamos a crear un entorno virtual con el usuario homeassistant donde se


ejecutará el software. ACTUALIZACIÓN: Me han comentado que en algunos
casos ha habido gente a la que le ha dado error al ir a instalar sin reiniciar, si
os da un error u os queréis curar en salud, podéis reiniciar ahora para seguir
el tutorial. (Gracias Unai)

sudo su -s /bin/bash homeassistant

cd /srv/homeassistant

python3 -m venv .

source bin/activate
Veremos que donde escribimos, ha aparecido delante
(homeassistant), por lo que ahora podemos lanzar la
instalación:

pip3 install homeassistant

Con esto, ya estaría instalado, para poder lanzarlo por primera vez lanzamos el
comando:

hass

Veremos como empiezan a salir numerosos mensajes, no os precupeis, es


información para que si algo falla, veáis donde ocurre. Para ver nuestro nuevo
Home Assistant, esperando unos segundos o minutos, dependiendo de la
Raspberry Pi que estemos usando, podemos poner en un navegador la ip de
nuestra Raspberry (la misma que hemos visto con ifconfig y que hemos usado
para entrar por ssh) con :8123 detrás, es decir, si vuestra Raspberry estuviera en
la 192.168.1.105, tendríais que poner en el navegador de vuestro movil o PC
192.168.1.105:8123 y debería salir algo como esto:
Antes de terminar, supongo que querréis que se ejecute siempre que la Raspberry
se encienda, de manera automática, por lo que os voy a explicar como hacer para
poder hacer un servicio que arranque solo. Si habéis seguido la guía usando
Raspbian, tendreis que crear el fichero de arranque de esta forma:

sudo nano -w /etc/systemd/system/home-


assistant@homeassistant.service

Os aparecerá una ventana de un editor en la que tendréis que pegar el texto


siguiente sin cambiar nada:

[Unit]

Description=Home Assistant

After=network-online.target

[Service]

Type=simple

User=%i

ExecStart=/srv/homeassistant/bin/hass -c
"/home/homeassistant/.homeassistant"
[Install]

WantedBy=multi-user.target

Debería quedar algo así:

Una vez terminado, pulsamos CONTROL y la X, nos pedirá salvar, le damos a la Y


y ya estaría salvado. Ahora toca ponerlo en el arranque, para ello lanzamos:

sudo systemctl --system daemon-reload

sudo systemctl enable home-assistant@homeassistant

Ya estaría, ahora si quisieramos arrancarlo habría que lanzar:

sudo systemctl start home-assistant@homeassistant


De esta manera ya tendríamos nuestro Home Assistant, listo para empezar a ver
lo que podemos hacer con él. Ahora empieza lo divertido.

¿Habéis podido instalarlo?


Home Assistant #4: Conociendo Home
Assistant

Ahora que ya tenemos instalado vamos a empezar viendo un poco el


funcionamiento del mismo, conocer la web que ofrece y los ficheros que
tendremos que tocar para poder poner en marcha nuestro sistema.

Es posible que algunos de vosotros hayas probado a seguir con el tutorial después
de dejarlo instalado ya que, como es normal, la curiosidad es algo que empieza
justo cuando lo has instalado, no ha dado problemas y, sobretodo, quieres
empezar a poner dispositivos.

He de reconocer que la primera impresión a la hora de abrir la web es un poco


desmotivadora, ya que, la pantalla inicial está completamente vacía (o casi) y, de
ver casas de ciencia ficción si buscamos por Google, pasamos a ver esto:
Donde, unicamente vemos si está el sol o la luna en el cielo y la meteorología muy
breve. No os preocupéis, pronto empezaréis a poner aparatos y veréis, poco a
poco como podéis organizar el asunto ya que posee diferentes formas de hacerlo,
aunque, al principio, es recomendable añadir las cosas para verlas y poder
“cacharrear” con ellas.

Vamos a ver las diferentes partes de las que consta Home Assistant:

Home

Como he mostrado antes, la imagen del Home es la que vemos al entrar, en ella
tenemos varias secciones:

1. Se trata del menú principal, si pulsamos se despliega el menú lateral donde


podemos realizar todas las configuraciones y automatizaciones
2. En este área suelen ir apareciendo los sensores que tengamos
configurados y detectados por Home Assistant
3. Aquí veremos el resto de interruptores, cámaras, etc que instalemos, se
trata de un cajón desastre donde va todo, que, más adelante veremos como
podemos organizar por grupos y/o pestañas.
Si Pulsamos en la lineas horizontales de la izquierda, tenemos el menú principal:

Donde tenemos:

 Resumen: Es el Home de la web, es decir, donde aparecemos cuando la


cargamos por primera vez
 Mapa: Se trata de la ubicación que obtiene por medio de la IP o bien,
porque en la configuración hayamos indicado nuestras coordenadas GPS
 Registro: Es el registro de todos los valores y triggers (disparadores) que se
han lanzado en la linea del tiempo, por ejemplo, si tuviéramos detectores de
movimiento, nos indicaría a que hora y en que orden se han ido activando.
En el ejemplo que os muestro tengo una bombilla Philips-Xiaomi instalada y
podéis ver a la hora que se ha encendido, así como ver la altitud del sol (yr
Symbol) y cuando el sol se pone o sale (Sun).

 Historial: Es similar al registro, aunque, en este caso vemos todos los


componentes por colores y vemos de un golpe todas las activaciones y
cambios que ha podido tener a lo largo del día
 Configuración: Aquí entramos en el apartado más delicado ya que, se trata
de la configuración de los dispositivos y automatizaciones (pero no de la
configuración del propio Home Assistant).

Dentro de la configuración, podemos ver diferentes apartados:

1. Home Assistant Cloud: Para mantener el proyecto, Home Assistant ofrece


alojamiento en la nube para poder usarlo desde ahí
2. General: Se trata de ajustes generales, para recargar alguna parte de la
configuración, reiniciar el software, etc
3. Customization: Cuando instalamos un dispositivo, tenemos la opción de
ponerle nombre, pero, o bien por no ponerlo o bien porque el dispositivo es
detectado de manera automática, aquí podemos configurar los dispositivos y
cambiarles el nombre o incluso modificar algo del propio dispositivo
4. Automation: Se trata del apartado donde configuramos las
automatizaciones para que se ejecuten, aquí es donde decimos: “Si el sensor
de movimiento avisa de movimiento entonces avisa por Telegram”, es solo un
ejemplo.
5. Script: Al igual que el anterior, pero, aquí solo definimos scripts o comandos
que son ejecutados dentro de automations
En principio, como primera toma de contacto, creo que es suficiente, en el próximo
tutorial os explicaré ya a poner en la configuración, por ejemplo, el Gateway de
Xiaomi al que le extrajimos la clave para que veais que se integra de una manera
sencilla, eso si, la configuración inicial ha de hacerse por ssh, por lo que os
recomiendo ir cogiendo contacto con el programa que más os guste de ssh, en
Windows el Putty es el que uso y en Linux la propia consola del sistema.
¿Como lo lleváis? ¿Habéis experimentado mucho?
Home Assistant #6: ¿Te falla Home
Assistant? Te enseñamos a depurarlo
Los primeros pasos dentro de Home Assistant pueden ser frustrantes, por una
parte, entramos en un software del que seguramente no hemos visto nada antes y,
por otro lado, usan un lenguaje para la configuración (yaml) bastante sensible a un
caracter mal puesto, por eso, es importante saber detectar donde está nuestro
problema.

Home Assistant, por suerte, posee un sistema de “log” o de depuración en el que


podemos ver los mensajes que genera, tanto el software como los componentes
que tenemos instalados, por lo que, para arrancar un Home Assistant, podemos
empezar queriendo una información detallada y, una vez controlada esa parte,
mostrar solo la información necesaria de los componentes que queramos
controlar.

Activar la depuración o log en Home Assistant

Si entramos a la configuración (fichero configuration.yaml) veremos un apartado


llamado “logger:” en el que debajo no tiene nada puesto, si lo que queremos es
poder ver toda la información, que, inicialmente es recomendable ya que veremos
cuando se queda parado o el error que da, debemos poner:
De esta manera, toda la información será escrita, en el mismo directorio de la
configuración, en un fichero home-assistant.log, y, para poder verlo, tan solo
necesitaríamos abrir otra sesión de ssh para en una ejecutar:

tail -f homeassistant.log
En la otra sesión de ssh podréis en ese momento lanzar o reiniciar el servicio de
homeassistant y veréis como empieza a aparecer toda la información y, si os está
dando fallo, podréis descubrir donde lo hace.

Existe una manera de configuración más especifica, pudiendo decir que muestre,
por ejemplo, toda la información de todos los componentes, y, de algunos en
concreto, solo mostrar si el mensaje es de un nivel en concreto:

En este ejemplo, mostraría todo de todos, menos del “device_tracker” y “camera”,


que solo enseñaría los critical. Otra posibilidad es hacer lo contrario, es decir,
mostrar solo lo critical de todos, menos de otros componentes, que mostraría
aquellos mensajes del nivel que le digamos (y de los inferiores):
Ejemplos obtenidos en la web oficial de Home Assistant.
Espero que os pueda ayudar a seguir adelante con vuestra instalación. ¿Como la
lleváis? ¿Os habéis atascado?
Home Assistant #7: Primera
automatización
Si habéis seguido los tutoriales que llevamos, entiendo que estaréis ansiosos por
crear vuestra primera automatización para entender el funcionamiento y hasta
donde podemos llegar con nuestro nuevo sistema Home Assistant.

Quizá, algunos ya estéis experimentando por ver el funcionamiento del mismo,


pero, para aquellos que estáis esperando a ser guiados, vamos a probar la
primera automatización, que, si tenemos el gateway enlazado con Home
Assistant, tenemos la oportunidad de hacer uso de la luz y, con Home Assistant,
podemos automatizar cuando encenderla.

Supongamos que queremos encender la luz del gateway cuando se pone el sol.
Uno de los sensores que vienen por defecto en Home Assistant es el estado del
sol, pudiendo controlar desde la altura en la que está en el cielo como la hora de la
puesta o la salida del mismo. El sensor del que os hablo, luce así:

Y, el interruptor para encender o apagar el gateway es:


Si además pulsamos en el icono de la bombilla, veremos que podemos configurar
tanto la intensidad de la luz como el color de la luz.

Ahora vamos a trabajar en nuestra primera automatización, tendremos que ir al


menú (las tres lineas horizontales arriba al a izquierda), Configuración y pulsamos
en Automation. Ahí iremos viendo todas las automatizaciones que creemos, y que,
para crear una nueva, pulsaremos el botón circular naranja con un +.

1 – El primer paso es ponerle un nombre a nuestra automatización, será el que


mostrará en el Home cuando entramos.
2 – Triggers. Pulsamos en Add Trigger para poder establecer la condición que
hará que nuestro sistema lance la acción que le definamos posteriormente. En
nuestro caso, queremos que cuando el sol se ponga, se lance la automatización,
para ello, tendremos que poner:

Buscamos en Type “Sun” y marcamos “Sunset” para la puesta (“Sunrise” es la


salida del sol). El Offset que veis puesto es para decir que en realidad salte 2
horas más tarde de la puesta del sol, ya que, lo que queremos es que la luz sea
necesaria y, hasta no pasar un hora o así, la puesta del sol, no nos encontramos
en una situación de oscuridad.

Las “Conditions” son similares a los triggers, salvo que no hacen saltar la acción
en si, sino que sirven para forzar a que se debe cumplir una condición para que se
ejecute la acción. Es decir, si tenemos un trigger y una condición, primero ha de
cumplirse el trigger y, si también se cumple la condición, ejecutamos la acción, sin
embargo, si se cumple la condición, pero no el trigger, no se lanza (tampoco lo
haría si se cumple el trigger pero no la condición).

3 – Action. Aquí definimos lo que queremos que haga nuestra automatización, en


nuestro caso encender el gateway, que, para ello, pulsaremos Add Action y lo
rellenamos así:

Esto dejaría la luz eternamente encendida, pero, podemos evitarlo ya que,


podemos enlazar diferentes acciones, por lo que vamos a añadir un retraso (delay)
de 30 segundos y, después de que Home Assistant espere 30 segundos, apague
la luz:
Ya solo nos quedaría salvarlo pulsando en el botón naranja con el disco y
podemos regresar al “Home” pulsando sobre Resumen en el menú lateral que
tenemos.

No debemos asustarnos por el hecho de no tener claro que cosas tenemos


disponibles, ya que, cuando desplegamos el menú cuando lo editamos y veremos
todo lo que podemos elegir para poder funcionar:

Para poder probar la automatización, podemos sentarnos a esperar a que se


ponga el sol o bien forzar el lanzamiento, para ello, en el Home, buscamos nuestra
automatización y pulsamos en el icono que tiene tres lineas horizontales con un
símbolo de Play.
Y, una vez dentro, podemos comprobar, cuando pase el tiempo, si realmente se
está lanzando la automatización a diario, ya que, se muestra arriba una linea del
tiempo en la que se pone en rojo cuando es ejecutado. Si quisiéramos lanzar de
manera manual, deberíamos pulsar sobre “Trigger” para que se ejecute y, una vez
hecho esto, podemos observar nuestro gateway para ver si se enciende y, si
pusimos delay y apagado, si se apaga.

Después de esto, ya tenemos lo que queríamos, nuestra primera automatización


y, os aseguro que una vez le cojáis el tranquillo vereis lo que permite hacer este
sistema.

¿Os ha funcionado?
Home Assistant #8: Detección de
dispositivos en casa
Después de un pequeño tiempo de parón, vamos a detectar y poder aprovechar
los dispositivos de la casa, para lo que necesitemos, como, podría ser el hecho de
hacer que nuestra casa se comporte de una forma cuando estamos y otra cuando
no.

Este apartado, Home Assistant lo llama “Presence detection” y tenemos multitud


de formas de hacerlo, unas más precisas que otras pero también, algunas más
intrusivas que otras, sobretodo cuando vivimos con familia en casa y queremos
controlar esos dispositivos.

En mi caso, he querido configurar Home Assistant para detectar los móviles de las
personas que están en casa para poder notificar de ciertos eventos cuando hay
gente en casa y hacer otros (principalmente funcionar como alarma) cuando no
hay nadie en casa. Para esto, he probado diferentes maneras y, os voy a explicar
la mejor que he conseguido poner y que, funciona bastante bien, aunque, con sus
fallos.

Lo primero que tenemos que hacer, es determinar si alguno de los componentes


específicos de los routers, encaja con nuestro router, en mi caso, tengo un router
flasheado con dd-wrt, una versión gratuita y libre para los routers y que, permite en
el Home Assistant ser usado como control, si ninguno de los componentes encaja,
tendremos que usar el “genérico” por medio de nmap. Si es tu caso y no tienes un
router de los mencionados en el listado, vamos a poner el nmap a funcionar de la
siguiente forma:
 Lo primero que tenemos que hacer es conectarnos por ssh ya que
necesitaremos instalar un software
 Ejecutamos:

sudo apt-get install net-tools nmap

 Una vez que termina la instalación, insertaremos en nuestro fichero de


configuración (configuration.yaml) esto:

device_tracker:

- platform: nmap_tracker

hosts: 192.168.1.0/24

Suponiendo que nuestras IPs internas son del tipo 192.168.1…. si nuestra subred
cambia (eso lo podemos comprobar viendo la ip que asignamos a nuestra
Raspberry Pi en la instalación.

 Ya con todo cambiado, solo nos queda salvar la configuración y reiniciamos


Home Assistant.
 Una vez que arranca el sistema de nuevo, si entramos a la web vemos
como en la parte superior, donde están los circulos con los sensores como el
del sol, aparecen todos los dispositivos que tenemos en nuestra red
 Volvemos a conectar a nuestra Raspberry Pi por ssh
 Vamos al directorio donde tenemos toda la configuración y vemos que se
ha creado un fichero nuevo llamado known_hosts.yaml en el que si lo editamos
con nano, podemos ver contenido lleno de todos los equipos que se han
encontrado en la red, como por ejemplo:
chromecast:

hide_if_away: false

icon:

mac: zz:xx:63:zz:zz:xx

name: chromecast

picture:

track: false

vendor: Google, Inc.

 Supongamos que este Chromecast es uno de los dispositivos que queréis


controlar, como podría ser vuestro móvil. Para poder seguirlo tendremos que
poner:

chromecast:

hide_if_away: false

icon:

mac: zz:xx:63:zz:zz:xx

name: MiNombre

picture: /local/mifoto.jpg

track: true

vendor: Google, Inc.


 Si vemos los cambios, hemos cambiado el nombre en “name” para que
aparezca nuestro nombre o el nombre del dispositivo que queremos seguir,
hemos puesto a true el valor de “track” y, por último hemos puesto
/local/mifoto.jpg para poder personalizar la foto mostrada por el dispositivo.
Para poder hacer eso, en el directorio de la configuración de home assistant,
crearemos una carpeta llamada www con el comando:

mkdir www

 Por último pondremos el fichero con la foto llamado “mifoto.jpg” dentro para
que Home Assistant lo muestre.
 El resto de dispositivos del fichero “known_hosts.yaml” podremos poner a
false el valor de “track” para evitar que nos aparezca y, una vez que tengamos
la red controlada, podemos añadir a la configuración:

– platform: nmap_tracker

hosts: 192.168.1.0/24

interval_seconds: 10

consider_home: 360

scan_options: ” –privileged -sP –host-timeout 10s ”

new_device_defaults:

track_new_devices: False

hide_if_away: True
De esta manera conseguimos evitar algunos errores de posibles desconexiones
por ahorro energético de nuestros teléfonos, así como no meter nuevos
dispositivos a ser controlados de forma automática.

Una vez que tenemos esto configurado, podemos jugar con la presencia de estos
dispositivos, ya que, estarán con el estado “home” cuando estén detectados o
“not_home” cuando se encuentran fuera de la LAN, por lo que podemos usarlos
para o bien lanzar algún trigger en una automatización (por ejemplo, el dispositivo
entra o se va) o, hacer que sean la condición para que se ejecute algo, por
ejemplo si está o no en casa.

Espero que os siga ayudando los tutoriales, ¡muy pronto más!


Home Assistant #9: Notificaciones en
Telegram
Una de las cosas más necesarias, sobretodo cuando se trata de tener una casa
inteligente es el hecho de que el sistema nos avise de todo lo que necesitemos
estar al tanto, por ejemplo, si algo se ha quedado encendido o abierto cuando nos
vamos de casa o bien de alguna anomalía cuando no estamos en ella.

Existen multitud de componentes destinados a esta función como podemos ver en


la sección notifications de la web de Home Asisstant, entre los que figuran algunos
como son Twitter, Telegram, Kodi, Jabber, Facebook messenger, notificaciones
push, etc, es decir que, de una forma u otra, podemos recibir en nuestro
dispositivo más usado el aviso para, estar informados o bien, para poder decidir
qué hacer, por ejemplo, en el caso de saltar la alarma.

Entre las diferentes formas de notificación, tenemos la posibilidad de mandar por


Telegram, un sistema de mensajería que, para aquellos que no lo conozcáis, es
un estilo a Whatsapp, solo que, en mi opinión, es mucho mejor en todos los
aspectos, entre ellos, con la existencia de los “bots”, es decir, robots con los que
podemos interactuar y, en nuestro caso, haremos que sea “la voz” de nuestra
casa.

Si ya tenéis Telegram, podéis seguir la guía, pero, para aquellos que no, os
recomiendo que busquéis en vuestra tienda de aplicaciones, como Play Store o
App Store, para descargarlo y ponerlo en marcha, al igual que se hace en
Whatsapp. Una vez que tengáis Telegram en funcionamiento, podemos seguir
para crear nuestro bot, el cual, será el que nos informará y más adelante podrá
recibir órdenes para poder hacer cosas en casa desde Telegram.
Como crear un bot de Telegram

 Buscamos el usuario BotFather, que es, como el nombre indica, el padre de


todos los bot (además de hacer guiño a la película del Padrino, The
GodFather)

 Ponemos /start y podemos empezar a ver la lista de comandos que


necesitaremos, aunque, si queremos ver la lista completa, después de /start,
podemos poner / y nos aparecerá la lista completa de los comandos que
queremos
 Escribimos /newbot para que empecemos la creación
 Para el nombre, escribimos lo que queramos, ya que es el nombre
mostrado, no el nombre de usuario, en mi caso he puesto GizchinaHA
 Posteriormente nos pide el nombre de usuario, y, en este lugar si que
Telegram obliga a que acabe en la palabtra “bot”, sea en mayúsculas o
minúsculas, en mi caso he puesto GizchinaHABot
 Ya tenemos nuestro bot y, como veis, botfather nos da una clave (token)
para poder hacer uso del bot por web. Si os gusta este tema, os recomiendo
buscar información sobre los bots porque tienen mucho potencial.

Obtener nuestro ID de chat para integrar nuestro bot en Home Assistant


Para poder integrar en nuestra instalación necesitamos tan solo un dato, nuestro
ID de conversación para que nuestro bot sepa a quien hablar, para eso, buscamos
al bot IDBot:

En el, pondremos /start y posteriormente el comando /getid y os contestará un


número:

Con ese número apuntado, ya podemos configurar nuestro Home Assistant para
comunicarse con nosotros desde Telegram

Integrando Telegram en Home Assistant

Home Assistant tiene diferentes maneras de usar Telegram ya que, el propio


Telegram permite varias maneras de interactuar con los bots, nosotros vamos a
usar la llamada “Telegram Polling” para poder mandar mensajes a nuestro usuario
en Telegram. Para ello, abriremos la configuración y añadiremos lo siguiente:

telegram_bot:

- platform: polling

api_key: ABCDEFGHJKLMNOPQRSTUVXYZ

allowed_chat_ids:

- CHAT_ID_1

- CHAT_ID_2

- CHAT_ID_3

Donde ABCDEFGHJKLMNOPQRSTUVXYZ lo cambiais por el token que os dio el


botfather de vuestro bot y CHAT_ID_1, 2, 3…. lo cambiais por vuestro ID de chat
(en el caso de solo querer notificar a 1 usuario, podéis borrar CHAT_ID_2,
CHAT_ID_3, sin problema, pero, si queréis notificar a, por ejemplo, vuestra pareja,
tendréis que poner cada ID de chat en cada linea.

Con ese paso ya tendréis dado de alta el bot y enumerados los usuarios a los que
puede comunicarse, ahora, quedaría crear el notificador en si, que sería como el
canal por el que mandaría el mensaje. Si queréis mandar notificaciones a más de
un usuario, tendréis que poner uno por cada:

notify:

- name: telegramdeedu
platform: telegram

chat_id: CHAT_ID_1

En este ejemplo, tendréis que poner el nombre que queráis, en mi caso lo


identifico como que es mi Telegram, para saber que notificaciones mando a mi
usuario y, ahí vuelvo a poner mi ID de chat (el que hemos obtenido con el bot),
pero no el token.

Ahora, solo nos queda reiniciar y esperar que todo esté correcto, si algo falla,
recordad mirar el log

Ejemplo de uso de la notificación por Telegram de Home Assistant

Una vez que ya está configurado, necesitamos probarlo, para ello, podemos crear
una pequeña automatización para poder notificarnos cuando un dispositivo entra o
sale de casa. Por ejemplo, voy a hacer el ejemplo que tengo de cuando mi móvil
sale de casa y notifica que me he ido. Lo primero que haríamos sería ir a
Configuración y Automations, una vez dentro, le damos al botón + de añadir y
empezamos la configuración:

 La primera parte es la de poner el nombre que queramos.


 Después, elegimos el dispositivo que queremos controlar, en este caso,
cuando mostramos cómo detectar dispositivos en Home Assistant, vimos que
en el fichero known_devices podemos asignar nombre, por lo que aquí, lo
usaremos, en mi caso, el dispositivo “device_tracker.edu” es mi movil, y, el
trigger, será cuando pase de “home” (estoy conectado a la red de casa) a
not_home (no me detecta en la red de casa.

 En conditions, no necesitamos nada ahora, pero, por ejemplo, podríamos


poner que solo notifique a ciertas horas o lo que queramos
 Como Action, tendremos que poner en el service el que hemos configurado
como telegram, tal y como hemos visto en el ejemplo.

De esta forma, empezaremos, si todo ha ido bien, a recibir mensajes a través de


nuestro bot en Telegram de esta forma:
Estos mensajes mostrados, son reales de la configuración que tengo en casa, en
la que detecto si se ha abierto la puerta y avisa, así como para notificar cuando
has dejado la casa. Por lo que podéis combinarlo con todos los dispositivos que
tengamos, sensores de movimiento, puerta, etc.

Espero que os haya gustado, ¡pronto más!


Home Assistant #10: Instalación del broker
MQTT Mosquitto
Tutoriales

Posiblemente penséis que es algo que no necesitaréis nunca, pero si tenéis idea
de usar un enchufe Sonoff dentro de vuestro Home Assistant o un
microcontrolador ESP8266, tarde o temprano os tocará instalar este servidor de
mensajes, si queréis saber qué es MQTT, podéis conocer un poco más en nuestra
página pulsando sobre el link anterior.

Instalación del broker MQTT Mosquitto

Nuestro primer pasó, será el poder añadir la lista de paquetes a nuestra Rasbian
con el fin de instalarlo por medio de apt-get.

mkdir mosquitto

cd mosquitto

wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key

sudo apt-key add mosquitto-repo.gpg.key


De esta forma ya tenemos autorizada la clave de los repositorios y, ahora,
podemos buscar el repositorio para nuestra Rasbian, si usas la última que ahora
hay (Abril de 2018) la versión de debian que usas es Stretch, por lo que tendremos
que seguir con esto:

cd /etc/apt/sources.list.d/

sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list


De esta forma ahora ya tenemos los “sources” para poder actualizar la lista de
paquetes y poder instalar de una forma sencilla el broker. Si habéis seguido los
pasos, en la consola de vuestra Pi, deberiais tener algo así:

Ahora, actualizaremos la lista de paquetes, así como lanzaremos la instalación


para que se instale de una forma sencilla así como poder actualizarlo cuando sea
necesario, para ello, seguimos con esto:

sudo apt-get update


sudo apt-get install mosquitto
Nos preguntará si queremos continuar con la instalación, ya que, instalará todo lo
que necesite (las dependencias) para que nuestro broker funcione sin problemas,
por lo tanto, tendemos que contestar que sí. Si todo finaliza sin errores, ya
tenemos Mosquitto instalado en nuestro sistema, pero, ¿como sabemos si
funciona? Vamos a instalar los clientes para poder probarlo, seguimos:

sudo apt-get install mosquitto-clients


Una vez terminado, tendremos 2 programas, mosquitto_sub (para leer los
mensajes) y mosquito_pub (para enviar los mensajes). Con ellos podemos probar
de una forma local si todo funciona así como poder depurar cuando empezamos a
trabajar con MQTT si los mensajes están o no recibiéndose. Vamos a ponerle
contraseña al broker para evitar que sea usado por nadie sin control.

cd /etc/mosquitto

sudo mosquitto_passwd -c passwds domoticaencasa

Ahora pondremos nuestra contraseña domotica123 (Ojo que no vemos el cursor)


Ahora vamos a probar si nuestro mosquitto funciona como debe, para ello,
tendremos que entrar con otra sesión SSH para tener abiertas a la vez 2 y así
entender el funcionamiento y ver en tiempo real el funcionamiento. En la primera,
lanzaremos el servicio con:

sudo service mosquitto start


mosquitto_sub -h localhost -t “testtopic” -u domoticaencasa -P domotica123 -v

En la otra sesión de ssh ejecutamos esto:

mosquitto_pub -h localhost -t “testtopic” -m “Hooooooola” -u domoticaencasa -P

domotica123
Si todo ha ido bien, veremos aparecer el mensaje en la primera ventana, donde
teníamos el comando mosquitto_sub de esta forma:

Ahora, si lo que queremos es que el servicio arranque siempre que arranquemos


la Pi, tendremos que poner:

sudo systemctl enable mosquitto.service


Ahora ya tenemos el servicio funcionando, algo que nos facilitará la tarea para
poder ampliar los dispositivos que usemos como podría ser los sonoff o los relés
que podemos encontrar en eBay por poco dinero. ¿Habéis podido terminar?
Problemas en la instalación de Mosquitto MQTT en Rasbian

Esta instalación Si has tenido algún problema, aquí te mostramos posibles


soluciones:

mosquitto_passwd me dice “Segmentation fault”

Parece que hay algunos problemas con las librerías ssl y mosquito, prueba con lo
siguiente que nos permitirá compilar e instalar la versión 1.4.14:

cd

wget http://mosquitto.org/files/source/mosquitto-1.4.14.tar.gz

tar xavf mosquitto-1.4.14.tar.gz

cd mosquitto-1.4.14

sudo apt-get install cmake libssl1.0-dev libwebsockets-dev uuid-dev

****

En caso de darte error la linea anterior, deberás hacer esto:


sudo nano /etc/apt/sources.list.d/raspi.list

y añadir esta linea:

deb http://ftp.de.debian.org/debian stretch main

****

cmake .

make -j4

sudo make install

sudo nano /etc/init.d/mosquitto

Busca esta línea: DAEMON=/usr/sbin/mosquitto

Cámbiala por: DAEMON=/usr/local/sbin/mosquitto


De esta forma compilaremos e instalaremos la versión 1.4.14.
Home Assistant #11: Integramos Google Assistant

Una vez que tenemos un sistema funcional, podemos ir avanzando poco a poco
en la integración de diferentes sensores para que poco a poco nuestro sistema
sea de lo más completo, pero, a veces, podemos necesitar algo como Google
Assistant para poder complementarlo y poder activar las cosas sin necesidad de
entrar al propio sistema, sobretodo si contamos con algún hardware de los que
vende Google para su sistema.

En este tutorial, voy a tratar de explicar de la forma más sencilla posible todo lo
que tenemos que hacer para poder dejar nuestro sistema funcionando y que
podamos lanzar comandos desde Google Assistant.

NOTA: Uno de los requisitos básicos que necesitamos cumplir es el hecho de que
nuestro Home Assistant funcione con SSL (https), algo que acabo de darme
cuenta, que no he documentado, por lo que prometo tutorial al respecto.

Recomiendo hacer el tutorial con algo de tiempo y quizá comida y bebida cerca ya
que es bastante más extenso que cualquiera de los otros que hemos podido
hacer.

En Google

Para ir avanzando, entra en esta web y genera 2 cadenas de texto largas


(asegurate de cambiar el Format y que ponga a-zA-Z mixed case), una de ellas
será lo que posteriormente usemos como client_id y otra será el access_token y
apuntalas, por ejemplo:
client_id =
rvEoUODKRYFFcuzfpTDKoWQVlZXcLlGaKUWDiXgWGyFCdfddDDDdyQZQtpblZ
CvfsKCdYMFvVMOFmOoXSJqqzldxBHFWzlOvAYfeTUrCvafTbBFUALMPrljlJjpYs

access_token =
UJXHzLnRZbfmIgsKoLEcVEGgNdtnUKOTOEEdgbXwgBiKrXqfDYFmcJdDDDsdD
dfvcCyRAjmnprsdkjiKGAuKpwNvPEZKQSATmCHpAuuUKZKOCgLnTbXDygT

 Creamos un proyecto dentro de la consola de Google Assistant,


pulsando aquí.
 Pulsamos en “Add/Import project”
 Ponemos un nombre (el que queramos) y ponemos “Spain” (o el país
de donde seáis) y le damos a CREATE PROJECT

 Ahora en el centro veremos “Smart Home”, pulsamos sobre BUILD


Nos pide la URL de nuestro Home Assistant, recordad que debe ser la URL
completa, accesible desde internet y con SSL activado.
 Si por ejemplo, vuestro sistema es https://domoticaencasa.es:8123, en ese
campo tendréis que poner
https://domoticaencasa.es:8123/api/google_assistant

 Ahora pulsamos en la parte superior izquierda en donde pone “Overview”,


ahí veremos si nos avisa de algún error, en mi caso, rellenar el nombre de la
App por lo que pulsamos en EDIT para solucionarlo, ponemos el nombre que
queramos, y el resto de campos podemos rellenarlos como queramos y
pulsamos en NEXT
 La imagen y el icono podemos poner alguna de Google Photos que
tengamos e incluso los datos de contacto y en el mail, podemos nuestro mail.
 Por último, nos pide unas URL pero son para nuestra política de privacidad
en caso de que nuestra app esté al público, como es obligatorio, podemos
poner la URL de nuestro Home Assistant o la URL que queramos, podemos
bajar abajo y darle a SAVE
 Ahora, volvemos a pulsar en OVERVIEW y veremos que no da error y
pulsamos sobre “Account linking” y posteriormente a ADD.
 Grant type cambiamos a Implicit y pulsamos en NEXT

 Ahora, el client ID es el client_id que sacamos antes de empezar y la URL


que nos pide es https://domotica.es:8123/api/google_assistant , aunque, si
tienes puesta contraseña, que deberías tenerla, debe ser
https://domotica.es:8123/api/google_assistant/auth?
api_password=XXXXXXXXX donde las XXXXXXXX son tu contraseña.
Pulsamos en NEXT
 En el siguiente punto, en Scopes, pondremos, email (pulsamos en ADD
SCOPE) y ponemos también name (y volvemos a pulsar ADD SCOPE) y
pulsamos NEXT
 En Testing instructions, podemos poner lo que queramos ya que no se
usará y pulsamos en SAVE.
 Ya hemos terminado la primera parte, ahora podemos darle a “TEST
DRAFT” para probar la App, aunque, es normal que falle por lo que podemos
seguir con el resto de configuración.

En Home Assistant

Volvemos temporalmente a nuestro Home Assistant para añadir la configuración:

Tenemos que añadir a nuestra configuración lo siguiente:

google_assistant:

project_id: someproject-2d0b8

client_id: [long URL safe random string]

access_token: [a different long URL safe random string]

agent_user_id: [a string to identify user]

api_key: [a Homegraph API Key generated for the Google


Actions project]
exposed_domains:

- switch

- light

- group

entity_config:

switch.kitchen:

name: Custom Name for Google Assistant

aliases:

- bright lights

- entry lights

light.living_room:

expose: false

room: living room

Donde tenemos que cambiar:

 project_id: Es el nombre del proyecto que pusimos al principio


 client_id: El que guardamos y que ya hemos puesto en la app
 access_token: El otro texto autogenerado que guardamos antes de
empezar
 agent_user_id: Podemos poner nuestro correo
 api_key: Es recomendable generarla
 Entraríamos a la consola de Google aquí
 Pulsamos en habilitar
 Tras unos segundos, en la parte izquierda vamos a “Credenciales”
 Crear credenciales y elegimos “Clave de API”
 Apuntamos la clave que nos da y la ponemos ahí
 A partir de ahi, tanto los exposed domains como el entity_config son
relacionados con la configuración de cada uno ya que habla de lo que
queremos compartir a Google así como los dispositivos que le dejamos ver.
En mi caso, solo voy a dejarle ver el estado de la alarma:

entity_config:
input_boolean.alarma:
name: alarma

IMPORTANTE: Es necesario reiniciar para que coja la nueva configuración

En el móvil

Ahora nos toca seguir con la app en el móvil, si no la tienes, puedes entrar en Play
Store e instalar el “Google Assistant”. Una vez que lo tengas instalado, tendremos
que añadir nuestra aplicación de Google Home.
Una cosa que debes saber es que Google todavía no ha incluido Google Home en
su Assitant español, por lo que para poder seguir, será necesario que pongas tu
teléfono en inglés, además, tendremos que llegar a la configuración desde algún
sitio diferente. Una vez que arrancamos la app con el teléfono en inglés, vemos
donde nos pregunta en qué puede ayudarnos, ahí, pulsamos sobre el icono azul
de arriba a la derecha

Una vez que entramos en los ajustes, bajamos hasta abajo del todo donde pone
mostrar todas las categorías “All categories”
En el listado general de categorías tenemos que buscar el que tiene un icono de
una bombilla y se llama Home control (actualmente, como digo, solo en inglés)
Entramos y elegimos el primero (si cambiara el primero de la lista, lo normal es
que cualquiera de los que aparezca, debería servir.

Dentro de por ejemplo, el Tplink que aparece el primero, podemos bajar hasta
encontrar “Home Control” para pulsar en Settings a la derecha
Ahora ya estamos dentro de lo que sería la configuración Home Control que,
actualmente no podemos encontrar dentro de la aplicación en español ni en
cualquier idioma no soportado. En esta configuración veremos todo lo que
tengamos conectado a nuestro Home de Google, que, en mi caso es solo un
Chromecast. Para continuar, pulsamos en el + que hay en el circulo azul abajo a la
derecha
Una vez que pulsamos, si todo ha salido bien, tendremos la aplicación que hemos
creado en los pasos anteriores que, pulsando sobre ella, hará el intento de
conexión contra nuestro Home Assistant y, si no ha habido errores, la instalará en
nuestro Home Control de la App en el movil
Como vemos, Google importará aquello que le digamos que queremos compartir
con él, por lo que tendremos aquellos dispositivos/interruptores o demás
dispositivos o sensores que tiene Home Assistant, controlables con la voz, eso si,
con el comando en inglés.

Google nos mostrará algunos ejemplo de lo que podemos hacer y, si asignamos


“rooms”, es decir, habitaciones, podremos realizar acciones sobre todos los
dispositivos de esa misma habitación, por ejemplo, encender todas las luces de un
salon, de una cocina, etc
Y, con esto, podemos volver nuestro teléfono a español, aunque, el comando si
que tendremos que decirlo en inglés, por ejemplo, en mi caso puedo decir “OK
Google switch on Acuario”.

Espero que seais capaces de terminarlo, pero, si tenéis cualquier duda, podéis
preguntar en los comentarios o, podéis uniros al grupo de Telegram para poder ir
avanzando juntos.
Home Assistant #12: Limpieza del código y preparando para las copias de

seguridad

Vamos a seguir con la serie de tutoriales, en este caso, toca algo menos divertido
y algo que tendría que haber hecho hace tiempo y que, aquellos que quieran llegar
a editar el código para hacer cosas más avanzadas, necesitarán hacer tarde o
temprano, limpieza del código.

Si habéis hecho como yo y habéis seguido los tutoriales, habréis hecho uso de
manera intensa del editor de automatizaciones y, si habéis intentado editar a mano
el fichero automations, habréis visto que se trata de un fichero que parece
desordenado, al menos, no sigue el orden de lógico a la hora de lanzar una
automatización de trigger (lo que lanza) – Condition (lo que debe suceder para que
se ejecute) – Action (lo que hace si lo anterior se cumple).

Otra de las grandes recomendaciones es hacer copia de seguridad del sistema, ya


que, la manera en la que está construido Home Assistant, es posible volver a
poner un sistema en pie de una forma muy sencilla siempre que tengamos copia
de los ficheros que tenemos en .homeassistant, eso si, si queremos hacer copia,
tenemos que tener claro donde irán a parar nuestras copias, por lo que tendremos
que ocultar los datos sensibles.

En este pequeño tutorial, primero os voy a indicar como ordenar el fichero


automations para que sea más legible y posteriormente, como hacer uso del
fichero secrets.yaml donde almacenaremos las claves y los datos sensibles para
que, en nuestro próximo tutorial, podamos hacer copia de seguridad en github, ya
que, nuestra configuración puede ayudar a otros igual que podemos nutrirnos de
la enorme comunidad que hay alrededor de Home Assistant.

Limpieza de código y ordenación

Como he comentado, el código que saca el propio editor de Home Assistant, no


entiendo porque, pero no lo saca tan legible como sería escrito a mano, por poner
un ejemplo:

- action:

- data:

message: Puerta de la calle abierta

service: notify.telegrambot2

alias: Puerta

condition: []

id: '1513669758510'

trigger:

- entity_id:
binary_sensor.door_window_sensor_15823123dcb47f

from: 'off'
platform: state

to: 'on'

Como se puede ver, no está nada claro, ni donde empieza ni donde están las
partes de las que se compone la automatización. El caso es que como están bien
indentados, funcionan sin problemas, pero, cuando queremos entrar a modificar
de una forma manual, se complica mucho el asunto. Vamos a mirar el código con
detenimiento para analizar las partes que tiene y poder ordenarlo de una forma
más lógica:

 Tenemos que localizar el id, que es el identificador, único para cada


automatización y necesario para que aparezca en el editor, ya que será lo
primero que pondremos.
 Posteriormente, pondremos el alias, que viene a ser el nombre que tiene la
automatización
 Después colocaremos el trigger con todo lo que cuelgue de él, pero,
ordenando por platform, entity_id y luego el cambio de estado que disparará
 Pasamos a condition, que, en este ejemplo, no posee condición y notifica
siempre, aunque, ordenaremos de la misma forma que en el trigger
 Por último, estaría el action (con todo lo que lleve asociado) ordenando de
una forma similar a trigger y condition, mostrando primero el entity que sea y
luego los datos que acompañen.
Siguiendo este pequeño guión, con el ejemplo anterior, quedaría algo así:

- id: '1513669758510'

alias: Puerta
trigger:

- platform: state

entity_id:
binary_sensor.door_window_sensor_15823123dcb47f

from: 'off'

to: 'on'

condition: []

action:

- service: notify.telegrambot2

data:

message: Puerta de la calle abierta

De esta forma, modificaríamos todas las automatizaciones para poder entrar a la


edición a mano, ahora que conocemos mejor el sistema, permitiendo una mayor
flexibilidad a la hora de crear automatizaciones.

Uso del secrets.yaml


Cuando vamos a dejar la configuración a la vista, o bien para evitar tener copia de
todo mezclado, podemos hacer uso de un fichero llamado screts.yaml, dicho
fichero nos sirve para poder tener una configuración, lista para compartir sin que
nada quede a la vista.

De esta forma, si queremos seguir una de nuestras próximas guías, podréis


hacerlo sin miedo a que vuestros datos queden comprometidos, ya que, la idea es
poder publicar una guía en breve en la que podréis hacer copia de vuestra
configuración en github, de forma automática con el fin de poder tener a salvo
nuestros ficheros en todo momento.

Si por ejemplo hemos configurado un dominio para acceder a nuestra casa y le


tenemos asignada una clave, podemos tener una configuración así en nuestro
configuration.yaml:

base_url: https://domticaencasa:8123

api_password: miclave123

Como vemos, no es nada bueno, si llevamos idea de hacer copia de la


configuración en github, pero, podemos configurar en el fichero secrets.yaml de
esta forma:

http_password: miclave123

direccion_web: https://domticaencasa:8123

Y, entonces, necesitaremos poner dentro de nuestro configuration.yaml esto:


base_url: !secret http_password

api_password: !secret direccion_web

De esta forma, indicamos a Home Assistant que lo que va en base_url o


api_password, debe buscarlo en el fichero secrets.yaml con las variables
http_password y direccion_web respectivamente y, de esta forma todo quedaría
listo para poder ser guardado de una forma pública.

¿Habéis podido organizar las automatizaciones?¿Queréis el tutorial para la copia


con github?
5 consejos para evitar un robo en casa con Home Assistant

Ahora que comienza el buen tiempo, mucha gente comienza a usar los fines de
semana, vacaciones para salir y, es algo que aprovechan los enamorados de lo
ajeno para realizar el robo en casas o en sitios que quedan desprotegidos al no
haber nadie. También, es posible que tengamos una segunda vivienda y, por tanto
una siempre quedará vacía mientras estamos en la otra.

Vamos a daros algunos consejos que se pueden hacer con Home Assistant y unos
pocos actuadores para poder conseguir evitar que piensen que no estamos en
casa y así que no consigan perpetrar el robo.

1. Enciende y apaga luces, pero no siempre a la misma hora

Es sencillo empezar por esta parte, es algo que mucha gente ya hace con un
programador, pero, ¿que pasa si vamos a pasar una larga estancia fuera? El
horario, si observan la casa, podría ser fácil de controlar. Con Home Assistant
podemos programar el encendido y apagado en función de diferentes parámetros
que varían según el día, por ejemplo, podemos hacer que se encienda 1 hora
después de la puesta de sol, ya que, por defecto viene con un sensor llamado
“Sun” que nos indica la hora de la puesta del sol, de esta forma siempre varía algo
de tiempo cada día.

Podemos complementar con otra, como podría ser en base a la temperatura,


humedad del ambiente, etc, para poder cambiar el valor con el que variar la
temperatura, y, seguro, dándole una vuelta, podrían sacarse cientos de formas
distintas de hacer que el horario cambie a diario. Si, tenemos diferentes luces
controladas de forma remota, podemos jugar también con la idea de poder hacer
encendidos y apagados entre habitaciones, algo que ayudará a que si miran
desde fuera, esté la casa en “acción”.

2. Motoriza las persianas y contrólalas

En este apartado, quiero hacer pronto algún tutorial, ya que llevo idea de motorizar
las de mi casa por lo que quisiera enseñar cómo hacerlo y además diferentes
configuraciones posibles. Si queremos jugar con las persianas para la eficiencia
energética, por ejemplo, podemos moverlas para conseguir obtener el calor en
invierno subiendo las persianas y bajándolas en verano para poder hacer pantalla
a las horas más duras de calor. Esto ayudará a que las persianas estén en
movimiento, generando una sensación de que alguien está en casa y evitando así
mostrar una debilidad para el robo.

3. Usa música

Podemos dejar algún altavoz que tengamos integrado en Home Assistant para
reproducir música de una forma aleatoria, al igual que con las luces, podemos
poner música a diferentes horas (cuidado con las horas a las que ponemos para
no molestar a los vecinos) y, de esa forma, si se acercan a la puerta a oír, igual
llegan en un momento de música. Al igual que la música, podemos usar el audio
de algún vídeo de Youtube de varias horas y de esa forma, podemos hacer que
parezca que 2 ó más personas hablan.

4. Modifica el timbre de casa para poder recibir el aviso en Home Assistant

Este es otro tutorial que me gustaría hacer, tanto con el timbre de la puerta de la
casa como con el interfono, que dependerá de cada modelo para poder hacerlo de
una forma más sencilla o más difícil. En muchas ocasiones, justo antes de intentar
entrar para realizar el robo, llaman a la puerta para confirmar que no hay nadie (si
alguien les abre, pueden preguntar por cualquier persona o bien son comerciales
de lo que menos nos interese). Más o menos, para que os hagáis una idea, con un
pequeño transformador de 230v a 5v, podemos añadir al timbre de la puerta de
casa algún emisor/sensor que si alguien llama, podamos hacer algo, de esta
forma, sabiendo que nos están llamando, podemos, por ejemplo, si es de noche,
encender luces como si estuviéramos en la cama y fuéramos a mirar quien ha
llamado a la puerta y, si es de día, poder poner música a sonar.

5. Usa Home Assistant como alarma para evitar el robo


Este método es quizá no para evitar que lleguen al robo, pero si disuasorio si está
todo bien hecho, ya que, los consejos anteriores son más para evitar que lleguen a
intentarlo, pero, a veces, es inevitable y, por tanto, es un método que puede hacer
que se vayan por miedo a ser descubiertos.

Por desgracia, me encuentro en las estadísticas de aquellos que han sufrido esta
experiencia y, por tanto, es mejor poner todas las medidas posibles antes de que
suceda. En mi caso, quisiera poder hacer también un tutorial (y ya van tres
pendientes) para poder explicaros cosas que tengo configuradas, que todavía
tiene sus fallos pero que controla la casa casi en su totalidad y adaptado a los
hábitos de los que vivimos, ya que, no solo controlo toda la casa cuando no
estamos, si no que controlo las puertas y ventanas que dan al exterior cuando
nosotros estamos dentro, de esta forma, hemos podido volver a dormir tranquilos y
esperamos que no nos tengamos que despertar nunca sobresaltados.

En el caso de la alarma, tengo sensores de movimiento, puerta y cámaras, de esta


forma puedo complementarlo todo para poder recibir en Telegram notificaciones al
respecto, si estamos en casa, abrir una puerta o ventana hace que suene de
forma inmediata, pero, cuando no estamos, para evitar un sonido no deseado sin
necesidad, es necesario activar 2 sensores, es decir, si se abre una puerta, se
activará lo que llamo prealarma, para esperar otro sensor, de esta forma, si un
sensor se estropea o cae mostrando algo de movimiento, no saltará directamente,
sino que podré comprobar de forma remota que no pasa nada, que será un fallo
de ese sensor.

La alarma se arma sola cuando no detecta a nadie en casa y, cuando detecta que
alguno estamos en casa, al rato, activa la alarma que controla las puertas, pero,
dejando el espacio de horario en el que nos vamos al trabajo libre de alarmas para
evitar que suene. Han sido bastantes pruebas y fallos hasta dar con una
configuración que no ha quedado mal y que pronto compartiré para aquellos que
quieran usarla.

En principio, estos son los primeros 5 consejos, pero se pueden dar más, así
como poder usar Home Assistant de una forma totalmente automática para hacer
que nuestra casa esté totalmente controlada y podamos estar tranquilos, dentro de
lo posible.

Algunas de las cosas que están explicadas, ya podéis hacerlas con los tutoriales
de domótica con Home Assistant que tenemos publicados y que pronto se irán
ampliando, no obstante, tenemos un grupo en Telegram en el que si necesitáis
ayuda o, simplemente queréis ir viendo este tema, podéis entrar aquí.
Home Assistant #14: Lector de matrículas con Home Assistant

Hoy tenemos un nuevo tutorial para nuestra serie de tutoriales de Home Assistant
en español, en este caso, podremos realizar la lectura de matrículas por medio de
OpenALPR, que, al no necesitar una gran cantidad de lecturas al día, podremos
usar el servicio Cloud gratuito.

Instalación de ffmpeg

Empezaremos instalando la función “ffmpeg” que será tan sencillo como


conectarnos a nuestra raspberry por putty y escribir:

sudo echo "deb http://ftp.debian.org/debian jessie-backports


main" >> /etc/apt/sources.list

sudo apt-get update

sudo apt-get -t jessie-backports install ffmpeg

Ahora pasamos a agregar nuestra cámara, yo os voy a dar los pasos para el
modelo SP007 (Marca Sricam) , es tan sencillo como ir a nuestro archivo de
configuration.yaml y escribir:

######## Sricam ######

camera:

- platform: ffmpeg
name: Entrada

input: rtsp://ipdetucamara:554/onvif1

Probablemente tengáis otro modelo de cámara y ya lo tengáis agregado a home


assistant pero bueno siempre es bueno algo más de información. En caso de que
no tendréis que buscar vuestro “input” correspondiente, el mio lo encontré
eniSpyconnect.
Si no estás seguro de tener el correspondiente al tuyo, siempre puedes probarlo
con “vlc player” y cuando encuentres el correcto integrarlo en el home assistant.

También tendremos que escribir esta línea para habilitar el ffmpeg dentro del
configuration.yaml:

ffmpeg:

ffmpeg_bin: /usr/bin/ffmpeg

Una vez agregado todo comprobáis en vuestro Home Assistant si os sale el video
de vuestra cámara tras un reinicio:
Empezamos con la lectura de matrículas con OpenALPR

Como podéis ver, aparece la imagen de mi cámara dentro, quiere decir que la
cámara está funcionando y comunicándose bien con Home Assistant, ahora
tenemos que agregar el lector de matrículas. Para ello nos dirigimos a
https://cloud.openalpr.com/ y creamos una nueva cuenta, ya sabéis usuario,
contraseña, correo etc…. NO hace falta nada de tarjetas de crédito ni nada. Una
vez que entréis con vuestra cuenta os dirigíos hacia “Cloud Api” que se encuentra
en vuestro panel de la izquierda y copias el “Secret Key”.

Luego solo nos queda agregar otra vez en configuration.yaml con los datos
obtenidos:

######Comprobar matricula por camara#####

image_processing:

- platform: openalpr_cloud
api_key: sk_vuestrasecretkey

region: eu

source:

- entity_id: camera.entrada

Hasta ahora tendríamos…La cámara integrada con Home, y el procesamiento del


video para reconocer las matriculas, como podéis ver en esta imagen.

Cuando tengas un vehículo por delante veréis como OpenAlpr cambia de


“desconocido” a indicarte la matricula reconocida.

Bueno solo nos faltaría crear una automatización, os dejo está a modo de ejemplo,
simplemente reconoce la matricula “XXXXHM” y reproduce un sonido en el
Gateway de
xiaomi (en el caso de tener uno).

#####Reconocer Matricula y....


- action:

- service: xiaomi_aqara.play_ringtone

data:

gw_mac: 78:11:DC:XX:XX:XX

ringtone_id: 10008 # Sonido de apertura de Puerta

ringtone_vol: 100

alias: Lectura de Matricula y Abrir Puerta

trigger:

platform: event

event_type: image_processing.found_plate

event_data:

entity_id: image_processing.openalpr_entrada

plate: XXXXHM

En plate podéis indicar tantas matriculas como queráis, según tengo entendido el
cloud de Openalpr permite como unos 1000 reconocimientos de matriculas al mes,
sinceramente no creo que tengamos que utilizar más.
Como podéis imaginar, este reconocimiento de matrícula, abre (literalmente)
muchas puertas de cara a poder gestionar cosas de la casa, desde la apertura de
la puerta del garaje, hasta poder poner la casa en marcha, en función de quien
llega, para hacer cosas diferentes, como podría ser encender la calefacción, luces,
etc.

En todo momento he utilizado de nombre de cámara “Entrada” si no queréis


utilizar ese nombre solo tenéis que cambiarlo en cada apartado del tutorial.
Home Assistant #16: Instalamos una cámara

Si tenéis pensado poner una alarma en casa o tener algo para el control de la
misma cuando no estáis, o, incluso cuando estáis para usarlas de sensor de
presencia, necesitaréis, al menos, instalar una cámara.

Elección de la mejor cámara para Home Assistant

Esta respuesta no tiene una respuesta inmediata ni tampoco una respuesta


correcta para todos, ya que, muchos, buscan economizar el sistema y buscan
economizar el sistema al máximo. Por poner un ejemplo, en mi caso, cuando
empecé a usar Home Assistant, fui mirando ofertas de las que se publican en
diferentes canales de Telegram, y conseguí 2 Xiaofang y 2 Fluoreon a buenos
precios y, hasta ahora, salvo una Xiaofang que pasó a mejor vida por instalarla en
la terraza, tengo las otras 3 funcionando sin problemas.

Hay muchas cámaras ya soportadas de manera oficial y de muchos precios, y,


supongo, que cuando estéis leyendo este pequeño tutorial, seguramente habrá
más añadidos y mejorado el soporte de algunas que ahora todavía no está
totalmente terminado.

La manera de funcionar depende de cada cámara y, en el peor de los casos que la


marca que tengáis o que hayais visto a buen precio, mientras tenga servidor RTSP
(lo suelen indicar en las especificaciones) u ONVIF (también lo indican) debería
funcionarnos sin problemas, eso si, en muchos casos, los fabricantes no
especifican la URL a la que se accede para ver el streaming RTSP. Cabe decir
que las cámaras Fluoreon que compré indicaban ONVIF, pero no llegó a
funcionarme, posiblemente, no eran totalmente compatibles.

Otro de los puntos a mirar dentro de los componentes de cámara de Home


Assistant es el soporte al que llega Home Assistant, ya que, en algunos, solo
tenemos soporte para el vídeo, en otro, notificaciones de la propia cámara o
incluso en algunos hasta podemos añadir los sensores de movimiento de las
propias cámaras como es el caso de las cámaras Axis.
La mayoría de cámaras, son usadas con ffmpeg para visualizar el streaming de
video, tanto cuando lo vemos en el escritorio como para verlo en tiempo real
cuando pulsamos sobre ella. El problema que he encontrado es que si tenemos
por ejemplo 2 cámaras, y queremos usarlas como detectoras de movimiento, son
4 ffmpeg funcionando de continuo, algo que a la Raspberry Pi 3 se le queda algo
justo y no termina de ir bien, por lo que acabé delegando el movimiento a
sensores de movimiento y usando la cámara para grabar solo cuando es
necesario.

Otra cosa interesante es si vuestra cámara, o la que elijáis para usar en Home
Assistant permite descargar una imagen cada segundo también libera el sistema.
Para poder sacar las url de la cámara, he usado en algunos casos ispyconnect,
podéis mirar antes de comprar.

Configuración de la cámara en Home Assisant

Vamos a poner una cámara genérica, en la que podemos o bien acceder al


streaming de video por rtsp o bien, con una imagen estática que se actualiza cada
segundo.
Si tenéis la URL del streaming de vídeo y queréis comprobar que va, podéis usar
el VLC, poniendo la en Archivo / Abrir URL, si veis la cámara, os debería funcionar
con Home Assistant.

Si queremos configurar el streaming, sería, dentro del apartado “camera:” (si no lo


tenéis lo tendréis que poner en el configuration.yaml sin ningún espacio por la
izquierda). Vamos a suponer que nuestra cámara está en la dirección
192.168.1.100 de nuestra red de casa y para acceder al RTSP tenemos que poner
el puerto 554 y luego la dirección es en “/2” otros pueden ser “/rtsp” etc:

- platform: ffmpeg

input: -rtsp_transport udp -i rtsp://192.168.1.100:554/2

name: Camara1

En caso de que lo podáis hacer por medio de una imagen, liberaréis mucho la
Raspberry Pi, tendréis que ponerlo así. Asumimos de nuevo que la cámara está
en la 192.168.1.100 y que el directorio donde vemos la captura actualizada cada
segundo es /web/tmpfs/snap.jpg”:

- platform: generic

name: Camara1

still_image_url:
http://user:pass@192.168.1.100/web/tmpfs/snap.jpg
Una vez hecho esto, salváis el fichero y podéis probar a reiniciar Home Assistant
para ver si coge la configuración. En caso de estar correcto, debería saliros algo
así:

Si por el contrario os da error, tendréis que intentar localizar el error en Home


Assistant para ver que os dice.

Detectar movimiento con la cámara en Home Assistant

Como he comentado antes, se puede poner la cámara para detectar movimiento


en la misma, por medio de los cambios que de la cámara, algo que puede resultar
útil si conseguimos afinar lo suficiente para que nos notifique de alguna forma. En
caso de querer hacerlo, tenemos el componete de ffmpeg_motion con el que
usando el ffmpeg podremos determinar el % de diferencia entre fotogramas para
saltar o no. Cabe decir que en mi caso, no me funcionaron todo lo bien que
quisiera y, el motivo, estoy convencido que era por culpa de que el ffmpeg
necesitaba muchos recursos y la Pi3 se quedaba corta, por lo que acabé
delegando la detección a un sensor de movimiento, siendo mucho más efectivo.

Para poner la detección por medio de la cámara, tenemos que poner en la


configuración, dentro de “binary_sensor:” lo siguiente:

- platform: ffmpeg_motion

name: Camara1_movimiento

input: -rtsp_transport tcp -i rtsp://192.168.1.100:554/2

changes: 10
reset: 1

Los datos, son los mismos que los de la imagen, tan solo entran en juego nuevos
como por ejemplo, “changes” que define el % de diferencia entre una imagen y la
siguiente para que considere que hay movimiento. Por ejemplo, en el código que
os he puesto, si hay un 10% de cambios, saltará el aviso del sensor, cuanto más
alto, menos preciso, pero menos falsos positivos. Otro parámetro es el reset, que
es el tiempo que tarda el sensor en reiniciarse para poder volver a detectar
movimiento, por defecto es 20 segundos, pero en el ejemplo he puesto 1 segundo.
También podríamos poner un detector de ruido por medio del audio de la cámara
con la siguiente configuración en el mismo sitio:

- platform: ffmpeg_noise

name: Salon-Ruido

input: -rtsp_transport udp -i rtsp://192.168.1.100:554/2

Una vez hecho esto, tendremos, cuando reiniciemos, el o los sensores y que
podremos usar de igual forma que si se tratara de un sensor normal de
movimiento.

Grabación de vídeo y envío de fotos y vídeos por Telegram en Home

Assistant

Hasta el momento, tan solo tenemos las cámaras puestas en el sistema y tenemos
el detector de movimiento si os habéis decidido a ponerlo con la propia cámara,
pero ahora, nos falta poder hacer algo con las cámaras para si detectamos
movimiento, para eso, como no todas las cámaras nos brindan la posibilidad de
hacerlo directamente, la solución que encontré pasaba por “salir” de Home
Assistant y hacer cosas por la consola, os explico el procedimiento.

Cuando tengamos las cámaras funcionando y, sea el sensor de la cámara o uno


de movimiento real salte avisando de movimiento, lanzará 2 comandos de consola
de linux, con uno grabaremos un video que dejaremos en el directorio
/home/homeassistant/.homeassistant/www para poder usarlo luego y recogerá la
imagen, en caso de tenerla, que nos deja la cámara cada segundo para también
enviarla posteriormente.

Si nos vamos casi al final de la configuración, tenemos (y si no, lo creamos) el


apartado “shell_command:” y, dentro, tendremos que poner estos dos comandos:

videocamara1: 'timeout 30s /usr/bin/ffmpeg -rtsp_transport


udp -i rtsp://192.168.1.100:554/2 -ss 00:00:0.0 -t 10 -an
/home/homeassistant/.homeassistant/www/camara1.mp4 -y'

fotocamara1: 'timeout 5s /usr/bin/wget --output-


document=/home/homeassistant/.homeassistant/www/camara1.jpg
http://user:pass@192.168.1.100/web/tmpfs/snap.jpg'

Os explico un poco lo que hace el código:

 timeout 30s: He detectado que el ffpmeg se me quedaba


muchas veces colgado, por lo que si después de 30
segundos, no ha terminado, la aplicación es cerrada

 /usr/bin/ffmpeg: Ubicación del ffmpeg


 -rtsp_transport udp -i rtsp://192.168.1.100:554/2 -ss
00:00:0.0 -t 10 -an
/home/homeassistant/.homeassistant/www/camara1.mp4 -y: son
las opciones para el ffmpeg en el que le decimos el tipo
de streaming, la dirección de la cámara (igual que hemos
visto antes) y la ubicación del fichero que queremos
grabar, como siempre será el mismo nombre, le ponemos el
-y para que lo sobreescriba sin preguntar.

Para el caso de la cámara, son opciones parecidas, aunque, cambia un poco:

 timeout 5s: En este caso, a los 5 segundos mata el


proceso

 /usr/bin/wget: En lugar de ffmpeg, usaremos el wget, un


programa de la consola de linux para descargar
directamente

 --output-
document=/home/homeassistant/.homeassistant/www/camara1.jp
g http://user:pass@192.168.1.100/web/tmpfs/snap.jpg:
Fichero de salida y la dirección de la foto para
descargar, al igual que el video lo dejamos todo en www
dentro del directorio de configuración

Ahora que tenemos los scripts que lanzaremos, nos iremos a


crear las automatizaciones, que, serán, sencillamente, cuando
detecte movimiento en el sensor que usemos (el de la propia
cámara o bien un sensor de movimiento real), lanzamos los
scripts, hacemos una pausa de 20 segundos en el caso del
video, y de 5 segundos en el caso de la foto, y mandaremos
los ficheros creados por Telegram.

Hasta la fecha sigo usando el editor del propio Home Assistant, por lo que os
muestro las capturas de cómo lanzo los comandos yo. Si empezamos con el
vídeo, vemos el trigger (disparador) que sería el sensor de movimiento, en mi caso
es un sensor de movimiento Xiaomi Aqara, cuando su estado pasa de off a on.

En las condiciones, para probar, podéis no poner nada, en mi caso, tengo un


interruptor que intentaré explicar más adelante con el que la casa está con la
alarma activada, y, por tanto, solo me notifica cuando está así.
En las Acciones, vemos que lo primero que se hace es llamar al comando
shell_command.videocamara1 que es que tenemos configurado en nuestro fichero
configuration.yaml, le damos un delay (retardo) de 15 segundos ya que debe
grabar 10 segundos y con 5 segundos extra por lo que pudiera tardar más y,
finalmente, se llama al servicio denotificación de Telegram que tenemos
configurado en nuestro Home Assistant en el que le damos el video para mandar.

En el caso de la foto, es muy similar el ejemplo, la diferencia radica en que le


damos solo 5 segundos de delay (retardo) y que el fichero a mandar es la foto, no
el vídeo, el resto es igual.
Si todo ha salido bien, deberíais tener en vuestro Telegram, tanto el vídeo como el
jpg de la imagen si la tenéis configurada y os llegaría, primero un mensaje con la
foto y unos segundos después, el gif animado o mp4 dependiendo del tamaño que
tenga el vídeo de salida, dando un resultado similar a este:
De esta forma, deberíamos tener las cámaras plenamente funcionales para poder
usarlas y no solo ser componentes pasivos grabando si no que puedan
informarnos por medio de los sensores de movimiento, aunque, quizá, necesitaréis
algo más potente con el fin de cubrir las necesidades de ffmpeg.

Espero que os haya servido el tutorial, y, como siempre, si tenéis dudas o queréis
avanzar más, tenemos un grupo de Telegram donde podéis estar al tanto de todo
y solucionar vuestras dudas. La información la tenéis al final del tutorial.

¿Os ha funcionado?
Home Assistant #17: Controlamos si nuestra web está caída

Hace tiempo que venía dándole vueltas a la posibilidad de controlar las webs que
tengo para saber si están en pie o se han caído, algo que tenemos multitud de
sitios con los que poder hacerlo de forma externo, pero creo que podía venir bien
hacerlo con Home Assistant para recibir un mensaje por Telegram si está alguna
caída.

En este caso, vamos a tener que recurrir a un comando de consola, curl, para
muchos, será una herramienta conocida, pero para otros, totalmente desconocida.
Se trata de una herramienta de la consola de Linux (aunque se encuentra en casi
todos los sistemas operativos) que nos sirve para poder trabajar con las webs,
sobretodo para diagnostico, pudiendo realizar operaciones completas.

En nuestro caso, tan solo realizaremos la petición de las cabeceras en busca del
200 OK, que es el código que devuelven las webs cuando todo va bien y ha
devuelto la web correctamente, al menos, a nivel de servidor.

Sensor para controlar el estado de nuestra web

Como digo, este tutorial es rápido, ya que tan solo tendremos que añadir dentro
del area de “binary_sensor:” en nuestro configuration.yaml lo siguiente:

  - platform: command_line

name: Web Domotica


command: curl -o /dev/null -s -w "%{http_code}\n"
https://domoticaencasa.es

payload_on: 200

En el, lo que se realiza es la ejecución del comando curl para posteriormente, en


consola parsear el resultado para obtener, en este caso el 200 (o el código de
estado que devuelva la web), diciendo que el ON es cuando devuelve 200, para
así, poder realizar una automatización en la que definamos el trigger como el paso
de ON a OFF de este sensor para así lanzar las alarmas que fueran necesarias.

¿Habéis podido hacerlo?


Home Assistant #18: Monitorizando el sistema con NetData

NetData nos permite monitorizar el Sistema operativo sobre el que corre nuestro
Home Assistant integrando la interfaz en un panel de la aplicación.

¿Que nos permite monitorizar NetData?


TODO, rendimiento de la CPU, conexiones de red, uso de memoria RAM, y un
largo etc.
Pero si no os fiais de mi, aqui va la descripción de Wikipedia:
Netdata es una herramienta para visualizar y monitorear métricas en tiempo real,
optimizada para acumular todo tipo de datos, como uso de CPU, actividad de
disco, consultas SQL, visitas a un sitio web, etc. La herramienta está diseñada
para visualizar el ahora en el mayor detalle posible, permitiendo al usuario obtener
una visión de lo que está sucediendo y lo que acaba de suceder en su sistema o
aplicación, siendo una opción ideal para solucionar problemas de desempeño en
tiempo real.
Consiste en un demonio que, al ejecutarse, se encarga de obtener información en
tiempo real, por segundo, y presentarla en un sitio web para su visualización y
análisis. La presentación es interactiva y en tiempo real.
Se trata de una herramienta ligera, en su mayor parte escrita en C, la cual
presenta bajos niveles de consumo durante su ejecución: alrededor de 2% de uso
para un CPU de un único hilo y unos pocos megabytes de RAM.
Puede ejecutarse en cualquier kernel GNU/Linux para monitorear cualquier
sistema o aplicación, siendo posible correrla en PCs, servidores o dispositivos
embebidos Linux.
En el panel de control hacen incidencia sobre dos valores que debemos observar
especialmente:
Esté atento a iowait. Si es constantemente alto, tus discos son un cuello de
botella y reducen la velocidad de tu sistema.
Una métrica importante que vale la pena monitorear, es softirq
Un porcentaje constantemente alto de softirq puede indicar problemas con el
controlador de red.

Instalación de NetData en nuestro Linux

Pues nada, vamos a ver como instalarlo en nuestro sistema y a integrarlo en


Home Assistant.
Es compatible con las distribuciones debian y derivadas, CentOs, Fedora, Suse,
etc.
Vamos a hacer la instalación desde la consola o por SSH
Primero y muy importante, actualizar los repositorios:

$ sudo apt-get update

Clonamos el repositorio oficial de github con el siguiente comando:

git clone https://github.com/firehol/netdata.git --depth=1

Accedemos al directorio netdata descargado con GIT e instalamos ejecutando el


siguiente comando:
$ cd netdata netdata $ sudo ./netdata-installer.sh –libs-are-
really-here

Nos pide que pulsemos ENTER.

Pulsamos y empieza la instalación. Después de unos minutos lo tendremos


instalado:

A partir de este momento desde cualquier navegador que esté dentro de nuestra
red, podemos monitorizar el sistema conectandonos a http://direccion ip de la
raspberry:19999/
y veremos la siguiente pantalla:

Integrar NetData en Home Assistant


El siguiente paso es incrustarlo en HA. Para ello crearemos una entrada (panel)
en el menú lateral.
Todo esto ya lo hacemos desde la ruta donde tenemos alojado Home Assistant.
Añadimos lo siguiente en configuration.yaml, si no lo tenías antes:

Creamos el archivo panels.yaml ($sudo nano panels.yaml) e incluimos lo


siguiente:

Comprobamos el funcionamiento en HA.


Y esto es todo, desde este momento disponemos de un panel para controlar
el estado de nuestro sistema, que aunque no vamos a entender casi nada,
queda ¡¡¡chuliiiiiisimo¡¡¡
Home Assistant #19: Backup completo y restauración de la SD de nuestro sistema

Después de tener muchas cosas funcionando, si se nos borra, se estropea o pasa


cualquier cosa con el sistema, nos daría algo, por eso, vamos a hacer un backup
completo del sistema, en caso de que lo tengáis en una Raspberry Pi o un sistema
similar que esté físicamente en una SD o microSD.

Después de este tutorial para hacer copia de seguridad, como digo, de todo el
sistema, voy a publicar el que tengo a medio para poder guardar toda la
configuración de forma automática en github, algo que ayudaría para si queremos
cambiar el sistema o bien queremos tener el control de los cambios que hemos ido
haciendo.

Comenzamos con el backup de nuestra SD de Home Assistant

NOTA: ¡Ojo! Los comandos que vais a usar son muy peligrosos y pueden
“liarla parda” si os equivocáis de unidad, es decir, aseguraros que estáis
viendo la unidad de la SD ya que, podríais copiar/restaurar la unidad que no
es, pudiendo machacar el sistema operativo en ejecución, por lo que mucho
cuidado. Espero no equivocarme en los comandos, pero, no me hago
responsable de si hay algún error en ellos, están hechos con el mayor
cuidado posible y con la mejor intención.
Requisitos:

 Necesitaremos un lector de SD o microSD en función de la tarjeta que


tengas en uso
 Espacio suficiente (recomendable que de sobra) para poder volcar el
contenido total de la SD, es decir, si tienes una SD de 128GB, como es mi
caso, 130GB mínimo para poder asegurarnos que va a caber entero el backup.
Si queremos comprimir la imagen obtenida, necesitaremos bastante más,
llegando a casi necesitar el doble.

Pasos para poder hacer copia de seguridad de la SD de Home Assistant

 Apagamos el sistema, es recomendable entrar y hacerlo bien, es decir,


entrar por SSH para poner un comando del tipo:
 Extraemos la SD con cuidado
 La ponemos en el lector SD, da igual si tienes que usar un adaptador para
poder usarla, cuanto mejor sea el lector (USB 3.0), mejor
 La pinchamos en el PC
Desde Linux:

 Si usas Linux buscamos nuestra tarjeta en las unidades que nos aparecen
con el comando:

sudo fdisk -l

(Nos pedirá la contraseña del usuario que usamos la primera vez que lanzamos el
sudo)
Sacará un listado de las unidades que tenemos y, por ejemplo, en mi caso, como
vemos en la captura la unidad con 120GiB es /dev/sdf, por lo que haremos copia
de dicha unidad, aunque, antes tendremos que localizar donde guardar. Tengo un
disco duro externo montado y cuya ruta es /media/usuario/USBNTFS1, por lo que
lo grabaré ahí.

 Una vez localizada, pasaremos a hacer el volcado de la totalidad de la SD a


nuestro disco duro. El comando sería:

sudo dd bs=4M if=/dev/sdf | gzip > /media/usuario/backup-


raspberryHA.gz

(Nos pedirá la contraseña del usuario que usamos la primera vez que lanzamos el
sudo)

Si no quisiéramos comprimir la salida:

sudo dd bs=4M if=/dev/sdf of=/media/usuario/backup-


raspberryHA.img

(Nos pedirá la contraseña del usuario que usamos la primera vez que lanzamos el
sudo)

Recordad que sdf es el ejemplo de mi unidad así como /media/usuario/… es el


directorio donde yo he grabado, pero podría ser en vuestra carpeta de usuario,
que sería algo del tipo /home/usuario/ en su lugar.

Desde Windows:
 Si estás en Windows, puedes descargar el Win32 Disk Imager, tendrías que
ver la unidad que montó cuando pinchaste la SD en el PC para ponerlo bajo
“Device”, la daríamos al icono de la carpeta azul para ponerle en la unidad
donde tengamos el espacio disponible el fichero donde se guardará el backup,
por ejemplo D:\Backup\homeassistant.img
 Una vez hecho eso, le daríamos a “Read” para crear la imagen, como digo,
dependiendo del tamaño de la SD así como la velocidad del lector de tarjeta,
puede tardar muuuuucho.
Desde Mac:

 Si estás en Mac, es muy similar a Linux, buscamos la lista de unidades en


el PC abriendo un terminal y poniendo:

diskutil list
Buscaremos la que coincide con el nombre y tamaño de nuestra SD, como podría
ser /dev/disk1

 En el terminal, nos vamos a la carpeta donde tenemos sitio para poder


hacer el backup y lanzamos el comando:

sudo dd if=/dev/discodelaSD of=./backup-raspberryHA.dmg

(Nos pedirá la contraseña del usuario que usamos la primera vez que lanzamos el
sudo)

¿Y si queremos restaurar la copia que hemos realizado? Pues más o menos, son
los mismos pasos, aunque, cambian el orden de las cosas.

Teniendo claro que tenemos nuestra copia en un fichero, tendremos que hacer lo
siguiente. Antes de nada, revisa lo de arriba para poder localizar tanto la ruta
donde está la copia y la SD, mucho cuidado de no fallar con la SD, que ahora es lo
más delicado.
Restauramos el backup de la Raspberry Pi con Home Assistant a una SD

Desde Linux:

sudo gzip -dc /ruta/backup-raspberryHA.gz | dd bs=4M


of=/dev/discodelaSD

(Nos pedirá la contraseña del usuario que usamos la primera vez que lanzamos el
sudo)

Si no has comprimido la imagen, el comando es:

sudo dd bs=4M if=/ruta/backup-raspberryHA.img


of=/dev/discodelaSD

(Nos pedirá la contraseña del usuario que usamos la primera vez que lanzamos el
sudo)

Desde Windows:

Con el Win32 Disk Imager, elegimos con el icono azul el fichero de la imagen,
ponemos la unidad de la SD en “Device”, pero, ahora, pulsamos en “Write”

Desde Mac:
sudo dd if=/ruta/backup-raspberryHA.dmg of=/dev/discodelaSD

(Nos pedirá la contraseña del usuario que usamos la primera vez que lanzamos el
sudo)

Como he dicho antes, espero que no fallen las cosas y que no tengáis problemas
a la hora tanto de copiar como de restaurar, si detectáis cualquier fallo, podéis
avisar en los comentarios para poder corregirlo cuanto antes.

Esta copia que se ha creado no es solo de la configuración, se trata de un sistema


completo que arrancaría igual que si fuera la misma SD en el momento que hiciste
la copia, por lo que si se rompe físicamente la SD, se corrompe o falla a nivel de
sistema, es posible copiarlo en una SD de igual tamaño o superior para poder
arrancar el sistema de nuevo sin mayores contratiempos.
Home Assistant #20: Como actualizar al nuevo sistema de autenticado de Home

Assistant
Tutoriales

Como habéis podido ver, Home Assistant se encuentra actualmente trabajando a


nivel interno de código para realizar fuertes mejoras que lo harán más seguro, algo
que hizo que se detectara un problema grave de seguridad, ya corregido.

Uno de lo más significativo es el cambio en la autenticación del sistema, algo que


ya podemos activar en la 0.76, la versión lanzada hace unos días, pero que estará
totalmente activo en la versión 0.77, es decir, la próxima.

Para evitar que “nos pille el toro”, aunque tendrá retrocompatibilidad, es


recomendable usar el nuevo sistema cuanto antes, por lo que podemos empezar
por actualizar ya nuestra configuración para poder hacer uso de la misma y, poder
tener ya el sistema listo para la 0.77 cuando sea lanzada. Para poder hacerlo, os
enseñamos lo que hay que hacer.

Actualizar el sistema de autenticación de Home Assistant a la 0.77

 Primero tenemos que actualizar a una versión 0.76 o posterior. Si vienes de


una versión 0.75 o inferior, el proceso de actualización puede tardar hasta 20
minutos, en función del tamaño de tu base de datos, ya que realiza un proceso
de migración sobre la misma para poder añadirle mucha más información que
será aprovechada con las nuevas versiones.

cd /srv/homeassistant/
source bin/activate

sudo pip3 install --upgrade homeassistant

NOTA: Estos pasos son, en el caso de haber instalado con nuestra guía de


instalación de Home Assistant en español.
 Una vez actualizada, entramos a nuestro fichero de configuración:

sudo nano
/home/homeassistant/.homeassistant/configuration.yaml

 Para añadir:
Bajo el primer apartado que veis que pone “homeassistant:”

homeassistant:
# añadimos esto de abajo
auth_providers:
- type: homeassistant
# Si queremos compatibilidad con el sistema anterior,
descomentamos lo siguiente
# - type: legacy_api_password
 Reiniciamos (paciencia)
Ya dentro del sistema nos pedirá al cargar la web que creemos un usuario nuevo:
Y, una vez creado, refrescará la página y nos pedirá el usuario y contraseña para
poder entrar. Una vez dentro, ya estáis preparados para el nuevo sistema de
autenticado de Home Assistant.
Home Assistant #21: Controla tu aire acondicionado con un sonoff basic por

infrarrojos e integrarlo en Home Assistant

Primero, que vas a necesitar para controlar nuestro aire acondicionado por
infrarrojos:

 1 Sonoff Basic. Puedes comprarlo en eBay o Aliexpress


 1 emisor de infrarrojos. Aquí puedes elegir varias opciones o construirlo, en
mi caso he comprado el siguiente dealiexpress .También está la opción de
construirlo como indica Tasmota aquí.
 1 Programador USB TTL a 3.3v (e.g. CP2102, CH340G, FT232, PL2303) .
 Para flashear esptool.py. Necesitas python y pip.
Software que vamos a necesitar, pues esptool para flashear el sonoff y ya
dependiendo del uso que queramos darle podemos usar cualquier software MQTT
(por ejemplo mosquitto, podéis ver el tutorial para instalar un servidor MQTT) y
Home Assistant o una aplicación Android para controlar via MQTT nuestro aire
acondicionado.
Para Android podéis usar la aplicación MQTT Dash
Este firmware se ha generado usando la última versión estable de EspEasy R120
que podemos descargar aquí. A día de hoy está la 2.0.0 pero cuando se empezó a
desarrollar no estaba liberada como estable. También se ha usado la
libreríaHeatpumpIR de ToniA.

Manos a la obra: flasheando nuestro sonoff

Descarga la imagen el firmware de aquí


Descarga e instala la versión de python más reciente 3.x y luego instala pip con el
siguiente comando:

pip install esptool

NOTA: En algunos sistemas puede dar error, intenta con los siguientes
comandos: python -m pip install esptool opip2 install esptool

Conectar el FTDI con el sonoff

Para flashear el dispositivo suponiendo que tenemos el FTDI en el puerto COM7,


podéis mirar por internet como comprobar el puerto en el administrador de
dispositivos.

esptool.py --port COM7 write_flash -fs 1MB -fm dout 0x0


ESPEasy.sonoff-HVAC.bin

Una vez flasheado, se reiniciará y podéis configurarlo con el FTDI conectado o


conectarlo a la corriente. Con el FTDI es más seguro.

Configurando nuestro Sonoff/EspEasy


Cuando inicie el EspEasy creará una red que se llama ESP_0, la clave para
acceder a la red el password por defecto es configesp.

Si tenéis el DHCP configurado en vuestra red, os asignará una IP y para acceder


al sonoff tenéis que poner la siguiente ip en el navegador: 192.168.4.1 aunque
creo que si ponéis otra distinta os redirecciona a esa.

En este punto, configurar vuestra wifi como sigue:

Seleccionad vuestra red, poner el password y darle a conectar. Se reiniciará y os


indicará la IP que os ha dado vuestra red.

Accedéis a la IP que os indica y configuraremos los apartados siguientes como os


indico:
Os voy a indicar lo más importante que debéis configurar, el resto de opciones las
tenéis documentadas en la web de EspEasy.

 Name: Nombre de vuestro dispositivo, influirá a la hora de configurar el mqtt


en vuestro Home Assistant.
 Protocol: En nuestro caso vamos a usar Openhab MQTT que es compatible
con Home Assistant.
 Locate controller: Ip Addres para poner la dirección de nuestro servidor
MQTT.
 Controller port: puerto del servidor MQTT
 Controller user: usuario de conexión al servidor MQTT
 Controller Password: Password del usuario.
Le damos a submit y habremos terminado esta parte
Conexión y configuración del infrarrojos

VCC → Sonoff PIN 1 (3.3v)


GND → Sonoff PIN 4 (GND)
DAT → Sonoff PIN 5 (GPIO14) Se podría conectar al RX, TX u otro GPIO pero no
se ha probado.

Para configurar el Infrarrojos, iremos al apartado devices del firmware.

Le daremos a edit en el primero, en mi captura ya está configurado para un aire


acondicionado de Daikin.
Procederemos a configurar el dispositivo y el tipo de aire acondicionado. En el
name hay que indicar uno de los siguientes según vuestra marca.

 Daikin (mirar vuestro mando 433 y compatibles)


 daikin_arc417 (mirar vuestro mando)
 panasonic_ckp
 panasonic_dke
 panasonic_jke
 panasonic_nke
 panasonic_lke
 carrier_nqv
 carrier_mca
 midea
 fujitsu_awyz
 mitsubishi_fd
 mitsubishi_fe
 mitsubishi_msy
 mitsubishi_fa
 mitsubishi_heavy_zj
 mitsubishi_heavy_zm
 samsung_aqv
 samsung_fjm
 sharp
 hyundai
 hisense_aud
 gree (generico)
 greeyan
 fuego
 toshiba
El IDX/ VAR debe de ser distinto a cualquier otro device (dispositivo), en mi caso
solo tengo 1 por lo que pongo 1.

El 1st GPIO, en mi caso GPIO-14 pero como digo se pueden usar otros, si tenéis
WEMOS o NodeMCU podéis usar otros.

Le damos a submit y estaría todo lo básico listo.

Para terminar tendríamos que ir al apartado TOOLS→ Advanced y lo


configuramos como sigue:
Lo importante es el apartado subscribe template: /%sysname%/#

y Publish Template: /%sysname%/%tskname%/%valname%

Lo demás es para sincronizar el reloj. Con esto dejaríamos terminada la


configuración del sonoff.
Configuración de Home Assistant

Para el que solo quiera encenderlo y apagarlo podéis hacerlo de la siguiente


forma:

switch:

- platform: mqtt

name: "Daikin Salón" # el nombre que queráis

command_topic: "/sonoff-daikin/cmd" # el sonoff-daikin o el


que hayáis configurado en el apartado config de EspEasy.

payload_on: "heatpumpir,1"

payload_off: "heatpumpir,0"

qos: 1

retain: true

Si queréis tener un control completo tendréis que usar el componente climate mqtt
(https://www.home-assistant.io/components/climate.mqtt/)

climate:
- platform: mqtt

name: 'Aire acondicionado salón'

initial: 27

min_temp: 18

max_temp: 32

#current_temperature_topic: /status/sonoff-daikin/HEATPUMPIR

modes:

- 'off'

- 'on'

- heat

- cool

- dry

- fan

- maint

- auto

swing_modes:
- auto

- swing

- up

- mup

- middle

- mdown

- down

fan_modes:

- auto

- maximum

- high

- medium

- low

- silent

power_command_topic: /sonoff-daikin/HEATPUMPIR/POWER

payload_on: 1
payload_off: 0

mode_command_topic: /sonoff-daikin/HEATPUMPIR/MODE

temperature_command_topic: /sonoff-daikin/HEATPUMPIR/TEMP

fan_mode_command_topic: /sonoff-daikin/HEATPUMPIR/FAN

swing_mode_command_topic: /sonoff-daikin/HEATPUMPIR/HSWING

qos: 1

Agradecer a let’s control it  y ToniA no hubiera sido posible construir este firmware.
Espero que os haya gustado. Saludos!
Home Assistant #22: Como usar el Timer para mantener una luz encendida

mientras hay movimiento


Domótica Tutoriales

Después de pelearme bastante tiempo con Timer una herramienta de Home


Assistant que nos permite hacer algo sin tener que esperar un evento o, al menos,
controlar el tiempo hasta que sucede, de hecho, sin tener que repetir
automatizaciones, podemos hacer que esté funcionando de forma continuada.

Os explico lo que quería hacer para entender el funcionamiento de Timer en mi


caso:

Tengo una luz en la cocina bajo la encimera (tengo pendiente publicar el cambio
que le hice a la luz) que usando un sensor de movimiento, en mi caso un sensor
de movimiento Aqara para poder controlar la luminosidad, enciende la luz cuando
detecta movimiento, siempre que tenga menos luz de la indicada para que se
encienda solo cuando empieza a faltar luz en la cocina.

La automatización, podría hacerse de forma sencilla usando el estado del sensor


de movimiento, pero, al minuto y medio, la luz se apagaría si no detecta
movimiento de continuo, algo molesto cuando estás haciendo algo en la cocina y,
por tanto, había que mejorar ese comportamiento.

Estuve mirando como hacerlo y tenía pensado hacerlo por medio de algún
indicador binario para saber cuando apagar o no la luz, pero, encontré los Timers
y aunque me ha costado llegar a lo que creo que es la solución, lo tengo en
pruebas, pero, seguro que a más de uno le puede ayudar a mantener la luz
siempre encendida mientras sea necesario.

Declaración de Timer en configuration.yaml

Lo primero que tendremos que hacer es en nuestro configuration, declarar el


Timer que queremos, que, en mi caso lo he puesto de 2:20 para dar un tiempo
prudencial para confirmar que nos hemos ido:

timer:

cocina:

duration: '00:02:20'

Automations con Timer en Home Assistant

Una vez hecho eso necesitaremos 3 automations:

 Encendido de la luz la primera vez que entramos a la cocina y se detecta


movimiento, activando también el timer para que empiece a contar.
Encendemos la luz cuando cocinaPIR_occupancy (el sensor de Aqara)
siempre que la luminosidad en cocinaPIR_illuminance sea inferior a 12 lx:

- id: '1539039314913'

alias: Cocina LED ON

trigger:
- platform: state

entity_id: binary_sensor.cocinaPIR_occupancy

from: 'off'

to: 'on'

condition:

- below: '12'

condition: numeric_state

entity_id: sensor.cocinaPIR_illuminance

action:

- service: switch.turn_on

data:

entity_id: switch.LEDCocinaEncimera

- service: timer.start

data:

entity_id: timer.cocina
 Reseteo de la cuenta para que el Timer vuelva a contar desde el principio,
en caso de que la luz esté encendida y el sensor de movimiento pase de off a
on de nuevo (dejó de detectar movimiento, pero ha vuelto a detectar
movimiento):

- id: '15390123123913'

alias: Cocina LED Timer

trigger:

- platform: state

entity_id: binary_sensor.cocinaPIR_occupancy

from: 'off'

to: 'on'

condition:

- condition: state

state: 'on'

entity_id: switch.LEDCocinaEncimera

action:

- service: timer.start
data:

entity_id: timer.cocina

duration: '00:02:20'

 Por último, la automation que apagará la luz, cuando el Timer llegue a cero
y el sensor de movimiento esté en off, es decir, ya no se detecta movimiento:

- id: '1011'

alias: Apagado LED Cocina

trigger:

- platform: event

event_type: timer.finished

event_data:

entity_id: timer.cocina

condition:

- condition: state

state: 'off'

entity_id: binary_sensor.cocinaPIR_occupancy

action:
- service: switch.turn_off

data:

entity_id: switch.LEDCocinaEncimera

ACTUALIZACIÓN: He tenido que añadir una automatización más, ya que, se daba


el caso de que el Timer se acababa, pero, el sensor de movimiento seguía en on,
por lo que no apagaba la luz y, al no haber más Timer, la luz permanecía
encendida, esta es la que he puesto y ahora si que parece ir bien:

- id: '10122'

alias: Reinicio del timer

trigger:

- platform: event

event_type: timer.finished

event_data:

entity_id: timer.cocina

condition:

- condition: state

state: 'on'
entity_id: binary_sensor.cocinaPIR_occupancy

action:

- service: timer.start

data:

entity_id: timer.cocina

duration: '00:02:20'

Cada vez que iniciamos un Timer, si se estaba ejecutando, reinicia su duración a


la que tenga por defecto, o a la que le especificamos en el momento de llamarlo.
Para determinar si un Timer ha terminado, podemos verlo por medio del evento
finished o bien si la hemos parado por medio de cancelled.

Es un tutorial sencillo, pero como me ha costado dejarlo en su sitio, lo comparto


para aquellos que quieran controlar una luz u otro objeto de casa por medio de un
temporizador. Si necesitáis más información de los Timer en Home Assistant,
podéis verlo aquí.
¿Lo habéis podido poner?
Home Assistant #26: Securizando nuestro servidor Home Assistant

Conectar a Internet nuestro “Home Assistant” supone un aumento de la superficie


de exposición de nuestros servidores a internet, y por tanto conlleva ciertos
riesgos. Por eso, a través de este mini-tutorial vamos a ver varios “tips” que
podemos configurar para mejorar la seguridad de nuestra instalación cuando la
exponemos a Internet.

Es bien conocido que muchos usuarios comparten la misma contraseña para


múltiples servicios, incluso el mismo usuario. Lo que, en caso de que existiese una
brecha de seguridad estos datos podrían ser utilizados para poder acceder a otros
servicios, como por ejemplo nuestro servidor Home Assistant. Por esta razón,
necesitamos poner una medida de seguridad adicional que nos ayude a
protegernos.

Autenticación en pasos (2FA)

Con un sistema de autenticación en dos pasos, como su nombre indica, no


necesitaremos tener sólo nuestro usuario y contraseña, sino que también
tendremos que tener un dato adicional que demuestre que podemos acceder al
sistema.

Con la autenticación en dos pasos (también conocida como “autenticación de dos


factores”) habilitada en nuestra instancia de Home Assistant, añadiremos una
capa de seguridad extra al acceso. De forma que, para acceder nos harán falta
dos factores:
 Algo que sabes (tu contraseña)
 Algo que tienes (un código OTP)

¿Cómo activamos 2FA en Home Assistant?

Para habilitarlo, tendremos que ir a la esquina superior izquierda de nuestro


dashboard, donde aparecerá la primera letra de nuestro nombre. Una vez
pulsemos allí, accederemos a las propiedades de nuestro perfil.

Si nos desplazamos por la pantalla hacia más abajo, llegaremos a una sección
que indca: “Módulos de autenticación multifactor”, habilitaremos esta opción
(según aparece en la imagen) y nos dará la oportunidad de escanear un código
QR para usar una aplicación externa que nos permita gestionar nuestros códigos
OTP.

¿Qué aplicaciones puedo usar para gestionar mis códigos OTP?

Aquí va por gustos, podemos usar muchas y están disponibles para casi todas las
plataformas. Aquí os dejamos algunas:

 Google Authenticator
 Authenticator de LastPass
 Authy.
Una vez hayamos escaneado el código QR con nuestra aplicación favorita,
veremos en la pantalla unos números que cada cierto tiempo irán variando. Estos
es el segundo factor que nos va a solicitar nuestro Home Assistant cuando nos
autentiquemos

Añadiendo un sistema de protección extra

Además de conseguir acceder a nuestro home assistant mediante un segundo


factor de autenticación, vamos a habilitar también una medida de protección extra.
Vamos a permitir que Home Assistant se encargue por nosotros de bloquear
aquellas direcciones IP que intenten acceder a nuestro sistema y fallen más de “X”
veces a la hora de introducir las credenciales de acceso.

Para eso, dentro de la sección “http:” de nuestra configuración (configuration.yaml)


añadiremos las siguientes líneas:

Ip_ban_enabled: true
Login_attempts_threshold: 3
De esta forma cuando alguien falle más de tres veces seguidas la autenticación en
nuestro sistema, de forma automática nuestro Home Assistant bloqueará su
dirección IP creando una entrada en el fichero ip_bans.yaml
Y ya que estamos, ¿por qué no hacemos que además cada vez que haga un
baneo nos avise mediante pushbullet?, vamos allá

Notificaciones de intentos fallidos de acceso a nuestro Home Assistant

Para no hacer mucho más larga esta entrada en el blog, daremos por hecho que
ya tenemos configuradas las notificaciones mediante pushbullet.

Iremos al fichero automations.yaml e incluiremos las siguientes líneas

#########################################################

# #

# FAILED LOGIN ATTEMPTS #

# #
#########################################################

- alias: "Send notification upon failed login attempt"

trigger:

- platform: state

entity_id: persistent_notification.httplogin

condition:

- condition: template

value_template: "{{ trigger.to_state.state !=


'None' }}"

action:

- service: notify.pushbullet

data_template:

title:
"{{ states.persistent_notification.httplogin.attributes.messa
ge }}"
message: 'url:
https://whatismyipaddress.com/ip/{{ states.persistent_notific
ation.httplogin.attributes.message.split ("from ") [1]}}'

- service: persistent_notification.dismiss

data:

notification_id: 'httplogin'

Con esto conseguiremos que nos avise mediante el servicios Pushbullet cuando
han intentado acceder a nuestro sistemas. Pero para muestra un botón:

Home Assistant #29: Reutiliza tu viejo smartphone como cámara de seguridad

Seguro que muchos de vosotros estáis mirando para instalar una cámara en
Home Assistant para tener vigilancia en vuestros sistemas, pero, no sabéis que
cámara elegir, antes de comprar nada, podéis mirar este tutorial.

Normalmente, cuando cambiamos de teléfono, el viejo puede acabar en un cajón


sin mucho futuro hasta que nos cansemos de él y pase a la basura o a ser
propiedad de nuestros pequeños para acabar lanzándolo en algún momento de
diversión, pero, os propongo una uso más práctico y que, seguro, lo aprovecharéis
más.
Se trata de utilizar la cámara de tu viejo teléfono para poder tener una cámara en
Home Assistant de una forma muy fácil, ¿quieres? Estos son los pasos para poder
tenerla:

  Descargamos la App del Play Store IP Webcam:

 Abrimos la App y vemos la configuración, por norma general tendremos que


tocar poco, pero tenemos muchas opciones que según el teléfono que estemos
usando, tendremos que tocar o no. Por ejemplo, en “Preferencias de video”
podremos bajar la calidad a 1280 x 720 para no tener el teléfono ardiendo por
estar a la máxima resolución, incluso, bajando algo más la resolución si fuera
necesario. También podremos decir a que calidad grabar el vídeo y la carpeta
donde hacerlo si queremos tener la grabación almacenada.

 Pulsamos, abajo del todo en “Iniciar servidor” y veremos en la parte de


abajo de la pantalla algo del tipo http://192.168.1.106:8080 (esta es la IP en mi
caso, la vuestra cambiará).
 Ahora nos vamos a Home Assistant para poder configurar la cámara, y,
para ello tendremos que poner el siguiente código:

android_ip_webcam:

- host: 192.168.1.106

port: 8080

sensors:

- battery_level
- light

- motion

- proximity

- sound

switches:

- night_vision

- torch

- video_recording

 Una vez hecho esto, reiniciaremos Home Assistant y si todo ha salido bien,
tendremos la cámara funcionando en Home Assistant así:

Como podemos ver aquí, tenemos multitud de opciones, tanto para colocar
sensores que nos los proporciona la App, como interruptores, para, por ejemplo,
poder encender el flash de la cámara a modo linterna. Os recomiendo mirar las
opciones y probar a ver las que soporta vuestro teléfono.

¿Habéis podido hacerlo? Ya sabéis, si tenéis dudas, estamos en el Grupo de


Telegram y en el foro para ayudar :). ¡Gracias a Alcar por la idea del tutorial!
Home Assistant #31: Integramos acceso por NFC o RFID

Hace tiempo que tengo la casa conectada a modo alarma dentro de Home
Assistant y una de las cosas que se puede hacer para poder tener acceso, o para
cualquier uso que queráis, es hacerlo por medio de tags.

Los tags son pequeños identificadores que van sin pila y que cuando lo acercamos
a un lector, es alimentada por el campo de inducción y lanzan el número que los
identifica. En el caso del NFC, además, podemos hacerlo por medio de nuestro
móvil, si soporta dicha tecnología.

Si os interesa, he integrado en casa un lector RFID/NFC para poder tener el


acceso por medio de esta tecnología y, por ejemplo, poner o quitar la alarma.

Integrar NFC o RFID en Home Assistant

Lista de la comprar para poder poner NFC/RFID a Home Assistant

Lo primero que tenemos que hacer es comprar unos pocos elementos para poder
tener el punto de identificación donde pondremos el tag o nuestro smartphone, son
pocas cosas las que hacen falta y no son caras:

 Microcontrolador ESP8266: Vale prácticamente cualquier ESP8266, en mi


caso recomiendo un Wemos D1 mini, que es el que he usado y es muy
completo. Podéis comprarlo aquí (opción que pone ESP12) o aquí. Vale
cualquier Wemos D1 mini de los que salen aquí, pero os he puesto uno de
ellos.
 Cable dupond hembra-hembra: Estos cables os harán falta si vais a
empezar a hacer cosas de electrónica, si no tenéis, podéis
comprar aquí o aquí.
 Pinchos de codo: Necesarios para poder poner los cables en el lector
NFC/RFID. Podéis comprar aquí, seleccionad 10pcs (son 10 barritas de 40
pines) o 5pcs y elegid “Single Row/Bent” en el tipo o comprando aquí y
eligiendo el tercer tipo.
 Lector NFC/RFID: Necesitamos el modelo PN532, que podéis
comprar aquí o aquí. Algunos kits incluyen los pines y los cables dupond, por lo
que os los podéis evitar, mi consejo es comprarlos (son unos euros y no os
quedaréis colgados por un cable o un pin).
 OPCIONAL: Si queréis más tags, podéis comprar aquí donde pone (5PCS
RFID IC KEY).
OPCIONAL

 Soldador: Por cierto, por si no tienes soldador y quieres comprar algo que
esté bien y no cueste mucho, yo el 936H, si queréis, podéis
comprarlo aquí o aquí. También podéis comprar puntas para el soldador más
finas por poco más de 1€aquí.
 Estaño: Necesitaréis algo de estaño para soldar, podéis encontrar aquí, os
recomiendo algo fino para estas soldaduras. Podéis encontrarlo aquí.
Es necesario un conversor serial a USB, que puede que lo tengáis, pero si no,
podéis comprarlo aquí.
Ahora ya, con la lista de la compra hecha, tocará esperar un tiempo y podemos
seguir con los siguientes pasos. En total ronda los 10-14€, incluyendo algún tag
para probar.
Flasheo del Wemos D1 mini

Es necesario soldar los pines del Wemos D1 mini para poder flashearlo. Podiamos
haber elegido uno con los pines ya soldados, pero, igualmente tendrías que soldar
en el PN532 y el Wemos es muy cómodo por tener la posibilidad de alimentarlo
por USB.

Una vez que tengas las soldaduras hechas tendremos que flashearlo con la
herramienta esptool desde consola o podéis usar la herramienta pyflasher que os
mostramos, y, para los pines, podéis ver el tutorial que hizo nuestro compañero
Alcar para flashear un sonoff (o cualquier ESP8266).
Deberéis bajar la última versión de la rama 2.0 de ESPEasy, que podéis
encontrarla aquí. Una vez descargado el fichero ESPEasy_mega-2019……zip (los
puntos suspensivos son la fecha), descomprimimos, y, de entre todos los ficheros,
elegiremos el que acaba en “…._normal_ESP8266_4096.bin” (cuidado que
también está el del 8285).
Arranque del Wemos D1 mini

Una vez que lo flasheamos, aparemos y encenderemos nuestro Wemos D1 mini


para ver la Wifi que nos crea, que debería llamarse ESP_Easy_0, nos
conectaríamos con nuestro smartphone o con nuestro portátil para poder
configurarlo, la clave de la WiFi será configesp.
Abriendo cualquier web en el navegador, debería mostrar la web de configuración,
pero, si no lo hace, podéis acceder a la ip 192.168.4.1, que es donde debería estar
nuestro microcontrolador. Ahora, tocaría elegir nuestra WiFi de entre la lista y
ponerle la clave de nuestra WiFi.

Si todo ha salido bien, debería decirnos cual será la IP que va a tener en nuestra
WiFi real y al cabo de unos segundos o minutos, nosotros volveremos a estar en
nuestra WiFi, dentro de la configuración del ESPEasy, pero ya dentro de nuestra
propia WiFi. Si no os avisara de la IP que va a tener, os tocará ir a la configuración
de vuestro router y buscar algún nuevo equipo que se haya conectado,
normalmente con el nombre de ESPEasy, ESP0, o similares.

Configurando ESPEasy

Vamos a la pestaña “Config”:

 Unit name será el nombre del dispositivo, podéis poner lo que queráis, en
mi caso he puesto “Acceso”.
 En las WiFi Settings aparecerá la configuración de la WiFi que pusimos y
podemos poner una WiFi de respaldo en caso de que la primera caiga.
 El resto de parámetros se pueden dejar como salen.
 Pulsamos en el botón de abajo de Submit

Pestaña “Controllers”

Aquí tenemos que configurar nuestro servidor MQTT, si no tenéis instalado, es


necesario, podéis seguir nuestra guía para configurar un servidor MQTT.
Pulsamos en el botón primero de Edit y ponemos los datos, podéis usar el
Protocolo “OpenHAB MQTT”. Los datos a rellenar son, la IP, os pedirá Max Queue
Depth y Max Retries, yo le puse 1, y el usuario y contraseña del servidor MQTT.
Le damos a “Enabled” y pulsamos en Submit.

Pestaña “Hardware”
Yo lo tengo así, aunque no le doy uso, es para usar el LED de notificaciones:

Pulsamos en Submit y se guardará.

Pestaña “Devices”

Aquí es donde se configura el lector. Para ello es necesario darle al primer Edit.

Abrimos el desplegable y buscamos “RFID – PN532”


Una vez elegido, nos aparecerán otros campos. En Name podemos poner lo que
queramos, saldrá en el MQTT, yo le puse “Tag”, le damos a Enabled, ponemos,
por ejemplo el Reset Pin en el GPIO12 (D6) y marcamos “Send to Controller”.
Abajo en Values, también podemos poner “Tag”. Pulsamos submit y ya lo
tendríamos.

Conectamos el PN532 al Wemos D1 mini

Para poder usarlo, es necesario soldar los pines que van en el lado que tiene 4
(GND, VCC, SDA y SCL), además, en el lado que veréis muchos agujeros más
pequeños, es necesario soldar 1 pin, el que va etiquetado con RSTPDN (luego
explicaré el motivo)

Una vez soldados, ya solo nos quedaría conectar los cables que serían de esta
forma:
El reset lo conectamos, porque, según avisan en ESPEasy, el lector NFC/RFID
parece quedarse en algunos casos colgado y, la única manera de poder volverlo a
su ser es resetando o quitándole la corriente, de esta forma, lo puede hacer el
propio Wemos.

Comprobamos que funciona

Si todo está conectado, el software configurado, debería estar ya funcionando,


tenemos varias maneras de hacerlo, o bien miramos en el log del propio Wemos
(Pestaña Tools y botón Log). Deberíamos ver algo así:
O bien, por medio de mosquitto, conectando al servidor donde tenemos el servidor
MQTT y poniendo este comando:

mosquitto_sub -h localhost -t '#' -u usuariomosquitto -P


contraseñamosquitto -v

Debería salirnos algo así:

Configurando Home Assistant para ver el tag

Si todo va según lo previsto, podemos seguir con el último paso, configurar Home
Assistant. Para ello, tenemos que recordar todo lo que pusimos o bien hacemos lo
del paso anterior para ver el topic del mensaje mqtt para poder ponerle un sensor.
Dentro de la sección “Sensor:” pondremos lo siguiente:

- platform: mqtt

state_topic: "/Acceso/TAG/Tag"

name: "Lector"

expire_after: 2

icon: mdi:nfc-variant

payload_not_available: 0

Una vez hecho esto, tocaría reiniciar para ver si efectivamente, Home Assistant lo
ve. Le he puesto el nombre “Lector” pero podéis poner lo que queráis. En
state_topic, será lo que os aparezca en el servidor MQTT, que se compone por el
nombre del Wemos que pusierais, el nombre del Device y el Tag que pusimos
segundo dentro del “Device”.

Si todo ha salido bien, tendremos nuestro Tag dentro de Home Assistant, así:
Ahora solo nos quedaría una automatización, os pongo un pequeño ejemplo para
que veáis como usar el tag como trigger:

- id: '123456789'

alias: Mandamos mensaje por Telegram

trigger:

- platform: state

entity_id: sensor.lector

to: XXXXXXXXX (vuestro número de tag)

action:

- service: notify.TelegramGrupo

data:

message: 'Tag leído'

El ejemplo necesita que tengáis algún servicio de Telegram de notificaciones


funcionando, pero, podéis hacer cualquier cosa, apagar una luz, encender, etc.

Y con esto, ya podéis usar los tags, o vuestros móviles para poder hacer cosas
dentro de Home Assistant.
¿Habéis podido hacerlo? Ya sabéis, si tenéis dudas, abajo tenéis los enlaces del
foro y del grupo de Telegram.
Home Assistant #32: Integramos un sensor de temperatura de 1€

Después de nuestro tutorial para poder integrar el acceso por medio de NFC o


RFID en Home Assistant, he pensado en hacer una serie de tutoriales para poder
integrar diferentes dispositivos para hacer sensores caseros muy baratos.
En este caso he pensado en hacer un sensor de temperatura y presión con
precisión de 2 decimales que podemos regular la cantidad de muestreos que
realizan para poder tener una lectura lo más precisa posible.

NOTA: Para poder realizar este tutorial, deberías tener ya configurado el


Wemos D1 mini con ESPEasy y listo para añadir “devices”, por lo que si no
lo tienes, ve al link del tutorial (lo tienes aquí) y sigue todos los pasos de
“Flasheo del Wemos D1 mini” hasta que llegues a la parte que habla de la
pestaña “Devices”, esa no la hagas y sigue entonces este tutorial.

Lista de la compra para el sensor de temperatura

 Sensor BMP280: Se trata de un sensor con precisión de 2 decimales tanto


en la presión atmosférica como en la tempertura, su coste ronda 1€ y podéis
comprarlo aquí o aquí (Aliexpress sale un poco más barato).
 Controlador ESP8266: Al igual que dije en el tutorial de NFC, recomiendo el
Wemos D1 mini, que podéis compraraquí (Opción que pone ESP12) o aquí.
 Cable dupond hembra-hembra: Estos cables os harán falta si vais a
empezar a hacer cosas de electrónica, si no tenéis, podéis
comprar aquí o aquí.
OPCIONAL
 Soldador: Por cierto, por si no tienes soldador y quieres comprar algo que
esté bien y no cueste mucho, yo el 936H, si queréis, podéis
comprarlo aquí o aquí. También podéis comprar puntas para el soldador más
finas por poco más de 1€ aquí.
 Estaño: Necesitaréis algo de estaño para soldar, podéis encontrar aquí, os
recomiendo algo fino para estas soldaduras. Podéis encontrarlo aquí.

Soldadura del sensor de temperatura

Cuando compráis los sensores, suelen incluir los pines que hay que soldar, no
cuesta mucho, tan solo tendremos que sujetar los pines para poder pegarles el
estaño en la parte trasera para dejar la parte larga lista para conectar los cables
dupond.

Conexión del sensor de temperatura al ESP8266

Para conectar tendremos que seguir este esquema:

Una vez conectado, podemos pasar a la configuración del software en nuestro


ESPEasy.
Configuración del sensor en ESPEasy

Nos vamos a la pestaña de “Devices” y le damos a Edit al primero que tengamos


libre, ya que, podríamos tener, por ejemplo el control de acceso y este sensor
funcionando a la vez sin problema alguno.

Entonces desplegamos el menú y buscamos “Environment – BMx280” o


“Environment – BMP280”, la configuración debería quedar así (ojo, Altitude es la
altitud de la ciudad donde vivís). Podéis modificar el interval (segundos) al valor
que queráis tener. Podréis poner el nombre a los Values que queráis, en el caso
del BMP280 tan solo tenemos Temperatura y Presión atmosferica.

Si nos vamos al Log (Pestaña Tools y luego pulsamos en Log) veremos si todo ha
ido bien como aparecen los valores en el Log:

Al igual que si hemos configurado el MQTT siguiendo los pasos, veremos el valor
en el log del servidor MQTT
Integramos los valores del sensor en Home Assistant

Como con cualquier sensor MQTT, los pasos a seguir son sencillos, tendremos
que ver la estructura del topic para poder utilizarlo, si miramos el log del servidor
MQTT, lo tendremos sencillo:

Por lo que para poder usar estos valores en Home Assistant tendremos que poner
lo siguiente bajo la sección “sensor:” en nuestro configuration.yaml:

- platform: mqtt

state_topic: "/Sensores/Entorno/Temperature"

name: "Temperatura BMP280"

unit_of_measurement: "C"

- platform: mqtt

state_topic: "/Sensores/Entorno/Pressure"

name: "Presión BMP280"

unit_of_measurement: "hpa"
Una vez hecho esto, cuando reiniciemos Home Assitant debería aparecer dicho
sensor de esta forma:

Con esto ya tendríamos este sensor, que podemos poner, en cualquier lado de la
casa por su reducido tamaño.

Nota: He tenido un problema a la hora de ver los valores en el servidor


MQTT, es la primera vez que me pasa, pero el ESPEasy solo mandaba el
primer valor del sensor de temperatura, es decir, la presión no la mandaba.
Revisando, al intentar configurar otro Controller (con otro servidor MQTT
apuntando al mismo) ha empezado a mandar el segundo valor también, por
lo que creo que se debe tratar de algún fallo de la versión del ESPEasy que
tengo instalada. Si os ocurre lo mismo podéis contarlo en los comentarios.
Home Assistant #33: Integramos un sensor de luminosidad de 1€

Tras el último tutorial para integrar un sensor de temperatura de 1€ en Home


Assistant, como os dije, quiero poner algunos tutoriales más sobre el tema de
bricolaje, para poder hacer de forma muy barata diferentes sensores, ahora es el
turno de sensores de luminosidad.

Para poder realizar automatizaciones relacionadas con la iluminación, es muy


recomendable contar con la información de la luz que actualmente existe en una
habitación, para, por ejemplo, poder asegurarnos que si vamos a encender la
lámpara, es porque no hay luz suficiente. Imaginemos que tenemos la persiana
bajada de una habitación donde queremos controlar la iluminación, si entramos,
debería encender las luces para poder ver, mientras que si lo hacemos por la
hora, si las persianas están bajadas a las 11 de la mañana, lo normal es que no se
enciendan.

En este tutorial, os voy a mostrar como controlar esta luminosidad con un sensor
que podemos comprar por menos de 1€ tanto en Aliexpress como en eBay, pero,
al igual que os dije en el tutorial con el sensor de temperatura económico, será
necesario contar con un ESP8266 para poder hacerlo, y, al igual que os dije en los
anteriores, el Wemos D1 mini es una buena opción.

Lista de la compra para el sensor de luminosidad

 Sensor de luminosidad BH1750 que podéis


encontrar aquí y aquí (Aliexpress es un poco más barato, elegid el GY-302).
 Controlador ESP8266: Al igual que dije en el tutorial de NFC en Home
Assistant, recomiendo el Wemos D1 mini, que podéis comprar aquí (Opción
que pone ESP12) o aquí.
 Cable dupond hembra-hembra: Estos cables os harán falta si vais a
empezar a hacer cosas de electrónica, si no tenéis, podéis
comprar aquí o aquí.
OPCIONAL

 Soldador: Por cierto, por si no tienes soldador y quieres comprar algo que
esté bien y no cueste mucho, yo el 936H, si queréis, podéis
comprarlo aquí o aquí. También podéis comprar puntas para el soldador más
finas por poco más de 1€ aquí.
 Estaño: Necesitaréis algo de estaño para soldar, podéis encontrar aquí, os
recomiendo algo fino para estas soldaduras. Podéis encontrarlo aquí.

Soldadura del sensor de luminosidad BH1750

Tendremos que usar los pines que vienen con el sensor cuando lo compramos,
por lo que es rápido y solo hacen falta 5 puntos de soldadura para poder
conseguir  que tengamos las conexiones listas para ser conectados al ESP8266.
Conexión del sensor de luminosidad BH1750

Al igual que con el sensor de temperatura, el BH1750 funciona por I2C, por lo que
el conexionado será igual para poder hacerlo funcionar dentro de nuestro
ESPEasy, es decir, siguiendo esta tabla:

Configuración del sensor de luminosidad BH1750 en ESPEasy

Al igual que hicimos en el sensor de temperatura, tendremos que ir a la pestaña


Devices de nuestro Wemos D1 mini y pulsar sobre el primer Edit que tengamos
libres (por si tenéis varios ya en uso).

Ahora tendremos que elegir en el desplegable el BH1750 y dejarlo configurado


así:
Una vez hecho eso, podemos ir a la pestaña Tools y pulsar sobre Log, donde
deberíamos ver si el sensor está leyendo la información:

Podéis hacer como hice yo tapando con la mano, acercando, separando para que
veáis que actualiza los parámetros. También podemos buscar en nuestro
mosquitto, si está mandando correctamente los datos al servidor MQTT:

Una vez comprobado que todo está correcto, ya podemos integrarlo en Home
Assistant.
Integración en Home Assistant del sensor de luminosidad BH1750 en

ESPEasy

La integración en Home Assistant es muy sencilla, siguiendo los pasos de los


otros sensores que hemos hecho, nos fijamos por ejemplo en la captura anterior,
donde vemos lo que manda al servidor MQTT, ahí tenemos la clave para poder
integrarlo de esta forma:

- platform: mqtt

state_topic: "/Sensores/Luminosidad/Lux"

name: "Luminosidad"

unit_of_measurement: "Lux"

Ahora, solo nos quedaría reiniciar Home Assistant para poder comprobar si ya
tenemos sensor de luminosidad muy barato funcionando:

Y si todo ha salido correcto, ya habríais terminado el tutorial, ¿habéis podido? Si


tenéis cualquier duda, estamos en el grupo de Telegram y en el foro.
Home Assistant #35: Integramos la meteorología de AEMET

Hay muchos servicios de meteorología de los que podemos nutrir nuestro sistema,
pero, para según que ciudades, el más acertado puede ser el de AEMET, ya que,
es el servicio estatal centrado en toda España.

Gracias a un usuario del grupo, he podido descubrir este custom component que
nos permite poner una tarjeta con los datos de meteorología que queramos, si
queréis hacerlo, esta es la manera de conseguirlo:

Conseguir la clave de AEMET y la Station ID

 Lo primero que tenemos que hacer es visitar la web opendata.aemet.es


 Pulsamos sobre “Obtención de API Key”
 Nos pedirá un correo y completar el captcha de “No soy un robot”
 Una vez que le demos a Enviar nos debe llegar un correo (mirad en el
Spam, es bastante rápido el envío)
 El correo nos mostrará en enlace que al darlo se abrirá una nueva ventana
en la que nos avisa de que nos llegará la API key al correo
 Apuntamos la key para usarla en nuestro componente
 Para conseguir la station ID tenemos que ir a Acceso General en la página
de arriba
 Bajamos hasta “Valores Climatológicos
 En Climatologías diarias elegimos nuestra ciudad y la estación más cercana
y ya tendriamos el número, en mi caso sería 8178D

Descargamos el custom_component de meteorología con AEMET


 Vamos a la dirección github.com/kalanda/homeassistant-custom-
components
 Descargamos el zip para descomprimir su contenido
 Copiamos el fichero sensor/aemet.py dentro de la carpeta
custom_component/sensor que tenemos en la carpeta donde tenemos el
configuration.yalm de nuestro Home Assistant. Si no has instalado nunca un
componente externo de Home Assistant, tendrás que crear las carpetas
custom_component y dentro de ella sensor.
 Otra opción para descargar el componente si estamos por ssh en nuestra
Raspberry Pi es con git, poniendo:

git clone https://github.com/kalanda/homeassistant-custom-


components.git

De esta forma se descargará todo lo que vemos en github y podremos copiar


igualmente el fichero. Lo importante es que tengais en
/home/homeassistant/.homeassistant/custom_components/aemet/sensor.py el
fichero (contando con que habéis seguido el tutorial de la web para la instalación).

Configuración del sensor de meteorología AEMET

sensor:
- platform: aemet
name: AEMET
api_key: !secret aemet_api_key
station_id: !secret aemet_station_id
monitored_conditions:
- temperature
- humidity
- pressure
- precipitation
- snow
- visibility
Ahora, tocará reiniciar, y si todo ha salido correctamente, deberíais tener algo así:

¿Os ha salido?

ACTUALIZACIÓN: Corregida la ruta para el nuevo formato de Home Assistant,


¡gracias Jose!
Home Assistant #37: Integramos un sensor de movimiento diminuto de 1€

Siguiendo con la serie de tutoriales de bricolaje para poder conseguir hacer


sensores por muy poco dinero, ahora es el turno de un sensor de movimiento que
cuesta cerca de 1€ y que, además posee un tamaño muy reducido por lo que
podemos instalarlo en cualquier lado sin que se vea.

Llevo tiempo con estos dispositivos baratos y la verdad, con alguno de ellos
instalados y su funcionamiento no está nada mal, y, por eso, he pensado que os
podría gustar montar un sensor de movimiento de este tamaño, aunque, no es el
único modelo, hay diferentes e incluso con regulación de la sensibilidad (ideal si
tenéis mascotas) así como el tiempo de rearme.

Lo bueno que tiene es que con un  solo ESP8266 podríamos controlar multitud de
sensores de movimiento, por lo que podríamos tener controladas varias zonas con
muy poco dinero.

Para poder realizarlo, será necesario un ESP8266, que, como en otros tutoriales,
por comodidad, usaré el Wemos D1 mini.

Lista de la compra para el sensor de movimiento AM312

 Sensor de movimiento AM312 que podéis encontrar aquí y aquí (Aliexpress


suele tardar menos, es el modelo más pequeño)
 Controlador ESP8266: Al igual que dije en el tutorial de NFC en Home
Assistant, recomiendo el Wemos D1 mini, que podéis comprar aquí (Opción
que pone ESP12) o aquí.
 Cable dupond hembra-hembra: Estos cables os harán falta si vais a
empezar a hacer cosas de electrónica, si no tenéis, podéis
comprar aquí o aquí.
OPCIONAL

 Soldador: Por cierto, por si no tienes soldador y quieres comprar algo que
esté bien y no cueste mucho, yo el 936H, si queréis, podéis
comprarlo aquí o aquí. También podéis comprar puntas para el soldador más
finas por poco más de 1€ aquí.
 Estaño: Necesitaréis algo de estaño para soldar, podéis encontrar aquí, os
recomiendo algo fino para estas soldaduras. Podéis encontrarlo aquí.

Conexión del sensor de movimiento AM312

El conexionado es muy sencillo, ya que solo tiene 3 patillas, mirándolo desde la


parte superior cuando conectamos los pines, los numeramos como en la foto de
arriba y, por tanto el conexionado quedaría así:
Configuración del sensor de movimiento AM312 en ESPEasy

Dentro de ESPEasy, lo podemos configurar como un “Switch” normal, ya que, se


comporta de la misma forma y, por tanto, sería la configuración que
necesitaríamos.

Una vez que accedemos a la IP de nuestro Wemos D1, nos vamos a la pestaña
Devices, pulsamos en la primera linea que esté libre, ya que podemos tener
muchos dispositivos más conectados, y le damos a Edit.

Una vez dentro, en el desplegable, elegimos “Switch input – switch”, ahora nos
quedaría configurar el nombre, podemos poner, por ejemplo “movimiento”,
marcamos Enabled y tendremos que decirle en que patilla hemos conectado la
central del sensor de movimiento, en nuestro ejemplo, D5. Ya solo quedaría
marcar, “Send boot state” si queremos que mande la señal de como está cuando
arrancamos y “Send to Controller” para que lo mande al servidor MQTT que
tenemos que tener configurado. Quedaría algo así:
Si todo ha salido bien, podemos ver el log del ESPEasy yendo a Tools y pulsando
en Log:

Y mirando el servidor MQTT para ver los mensajes si aparecen:


NOTA: Mi Wemos se llama Cafetera por una cosa que tengo pendiente 😉

Integración en Home Assistant del sensor de movimiento AM312

Una vez que tenemos configurado el ESPEasy, podemos pasar a configurarlo en


Home Assistant es como configurar cualquier dispositivo que use MQTT y que sea
de tipo Switch, por lo que la configuración es más o menos así:

binary_sensor:

- platform: mqtt

name: "Movimientoam312"

icon: mdi:motion-detector

state_topic: "/Cafetera/Movimiento/Switch"

payload_on: "1"

payload_off: "0"

Una vez añadido eso al configuration.yaml, deberíamos poder verlo:


¿Habéis podido hacerlo? Espero que sí, si habéis encontrado algún problema, ya
sabéis que podéis preguntar en los comentarios o bien entrando al grupo de
domótica de Telegram o en el foro (un poco más abajo tenéis todos los enlaces).
Home Assistant #38: Integramos un sensor de distancia de menos de 1€

A la vista de que los tutoriales DIY gustan bastante, sigo con un nuevo tutorial
para poder controlar por medio de un ESP8266 diferentes sensores, en este caso
un sensor de proximidad que nos indica la distancia a la que estamos de él.

Lo bueno es que esa distancia se puede usar dentro de Home Assistant para
hacer lo que necesitemos, por ejemplo, si tenemos un garaje en casa propio y
queremos aparcar siempre a una misma distancia, podemos hacer que nos avise
cuando llegue a esa distancia, y, lo mejor, es que es muy económico.

Lista de la compra para el sensor de proximidad HC-SR04

 Sensor de distancia HC-SR04 que podéis encontrar aquí y aquí (Aliexpress


suele tardar menos pero en este sensor, es un poco más caro que eBay)
 Controlador ESP8266: Al igual que dije en el tutorial de NFC en Home
Assistant, recomiendo el Wemos D1 mini, que podéis comprar aquí (Opción
que pone ESP12) o aquí.
 Cable dupond hembra-hembra: Estos cables os harán falta si vais a
empezar a hacer cosas de electrónica, si no tenéis, podéis
comprar aquí o aquí.
OPCIONAL

 Soldador: Por cierto, por si no tienes soldador y quieres comprar algo que
esté bien y no cueste mucho, yo el 936H, si queréis, podéis
comprarlo aquí o aquí. También podéis comprar puntas para el soldador más
finas por poco más de 1€ aquí.
 Estaño: Necesitaréis algo de estaño para soldar, podéis encontrar aquí, os
recomiendo algo fino para estas soldaduras. Podéis encontrarlo aquí.

Conexión del sensor de proximidad HC-SR04

En esta parte, pongo las imágenes oficiales de ESPEasy porque hablan de


distintos tipos de conexionado, por el hecho de no tener problemas, ya que, el
sensor funciona a 5v mientras que el ESP8266 va a 3.3v y, la salida “Echo” del
sensor de proximidad va a 5v por lo que a la larga, acabaría estropeando nuestro
ESP8266, por lo que recomiendan cualquiera de estas configuraciones para bajar
a 3.3 la tensión que le damos al Wemos.

Usando un Level Shifter (Podéis comprarlo aquí)


De esta forma, será la configuración recomendada para evitar dañar nuestro
ESP8266.

NOTA: Para la prueba yo lo he conectado directamente, pero solo para poder


mostraros el funcionamiento, han sido unos minutos y lo he quitado para no
quedarme sin Wemos ;).

Configuración del sensor de proximidad HC-SR04 en ESPEasy


Al igual que hicimos en los otros sensores, nos iremos a la pestaña de Devices
para poder configurar un nuevo dispositivo, el cual, pondremos como dispositivo
“Distance HC-SR04, RCW-0001, etc.”. En caso de no aparecer, es posible que
necesitéis un firmware tipo “dev” de ESPEasy que es el que incluye todos los
sensores en pruebas.

Tendréis que usar 2 patas del ESP8266 digitales para poder configurarlo, en mi
caso he usado D5 y D6, marcamos Send to Controller y Enabled (en la parte de
arriba) y ponemos el intervalo que queramos de refresco, en mi caso, he puesto 5
segundos y le ponemos la etiqueta al valor 1 que tenemos abajo como “Distancia”,
quedaría algo así:

Si todo está correcto, podemos ir al log (Tools / Log) para ver si refresca cada 5
segundos con el valor de la distancia como vemos aquí:
Y, si miramos el MQTT, veremos que está mandando también la distancia:

Una vez hecho esto, estamos listos para integrarlo en Home Assistant

Integración del sensor de proximidad HC-SR04 en Home Assistant

Al tratarse de un sensor por medio de MQTT es bastante sencillo de integrar en


Home Assistant, pero, para que sea copiar y pegar, aquí tenéis la forma en la que
yo lo he puesto:

- platform: mqtt

name: "Distancia"

state_topic: '/Cafetera/Distancia/Distancia'

unit_of_measurement: "cm"

De esta forma, una vez que reiniciemos, tendremos la posibilidad de usarlo en lo


que queramos en nuestras automatizaciones. Dentro del sistema se vería así:
Espero que os haya gustado y que lo hayáis conseguido, si no, ya sabéis,
estamos para ayudar en el grupo de telegram de domótica o en el foro de la web.
Home Assistant #40: Controlador de LED RGB o RGBW con ESPHome

Hace poco tuve problemas con uno de los controladores LED que tenía y quería
poder usar la tira de led con la que venía y, aunque un controlador de LED Magic
Home vale poco, caí en la cuenta que con ESPHome se puede realizar el control
de los mismos, por lo que me puse a mirar para poder hacer el controlador de LED
con ESPHome.

Comenté la idea en el grupo de Telegram de la web, gustó, y me dijeron que “por


hablar” ahora me tocaba tutorial, y, aquí estoy.

Lista de la compra para el controlador de LED con  ESPHome

Aunque lo que he hecho ha sido todo una prueba de concepto, ha quedado


compacto, por lo que si os molestáis en hacer las soldaduras y demás, se puede
hacer como lo he hecho yo, pero, seguro que os podréis currar algo más “bonito” y
organizado. Al igual que os puse con los tutoriales con el ESP8266, esta es la lista
de lo que necesitaréis:
 Wemos D1 Mini para poder usar con ESPHome, podéis comprarlo aquí.
También se puede usar el ESP32 comprado aquí.
 Transformador de 12v a 5v y 3.3v que podéis comprar aquí
 Placa para soldar 4 x 6 cm de aquí . También podéis optar por un kit con
diferentes tamaños aquí (así podréis usar otras más adelante).
 Transistores BS170 de aquí
 Resistencias de 1K de aquí. Aquí si que os recomiendo, por el precio que
tienen, comprar de varios valores.
 Pines hembra para la tira de led de aquí.
 Cable como el que compré de aquí.
 Si no queréis soldar el Wemos o el ESP32 podéis comprar pines aquí.
Muchos componentes sale más a cuenta comprar varias unidades como os pongo,
y tarde o temprano, acabaréis usandolos si os gustan los tutoriales DIY.

Código ESPHome en el ESP8266

Antes de fijar el Wemos a la placa, es recomendable flashear con el código, ya


que, después, podréis hacerlo por OTA y os evitáis tener que desoldar. Para poder
hacer funcionar la tira LED, necesitaréis este código si usais un Wemos D1 mini:

esphome:

name: led

platform: ESP8266

board: d1_mini

wifi:

ssid: "wifi"

password: "domotica"
light:

- platform: rgbw

name: "Tira LED"

red: output_component2

green: output_component1

blue: output_component3

white: output_component4

effects:

# Use default parameters:

- random:

# Customize parameters

- random:

name: "aleatorio lento"

transition_length: 30s

update_interval: 30s
- random:

name: "aleatorio rápido"

transition_length: 4s

update_interval: 5s

output:

- platform: esp8266_pwm

id: output_component1

pin: D1

- platform: esp8266_pwm

id: output_component2

pin: D2

- platform: esp8266_pwm

id: output_component3
pin: D5

- platform: esp8266_pwm

id: output_component4

pin: D6

# Enable logging

logger:

# Enable Home Assistant API

api:

ota:

El funcionamiento es bueno y no he tenido problemas a la hora de la


configuración. Aseguraos de configurar tanto los datos de vuestra WiFi así como
los pines que habéis usado.
Placa del controlador de LED con ESPHome

Lo primero que tenemos que buscar es una placa donde soldar los componentes,
podéis usar pines hembra para evitar fijar, por ejemplo, el Wemos D1 mini, aunque
en mi caso, como tenía otro en camino, iba a dejarlo fijo, por lo que ya depende de
vosotros. El transformador que compré encaja muy bien dejando en medio el
Wemos, por lo que a los lados podemos poner los transistores y las resistencias
las podéis intentar fijar al lado o por la parte de abajo. Os pongo unas fotos de
como me ha quedado aunque no lo uséis de ejemplo, solo para colocar las cosas,
las soldaduras, hacedlas bien, porque yo he ido probando hasta que conseguí que
funcionara:

NOTA: Después de ver las fotos, entenderéis que no lo hubiera publicado,


¿no? xD
El esquema que tenéis que tener es este:
Integración en Home Assistant del controlador de LED con ESPHome

Como ya sabréis, todo lo que pongáis con ESPHome es detectado e integrado por
Home Assistant de una forma automática, por lo que tendréis en un momento el
control de la tira de LED para poder usarla con el color e intensidad que más os
guste.
En el ejemplo, he usado una tira de LED RGBW, pero podría haberse usado una
tira RGB o incluso una con leds direccionables y que puedan funcionar de forma
individual (mirad la web de ESPHome para los posibles usos.

Espero que os haya gustado y si tenéis alguna duda, podéis entrar al grupo de
Telegram o al foro para solucionarlas.
Home Assistant #41: Controlamos la cerradura de la puerta de la calle

Desde que nos robaron en casa (si, soy uno de los afortunados a los que le ha
tocado), la paranoia de tener la puerta cerrada en todo momento se ha
incrementado mucho más que antes, por eso, llevaba mucho tiempo dándole
vueltas para ver como conseguir controlar si la cerradura de la puerta de la calle
tiene o no la llave puesta.

Después de darle muchas vueltas, pregunté en el grupo y me dieron varias ideas,


y, esta que os voy a comentar es la que me parecía la más interesante y la que
finalmente he implementado en mi casa.

NOTA: Aunque el sistema lo he montado con Home Assistant, te funcionaría


exactamente igual si lo usas con Mi Home, verás una “puerta” abierta o cerrada en
función de como esté la llave.

Lista de la compra para controlar la cerradura de la puerta de la calle en

Home Assistant

Al haberlo hecho con el sensor de ventana o puerta de Xiaomi, es el que pondré


en la lista de la compra, el precio que he puesto es el mejor en el momento de
publicar el post, pero recomiendo suscribiros al canal de ofertas, ya que tendréis
los mejores precios actualizados a diario, podéis entrar aquí (o si no tenéis
Telegram, aquí para Facebook).
 Sensor de puerta o ventana de Xiaomi aquí.
 Imanes pequeños de neodimio aquí.
Instalación para controlar la cerradura de la puerta de la calle en Home

Assistant

Antes de colocarlo en su sitio, emparejamos nuestro sensor de puerta o ventana a


nuestro sistema Zigbee, reiniciamos si es necesario para verlo y poder actuar con
él.

La instalación es sencilla, primero necesitamos desmontar un sensor de puerta, en


mi caso he usado el de Xiaomi (o podría ser el de Aqara igualmente), pero podría
usarse cualquier otro sensor de puerta, por ejemplo con RF433Mhz o bien con
WiFi. Si tienes Zigbee en tu sistema, el de Xiaomi es bastante pequeño además
de que la pila dura años.

Una vez que lo abrimos, tenemos que mirar en los huecos donde entran los
bulones (las barras de acero que tiene que tener tu puerta para poder bloquearla,
ya sea de 1 o más posiciones, en mi casa, tengo 3 zonas, por lo que podía elegir
donde colocarlo y, después de medir, el de la parte inferior parecía estar hecho a
medida, por lo que opté por esa zona.
Una vez visto, le puse cinta de doble cara al sensor de puerta que hemos
desmontado y posteriormente ponemos (todavía sin pegar) el imán en el bulón
que va a quedar enfrentado (sin tocar) al sensor. Una vez que abrimos y cerramos
unas veces y ya vemos que ni toca ni se queda demasiado lejos, podemos fijar
con cianocrilato el iman al bulón.

En caso de que el imán toque el sensor cuando cerramos, debemos ganarle algo
de hueco, limando o como podamos y, si se queda muy lejos y no lo detecta
correctamente, tendremos que acercarlo poniendo algo en la parte trasera.

Una vez hecho esto, ya podemos verlo en Home Assistant.

Una vez que tenemos en Home Assistant ya metido el sensor, se trata de un


sensor normal de puerta o ventana y podemos jugar con las mismas
automatizaciones, para detectar que ha sido o no cerrado.

¿Habéis podido? Si tenéis cualquier duda, ya sabéis, podéis comentar aquí o bien
entrar al grupo de Telegram para solucionar la duda.
Home Assistant #42: Controlar el timbre de la puerta de casa

Después de ver que el tutorial para poder controlar la cerradura de casa, quería
poder controlar el timbre de la puerta de casa (el físico que hay en la misma puerta
de la casa y que indica que alguien está al otro lado y no en la calle esperando
que le abramos).

El controlar este timbre suele ser útil, por varios aspectos, por un lado podríamos
silenciar a nuestro criterio el timbre real (por ejemplo, por las noches) pero no
perder una llamada, ya que, la idea es mandar dicha señal por Telegram para
saber cuando alguien ha llamado, y, por otro (modo paranoia ON), para si estamos
de vacaciones o fuera de casa, poder activar ruidos, música o algo que pueda
hacer creer si alguien lleva mala idea, que hay alguien dentro de casa.

Lista de la compra para controlar el timbre de la puerta de casa en Home

Assistant

Para la compra de los dispositivos, tenemos la siguiente lista, aunque en las fotos
podéis ver otro ESP8266, he reutilizado uno que tenía en el cajón sin darle uso,
por dejarme el Wemos para los tutoriales, pero, os recomiendo el Wemos para
trabajar con él por ser más cómodo y poder alimentarlo con un USB.

Para el tutorial, he comprado lo siguiente:

 Optocoplador para controlar el timbre aquí


 Wemos d1 mini aquí
 Relé para controlar el encendido o apagado del sonido del timbre aquí
 Fuente de alimentación de 230 a 5v aquí
Puede que necesitéis cables para poder hacer el cableado si no tenéis.

Esquema para controlar el timbre de la puerta de casa en Home Assistant

Ahí os dejo el esquema de conexión. Como veis de la toma general de corriente


alimento el transformador y saco los 5v que alimenta el wemos d1 mini, el rele y el
optocoplador. Después, de la toma de 230v del timbre, lo llevo al optocopador y
además llevo el neutro al timbre directamente y la fase la paso por el relé para
poder actuar sobre él.

En cuanto al control, la salida del optocoplador va al Wemos d1 mini  a la patilla


que queramos que tengamos libre y la del control del relé igual, podemos decidir a
cual conectarla.

Integración en Home Assistant


Al tratarse de ESPHome, tenemos una integración directa, por lo que poniendo lo
mismo que he puesto yo, debería salir un sensor binario que es el encargado de
saber si  han llamado o no, además de un relé para poder activar o desactivar el
sonido.

Por lo tanto, una vez que el sistema detecte (o si no lo hace, yendo a la


configuración a poder integrar un dispositivo ESPHome a mano poniendo la IP)
nos reconocerá 2 nuevos entities que podremos usar en nuestro sistema.

En mi caso, el uso que le he dado ha sido para cuando detecta que llamen (suene
o no el timbre de forma sonora) nos notifique a Telegram así como por medio de
los altavoces Alexa que tengo en casa.

Ejemplos de uso para controlar el timbre de la puerta de casa en Home

Assistant
En mi caso, el uso que le voy a dar es que me notifique cuando llamen al timbre,
tanto si está activado como si no el relé, por lo que aunque no sea audible, si que
veremos en Telegram el mensaje y, adicionalmente, lo he puesto para que suene
en el grupo que tengo creado de los altavoces Alexa.

- id: '99999001'

alias: Timbre de la puerta de casa pulsado

trigger:

- platform: state

entity_id: binary_sensor.timbre

from: 'off'

to: 'on'

action:

- service: notify.telegramgrupo
data:

message: 'Están llamando a la puerta de casa'

- service: media_player.alexa_tts

entity_id: group.altavocesecho

data:

message: "Alguien llama a la puerta"

De esta forma, cuando suena, tenemos el mensaje en Telegram y también


sonando, así, podremos abrir o hacer otras acciones cuando no estemos en casa.