Summary

Bond Bridge is an IP-to-RF gateway that controls ceiling fans, fireplaces, motorized shades, and other IR/RF devices. The REST API uses HTTP on port 80 with token-based authentication via BOND-Token header. Supports push state updates via BPUP (UDP port 30007).

Transport

protocols:
  - http
addressing:
  base_url: "http://{bond_ip}/v2/"  # IP assigned via DHCP; discovered via mDNS or ping by Bond ID
auth:
  type: token  # BOND-Token header or _token field in body

Traits

- powerable
- routable
- queryable
- levelable

Actions

- id: turn_on
  label: Turn On
  kind: action
  params: []

- id: turn_off
  label: Turn Off
  kind: action
  params: []

- id: toggle_power
  label: Toggle Power
  kind: action
  params: []

- id: set_speed
  label: Set Speed
  kind: action
  params:
    - name: speed
      type: integer
      description: Speed value 1 to max_speed

- id: increase_speed
  label: Increase Speed
  kind: action
  params:
    - name: speeds
      type: integer
      description: Number of speeds to increase

- id: decrease_speed
  label: Decrease Speed
  kind: action
  params:
    - name: speeds
      type: integer
      description: Number of speeds to decrease

- id: set_direction
  label: Set Direction
  kind: action
  params:
    - name: direction
      type: integer
      description: "1 = forward, -1 = reverse"

- id: toggle_direction
  label: Toggle Direction
  kind: action
  params: []

- id: turn_light_on
  label: Turn Light On
  kind: action
  params: []

- id: turn_light_off
  label: Turn Light Off
  kind: action
  params: []

- id: toggle_light
  label: Toggle Light
  kind: action
  params: []

- id: set_brightness
  label: Set Brightness
  kind: action
  params:
    - name: brightness
      type: integer
      description: Percentage 1-100

- id: increase_brightness
  label: Increase Brightness
  kind: action
  params:
    - name: amount
      type: integer
      description: Brightness increase amount

- id: decrease_brightness
  label: Decrease Brightness
  kind: action
  params:
    - name: amount
      type: integer
      description: Brightness decrease amount

- id: cycle_brightness
  label: Cycle Brightness
  kind: action
  params:
    - name: amount
      type: integer
      description: Cycle step amount

- id: breeze_on
  label: Breeze On
  kind: action
  params: []

- id: breeze_off
  label: Breeze Off
  kind: action
  params: []

- id: set_breeze
  label: Set Breeze
  kind: action
  params:
    - name: breeze
      type: array
      description: "[mode, mean, var] - mode: 0=disabled/1=enabled, mean: 0-100 calm-to-storm, var: 0-100 steady-to-gusty"

- id: set_timer
  label: Set Timer
  kind: action
  params:
    - name: s
      type: integer
      description: Seconds remaining (0 = cancel)

- id: set_flame
  label: Set Flame
  kind: action
  params:
    - name: flame
      type: integer
      description: Flame level 1-100

- id: increase_flame
  label: Increase Flame
  kind: action
  params:
    - name: flame
      type: integer
      description: Flame increase amount

- id: decrease_flame
  label: Decrease Flame
  kind: action
  params:
    - name: flame
      type: integer
      description: Flame decrease amount

- id: set_heat
  label: Set Heat
  kind: action
  params:
    - name: heat
      type: integer
      description: Heat level 1-100

- id: increase_heat
  label: Increase Heat
  kind: action
  params:
    - name: heat
      type: integer
      description: Heat increase amount

- id: decrease_heat
  label: Decrease Heat
  kind: action
  params:
    - name: heat
      type: integer
      description: Heat decrease amount

- id: heat_preset_next
  label: Heat Preset Next
  kind: action
  params: []

- id: heat_preset_prev
  label: Heat Preset Previous
  kind: action
  params: []

- id: open
  label: Open
  kind: action
  params: []

- id: close
  label: Close
  kind: action
  params: []

- id: toggle_open
  label: Toggle Open/Close
  kind: action
  params: []

- id: raise
  label: Raise
  kind: action
  params: []

- id: lower
  label: Lower
  kind: action
  params: []

- id: retract
  label: Retract
  kind: action
  params: []

- id: extend
  label: Extend
  kind: action
  params: []

- id: hold
  label: Hold (Stop Motion)
  kind: action
  params: []

- id: set_position
  label: Set Position
  kind: action
  params:
    - name: position
      type: integer
      description: Position 0-100 (0=retracted, 100=extended)

- id: increase_position
  label: Increase Position
  kind: action
  params:
    - name: amount
      type: integer
      description: Percentage to extend

- id: decrease_position
  label: Decrease Position
  kind: action
  params:
    - name: amount
      type: integer
      description: Percentage to retract

- id: turn_fp_fan_off
  label: Turn Fireplace Fan Off
  kind: action
  params: []

- id: turn_fp_fan_on
  label: Turn Fireplace Fan On
  kind: action
  params: []

- id: set_fp_fan
  label: Set Fireplace Fan Speed
  kind: action
  params:
    - name: speed
      type: integer
      description: Fan speed 1-100

- id: pair
  label: Pair
  kind: action
  params: []

- id: unpair
  label: Unpair
  kind: action
  params: []

- id: unpair_self
  label: Unpair Self
  kind: action
  params: []

Feedbacks

- id: power_state
  type: enum
  values: [on, off]

- id: speed_state
  type: integer
  description: Current speed 1 to max_speed

- id: brightness_state
  type: integer
  description: Brightness percentage 1-100

- id: light_state
  type: enum
  values: [on, off]

- id: direction_state
  type: integer
  description: "1 = forward, -1 = reverse"

- id: breeze_state
  type: array
  description: "[mode, mean, var]"

- id: timer_state
  type: integer
  description: Seconds remaining

- id: flame_state
  type: integer
  description: Flame level 1-100

- id: heat_state
  type: integer
  description: Heat level 1-100

- id: open_state
  type: enum
  values: [open, closed]

- id: position_state
  type: integer
  description: Position 0-100

- id: fpfan_power_state
  type: enum
  values: [on, off]

- id: fpfan_speed_state
  type: integer
  description: Fireplace fan speed 1-100

- id: battery_state
  type: integer
  description: Battery percentage 0-100

- id: signal_state
  type: integer
  description: RF signal quality 0-100

Variables

- id: max_speed
  type: integer
  access: ro
  description: Highest speed available for this device

- id: feature_brightness
  type: boolean
  access: rw
  description: Whether brightness control is supported

- id: feature_heat
  type: boolean
  access: rw
  description: Whether heat control is supported

- id: default_auto_timer_s
  type: integer
  access: rw
  description: Default auto timer in seconds (heater devices only)

- id: trust_state
  type: boolean
  access: rw
  description: Whether Bond trusts state belief vs polling device

Events

# BPUP push updates on UDP port 30007
# Format: {"B":"{bond_id}","d":{discoverability},"v":"{fw_ver}","t":"{topic}","i":"{request_id}","s":{http_status},"m":{method},"f":{flags},"b":{body}}
# UNRESOLVED: full event taxonomy not enumerated in source

Macros

# Scenes and groups defined via POST /v2/scenes and POST /v2/groups
# UNRESOLVED: specific macro sequences not documented in source

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures in source

Notes

Base URL: http://{bond_ip}/v2/. Token obtained via power cycle then GET /v2/token within 10 minutes. mDNS discovery: ping BB{serial}.local or avahi-browse -a | grep bond. Device types: CF (Ceiling Fan), FP (Fireplace), HT (Heater), MS (Motorized Shades), GX (Generic), SW (Smart Switch), LT (Light), BD (Bidet). BPUP (push) runs on UDP port 30007 — keep-alive required every 60s.

Provenance

source_domains:
  - docs-local.appbond.com
  - tech.bndh.io
source_urls:
  - https://docs-local.appbond.com/
  - https://tech.bndh.io/technical/hex-codes/
  - https://tech.bndh.io/technical/bond-connect/
retrieved_at: 2026-04-29T12:56:51.357Z
last_checked_at: 2026-06-02T22:04:37.272Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T22:04:37.272Z
matched_actions: 44
action_count: 44
confidence: medium
summary: "All 44 spec actions traced to source (dip-safe re-verify). (8 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "specific fan model names not stated in source"
- "full event taxonomy not enumerated in source"
- "specific macro sequences not documented in source"
- "no safety warnings or interlock procedures in source"
- "port number for HTTP not explicitly stated (assumed 80); UDP BPUP port 30007 stated explicitly in source"
- "max_speed value varies per device and must be queried at runtime"
- "specific device model names not enumerated in source"
- "firmware compatibility range not stated"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0