Skip to content

BX2: exact alias BX2 and two-outlet start on f006 byte 1 #8

Description

@matthewhand

The SDK discovers only the exact name Tap Timer and start() always writes [0x01, 0x00, 0x00, minutes]. That misses Holman BX2.

Confirmed only on the original BX2 Dual Outlet Bluetooth Tap Timer MK1 (SKU CO3112):
https://www.holmanindustries.com.au/product/bx2-dual-outlet-bluetooth-tap-timer-mk1/

Holman has superseded that with a newer BX2:
https://www.holmanindustries.com.au/product/bx2-dual-outlet-bluetooth-tap-timer/

I have not tested the newer model. The rest of this issue is MK1.

MK1 advertises the name exactly BX2. The vendor service is c521f000-0d70-4d4f-8e43-40d84c50ab38 (already HOLMAN_CO3011). An exact allowlist of Tap Timer and BX2 finds it. An empty alias does not match.

Start is still four bytes on f006. Byte 1 selects the outlet:

start = [0x01, tap_index, 0x00, minutes]
tap_index 0 = zone 1   ->  01 00 00 NN
tap_index 1 = zone 2   ->  01 01 00 NN
stop  = [0x00, 0x00, 0x00, 0x00]

I have confirmed those writes on a live BX2 MK1. Zone 1 is the same payload the SDK already sends.

start() should take a zone (1 or 2). The CLI should gain --zone. That flag does not exist today.

Some BX1/BX2 units expose c001. Writing AE 8E there first unlocks the session so the following f006 write is accepted. If c001 is missing, skip it.

Other names or UUIDs can use overrides instead of more hardcoded models:

  • HOLMAN_ACCEPTED_ALIASES (or accepted_aliases) adds extra exact advertised names
  • HOLMAN_SERVICE_UUIDS (or service_uuids) replaces the vendor UUID filter (defaults stay CO3015 / CO3012 / CO3011)

CO3012 stays in the default UUID list. This issue is about BX2 MK1.

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