Commit Graph
65 Commits
Author SHA1 Message Date
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
FlorianandFlorian 6e6b54b05e [DISC] Ram usage and flash size optimization (#2223)
Fix duplicate W and keep units and classes in flash
Use macro for discovery classes and units
[BREAKING] change gateway sensor unique id
module - parameter
Standardize the use of createDiscoveryFromList

Co-authored-by: Florian <1technophile@users.noreply.github.com>
2025-08-17 06:27:42 -05:00
Peter Lambrechtsen 75b3a3657e Add RSSI as diagnostic entity_category (#2224) 2025-08-12 07:11:42 -05: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
Alessandro Staniscia e683fbbd18 [RF] Proposal fix for issue #2139 + Extra documentation (#2157)
* Refactor announceDeviceTrigger function to improve parameter handling and documentation for optional device information
Fix null pointer references in RFtoMQTTdiscovery and update logging levels for RF signal handling
Refactor RF to MQTT discovery functions for improved clarity and parameter handling

* Update documentation for RF auto discovery and MQTT integration, correcting terminology and enhancing clarity

* Refactor enableRFReceive function to accept parameters for frequency and GPIOs, enhancing flexibility
2025-03-07 16:47:33 -06:00
DigiH 4bf43f5695 [DISC] Removal of openHAB specific MQTT discovery patch (#2153)
Removal of openHAB specific MQTT discovery patch "ohdisc", as it is no longer required with openHAB 4.3 and later, and with openHAB before 4.3 MQTT discovery never was fully implemented anyway.
2025-01-25 14:14:22 -06:00
DigiH ba9506c022 [DISC] Additional HA discovery device class (#2097) 2024-11-04 00:17:56 +01:00
Northern Man a89ff43900 [DISC] Warning message for discovery prefix change (#2066)
* discovery_Topic

* Remove  Log.notice(F("type: %s" CR), type.c_str());
2024-09-25 12:09:29 -05:00
puterboyandFlorian 57fbca8f88 [DISC] Add ability to change Discovery Prefix via WebUI or via mosquitto_pub (#2007)
Add discovery_prefix change at runtime

---------

Co-authored-by: Florian <1technophile@users.noreply.github.com>
2024-08-22 13:22:08 -05:00
Florian 04c3e7ef95 Add Switchbot Blind Tilt control (#2002)
close_up, close_down, open, and percentage command
Add auto-discovery with HA and cover component
2024-08-14 14:55:15 -05:00
DigiH 6e906702ed [DISC] battery_ok discovery differentiation (#1958)
Differentiation between 0%-100% float battery_ok devices' discovery and binary_sensor devices battery_ok
2024-06-10 11:49:43 -05:00
Florian 68fd4dc17e [DISC] Add the capability to use the device BLE name (#1936) 2024-04-25 07:11:02 -05:00
Florian 2065d57e11 [BOARDS] Remove Arduino boards (#1929) 2024-04-10 15:48:05 -05:00
DigiH b884ee8883 [DISC] Additional RF discovery keys and device classes (#1927) 2024-04-05 17:34:02 +02:00
DigiH 781f7af90c [DISC] uv/uvi discovery fix and device classes added (#1923) 2024-04-04 20:00:14 +02:00
DigiH f2d3239350 [BT] Bump Theengs Decoder to 1.6.7 & prmac conversion to RMAC (#1844)
• Bump Theengs Decoder to 1.6.7
• Conversion of prmac decoders to RMAC, for RMAC filtering of random MAC devices, until and if OpenMQTTGateway gets Identity MAC/IRK functionality.
•HA discovery lock class added
2023-12-22 13:18:14 +01:00
DigiH 2fcfc0f6d2 [DISC] Additional device classes for HA discovery (#1810)
* Restart Button

* BME280 pressure

* BH1750 irradiance

* MQ2 gas

* TEMT6000 & TSL2561 irradiance

* Voltage & Current

* HCSR501 motion

* M5STACK battery
2023-11-16 12:08:54 -06:00
DigiH 3c1bd83227 [DISC] Additional HA device classes (#1805)
Additional HA device classes and alphabetical sorting
2023-11-15 07:17:58 -06:00
DigiH 28b97183be [DISC] SYS: RSSI, SYS: Uptime and SYS: Free memory discovery device classes (#1803)
SYS: RSSI, SYS: Uptime and SYS: Free memory discovery device classes additions
2023-11-14 15:13:05 -06:00
Florian e576b26b8c [BT] Fix HA discovery for motion and door sensor (#1798)
* [BT] Fix HA discovery for motion sensor

* Add status binary sensor and text sensor
2023-11-13 17:14:21 -06:00
Zhiqiang Wang 00b2ec93cb [DISC] make mi scale weighing_mode and unit enum (#1766)
* make mi scale weighing_mode and unit enum

* lint
2023-10-05 19:55:07 -05:00
Florian a6c0a3b1d4 [SYS] Add save option to discovery and ohdiscovery key and remove discovery for Arduino boards (#1696)
Enabling to keep discovery off if required

Remove Mqtt discovery for Arduino UNO and ATMEGA
2023-07-30 17:34:58 -05:00
Florian 6e23ca029b [DISC] Add runtime configuration for OpenHAB (#1658)
* [DISC] Add runtime configuration for OpenHAB

Add an MQTT configurable system key "ohdiscovery" for OpenHAB auto discovery

* Docs and environments update
2023-05-31 11:35:35 -05:00
Florian d1e9e8bf9b [RN8209] Fix in use switch value (#1572) 2023-03-23 18:25:13 -05:00
Florian e1fef642cd [BM2] Fix discovery relying on MODEL_ID (#1560)
To don't take into account the iBeacons messages change the condition to is not defined
2023-03-21 13:07:09 -05:00
Northern Man d2470288e5 [BT] InUse updates for DT24 (#1553) 2023-03-20 07:38:55 -05:00
Florian 3f92e14ba6 [HA Discovery] Auto Off timer (#1541)
* [HA Discovery] Auto Off timer

Auto deactivate discovery after 30min from the last activation, goal is to avoid unwanted entities created
2023-03-16 10:43:18 -05:00
Florian 8f47a80303 [BT Discovery] Improve BM2 discovery (#1510)
to filter advertisement coming from iBeacon packets that contains volt
as the voltage is not properly advertised throught the iBeacon packet and render a wrong voltage
2023-03-07 19:35:57 -06:00
Florian 454a062b3b [OTA] Enable 2 clicks OTA update / one simple MQTT command (#1485)
* [OTA] Add automatic OTA updates

This feature will enable to update the gateway with one button or a simple MQTT command.

* [CI] Enable automatic OTA for nightly development builds

And integrate the latest_version file creation into the CI

Enable to specify a particular version
and switch between dev and production builds
2023-02-27 12:54:30 -06:00
Northern Man 032a82e5e2 Create in use binary sensor for RN8209 Current sensor (#1474) 2023-02-23 13:52:29 -06:00
Florian 4e885a7cd0 [BT] Regular BT connect based on time (#1423)
instead of number of scans, as users changing the interval to continuous scanning may have connect attempts to frequently
2023-01-26 09:28:16 -06:00
DigiH 8a767cf4b8 Typo fixes (#1381) 2023-01-08 07:43:15 -06:00
FlorianandNorthernMan54 16815f51da Add RTL_433 discovery with Home Assistant convention inspired from rtl_433_mqtt_hass.py (#1379)
This also changes the topic structure when using the macro valueAsATopic=true, it adds as sub-topics the `type, subtype, and channel` when they exist.
The id is the last subtopic to facilitate filtering, as it may change when replacing the batteries.

Co-authored-by: NorthernMan54 <19808920+NorthernMan54@users.noreply.github.com>
2023-01-07 20:34:43 -06:00
DigiH 807c668489 Small typo fixes (#1359)
A few small typo fixes
2022-12-12 22:58:51 +01:00
Florian 145896516d Enable to set Manufacturer and Model (#1336)
from macros
2022-11-29 10:48:00 -06:00
Sami Salonen e9449f567b Re-publish discovery topics on re-connect (via cfg, disabled by default) (#1274)
Resolves https://github.com/1technophile/OpenMQTTGateway/issues/1273

Signed-off-by: Sami Salonen <ssalonen@gmail.com>

Signed-off-by: Sami Salonen <ssalonen@gmail.com>
2022-09-26 15:49:02 -05:00
DigiH 765ec8415b Additional units from decoders (#1271) 2022-09-22 17:55:36 +02:00
DigiH 5c07e7ef9d CGDN1 classes & units (#1268) 2022-09-10 16:25:54 -05:00
Florian bb88f7e795 Add unit for Amphiro/Oras shower head (#1265) 2022-09-10 18:53:47 +02:00
DigiH c4300a002f MQTT-MAC-IP-mDNS (#1245) 2022-07-19 12:10:51 -05:00
h2zero 8d6acbee12 Add Switchbot support and discovery. (#995)
* Use a task to process immediate BLE actions to prevent MQTT disconnection if the action takes too long to complete.

* Add state_on and state_off parameters to createDiscovery
2022-04-30 09:16:06 -05:00
Florian e6c8b6763c Fix unit discovery for kg and kpa (#1171)
And improve the code
2022-02-25 05:51:59 -06:00
Florian 5b42e024e2 HASS auto discovery - Separate unit filtering from class (#1159) 2022-02-07 18:42:37 -06:00
Amy Nagle 457a8f48a3 Fix OpenHAB discovery (#1153)
* Fix OpenHAB discovery

* Add test for OpenHAB discovery
2022-02-03 16:23:32 -06:00
Florian 71d5622a52 Filter discovery messages against HASS classes list (#1127)
* Filter the discovery message content against HASS list of classes
2022-01-11 20:24:09 -06:00
Alessandro Staniscia bdda5df839 rationalisation of logs and removal of duplicate codes (it should fix also #931) (#1093)
* Rationalisation of logs and removal of duplicate codes
2021-11-02 16:46:01 -05:00
Alessandro Staniscia e9ce921717 Add support for discovery device trigger (#1090)
* Add announce of DeviceTrigger +  Update doc
2021-10-24 08:30:36 -05:00
Alessandro Staniscia e14a78e9c0 Support Home Assistant Long-term Statistics #1087 (#1088) 2021-10-14 18:46:13 -05:00
Florian c2107da1c7 Add BLE TPMS sensors (#1031)
* Add BLE TPMS sensors

tire pressure monitoring system
2021-07-27 06:34:45 -05:00
Florian 2737a4cbf7 Add Eddystone TLM BLE protocol (#972)
supporting battery, temperature, count and time from start in s
2021-06-08 17:53:58 -05:00