ha: add carefree_bt12 integration for the Carefree Connects awning

Commands reverse-engineered from Bluetooth HCI snoop captures (adb bugreport)
of the official Carefree Connects (BT12) Android app, confirmed across three
independent captures including two isolated single-action live tests:
extend/retract (feature 0x05, values 0x01/0x02 -- the device toggles motor
state internally, there's no separate stop byte) and light on/off (feature
0x1a, values 0x19/0x01). Both live under GATT characteristic 02060002 on
service 02060001-50e1-405f-bab0-6bb582b4d96e.

Connects on demand per command (mirrors the app's own connect/act/disconnect
pattern) rather than holding a persistent connection like li3_battery, since
this device doesn't stream telemetry. Cover/light state is assumed/optimistic
-- the notify channel (02060003) isn't decoded yet, so a diagnostic sensor
just surfaces raw undecoded replies to build up data for that follow-on work.

Verified end-to-end against the real device: light on/off and awning
extend both worked through Home Assistant.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Andreas Wrede
2026-08-24 15:52:06 -04:00
co-authored by Claude Sonnet 5
parent 7911339743
commit 918003d2e3
10 changed files with 508 additions and 0 deletions
@@ -0,0 +1,17 @@
{
"config": {
"step": {
"bluetooth_confirm": {
"description": "Add the awning controller `{name}`?"
},
"user": {
"data": {
"address": "Device"
}
}
},
"abort": {
"already_configured": "This awning controller is already configured"
}
}
}