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).

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:

PN532 Wemos D1 mini
GND G (El siguiente al pin de 5v)
VCC 3V3 (lado opuesto del 5v)
SDA D2
SCL D1
RSTPDN D6

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.

La entrada Home Assistant #31: Integramos acceso por NFC o RFID se publicó primero en Domótica en Casa.

Eduardo Ruiz

Informático de vocación, apasionado de la tecnología y blogger desde hace mucho tiempo, escribo de lo que me entretiene y disfruto con ello. Si deseas seguirme, usa el rss del blog o en mi perfil de .