Finally got the Reverie smartbed controlled through bluetooth. Still got a ways to go on mapping everything out and dealing with their handshake delicateness. Right now I'm using a pi as the bluetooth bridge so tying it into Hubitat won't be any problem. The good news is it hasn't folded me into a taco yet. ![]()
1 Like
Looking forward to hearing more on this integration...thanks
If your Reverie controller has a RS232 port (my Reverie BT addon modules connected to the motor controller via RS232) I can share my 100% local Reverie controller based on ESP32+Hubduino. Also, there is a huge Smart Bed control project based on Home Assistant.
1 Like
Reverie RevCB_C1 BLE Bridge
Version 1.0.0
A lightweight HTTP bridge that controls Reverie adjustable beds (RevCB_C1 control box) over Bluetooth LE. Designed to run on a Raspberry Pi and integrate with home automation systems like Hubitat.
Requirements
- Raspberry Pi (or any Linux host with BlueZ and a BLE adapter)
- Python 3.9+
bleak(auto-installed on first run)
Commands
Position
| functionClass | value | Description |
|---|---|---|
head_raise |
start / stop |
Raise head section |
head_lower |
start / stop |
Lower head section |
foot_raise |
start / stop |
Raise foot section |
foot_lower |
start / stop |
Lower foot section |
lumbar_raise |
start / stop |
Raise lumbar |
lumbar_lower |
start / stop |
Lower lumbar |
lumbar_stop |
— | Stop lumbar motion |
stop |
— | Stop all linear motion |
head_position |
0–100 |
Move head to absolute position |
foot_position |
0–100 |
Move foot to absolute position |
lumbar_position |
0–100 |
Move lumbar to absolute position |
Presets
| functionClass | value |
|---|---|
preset |
flat |
preset |
zero_gravity |
preset |
anti_snore |
Memory
| functionClass | value | Description |
|---|---|---|
memory_recall |
1–4 |
Move to saved position |
memory_save |
1–4 |
Save current position |
Massage
| functionClass | value | Description |
|---|---|---|
head_massage |
0–10 |
Head massage intensity (0 = off) |
foot_massage |
0–10 |
Foot massage intensity (0 = off) |
wave_level |
0–4 |
Full-body wave level (0 = off) |
stop_massage |
— | Stop all massage |
LED
| functionClass | value | Description |
|---|---|---|
led_brightness |
0–100 |
Under-bed LED brightness (0 = off) |
Notes
- The server auto-reconnects if a bed drops connection (exponential backoff, up to 7 attempts).
- On shutdown (SIGTERM/SIGINT) the server sends a clean BLE disconnect so beds immediately resume advertising.
- Both V1 (per-characteristic) and V2 (Service108 command model) firmware protocols are supported and detected automatically on connect.
- This was only tested on a RevCB_C1 control box.
Hubitat Configuration Example
- This example uses a Virtual - Switch to toggle between Zero-gravity and Lay-flat modes.
- In Rule-Machine:
1 Like
