-
Notifications
You must be signed in to change notification settings - Fork 58
Description
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)
- ble_client.ble_write:
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