Para ser justos, mi base articulada ya era bastante lista. Habla Bluetooth Low Energy, que es como el control se comunica con ella. Lo frágil es toda la infraestructura alrededor, y es genuinamente incómoda de controlar.
Primero se murió el control, y después el app lo empeoró
La base venía con un control físico por Bluetooth, que por supuesto se me murió unos tres meses después. Podría haberle cambiado las pilas, pero ya recorrí ese camino con otras cosas a pilas por la casa, y se convierte en un ciclo infernal de dispositivos que se mueren (sí, te estoy mirando a ti, Nest by Yale). Así que decidí dejarlo morir e irme por la vía del app en el teléfono, que se suponía que era la mejor idea. Un dispositivo para controlarlos a todos.
El app no es la mejor experiencia del mundo. Es lento para escanear y lento para conectar. Es genérico para toda una familia de camas parecidas, así que hay un par de pasos que atravesar antes de llegar siquiera a la pantalla de mi propio control. Y cuando termino, tengo que acordarme de cerrarlo de verdad, porque si se queda conectado en segundo plano mantiene el enlace con el controlador inteligente y bloquea a los demás clientes, ya que el controlador BLE solo aguanta una única conexión a la vez. Lo que en la práctica significa que mi pareja no puede controlarla al mismo tiempo.
También es puramente local y puramente manual. No hay forma de automatizar nada en función de la temperatura de la casa o de la luz de la habitación.
Lo que realmente cambió la ecuación
Así que decidí que un ESP32 era el camino. Una placa en el dormitorio manteniendo un enlace BLE permanente con la base, lo que me da varios clientes a la vez, automatizaciones y control remoto de verdad.
Me llevó unas cuantas iteraciones averiguar qué había que enviar. Una vez que tuve los comandos, todo el asunto se convirtió en un YAML de ESPHome sobre un ESP32 que mantiene el cliente BLE conectado, publica por MQTT a Home Assistant y aparece ahí como un dispositivo más.

Cabecera arriba y abajo, pies arriba y abajo, luz bajo la cama, onda de masaje, un preset plano y una parada de emergencia. Todo desde el app companion de Home Assistant, con interacciones casi en tiempo real porque no hay necesidad de conectarse cada vez que vas a realizar una acción. El ESP mantiene la línea para que los demás podamos descansar tranquilos (sin doble sentido).
Decirle al motor cuándo parar
Lo único que realmente necesitaba emular era cómo decirle al motor cuándo parar. Esa lógica no está en la cama, está implementada directamente en el control o en el app.
Un solo toque mueve la cama a paso de tortuga. Así que para conseguir alguna sensación de movimiento real tuve que emular varios toques en rápida sucesión. Eso es lo que hace cada script de movimiento: dispara el mismo comando de 5 bytes cada 200 ms, hasta 75 veces, y al final envía el comando de parada.
Lo bueno del controlador de la cama es que se detiene solo cuando llega a los límites del hardware, así que nunca tuve que investigar dónde están los límites del mecanismo por arriba y por abajo (uf, me salvé de esa).
Restart es una función propia de la cama que permite volver a ponerla plana con
un único botón. Cada acción además verifica que haya una conexión activa con la
cama, así que un enlace caído termina el movimiento en lugar de quedarse callado
sin hacer nada.
La placa parpadea su LED en cada pulsación y publica un evento en MQTT, así que cada botón pulsado es visible en Home Assistant y está disponible como disparador de automatizaciones.

El ESP lleva meses conectado a mi cama haciendo su trabajo en silencio. He olvidado que existe como hardware, solo veo la pantalla en Home Assistant y lo ajusto a mi modo. La cama está efectivamente en el WiFi de mi casa. Varias personas pueden controlarla, no hay que emparejar nada, y no hay que cerrar ningún app.
Cosas muy locas que podría lograr con este setup
La base tiene una función donde pulsas un botón cuando tu pareja te oye roncar, y te levanta la cabecera apenas un poco, lo que ayuda con mi apnea del sueño. Funciona, pero necesita que alguien me oiga. Yo no, obviamente, estoy dormido como un tronco en medio de todo eso.
También tengo una máquina PAP, y detecta los ronquidos por su cuenta. Esos datos ya llegan a Home Assistant, en vivo, como su propio sensor.

Así que el círculo completo está ahí mismo: se detecta un evento de ronquido, la cama entra en modo antirronquidos, nadie se tiene que despertar.
Todavía no está construido. El preset antirronquidos no fue uno de los comandos que saqué del control cuando lo esnifé. Tengo los ocho que están conectados, más gravedad cero, inicio de masaje y una posición de memoria que encontré pero nunca expuse. La posición de ronquido necesita una sesión de captura más, y después la automatización en sí es la parte fácil.
Eso es lo próximo que le hago a esta cama.
Me emociona mucho lo bueno que se ha puesto el ESP
Ha sido un antes y un después en casa para estas pequeñas manías que todo el mundo tiene en distintos espacios, y para poder personalizar tu propia casa rápido y barato.
Todo esto corre sobre un ESP32-C3 Super Mini.
Si quieres uno de estos en tu propia cama, hablemos.
Creo genuinamente que podrías tener una casa inteligente increíble con pequeños ajustes e inversiones baratas que podrían subir tu nivel de comodidad 100 veces (es broma, podría ser más). Si tienes curiosidad por una cosa de tu casa que podrías hacer con esto, probablemente se puede hacer. Agenda una sesión y hacemos cosas increíbles con tu casa.
