Reverse engineering radiator bluetooth thermovalves

Description of the project: Today's radiators can be controlled by programmable valves (thermostats), some valves sport a BLE (Bluetooth Low Energy) interface allowing a computer (or, more commonly, a smartphone) to program them "remotely" (at BLE ranges). The communication protocol is proprietary but can be reverse engineered, and it was. At Università di Milano (Italy) I supported a thesis that succeeded in completely reverse engineering (by sniffing BLE and by analyzing Android code). The thesis produced a GPL-licensed library in the form of a bunch of "single function" shell scripts that can be combined to create other (more complex) scripts for IoT applications and the BNF formalization of the protocol. This project proposal mainly aims at integrating the library into a full and well documented Debian package and (if possible) to port the software to a more modern language such as Go, Rust, Scala, Java or Ruby (but you can suggest more!). Moreover, it should produce a "best practice" guide for future developers interested in adding new valve protocols on the market.