Motivación
- Durante varios años se ha explorado la posibilidad de acceder a la cama Sleep Number por la red local
- Se creó un plugin de homebridge para controlar la configuración de la cama mediante HomeKit
- Sleep Number pidió desactivar el plugin porque la frecuencia de solicitudes a la API había aumentado
- Se decidió buscar una forma de evitar los servidores mediante acceso por la red local
Requisitos previos
- Número de modelo del Sleep Number Hub: 360SIQ01D
- Se necesita un dispositivo UART a TTY y otras herramientas de hardware
- Se necesita una memoria USB-A
Obtener privilegios de root
- Conectar el dispositivo UART al header J16
- Conectar una consola al dispositivo UART (baud rate: 115200)
- Encender el hub y presionar <SPACE> dentro de 2 segundos para detener la secuencia de arranque automático
- Editar las variables de entorno de arranque
- En el primer arranque, insertar una memoria USB con el archivo
let_me_root
- Volver a montar la partición root como rw y agregar el archivo
let_me_root
- Configurar acceso SSH
Crear un servidor de control y monitoreo en la red local
- Configurar un servidor HTTP usando Python 2.7.18
- Escribir un script de servidor HTTP que pueda ejecutar scripts del directorio
/bam/scripts
- Copiar y ejecutar el script en el hub
Agregar script rc.d
- Agregar un script rc.d a la partición
/real.root
- Copiar el script al hub y moverlo a la ubicación adecuada
- Agregar los enlaces simbólicos necesarios
Comandos útiles
- Se pueden usar varios comandos de control de la cama desde el script
/bio
- Comandos de ejemplo:
arg=PSNL: obtener el último valor configurado del número de sueño del lado izquierdo de la cama
arg=PSNS&arg=L100: establecer el número de sueño del lado izquierdo de la cama en 100
Siguientes pasos
- Explorar las funciones de control de la cama en el directorio raíz
/bam
- Considerar los problemas de seguridad del hub que se comunica con los servidores de Sleep Number mediante un túnel SSH
- Escribir una aplicación web sencilla que pueda reemplazar la app SleepIQ
Apéndice: variables de entorno originales de U-Boot del hub
baudrate=115200
bootcmd=run find_board_name; run set_bootargs;setenv boot_mmcdev 0; run bootcmd_mmc;setenv boot_mmcdev 1; run bootcmd_mmc
- Otras variables...
Opinión de GN⁺
- Esta guía permite el acceso a la cama Sleep Number por la red local y da a los usuarios mayor control
- Considerando los problemas de seguridad del hub, es recomendable desconectar la conexión a internet externa
- También existen otros productos de hogar inteligente que ofrecen funciones similares
- Al adoptar nuevas tecnologías, conviene evaluar cuidadosamente los temas de seguridad y mantenimiento
1 comentarios
Comentarios en Hacker News
Antes usaba una cama sin funciones inteligentes
Hay interés en el hub que se comunica con los servidores de Sleep Number y a través de un túnel SSH
PubkeyAutho contraseñaExiste un método similar para acceder al Eight Sleep Pod 3
Pensaban que era una publicación sobre hackear una cama Eight Sleep
Luego viene un chiste sobre ransomware
Es incómodo no poder ajustar la temperatura de la cama cuando se cae internet
Decidieron no comprar una cama Sleep Number
Se cuestiona por qué una cama tendría que ejecutar Linux
Recomiendan agregar herramientas de soldadura a la lista de compras