BX2 MK1: exact alias BX2 and two-outlet start on f006 byte 1 - #9
Open
matthewhand wants to merge 1 commit into
Open
BX2 MK1: exact alias BX2 and two-outlet start on f006 byte 1#9matthewhand wants to merge 1 commit into
matthewhand wants to merge 1 commit into
Conversation
matthewhand
force-pushed
the
pr1/bx2-hose-byte1
branch
from
August 26, 2026 03:55
6bb9fe5 to
adc6766
Compare
5 tasks
Exact alias allowlist Tap Timer + BX2. start() uses f006 byte 1 as tap index (zone 1 = 0, zone 2 = 1). Unlock AE 8E on c001 when present. Env/constructor overrides for extra aliases and service UUIDs. CLI gains --zone. Confirmed on BX2 Dual Outlet MK1 (SKU CO3112) only. Newer BX2 not tested.
matthewhand
force-pushed
the
pr1/bx2-hose-byte1
branch
from
August 26, 2026 03:57
a688baf to
6c4086f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #8
Confirmed on BX2 Dual Outlet Bluetooth Tap Timer MK1 only (SKU CO3112):
https://www.holmanindustries.com.au/product/bx2-dual-outlet-bluetooth-tap-timer-mk1/
Not tested on the newer BX2:
https://www.holmanindustries.com.au/product/bx2-dual-outlet-bluetooth-tap-timer/
Summary
Two BX2 MK1 gaps in the Linux SDK:
Alias filter. Advertised name is exactly
BX2. Discovery uses an exact-string allowlist:Tap Timer(existing BX1) andBX2. Empty alias does not match. Constructoraccepted_aliasesorHOLMAN_ACCEPTED_ALIASES(comma-separated) adds another exact name, not a prefix.Second byte selects the outlet. Current
start()is[0x01, 0x00, 0x00, minutes]with byte 1 hardcoded0. Zone 1 (--zone 1) stays that payload. Zone 2 (--zone 2) is byte 1 =0x01:[0x01, 0x01, 0x00, minutes]. Stop stays all-zero. The current CLI has no--zone;start()always writes byte 1 as0.Some units expose
c001. WritingAE 8Ethere first unlocks the session so the followingf006write is accepted. Ifc001is missing, skip it.HOLMAN_SERVICE_UUIDS(or constructorservice_uuids) replaces the vendor UUID filter. Defaults stay CO3015 / CO3012 / CO3011.This PR is the SDK change (
holman/holman.py,holmanctl.py) plus a short README supported-devices note.Test plan
python3 -m py_compile holman/holman.py holmanctl.pyTapTimer.startzone 1 ->01 00 00 NN, zone 2 ->01 01 00 NNholmanctl --helpshows--zone 1/--zone 2Tap TimerandBX2only by defaultHOLMAN_SERVICE_UUIDSkeeps CO3015 / CO3012 / CO3011