Skip to content

BedJetWebSchedule API

Dan Roberts edited this page Jan 16, 2026 · 1 revision

BedJetWebSchedule API Contract

The bridge expects BedJetWebSchedule to expose a small HTTP API on your LAN.

The bridge intentionally does not use a full JSON parser. It extracts a few fields using string search.

Base URL

You configure the base URL in the setup portal (examples):

  • http://192.168.1.253
  • bedjetweb.local (if you provide DNS)

The bridge normalizes the URL:

  • adds http:// if missing
  • strips trailing slashes

Required endpoints

GET /api/state

Returns current state.

Required field

  • status_summary (string)

Optional field

  • ble_connected (boolean)

The bridge parses status_summary for these tokens:

  • mode=<...>
  • fan=<...>%
  • target=<...>F
  • air=<...>F

Example status_summary format the bridge can parse:

mode=heat(1) fan=55% target=89F air=85F remaining=0:00:00 age=54ms

Notes:

  • mode= is parsed up to ( or whitespace.
  • fan=, target=, and air= are parsed as integers until a non-digit.

POST /api/ble/connect

Requests BedJetWebSchedule to connect to the BedJet over BLE.

  • Body: empty
  • Response: JSON recommended (not strictly required)

Recommended response:

{"ok":true}

The bridge will:

  1. call /api/ble/connect when it believes BLE is not connected
  2. wait briefly
  3. re-poll /api/state
  4. if still disconnected, abort the pending command

POST /api/cmd/button?name=<MODE>&fan=<STEP>&temp=<F>

Issues a BedJet command.

  • Body: empty
  • Query params:
    • name (required): an uppercase mode/button name
    • fan (optional): 0..19
    • temp (optional): 62..110

Examples:

  • POST /api/cmd/button?name=HEAT&temp=72
  • POST /api/cmd/button?name=COOL&fan=12
  • POST /api/cmd/button?name=OFF

Recommended response:

{"ok":true}

Supported mode names

The bridge commonly uses:

  • OFF
  • HEAT
  • COOL
  • TURBO
  • DRY
  • EXT-HEAT

Common failure modes

  • Base URL wrong / missing scheme
    • Fix: configure http://... and verify reachable from a laptop
  • /api/state missing status_summary
    • Fix: update BedJetWebSchedule; bridge depends on this string
  • BLE connects intermittently
    • Fix: ensure BedJetWebSchedule is close enough and not paired elsewhere

Clone this wiki locally