Open jclds139 opened 8 months ago
Hi! Protocol is an abstraction for complex communication with a device. You may ignore protocol folder if your device doesn't need to implement something odd.
There are two ways of communicating - direct connection (high battery consumption) and advertisement decoding (doesn't require connection, which allows the battery to work longer)
looks like a sensor, see other devices
Looks like a 'button' entity
A button should be exposed to HA as 'device_automation' domain. There is no examples in the current project, but you may use https://www.home-assistant.io/integrations/device_trigger.mqtt/ as a documentation for discovery implementation and button handling from my other project https://github.com/openlumi/lumimqtt/blob/main/lumimqtt/lumimqtt.py#L269-L308 https://github.com/openlumi/lumimqtt/blob/main/lumimqtt/lumimqtt.py#L444-L468
If you have a connection, you may subscribe to a characteristic to receive data from it periodically, maybe clicks are also transmitted through this mechanism.
I'm trying to add support for these cheap BLE button tags but I'm struggling with what needs to be defined in a "protocol" vs a "device". They're a basic presence device but with a couple of extra features once connected:
(1) seems like a straightforward sensor, (2) I'm not quite sure, but I'd imagine this could be a "select" or "switch" domain device. (3) seems the weirdest because the state is always off when read directly, and it sends an event whenever it's pressed. Any guidance or documentation I'm missing for these?