Motivation
- Seit einigen Jahren wird die Möglichkeit des Zugriffs auf das lokale Netzwerk eines Sleep Number-Betts untersucht
- Es wurde ein
homebridge-Plugin erstellt, mit dem sich die Betteinstellungen über HomeKit steuern lassen
- Sleep Number bat darum, das Plugin zu deaktivieren, da die Häufigkeit der API-Anfragen gestiegen war
- Daher fiel die Entscheidung, einen Weg zu finden, die Server über lokalen Netzwerkzugriff zu umgehen
Voraussetzungen
- Sleep Number Hub Modellnummer: 360SIQ01D
- Ein UART-zu-TTY-Gerät und weitere Hardware-Werkzeuge werden benötigt
- Ein USB-A-Flash-Laufwerk wird benötigt
Root-Zugriffsrechte erlangen
- UART-Gerät an den J16-Header anschließen
- Konsole mit dem UART-Gerät verbinden (Baudrate: 115200)
- Hub einschalten und innerhalb von 2 Sekunden
<SPACE> drücken, um die automatische Boot-Sequenz zu stoppen
- Boot-Umgebungsvariablen bearbeiten
- Beim ersten Booten ein Flash-Laufwerk mit der Datei
let_me_root einstecken
- Die Root-Partition erneut als
rw mounten und die Datei let_me_root hinzufügen
- SSH-Zugriff einrichten
Server zur Steuerung und Überwachung im lokalen Netzwerk erstellen
- Einen HTTP-Server mit Python 2.7.18 einrichten
- Ein HTTP-Server-Skript schreiben, das Skripte im Verzeichnis
/bam/scripts ausführen kann
- Das Skript auf den Hub kopieren und ausführen
rc.d-Skript hinzufügen
- Ein
rc.d-Skript zur Partition /real.root hinzufügen
- Das Skript auf den Hub kopieren und an die passende Stelle verschieben
- Erforderliche symbolische Links hinzufügen
Nützliche Befehle
- Im Skript
/bio können verschiedene Befehle zur Bettsteuerung verwendet werden
- Beispielbefehle:
arg=PSNL: den zuletzt eingestellten Sleep-Number-Wert der linken Bettseite abrufen
arg=PSNS&arg=L100: den Sleep-Number-Wert der linken Bettseite auf 100 setzen
Nächste Schritte
- Die Bettsteuerungsfunktionen im Wurzelverzeichnis
/bam untersuchen
- Sicherheitsprobleme des Hubs berücksichtigen, der über einen SSH-Tunnel mit den Sleep-Number-Servern kommuniziert
- Eine einfache Web-App schreiben, die die SleepIQ-App ersetzen kann
Anhang: Ursprüngliche U-Boot-Umgebungsvariablen des Hubs
baudrate=115200
bootcmd=run find_board_name; run set_bootargs;setenv boot_mmcdev 0; run bootcmd_mmc;setenv boot_mmcdev 1; run bootcmd_mmc
- Weitere Variablen ...
Meinung von GN⁺
- Dieser Leitfaden ermöglicht den Zugriff auf das lokale Netzwerk eines Sleep Number-Betts und gibt Nutzern mehr Kontrolle
- Angesichts der Sicherheitsprobleme des Hubs ist es ratsam, die externe Internetverbindung zu trennen
- Es gibt auch andere Smart-Home-Produkte mit ähnlichen Funktionen
- Bei der Einführung neuer Technologien sollten Sicherheits- und Wartungsfragen sorgfältig bedacht werden
1 Kommentare
Hacker-News-Kommentare
Früher ein Bett ohne Smart-Funktionen benutzt
Interesse an dem Hub, der über die Sleep-Number-Server und einen SSH-Tunnel kommuniziert
Es gibt eine ähnliche Methode, um auf das Eight Sleep Pod 3 zuzugreifen
Dachte, es gehe um einen Beitrag über das Hacken eines Eight-Sleep-Betts
Danach ein Witz über Ransomware
Unangenehm, wenn das Internet ausfällt und man die Betttemperatur nicht regeln kann
Beschlossen, kein Sleep-Number-Bett zu kaufen
Fragt sich, warum ein Bett Linux ausführen muss
Empfiehlt, Lötwerkzeug auf die Einkaufsliste zu setzen