En este nuevo tutorial vamos a ver cómo hackear una tira LED RGB o tira LED Bluetooth que utilizan el protocolo de comunicación ELK BLEDOM.
Y todo gracias a un ESP32 y ESPHome con el que vamos a poder controlar hasta 3 tiras LED RGB Bluetooth. Y como no podía ser de otro modo, lo vamos a integrar en Home Assistant para poder controlar y automatizar desde nuestro sistema domótico.
De paso te vas a llevar un tutorial que te puede servir si, por lo que sea, decides hackear otros dispositivos Bluetooth porque más o menos se haría igual.
Indice de contenidos
- 1 Capítulos ELK BLEDOM tira LED RGB Bluetooth
- 2 Esquema general control tira LED Bluetooth
- 3 Material para tira LED RGB Bluetooth
- 4 Configuración inicial tira LED Blutooth
- 5 Protocolo de comunicación ELK BLEDOM
- 6 Control tira LED RGB Bluetooth ELK BLEDOM desde ESPHome
- 7 Tira LED RGB Bluetooth en Home Assistant
Capítulos ELK BLEDOM tira LED RGB Bluetooth
Si quieres ir a tiro hecho aquí tienes los capítulos del vídeo.
00:00 Introducción
02:08 Esquema general hack tiras LED RGB Bluetooth con ESPHome y ESP32
04:35 Material control tiras LED Bluetooth
07:14 Configuración inicial ESPHome, ESP32 y Bluetooth
10:00 Protocolo Bluetooth ELK BLEDOM
13:23 Código ESPHome para tiras LED Bluetooth
17:00 Integración tiras LED Bluetooth en Home Assistant
Esquema general control tira LED Bluetooth
A ver, a poco que te des una vueltecita por Internet vas a ver el amplio abanico de posibilidades que existe en cuanto a las tiras de LED RGB.
Que si WiFi, que si Zigbee, que si WLED o que si la madre que lo pario.
Otro día hablaré de cuales son las ventajas y desventajas de cada una de estas tecnologías pero hoy voy a centrarme en las tiras de LED Bluetooth, de hecho voy a habar de unas tiras LED concretas que son la hostia. Luego te cuento más.
Y si he decidido grabar este vídeo hablando de estas tiras es por tres razones.
La primera es que gracias a lo que vas a ver aquí vas a poder controlar tiras de LED Bluetooth con un único controlador WiFi basado en ESPHome. Ese controlador va a ser un ESP32.
Importante. Para este proyecto no puedes utilizar un ESP8266 debido a que este SoC o microcontrolador no tiene la capacidad de conectarse vía Bluetooth.
La segunda es que gracias a esto vamos a poder controlarlo todo en local, es decir, que esas tiras LED RGB Bluetooth de las que luego te hablaré no dependen de los fabricantes, de sus políticas y de sus nubes de caramelo.
Y la tercera y última razón, aunque no menos importante, es su precio porque puedes encontrar tiras LED RGB Bluetooth a partir de 1 euro el metro, más barato que el metro de manguera.
Por lo tanto, la idea de este vídeo es poder controlar de forma inalámbrica vía Bluetooth diferentes tiras LED situadas por tu casa utilizando un ESP32 que, gracias a que se puede conectar a tu red local a través de la WiFi, vas a poder controlarlo y automatizarlo desde Home Assistant.
Y esto es muy interesante porque aparte de que todo funciona en local, de que como veremos en un momento su precio es ridículo y que es compatible con Home Assistant, aparte de todo esto este sistema nos da una gran flexibilidad ya que las tiras LED no tienen que estar conectadas directamente al ESP32.
Me refiero a que vas poder coger una tira LED Bluetooth ponerla en la moldura otra detrás del mueble y otra al lado del sillón y todas van a funcionar de forma sincronizada sin que tengan que estar conectadas físicamente al controlador.
Bien, una vez tenemos claro dónde queremos llegar, vamos a ver el material que vamos a necesitar.
Material para tira LED RGB Bluetooth
Las tiras de LED que voy a utilizar se basan en el controlador de ELK BLEDOM, utilizan la tecnología BLE Bluetooth Low Energy, en spanish Bluetooth de bajo consumo. Con este controlador pasa como con los dispositivos Tuya, que hay muchos fabricantes que son los más populares y los más económicas.
Puedes comprar una tira de 3 metros por unos 3 euros e incluso más baratas. Eso sí, no son LEDs direccionables, es decir, que no puedes modificar los LED de forma individual como lo hacemos con WLED porque utilizan otro tipo de LED que se conoce como LED 5050.
Esto limita los efectos que podemos llegar a conseguir pero si lo que quieres es simplemente iluminar con la posibilidad de cambiar de color e intensidad, es más que suficiente.
Dentro de los diferentes formatos tienes las tiras de LED sin ninguna protección o puedes comprar con una carcasa de gel. Estos últimos son algo más caros y en principio sirven para colocar en exteriores aunque si vives en Vigo yo me lo pensaría dos veces.
Para utilizarlas basta con instalar una aplicación en el móvil que se llama LotusLamp y, mediante Bluetooth, vas a poder controlarlas desde el móvil. A ver, esto esta bien si quieres fanfarronear delate de tu cuñado Mariano, pero lo que vamos a ver en este vídeo nos va a permitir automatizarlas y controlarlas desde nuestro sistema domótico.
Algo que tienes que tener en cuenta a la hora de comprar es asegurarte que utilizan el controlador ELK BLEDOM, lo podrás localizar porque el controlador tiene un formato muy característico.
Lo digo porque es fácil confundir una tira LED Bluetooth con una tira LED que se controla con infrarrojos. Estas últimas suelen venir con un mando a distancia y no son compatibles con lo que vamos a ver a continuación.
Como alimentación puedes utilizar una fuente de 5V de, como mínimo, 1A aunque esto dependerá de la longitud de la tira. Para alimentar cada tira de forma individual puedes utilizar un cargador del móvil o una fuente conmutada de las que ya hemos visto en el canal.
Luego vamos a necesitar una placa de desarrollo basada en el ESP32 que tenga WiFi y Bluetooth. Ojo con esto porque no todos los ESP32 tienen Bluetooth. Por ejemplo, el ESP32-S2 es solo WiFi.
Como no es necesario que el ESP32 esté conectado directamente a las tiras, quizás sea una buena idea utilizar alguna placa que tenga un puerto Ethernet. Siempre que puedas cablear un dispositivo hazlo.
Puedes utilizar cualquier modelo con Bluetooth porque todos son compatibles con los componentes que vamos a utilizar de ESPHome.
Eso sí, dos limitaciones importantes con respecto a utilizar el Bluetooth de un ESP32.
La pila de software Bluetooth en un ESP32 consume una cantidad significativa de RAM, es decir, que traga más RAM que un gato con dos casas. Por eso se recomienda que si vas a utilizar las capacidades Bluetooth de un ESP32 es mejor no controlar más componentes como sensores o actuadores ya que puede dar problemas.
Y otra limitación importante es que un ESP32 solo puede controlar 3 dispositivos Bluetooth a la vez, si necesitas controlar más tienes que hacerlo con otra placa ESP32.
Y esto es todo lo que necesitamos a nivel de hardware, una tira LED Bluetooth, o varias, que utilicen el controlador ELK BLEDOM y un ESP32 a pelo. No hay que soldar nada ni conectar nada, puedes utilizar el ESP32 a pelo.
A continuación vamos a ver cómo conectarlo todo de forma inalámbrica a través del Bluetooth.
Configuración inicial tira LED Blutooth
Antes de meternos a ver el código es importante tener claro un concepto de las redes de datos, me refiero a la dirección MAC. Todos los productos electrónicos y dispositivos que se conectan a una red deben estar identificados a través de una dirección MAC. Se trata de un número que identifica de forma única a cada dispositivo o tarjeta de red. Es como su DNI.
Y da lo mismo si el dispositivo se conecta por Bluetooth, WiFi, ethernet o Zigbee, todos los dispositivos deben tener asociada una dirección MAC. TO-DOS.
Bien, aclarado esto vamos a ver el primer paso que tenemos que dar para poder controlar las tiras de LED, identificar la MAC de la tira. Para ello vamos a utilizar el siguiente código donde tenemos la configuración típica del nodo, la placa, el acceso a Home Assistant y la configuración de la red WiFi.
Aparte de lo básico, hay que añadir el componente ESP32 BLE Tracker de ESPHome con el que vamos a escanear los dispositivos Bluetooth.
Compila y carga el código.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
esphome: name: bleled friendly_name: Ble LED esp32: board: esp32dev # Enable logging logger: # Enable Home Assistant API api: ota: password: "" platform: esphome wifi: ssid: !secret wifi_ssid password: !secret wifi_password fast_connect: true # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "bleled" password: "0CJbnee3Q4t4" captive_portal: web_server: port: 80 esp32_ble_tracker: text_sensor: - platform: ble_scanner name: "BLE Devices Scanner" |
Una vez ha subido al microcontrolador el siguiente paso es conectar la tira o tiras LED Bluetooth a la alimentación. Esto lo puedes hacer conectándolas a un USB del ordenador o con un cargador móvil, lo importante es que estén alimentadas y encendidas.
Luego abre un navegador y pon la URL que se corresponde con el nombre del dispositivo seguido de .local Por ejemplo, en mi caso el dispositivo se llama bleled y por lo tanto la URL es bleled.local Esto abrirá una página donde vas a poder ver el log.
Aquí es donde tenemos que buscar la dirección MAC de las tiras LED RGB BLuetooth. Estas deben estar más o menos cerca, me refiero a que no pueden estar al otro extremo de la casa. De hecho aparecerán todos los dispositivos Bluetooth que hay cerca del ESP32. Busca todos aquellos registros del log que empiezan con ELK-BLE.
En mi caso he encontrado dos porque he conectado dos tiras LED RGB Bluetooth. Guarda la dirección MAC de cada una de ellas porque luego nos harán falta.
Una vez tenemos localizadas las tiras vamos a ver cómo podemos enviar los comandos para encender, apagar y cambiar de color a cada una de ellas gracias al protocolo ELK BLEDOM.
Protocolo de comunicación ELK BLEDOM
A ver, si tu configuras estas tiras LED para controlarlas con la aplicación móvil para que se puedan comunicar tiene que hablar el mismo idioma, es decir, que cuando seleccionemos el color rojo en la app la tira LED RGB se ponga en color rojo. Y para que esto suceda es necesario utilizar un protocolo de comunicación.
Sin entrar en muchos detalles, un protocolo son las reglas y normas preestablecidas para que dos máquinas se puedan comunicar. Protocolos de comunicación hay muchos, TCP-IP, UDP o I2C por mencionar algunos.
Dentro de todos esos protocolos están los protocolos abierto que suelen estar muy bien documentados. Cuando esto sucede es relativamente sencillo comunicarse con las máquinas que hablan este tipo de protocolos a través de una aplicación o software.
Pero cuando esto no sucede porque el protocolo no es abierto intentar comunicarse con las máquinas que lo utilizan es bastante complejo. Ese es el caso de las tiras LED Bluetooth que hemos visto, que utilizan el protocolo ELK BLEDOM que no es público.
No hay una documentación oficial que te diga cuales son las reglas para poder comunicar con este tipo de dispositivos.
Hasta aquí habríamos llegado si no hubiera una solución de hecho, vas a flipar con las mentes pensantes que hay en Internet.
Porque para solucionar esto lo que se suele hacer es utilizar unos dispositivos que se conocen como sniffers (husmeadores). Dispositivos capaces de escuchar los mensajes del protocolo para poder hacer lo que se conoce como ingeniería inversa.
Si pulso el botón de color rojo ¿Cuál es el comando que se envía?
Con un buen sniffer Bluetooth, una taza de café y una buena dosis de paciencia se pueden descifrar protocolos siempre y cuando estos no estén cifrados.
En el caso del protocolo de ELK BLEDOM hemos tenido mucha suerte porque una mente preclara ya hizo todo este trabajo por nosotros y publicó el protocolo de forma abierta en su página de GitHub. En esta página podemos ver qué mensaje tenemos que enviar a una tira LED Bluetooth para cambiar el color o para cambiar el brillo.
En esta misma página también vamos a encontrar dos parámetros importantes en la comunicación Bluetooth: el UUID del servicio y de la característica.
Estos dos parámetros representan un servicio y una características para ese tipo de dispositivos que junto con la MAC, nos permiten enviar comandos a los dispositivos Bluetooth que utilizan ese protocolo.
A ver, que la comunicación Bluetooth es bastante más compleja que todo esto, de hecho podría estar aquí hasta Navidad hablando de cómo funciona, pero ese no es el objetivo.
Por lo tanto, gracias a que hay gente muy espabilada en Internet tenemos acceso al protocolo ELK BLEDOM que utilizan las tiras LED RGB Bluetooth. Lo único que nos falta es enviar de alguna manera esos comandos desde el ESP32.
Y la forma más rápida, limpia y fácil que conozco de hacerlo es utilizando ESPHome.
Control tira LED RGB Bluetooth ELK BLEDOM desde ESPHome
El código que vamos a ver a continuación nos va a permitir comunicar un ESP32 con una tira LED Bluetooth utilizando el protocolo ELK BLEDOM. De hecho, este código es válido para comunicar un ESP32 con cualquier otro dispositivo Bluetooth siempre y cuando tengamos acceso al protocolo de comunicación.
Dentro de ESPHome hay un componente que nos permite enviar comandos a través de Bluetooth. Ese componente se llama BLE Client y para poder comunicarse es necesario configurar cada dispositivo de la siguiente forma.
1 2 3 4 5 |
ble_client: - mac_address: BE:67:00:3D:D9:FC id: tiraLeds1 - mac_address: BE:60:80:00:36:AD id: tiraLeds2 |
Importante. Cambia las direcciones MAC por las direcciones de tu tira LED Bluetooth.
Donde:
- mac_address: es la MAC del dispositivo en cuestión.
- id: es un identificador único dentro del código.
Una vez conectado ya podemos enviar comandos con el protocolo ELK BLEDOM y lo hacemos a través de una de las acciones del componente, BLE Write. Solo es necesario configurar esta acción dentro de un evento.
Por ejemplo, podemos utilizar un cotón que, cuando pulsemos, envíe el comando para cambiar de color la tira LED Bluetooth. Para probarlo vamos a añadir un botón personalizado de ESPHome.
1 2 3 |
button: - platform: template name: "Interruptor Tira LED RGB" |
A continuación configuramos el evento on press del botón para que, cuando se presione, envíe el comando para cambiar el color de la tira LED RGB según el protocolo ELK BLEDOM. Para ello utilizamos la acción BLE Write del componente BLE Client.
1 2 3 4 5 6 7 8 9 10 |
button: - platform: template name: "Interruptor tira 1" on_press: - ble_client.ble_write: id: tiraLeds1 service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb characteristic_uuid: 0000fff3-0000-1000-8000-00805f9b34fb # Lista de bytes a scribir value: [0x7E, 0x00, 0x05, 0x03, 0x32, 0x8E, 0x58, 0x00, 0xEF] |
Esta acción tiene los siguientes parámetros:
- id: es el identificador del cliente Bluetooth que hemos configurado en el componente BLE Client anteriormente. En este caso es tiraLeds1.
- service_uuid: es el UUID del servicio que indican en el protocolo ELK BLEDOM. Copia y pega.
- characteristic_uuid: es el UUID de la características que indican en el protocolo ELK BLEDOM. Copia y pega.
- value: es el comando que hay que enviar vía Bluetooth para cambiar el color de la tira LED. Ahora veremos cómo hay que mandar el mensaje.
Según el protocolo ELK BLEDOM publicado en GitHub, la estructura del mensaje para cambiar de color una tira LED Bluetooth tiene 9 bytes de los que los cuatro primeros son valores fijos, el quinto es la componente roja, el sexto la componente verde, el séptimo la componente azul y los dos últimos tienen un valor fijo:
- 1 = 0x7E
- 2 = 0x00
- 3 = 0x05
- 4 = 0x03
- 5 = Rojo
- 6 = Verde
- 7 = Azul
- 8 = 0x00
- 9 = 0xEF
Respecto a los componentes de color deben ser un valor entre 0 y 255 expresados en hexadecimal de esa forma:
- 0x32 = 50
- 0x8E = 142
- 0x58 = 88
Si has configurado otra tira LED Bluetooth bastaría con duplicar el código anterior y cambiar el identificador del cliente Bluetooth para enviar el mismo comando.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
button: - platform: template name: "Interruptor tira" on_press: - ble_client.ble_write: id: tiraLeds1 service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb characteristic_uuid: 0000fff3-0000-1000-8000-00805f9b34fb # Lista de bytes a escribir value: [0x7E, 0x00, 0x05, 0x03, 0x32, 0x8E, 0x58, 0x00, 0xEF] - ble_client.ble_write: id: tiraLeds2 service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb characteristic_uuid: 0000fff3-0000-1000-8000-00805f9b34fb # Lista de bytes a escribir value: [0x7E, 0x00, 0x05, 0x03, 0x32, 0x8E, 0x58, 0x00, 0xEF] |
El siguiente paso es compilar y subir el código a la placa y una vez lo has subido, abre un navegador y accede de nuevo a la URL del nodo. Aparecerá un botón que si todo ha ido bien al pulsarlo, cambiará la tira LED RGB Bluetooth o tiras al color configurado.
Importante. Tienes que haber conectado a la alimentación la tira LED Bluetooth.
El siguiente paso es integrar todo esto en Home Assistant y aquí es donde podemos hacerlo de muchas formas pero a continuación te voy a mostrar cómo lo he hecho yo.
Tira LED RGB Bluetooth en Home Assistant
Lo que vamos a ver a continuación es un simple resumen de la solución que he implementado en mi sistema domótico, me refiero a que no lo voy a desarrollar porque son temas avanzados de Home Assistant que por sí solos darían para varios tutoriales.
Para poder controlar nuestras tiras de LED es necesario crear algún tipo de dispositivo o entidad dentro de Home Assistant. La idea es crear una plantilla o template del tipo luz.
A ver, las plantillas no son más que entidades que no se relacionan con un dispositivo físico como hacen las entidades de cualquier dispositivo, estas entidades especiales obtienen sus valores de otras fuentes de información.
En nuestro caso esta información la vamos a obtener de 4 ayudantes de tipo numérico que representan el brillo y los tres componentes de color de la tira LED Bluetooth.
En la documentación oficial de Home Assistant puedes ver varios ejemplos de plantillas para crear luces. He cogido una, la he modificado y me ha salido esto.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
light: - platform: template lights: tiras_navidad: friendly_name: "Tiras LED Navidad" turn_on: action: script.script_tiras_navidad_on turn_off: action: script.script_tiras_navidad_off set_rgb: - action: input_number.set_value data: value: "{{ r }}" entity_id: input_number.tiras_navidad_r - action: input_number.set_value data: value: "{{ g }}" entity_id: input_number.tiras_navidad_g - action: input_number.set_value data: value: "{{ b }}" entity_id: input_number.tiras_navidad_b set_level: action: input_number.set_value data: value: "{{ brightness }}" entity_id: input_number.tiras_navidad_brillo |
Esta plantilla lo único que hace es relacionar los diferentes eventos de la entidad luz con scripts y con acciones para rellenar números. Esto se copia dentro del archivo configuration.yaml de Home Assistant para crear la entidad.
Por otro lado, en el nodo de ESPHome lo que hacemos es acceder a esos cuatro ayudantes que representan el brillo y el color para que, cuando se modifiquen desde Home Assistant, podamos enviar su valor a través del protocolo ELK BLEDOM vía Bluetooth.
Todo esto se hace gracias a la plataforma Home Assistant de ESPHome y luego haciendo referencia a los identificadores de cada componente de Home Assistant en el mensaje que se envía por Bluetooth.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
number: - platform: homeassistant id: tiras_navidad_brillo entity_id: input_number.tiras_navidad_brillo on_value: then: - ble_client.ble_write: id: tiraLeds1 service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb characteristic_uuid: 0000fff3-0000-1000-8000-00805f9b34fb # Lista de bytes a escribir value: !lambda |- return {0x7E, 0x00, 0x01, (unsigned char) id(tiras_navidad_brillo).state, (unsigned char) id(tiras_navidad_brillo).state, 0x00, 0x00, 0x00, 0xEF}; - ble_client.ble_write: id: tiraLeds2 service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb characteristic_uuid: 0000fff3-0000-1000-8000-00805f9b34fb # Lista de bytes a escribir value: !lambda |- return {0x7E, 0x00, 0x01, (unsigned char) id(tiras_navidad_brillo).state, (unsigned char) id(tiras_navidad_brillo).state, 0x00, 0x00, 0x00, 0xEF}; - platform: homeassistant id: tiras_navidad_r entity_id: input_number.tiras_navidad_r on_value: then: - ble_client.ble_write: id: tiraLeds1 service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb characteristic_uuid: 0000fff3-0000-1000-8000-00805f9b34fb # Lista de bytes a scribir value: !lambda |- return {0x7E, 0x00, 0x05, 0x03, (unsigned char) id(id(tiras_navidad_r).state), (unsigned char) id(id(tiras_navidad_g).state), (unsigned char) id(id(tiras_navidad_b).state), 0x00, 0xEF}; - ble_client.ble_write: id: tiraLeds2 service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb characteristic_uuid: 0000fff3-0000-1000-8000-00805f9b34fb # Lista de bytes a scribir value: !lambda |- return {0x7E, 0x00, 0x05, 0x03, (unsigned char) id(id(tiras_navidad_r).state), (unsigned char) id(id(tiras_navidad_g).state), (unsigned char) id(id(tiras_navidad_b).state), 0x00, 0xEF}; - platform: homeassistant id: tiras_navidad_g entity_id: input_number.tiras_navidad_g on_value: then: - ble_client.ble_write: id: tiraLeds1 service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb characteristic_uuid: 0000fff3-0000-1000-8000-00805f9b34fb # Lista de bytes a scribir value: !lambda |- return {0x7E, 0x00, 0x05, 0x03, (unsigned char) id(id(tiras_navidad_r).state), (unsigned char) id(id(tiras_navidad_g).state), (unsigned char) id(id(tiras_navidad_b).state), 0x00, 0xEF}; - ble_client.ble_write: id: tiraLeds2 service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb characteristic_uuid: 0000fff3-0000-1000-8000-00805f9b34fb # Lista de bytes a scribir value: !lambda |- return {0x7E, 0x00, 0x05, 0x03, (unsigned char) id(id(tiras_navidad_r).state), (unsigned char) id(id(tiras_navidad_g).state), (unsigned char) id(id(tiras_navidad_b).state), 0x00, 0xEF}; - platform: homeassistant id: tiras_navidad_b entity_id: input_number.tiras_navidad_b on_value: then: - ble_client.ble_write: id: tiraLeds1 service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb characteristic_uuid: 0000fff3-0000-1000-8000-00805f9b34fb # Lista de bytes a scribir value: !lambda |- return {0x7E, 0x00, 0x05, 0x03, (unsigned char) id(id(tiras_navidad_r).state), (unsigned char) id(id(tiras_navidad_g).state), (unsigned char) id(id(tiras_navidad_b).state), 0x00, 0xEF}; - ble_client.ble_write: id: tiraLeds2 service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb characteristic_uuid: 0000fff3-0000-1000-8000-00805f9b34fb # Lista de bytes a scribir value: !lambda |- return {0x7E, 0x00, 0x05, 0x03, (unsigned char) id(id(tiras_navidad_r).state), (unsigned char) id(id(tiras_navidad_g).state), (unsigned char) id(id(tiras_navidad_b).state), 0x00, 0xEF}; |
De esta forma lo que conseguimos es que, cada vez que se cambie un valor en la plantilla luz que hemos creado en Home Assistant, se detecte el cambio en el nodo ESPHome y envíe el mensaje a las tiras LED a través del Bluetooth.
Y esta plantilla la podemos tratar como si fuera una luz que podemos encender, apagar, cambiar el brillo y cambiar el color.
Y poco más, hasta aquí este tutorial donde hemos visto cómo integrar varias tira LED RGB Bluetooth en Home Assistant utilizando un ESP32 y ESPHome.
Cualquier duda o sugerencia la puedes dejar en los comentarios aquí abajo.
Gracias a Depositphotos por ceder los derechos de algunas de las imágenes de este artículo.