With the road to wireless communication behind me, I turned to the map. The destination is Home Assistant, that great clearing-house of domestic intelligence, where sensor readings go to be counted and displayed and acted upon. The question was how to get there.
The map, it turned out, was not encouraging. With such a well known protocol as Bluetooth and the vast amount of devices that already had entered the gates of Home Assistant I was expecting a well established highway. Instead a myriad of individual paths crossed the land in front of me. Every device was speaking its own dialect rather than the common language established by the service specifications from the Bluetooth SIG. The map showed traces of an attempt to build a GATT-service highway into Home Assistant. But it did not look like it had been maintained in recent years and travellers were favouring to tread their own paths. I did not want to build my own road into Home Assistant, but the way things looked, I did not have a choice.
I started to gather the information and provisions needed to build a road to the destination. This required me to put down the beloved Rust language - a language built for precision, for the long journey - and taking up Python instead, the pragmatist’s tongue. A cruder tool for a cruder job. Reluctantly, I put the shovel in the ground. The work felt heavy and the destination seemed nowhere in sight.
Then another road crossed my path. It bore the name of BTHome - “BT” as in Bluetooth? I studied the documentation and got the hunch confirmed. BTHome had been built to solve my problem; to provide a well-maintained route for Bluetooth devices to carry their readings into Home Assistant. Better still, it had been created in cooperation with the founder of Home Assistant and carries an official Bluetooth SIG UUID, sponsored by the makers of Shelly devices, Allterco. Paid for and made available for every traveler to use.
This was not a dirt track through the jungle. This was a proper road. I folded away the shovel. I would not be building anything today.
BTHome is well-documented, actively maintained, and already understood by Home Assistant. The road exists. Now I need only learn to speak its language.