Muchos tenemos sistemas de seguridad integrados en Home Assistant para poder tener una alarma, más o menos compleja, para poder tener nuestra casa controlada cuando no estamos en ella y en muchos casos necesitamos un teclado numérico, y, en este pequeño tutorial os explico como integrar uno.
Explicación de la integración
Para aquellos que estéis un poco perdidos, para este tutorial lo que haré será usar un teclado numérico económico junto a un ESP32 y controlaré e integraré todo con ESPHome. En Home Assistant cada tecla nos aparecerá como un sensor binario, por lo que podemos usarlos de diferentes formas los teclados, no solo como números.
Como he dicho, necesitaréis tener instalado ESPHome para poder integrar y por si lo necesitáis, os paso la lista de lo que he usado.
Lista de la compra para integrar un teclado numérico en Home Assistant
- ESP32: Es el microcontrolador que he usado, pero, si queréis, podéis usar igualmente el ESP8266, aunque, por la diferencia de precio, yo me iría al ESP32 porque le podremos sacar más partido adelante. Si queréis el ESP32 podéis comprarlo aquí, si buscáis el ESP8266, podéis comprarlo aquí.
- Teclado numérico MPR121 integrado por I2C. El que yo he usado es el que podéis comprar aquí.
- Cables dupont que podéis comprar aquí
Conexión del teclado al ESP32
El teclado funciona con el protocolo I2C, por lo que necesitaremos conectar SDA y SCL de nuestro teclado a, en el caso del ESP32, SDA estará en el pin 21 y SCL en el 22, mientras que si trata del ESP8266, SDA será el GPIO4 y el SCL estará en GPIO5. Además, tendremos que alimentar con 3.3v el teclado, para eso, si usáis una placa de desarrollo como os he puesto, podréis sacar 3.3v del pin primero (al lado del botón BOOT) y gnd lo sacaremos del segundo pin de la otra fila (encima de Vin).
En el caso del ESP8266 para la alimentación, dependiendo de la placa que tendréis, podréis alimentar de los mismos 3.3v y gnd con que alimentéis la placa.
Una vez hecho esto, tenemos conexionado correctamente nuestro teclado y listo para ir a ESPHome para poder meter el código que necesitamos.
Integración del teclado MPR121 en ESPHome
Para poder empezar a trabajar, necesitaréis instalar ESPHome, que si venís siguiendo los tutoriales, ya lo tendréis instalado, por lo que podéis seguir leyendo para completar el tutorial.
Como he dicho, yo lo he implementado todo en un ESP32, por lo que el proyecto en ESPHome será sobre un ESP32 y, el código que necesitaréis será el siguiente:
esphome: name: teclado platform: ESP32 board: esp-wrover-kit wifi: ssid: "NOMBREWIFI" password: "clavewifi" # Enable logging logger: # Enable Home Assistant API api: password: 'claveapi' ota: password: 'claveapi' i2c: sda: 21 scl: 22 scan: True mpr121: id: mpr121_component address: 0x5A touch_debounce: 1 release_debounce: 1 touch_threshold: 10 release_threshold: 7 binary_sensor: - platform: mpr121 id: touch_key0 channel: 0 name: "Tecla 0" touch_threshold: 12 release_threshold: 6 - platform: mpr121 id: touch_key1 channel: 1 name: "Tecla 1" touch_threshold: 12 release_threshold: 6 - platform: mpr121 id: touch_key2 channel: 2 name: "Tecla 2" touch_threshold: 12 release_threshold: 6 - platform: mpr121 id: touch_key3 channel: 3 name: "Tecla 3" touch_threshold: 12 release_threshold: 6 - platform: mpr121 id: touch_key4 channel: 4 name: "Tecla 4" touch_threshold: 12 release_threshold: 6 - platform: mpr121 id: touch_key5 channel: 5 name: "Tecla 5" touch_threshold: 12 release_threshold: 6 - platform: mpr121 id: touch_key6 channel: 6 name: "Tecla 6" touch_threshold: 12 release_threshold: 6 - platform: mpr121 id: touch_key7 channel: 7 name: "Tecla 7" touch_threshold: 12 release_threshold: 6 - platform: mpr121 id: touch_key8 channel: 8 name: "Tecla 8" touch_threshold: 12 release_threshold: 6 - platform: mpr121 id: touch_key9 channel: 9 name: "Tecla 9" touch_threshold: 12 release_threshold: 6 - platform: mpr121 id: touch_key10 channel: 10 name: "Tecla 10" touch_threshold: 12 release_threshold: 6 - platform: mpr121 id: touch_key11 channel: 11 name: "Tecla 11" touch_threshold: 12 release_threshold: 6
Para explicar un poco el funcionamiento, se necesita configurar la parte de la WiFi, para que tenga conectividad y, para el teclado, es necesario declarar el I2C con los pines por donde viene, así como el módulo para soportar el teclado y, finalmente, hace falta declarar cada tecla como un sensor binario que, en Home Assistant, indicará si está o no pulsado.
Vista en Home Assistant del teclado numérico MPR121
Como hemos dicho antes, cada número pasa a ser un sensor binario en el que podemos ver si se ha pulsado o no a la hora de integrarlo en Home Assistant, por lo que ya es decisión nuestra la manera de usarla.
Se puede usar como numérico, pero realmente podríamos hacernos un mando a distancia para Home Assistant con 12 teclas para realizar las acciones más comunes, por lo que sería muy práctico y barato.
Para poder usar cualquier botón del teclado, tendríamos que usarlo como haríamos como con cualquier sensor binario:
- id: '9999990001' alias: Pulsación del 1 trigger: - platform: state entity_id: binary_sensor.tecla_1 from: 'off' to: 'on' action: - service: notify.telegramgrupo data: message: 'Pulsada la tecla 1'
De esta forma, mandaríamos un mensaje a nuestro Telegram (si lo tenéis configurado).
¿Os ha salido?