Florian
|
fd433c220e
|
[BLE] Add BM6 Battery Monitor connection support (#2274)
* [BLE] Add BM6 Battery Monitor connection support
Implement BLE connection support for BM6 Battery Monitor devices,
following the BM2 pattern with BM6-specific protocol handling.
Key features:
- Encrypted command/response using AES-128 CBC
- Read voltage, temperature, and State of Charge (SoC)
- Home Assistant MQTT Discovery support
- Device tracker integration
Technical implementation:
- Add BM6_connect class with encrypted command handling
- Encryption key (static const): "leagend\xff\xfe0100009"
- Parse hex string positions for voltage (15-17), temp (8-9), SoC (12-13)
- Add discovery with 3 sensors (voltage, temperature, battery %)
- Validate message signature (D15507)
- Add canWrite() check before writing to characteristic
- Empty stub for non-ESP32 builds
Code quality improvements:
- Extract AES key as static constant to avoid duplication
- Use shared jsonVoltBM template for both BM2 and BM6
- Clean up commented-out reasoning in parsing logic
Based on reverse engineering from:
https://github.com/JeffWDH/bm6-battery-monitor
Files modified:
- main/gatewayBLEConnect.h: Add BM6_connect class
- main/gatewayBLEConnect.cpp: Implement BM6 connection logic
- main/gatewayBT.cpp: Add detection, connection, and discovery handlers
- main/config_mqttDiscovery.h: Rename jsonVoltBM2 to jsonVoltBM
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Add BM6 to exceptions
---------
Co-authored-by: Florian <1technophile@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-01-24 17:16:03 -06:00 |
|
Ryan Powell
|
585df9a420
|
[SYS] Update arduino core to 3.1.1 + refactor ino to cpp (#2177)
* Update arduino core to 3.1.1
* Fix Blufi build
* Update arduinojson, fix build errors with idf
* Fix narrowing
* fix RF builds
* WIP-Convert ino files to cpp
* Fix pilight build
* Fix Somfy actuator build.
* Update esp32dev-rf partition
* Fix Weatherstation build
* Fix GFSunInverter build
* Fix esp32dev-ir build
* Fix ble-aws build
* Fix eth builds
* Fix m5Stack missing pins_arduino.h
* Fix build errors for M5 stack/tough, others are upstream issues.
* Fix RTL 433 build - remaining errors are from radolib
* Fix nodemcu build
* fix 2g builds
* Fix serial build
* Fix actuator on off builds
* Fix SSD1306 build - remaining errors are from radiolib
* Fix multiple definition of OTAserver_cert
* Fix nodemcu rf2 build
* Fix ADC builds
* Fix sensor builds
* Fix LORA builds
* Fix multi-receiver builds - remaining errors are in radiolib
* Fix fastled builds
* Fix theegns board builds
* Fix broker builds
* Update fastled - old version failed all-test build
* Fix RN8209 builds
* Fix max temp actuator builds
* Fix PWM builds
* Fix C37 sensor builds
* Fix HTU21 builds
* Fix INA266 builds
* Fix undefined variables in mqtt discovery
* Fix webui build
* Fix fastled invalid pin error
* Fix wifi manual setup builds
* Fix onewire/all-test build - bin too big error remaining
* Fix theengs plug build
* Fix rfbridge builds
* Fix blufi builds
* Fix undefined functions in serial
* Fix preprocessor definition checks
* Set IDF log level to erre
* Add delay in loop to prevent watchdog timeout
* Use xTaskCreateUniveral to support single core processors
* Remove old HTTPUpdate files - upsteam fixed.
* Cleanup and move common declarations to header file
* Use custom partiton table to fix builds where bin is too large
* Update M5StickC - fixs esp32-m5stick-c-ble build
* Revert to Arduino core 2.x for builds with incompatible libs
* Remove "Z" from file names and rename omg_common to TheengsCommon
* Fix gateway name when using MAC with new Arduino core
* Update IDF config to reduce loop task stack use
* Update esp-nimble-cpp version, corrects BLE uppercase ID's
* Update wifi manager to fix watchdog timeout error
|
2025-05-06 19:35:50 -05:00 |
|