Skip to content
Home Assistant TestFlight
Lighting

Adjustable Bed

kristofferR/ha-adjustable-bed · vv4.2.4

HACSLocal push

Home Assistant integration for controlling smart adjustable beds via Bluetooth

In Apple Home through HomeKit Bridge

What HomeKit Bridge makes of each kind of entity this integration creates, read from its source code. A device only gets the ones that apply to it.

EntityShows up asNote
lightLight
switchSwitch or outlet
coverBlind, garage door, window or door
climateThermostat
binary_sensorSensor (motion, contact, leak, smoke…)
sensorSensor (temperature, humidity, air quality…)
buttonButton (as a switch)
selectMode picker (as switches)

1 report below say how a device from this integration behaves in the Home app.

What people report

Bluetooth LE control of many adjustable beds (Okin, Keeson, Octo, Tempur and others) with frequent model fixes. WiFi or cloud beds are out of scope. HomeKit shows bed sections as blinds.

  • Works6
  • Partly works2
  • Won’t be supported1
DeviceIn Home AssistantIn Apple HomeWhat they saidSource
Ashley/Nectar M1X1232Works LocalPreset buttons fixed by resending frames at 100ms
Saved copy
Problem (#372) On the Ashley/Nectar M1X1232 (detected as `sleepys_box25`, firmware 252201 / `25_22_01`), the preset buttons, Flat, Zero-G, Anti-Snore, Lounge, Memory 1–4, don't move the bed. The reporter found the preset only executes if, right after pressing it, they press Stop-All or hit BLE disconnect. The 3.0 attempt (drop the trailing STOP, send the preset fire-and-forget) didn't fix it, the reporter confirms presets still need a follow-up Stop press to execute. ## Root cause The single fire-and-forget write was the wrong model. This firmware latches the preset target on the first …

Excerpt saved from GitHub on 2026-10-23.

PR #386 · 2026-06
Malouf Base and Lucid BaseWorks LocalOpt-in app profiles added
Saved copy
The generic Malouf/Lucid controllers cannot represent the apps’ model-specific controls, custom OKIN transport, massage timer routes, or clock and alarm behavior. Add opt-in Malouf Base and Lucid Base profiles with explicit app, model, transport, and physical primary/secondary selection. Fresh model choices match each app’s picker, with existing stored models retained during options changes. Implement all reachable controls and state from the accepted cluster007 evidence while preserving existing entries. Validate complete GATT layouts, acknowledge writes, and retain protocol-specific …

Excerpt saved from GitHub on 2026-10-23.

PR #634 · 2026-09
Mattress Firm 900-O (Okin CST)Works LocalLumbar, light and Flat controls fixed
Saved copy
MFirm 900-O users reported broken lumbar, light, and Flat controls. The CST profile used incorrect lumbar bits, an excessively long preset cadence, and unsupported motor and position assumptions. This aligns the controller with the frozen MFirm 900-O 1.1.2 clean-room analysis: exact Head, Feet, and Lumbar controls, the app command cadence and STOP cleanup, reachable light and massage actions, and removal of unsupported position entities. Validation: - `uv run pytest` (2,758 passed) - `uvx [email protected] check custom_components tests` - `uvx [email protected] custom_components tests` - clean local …

Excerpt saved from GitHub on 2026-10-23.

PR #513 · 2026-08
MotoSleep and Power Bob bedsWorks LocalModel routing for Power Bob roots and HHC panels
Saved copy
Summary - Replace the universal MotoSleep controller with advertised-name profiles for all 14 Power Bob roots, 21 current HHC panel profiles, and 10 binary MOTO bed pages recovered from Power Bob 2.0.3 and MotoSleep 5.1.5. - Fix #445 by routing `HHC0069815CDEF` to the A15 profile, where uppercase `$P/$Q` is lumbar. - Match each app's raw, wrapped, or binary framing, write response mode, movement cadence, model-specific STOP schedule, characteristic fallback, presets, memory, massage, RGB, sync, and swing controls. - Preserve app-proven controls with uncertain physical semantics as neutral …

Excerpt saved from GitHub on 2026-10-23.

PR #446 · 2026-07
OCTO beds with TV liftWorks LocalNotification handling improved and TV lift support added
Saved copy
Summary - reassemble Standard OCTO protocol packets across fragmented BLE notifications and process multiple packets per callback - resynchronize after malformed data, bound retained fragments, and clear the stream buffer at notification lifecycle boundaries - add explicit one-motor Standard OCTO TV lift support for official `RTV` / Lift 1M controllers - default discovered `RTV` devices to one motor and expose a dedicated TV Lift cover plus Stop All - suppress bed-only presets, memory, lighting, and synchro entities on the lift layout - add `tv_lift` support to `adjustable_bed.timed_move` - …

Excerpt saved from GitHub on 2026-10-23.

PR #444 · 2026-07
Tempur ProSmart Air (Sleeptracker-AI)Works LocalPresets, climate and premium massage controls added
Saved copy
Tempur ProSmart Air was using an Adjustable Lite compatibility profile that omitted presets, climate and premium massage controls. Add the Tempur Sleeptracker-AI processor profile and make it the documented choice for ProSmart / ActiveBreeze. Remove PR671’s Adjustable Lite massage override and the local KSSF05C preset workaround, preserving the unrelated FurniMove fixes. The processor route exposes the app’s TV/PC, Anti-Snore and favorite presets, heat/cool levels with fixed timers, 28/40 Hz massage and the remaining proven local bed controls. It requires the verified processor endpoint, …

Excerpt saved from GitHub on 2026-10-23.

PR #684 · 2026-10
Adjustable bed (cover entities in HomeKit)Partly works LocalPartly in Home
Shows as blinds with percent sliders; Siri uses open/close wording
Beds exposed to HomeKit as blinds; docs added a setup
Saved copy
The reporter can control the bed in Home Assistant and export its cover entities to HomeKit, but HomeKit presents them as blinds with percentage sliders. Siri commands therefore use open/close wording, and the reporter describes using 50 percent to stop movement. Requested outcome: a clearer way to raise, lower, and stop each bed section from HomeKit/Siri. ## Implemented The recommended setup is now an importable section-control blueprint, added in 120634f5. Import into Home Assistant, select the bed section, choose Raise, Lower, or Stop, and save a named script. Create one script per action …

Excerpt saved from GitHub on 2026-10-23.

Issue #610 · 2026-09
Dynasty Bases DM9000Partly works LocalActuators work; light and massage did not work in 1.9.8
Saved copy
Bed Manufacturer/Brand Dynasty Bases ### Bed Model DM9000 ### Official Mobile App Dynasty Bases ios ### Remote Control Model Number JLDK ### Diagnostic Report config_entry-adjustable_bed-01KG64V2DT16Y77S8KQG8AYDJ7.json ### Photos ### Additional Information I have tried every combination of protocols. This DM9000 was bought in 2019 and I can use my phone to control it. The "CNTL box"(second pic) which adds the BLE feature plugs into the OKIN box's secondary port. I have spent several days trying to figure it out but have not kept up my programming skills and barely know anything in regards to …

Excerpt saved from GitHub on 2026-10-23.

Issue #180 · 2026-01
WiFi/cloud adjustable bedsWon’t be supported CloudWiFi and cloud beds will not be supported; separate integration recommended
Saved copy
Summary This is a tracking issue for beds that use WiFi or cloud connectivity instead of Bluetooth. These require a fundamentally different architecture than the current BLE-based integration. ⚠️ Extremely low priority, implementation is very unlikely. ## Why This Probably Won't Happen Adding WiFi/cloud support to this integration would be a bad idea: 1. Architectural mismatch, This integration is built entirely around Home Assistant's Bluetooth stack (discovery, adapters, proxies, connection management). WiFi and cloud beds share none of that infrastructure. Adding WiFi/Cloud support to …

Excerpt saved from GitHub on 2026-10-23.

Issue #167 · 2026-01

Gathered from GitHub issues, pull requests, discussions and docs, and from r/homeassistant. These are individual reports, so check the linked thread and the date before you buy.

How it connects

Local push

Talks to the device on your network, and the device tells Home Assistant the moment something changes.

Found automatically over

  • Bluetooth

Details

Installs (analytics)270 (0.04%)
GitHub stars66
Latest versionv4.2.4 (2026-10-18)
Set up in the UIYes
Maintainers@kristofferR
LicenseMIT

In ReReHome

Whatever HomeKit Bridge shares reaches Apple Home as normal HomeKit accessories behind your Home Assistant bridge, so ReReHome shows and controls them like any other.

Bridges get their own settings page listing the accessories behind them.