prefixkit Ask an engineerAsk Support RU

Zigbee devices Switches and relays

Sprut.device Bed.box

Sprut bed.box ergomotion controller. Works with Zigbee2MQTT with no vendor hub or cloud: it pairs with a Zigbee stick and shows up in Home Assistant.

Vendor
Sprut.device
Model
Bed.box
Type
Switches and relays
Power
mains: usually a router that extends the mesh
Firmware updates (OTA)
no

Find it in shops: AliExpress

Links open a search in the shop; some are affiliate links: buying through them costs you nothing extra and supports this site. We do not sell devices or get them from manufacturers.

What it exposes

FeaturePropertyValuesControl
Head position (head_control)head_position_head_control% · 0…100settable
Foot position (foot_control)foot_position_foot_control% · 0…100settable
Current head position (head_feedback)current_head_position_head_feedback%read only
Current foot position (foot_feedback)current_foot_position_foot_feedback%read only
Head massage intensity (head_massage_intensity)head_massage_intensity_head_massage_intensityoff, one, two, three, four, fivesettable
Foot massage intensity (foot_massage_intensity)foot_massage_intensity_foot_massage_intensityoff, one, two, three, four, fivesettable
Massage duration (massage_duration)massage_duration_massage_durationoff, ten_min, twenty_min, thirty_minsettable
Switch (light)state_light—settable
Switch (flat)state_flat—settable
Switch (zero_gravity)state_zero_gravity—settable
Switch (reading)state_reading—settable
Switch (tv)state_tv—settable
Switch (clear_angles_settings)state_clear_angles_settings—settable
Switch (massage)state_massage—settable
Switch (anti_snoring)state_anti_snoring—settable
Switch (move)state_move—settable
Switch (stop)state_stop—settable

MQTT: state and commands

Zigbee2MQTT publishes the device state to zigbee2mqtt/my_device (my_device is the name you give the device). An example message:

{
  "head_position_head_control": 50,
  "foot_position_foot_control": 50,
  "current_head_position_head_feedback": 0,
  "current_foot_position_foot_feedback": 0,
  "head_massage_intensity_head_massage_intensity": "off",
  "foot_massage_intensity_foot_massage_intensity": "off",
  "massage_duration_massage_duration": "off",
  "state_light": "ON",
  "state_flat": "ON",
  "state_zero_gravity": "ON",
  "state_reading": "ON",
  "state_tv": "ON",
  "state_clear_angles_settings": "ON",
  "state_massage": "ON",
  "state_anti_snoring": "ON",
  "state_move": "ON",
  "state_stop": "ON",
  "linkquality": 120
}

Send commands to zigbee2mqtt/my_device/set:

mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"state_light":"TOGGLE"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"state_flat":"TOGGLE"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"state_zero_gravity":"TOGGLE"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"state_reading":"TOGGLE"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"state_tv":"TOGGLE"}'

Watch the topics live from the browser: MQTT client.

Home Assistant automation example

Zigbee2MQTT creates Home Assistant entities from the device name. If it is called my_device, an automation in automations.yaml can look like this:

- alias: "Off at night"
  mode: single
  triggers:
    - trigger: time
      at: "23:30:00"
  actions:
    - action: switch.turn_off
      target:
        entity_id: switch.my_device_light

Check the YAML: YAML checker.

How to pair it

  1. In Zigbee2MQTT click Permit join.
  2. Put the device in pairing mode: usually a long press of the reset button (5–10 s) until the LED blinks; bulbs: switch the power off and on 5–6 times.
  3. Keep the device close to the coordinator or a router while pairing.
  4. Give it a clear name: MQTT topics and Home Assistant entities are built from it.

Exact procedure and model notes: the device page in the Zigbee2MQTT docs. No coordinator yet: coordinator picker.

Similar devices

Idea?