Commit Graph
191 Commits
Author SHA1 Message Date
Florian 28f9fbff60 [BLE] When BLE watchdog is triggered, only deinit and reinit BLE (#1635)
* [BLE] Watchdog restart BLE only

* Add minFreeHeap and blecorestacktrace indicators
2023-05-11 07:42:20 -05:00
Florian 9bbe909661 [SYS] Optimize memory usage (#1632)
Add MQTT BLEtask stack follow up and reduce allocated stack
Other memory usage optimizations
2023-05-02 15:22:57 -05:00
Florian 39b36b4456 [BT] More aggressive memory release when stopping process (#1626)
To enable smoother OTA
2023-04-29 08:04:38 -05:00
Florian 177fb97715 [SYS] Refactor ESPrestart (#1625) 2023-04-28 17:06:23 -05:00
Florian 79615516ef [BT] BLE Scan watchdog relying on scan count rather than msgs processed (#1622)
* [BT] BLE Scan watchdog relying on scan count rather than msgs processed

* Condition the scan increment following the scan result
2023-04-28 15:14:01 -05:00
Northern Man 5927259db6 [BT] Fixes for DT24 Triggering restart during discovery (#1614) 2023-04-24 07:47:02 -05:00
DigiH de07e46494 Config Save typo fix (#1611) 2023-04-17 18:01:50 +02:00
Florian 6e8b463213 BT Watchdog Timer (#1590)
Implement a BLE scan watchdog to bypass the problem related to the BLE scan hang scan_evt timout
2023-04-06 15:08:40 -05:00
DigiH e560bd7904 [SYS] Avoid nvs errors (#1588)
Avoid nvs errors when trying to load or erase non-existent nvs preferences.
2023-04-05 14:18:59 -05:00
Northern Man 9b6133ff03 WebUI - First Release (#1586)
* WebUI - First Release

* Lint / Build Issues

* Add WebUI as a default module

* Fix ESP8266 builds
2023-04-05 14:17:08 -05:00
Florian 338fc43825 [OTA] Free memory by deleting BT tasks when launching OTA (#1573)
* [OTA] Free memory by deleting BT taskswhen launching OTA

and restart if fail
Also factorize restart function for ESP
2023-03-24 10:12:08 -05:00
Florian 46273763ed [HA Discovery] Fix trackers being auto discovered with all their properties (#1567)
* [HA Discovery] Fix trackers being auto discovered with all their properties

* Fix HA warning

Template varaible warning when rssi key is absent
2023-03-23 11:25:22 -05:00
DigiH 85d6494d62 [BT] "track" tag removal (#1562)
"track" tag removal when pubAdvData is false
2023-03-22 13:01:49 -05:00
Florian 80e00883fb [HA Discovery] Fix RMAC discovery of unwanted devices (#1557) 2023-03-20 14:36:47 -05:00
Florian 9299ee7970 [BT] Fix discovery of device tracker Tile that adv name only (#1556) 2023-03-20 13:01:03 -05:00
Northern Man d2470288e5 [BT] InUse updates for DT24 (#1553) 2023-03-20 07:38:55 -05:00
Florian 85650a6204 [BT] Device tracker presence detection (#1548)
Add device tracker detection and automatic creation following HA discovery convention
So as to trigger the away state, add an offline status to the identified BLE trackers
2023-03-20 07:31:00 -05:00
ilgrank c8510f2605 [SYS] Add utc & unix timestamp options to SYStoMQTT and Sensor messages (#1533)
Add optional timestamps to the SYStoMQTT and modules messages
Also, the sync with the NTP time server now occurs every hour (can be defined with TimeBetweenCheckingSYS in UserConfig.h)
2023-03-17 10:49:27 -05:00
Florianandh2zero 33ea56bf12 [BT] copy advertised device to avoid concurrent data access. (#1537)
Co-authored-by: h2zero <powellperalata@gmail.com>
2023-03-16 08:00:47 -05:00
Florian 390302a6fa [HA Discovery] Filter on type rather than model_id (#1535)
For maintainability
Add Ibeacon in the filtering as they are not identified with RMAC type
2023-03-15 14:28:12 -05:00
DigiH c7547044fe Scan_Duration as MQTT command (#1516)
Scan_Duration as runtime MQTT command 'scanduration'
2023-03-10 15:12:08 -06:00
DigiH 95b749833c [BT] Known Random MAC address filtering (#1514)
* [BT] Random MAC address filtering

Random MAC address filter with runtime boolean setting
randommacs

* APPLE_CONT added to discovery and data process
2023-03-09 09:35:16 -06: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 9c73896999 [BT Discovery] Deactivate/Activate sliders dynamicaly depending on auto adaptive state (#1502)
To avoid having unnecessaries commands in the interface
2023-03-06 14:20:08 -06:00
DigiH 1b5215de42 [SSD1306] Partial MAC address in BLE title (#1498)
* partial MAC in title

• Last three octets of MAC address in title to differentiate devices with the same model name.
• fixed memory leak
• process optimisation

* lcd to oled

lcd to oled renaming
2023-03-03 14:53:07 -06:00
Florian f35baa9da0 [BT] Add BM2 voltage (#1495)
* [BT] Add BM2 voltage

Voltage retrieval through a BLE connection, frequency of the BLE connection is defined by `intervalcnct`

* Add doc

Credits to https://github.com/KrystianD/bm2-battery-monitor
2023-03-02 11:02:03 -06:00
Florian 1cdf6558a9 [ONOFF] ESP32 Attempt to recover previous actuator state when power has been lost and overcurrent detection change (#1494)
And set the trigger of overCurrent to 2 consecutive measures
2023-03-01 17:44:07 -06:00
Florian fa636bae0f [BT] Adaptive scan sequence change (#1493)
When reactivating adaptive scan, restore default
2023-03-01 17:09:18 -06:00
DigiH c77a16867d [SSD1306] BLE devices display - Take 2 (#1492)
* BLE Display - THB, THBX, PLANT, AIR, BATT, BODY

* SCALE

* BBQ

* Filter MS-CDP, GAEN and IBEACON

* Mopeka & Smart Dry

* ACEL

ACEL sensor, as most also have temp and hum, but no acceleration info display included so far.

* Only display when properties are present

Only display when properties are present, to avoid model only display for devices which require active scanning at a larger interval, e.g. Mi Band and similar.

* LilyGo-BLE environment

* BLE display relocated

BLE display relocated to have pubadvdata "type" in message, required for the different type display functions.
2023-03-01 15:09:45 -06:00
Mark Smith ecd23b9680 Allow for both BT and RTL_433 Gateways at the same time. (#1491)
* Allow for both BT and RTL_433 Gateways at the same time.

* Fix linting error.
2023-03-01 14:09:51 -06:00
Northern Man e5ef78b010 Corrected device_class for DT24 Bluetooth Voltmeter (#1459)
Found during Power Meter testing that the DT24 voltage and current discovery values were being created as power and not voltage and current.
2023-02-15 15:27:58 -06:00
Florian 091d8a4fa7 [BT] Fix for saving interval and intervalacts separately from the save keyword (#1462)
The interval and intervalacts were overwritten at startup when adaptive scan was deactivated
2023-02-15 15:27:29 -06:00
Florian 115fdf80aa [BT] Improve conditions of adaptive scanning (#1450)
To avoid setting several times the BLEinterval for one sensor
2023-02-10 17:54:56 -06:00
Florian 5bcf214d68 [LPM] Add capability to deactivate the function at build time (#1449)
To enable boards with the constant power supply to don't build this function.
Change the default behavior for the mode not to be built by default.
Only the boards with batteries are keeping it
2023-02-10 17:07:28 -06:00
Florian 7c0fafd48e [BT] Continuous active scanning when adaptive scanning is false (#1448)
Set `interval` and `intervalacts` to the minimum when adaptive scanning is deactivated. When the user encounters a situation on which a device is not detected due to adaptive scanning, we set the gateway to continuous active to maximize the chance to detect the device.
2023-02-10 17:05:52 -06:00
Florian 1b0778dc0a [LPM] - Update state (#1445)
When issuing a low power mode change update the state to the controller
2023-02-09 16:18:39 -06:00
Florian 26c0cca614 [LPM] - Fix reboot loop when low power is used (#1444)
By not deinitializing BLE at the start, if it has not been initialized. Setting the time between waking up from the macro rather than the config interval.
This one does not have a value at the start.
2023-02-09 15:19:09 -06:00
FlorianandDigiH f283327998 [BT] - Adaptive scan (#1440)
* [BT] Adaptive scan

Add adaptive scan to avoid users setting parameters and deduct automatically the scan requirements from the list of devices

---------
Co-authored-by: DigiH <github@digih.net>
2023-02-07 17:36:18 -06:00
DigiH 05f83c5f80 Active Scan Interval (#1433) 2023-02-07 12:25:40 -06:00
DigiH bd9dcf1ec8 Tag properties visibility (#1432)
Tag properties visibility to be included with "pubadvdata" setting
2023-02-01 19:41:01 -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
Florian a64acab7c8 [BT] Regular BLE system parameter pub (#1422)
Publish BT config parameter at start so as to update the switch statuses in the controller
Also publish regularly in case of controller restart
Also move btqsum, btqsnd and btqavg to BTtoMQTT topic instead of SYStoMQTT as they are more relevant here
2023-01-26 08:18:44 -06:00
Northern Man 150603555c Update to ZdisplaySSD1306 to reduce overall resource usage, and enable message queuing (#1417) 2023-01-26 08:17:53 -06:00
Florian a3603c6a78 [BLE] Simplify the publication of advertisement data (#1408)
With only one control that enables the publication of all the advertisement data, default: false
Note that if the sensor is not recognized, we will no longer publish its advertisement data unless the control is true. This is for the sake of traffic reduction.
2023-01-20 14:30:11 -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
Florian 25d921580d [HA discovery] Save the BLE settings and change switch to optimistic false (#1364)
The current way of saving settings is through the retain flag of the MQTT commands, unfortunately if several commands are issues they may overwrite each other. So as to prevent it, we now leverage the memory saving introduced earlier to store the BLE settings.
Also leverage the config status publication to show the state through the button position (optimistic false)
2022-12-19 08:44:14 -06:00
Florian 8dde777fb7 [BLE] Add dynamic active scan runtime setting (#1360)
This commit add the capability to set passive scanning during runtime, versus buildtime before, so as to improve energy consumption of sensors when they don't require active scanning
2022-12-14 17:03:34 -06:00
Florianandh2zero 8ee1c4e524 RN8209 energy sensor support with watt, voltage and current. (#1337)
Co-authored-by: h2zero <powellperalta@gmail.com>
2022-11-29 18:41:47 -06:00
Florian 8714141630 Remove the devices that have Random Mac from the internal memory (#1335)
So as to avoid to have a growing memory consumption, indeed each time these devices change their MAC it will create a new entry into the list. This increase continuously the memory consumption of the list. And as these devices can't be discovered and doesn't have interest to be white or black listed we don't store them
2022-11-28 20:29:07 -06:00