Skip to content

ST17H66B buzzer #153

@omarkhali

Description

@omarkhali

Subject: Payload to trigger ST17H66B buzzer via BLE (firmware B2.0) — payload / characteristic / write type?

Hello pvvx — first of all, thank you for your great work on THB2.

I have a ST17H66B (KEY, B2.0) and I’m trying to trigger the buzzer programmatically via BLE. From my inspection the device exposes:

Service: 0000fcd2-0000-1000-8000-00805f9b34fb

Characteristics: 0000fff3-0000-1000-8000-00805f9b34fb and 0000fff4-0000-1000-8000-00805f9b34fb

The web UI log (your web tool) shows Command response (1A): 00 on press/release.

I tried writing from ESP32 (ESPHome ble_client.ble_write) and from macOS (Bleak), but I cannot reliably produce the audible buzzer. The writes appear (ESP32 logs show ESP_GATTC_WRITE_CHAR_EVT), but no sound. Sometimes the device disconnects immediately so subsequent writes report Device not found.

Examples of payloads I already tried:

[0x01]
[0x00]
[0x1A, 0x00] # tried as "press"
[0x1A, 0x01] # tried as "release"
[0x1A, 0x00] then [0x1A, 0x00]

Could you please confirm the exact payload(s) and procedure to trigger the buzzer (short beep or melody) and to stop it? In particular:

What is the exact command format for press and for release? (e.g. 0x1A,0x00 for press and 0x1A,0x01 for release, or something else?)

Which characteristic should we write to: fff3 or fff4 (or both)?

Should we use write-without-response or write-with-response?

Is a time sync (set device time) required before buzzer commands?

Is there a recommended press duration to let the melody play (e.g. 1s, 2s)?

Could you provide example payloads for a single short beep and for starting/stopping a melody?

I also include below the ESPHome ble_client / button snippet I used so you can see how I’m writing to the device:

substitutions:
name: esp32-bluetooth-proxy-7af510
friendly_name: Bluetooth Proxy 7af510

packages:
esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic/esp32-generic.yaml@main

esphome:
name: ${name}
name_add_mac_suffix: false
friendly_name: ${friendly_name}

esp32:
board: esp32dev
framework:
type: esp-idf

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password

logger:
level: DEBUG

api:
encryption:
key: ZZ2wPBTp+2ZpsGP9MMbGgiyBMFuMJ3Bkld/RAoipgD8=

ota:

esp32_ble_tracker:

ble_client:

  • mac_address: "38:1F:8D:78:84:B0" # MAC seen in my logs
    id: pvvx_buzzer_client

button:

  • platform: template
    name: "PVVX Find Key Buzzer"
    on_press:
    • ble_client.ble_write:
      id: pvvx_buzzer_client
      service_uuid: "0000fcd2-0000-1000-8000-00805f9b34fb"
      characteristic_uuid: "0000fff3-0000-1000-8000-00805f9b34fb"
      value: [0x1A, 0x00] # press (what I tried)
    • delay: 1s
    • ble_client.ble_write:
      id: pvvx_buzzer_client
      service_uuid: "0000fcd2-0000-1000-8000-00805f9b34fb"
      characteristic_uuid: "0000fff3-0000-1000-8000-00805f9b34fb"
      value: [0x1A, 0x01] # release (what I tried)

Firmware version on my unit: B2.0
Web UI log example: Command response (1A): 00 when using your web page.

Any short guidance or example hex payloads you can share (for short beep and for melody start/stop) would be hugely appreciated — this will help me integrate the device with ESPHome/Home Assistant properly.

Thanks again for your work & time.
Best regards,
Omar

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions