Motivação
- Há alguns anos venho explorando a possibilidade de acesso pela rede local à cama Sleep Number
- Criei um plugin do homebridge para controlar as configurações da cama via HomeKit
- A Sleep Number pediu que o plugin fosse desativado porque a frequência de requisições à API ficou alta
- Decidi encontrar uma forma de contornar os servidores por meio de acesso pela rede local
Pré-requisitos
- Número do modelo do Sleep Number Hub: 360SIQ01D
- É necessário um dispositivo UART to TTY e outras ferramentas de hardware
- É necessário um pendrive USB-A
Obtendo acesso root
- Conecte o dispositivo UART ao header J16
- Conecte um console ao dispositivo UART (baud rate: 115200)
- Ligue o hub e pressione <SPACE> dentro de 2 segundos para interromper a sequência de boot automático
- Edite as variáveis de ambiente de boot
- Na primeira inicialização, insira o pendrive com o arquivo
let_me_root
- Remonte a partição root como rw e adicione o arquivo
let_me_root
- Configure o acesso SSH
Criando um servidor de controle e monitoramento na rede local
- Configure um servidor HTTP usando Python 2.7.18
- Escreva um script de servidor HTTP capaz de executar scripts no diretório
/bam/scripts
- Copie o script para o hub e execute-o
Adicionando um script rc.d
- Adicione um script rc.d à partição
/real.root
- Copie o script para o hub e mova-o para o local apropriado
- Adicione os links simbólicos necessários
Comandos úteis
- É possível usar vários comandos de controle da cama a partir do script
/bio
- Comandos de exemplo:
arg=PSNL: obter o último valor de número de sono configurado para o lado esquerdo da cama
arg=PSNS&arg=L100: definir o número de sono do lado esquerdo da cama como 100
Próximos passos
- Explorar os recursos de controle da cama no diretório root
/bam
- Considerar os problemas de segurança do hub, que se comunica com os servidores da Sleep Number por meio de um túnel SSH
- Escrever um app web simples que possa substituir o aplicativo SleepIQ
Apêndice: variáveis originais do ambiente U-Boot do 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
- Outras variáveis...
Opinião do GN⁺
- Este guia torna possível o acesso pela rede local à cama Sleep Number, dando ao usuário mais controle
- Considerando os problemas de segurança do hub, é recomendável desconectar a conexão externa com a internet
- Também existem outros produtos de casa inteligente que oferecem funções semelhantes
- Ao adotar novas tecnologias, é preciso considerar com cuidado questões de segurança e manutenção
1 comentários
Comentários do Hacker News
No passado, eu usava uma cama sem recursos inteligentes
Há interesse no hub que se comunica com os servidores da Sleep Number por meio de um túnel SSH
PubkeyAuthou senhaExiste um método semelhante para acessar o Eight Sleep Pod 3
Achou que fosse um texto sobre hackear camas da Eight Sleep
A seguir, uma piada sobre ransomware
É inconveniente não conseguir ajustar a temperatura da cama quando a internet cai
Decidiu não comprar uma cama Sleep Number
Questiona por que uma cama precisa rodar Linux
Recomenda adicionar ferramentas de solda à lista de compras