From b0d515febcfa05d17ae94aeb50ba3420aac991b6 Mon Sep 17 00:00:00 2001 From: Florian <1technophile@users.noreply.github.com> Date: Wed, 15 Nov 2023 20:14:44 -0600 Subject: [PATCH] [SYS/BT] Semaphores and new BT Controller Add semaphore to the enqueue calls to avoid concurrency issues Add new BT controller to avoid scan evt timeout bug --- .github/workflows/build.yml | 14 ++ .github/workflows/build_and_docs_to_dev.yml | 14 ++ .github/workflows/release.yml | 14 ++ .gitignore | 3 +- lib/esp32-bt-lib/LICENSE | 202 ++++++++++++++++++++ lib/{ => esp32-bt-lib}/README | 0 lib/esp32-bt-lib/README.rst | 10 + lib/esp32-bt-lib/esp32/libbtdm_app.a | Bin 0 -> 524222 bytes main/User_config.h | 10 + main/ZactuatorONOFF.ino | 2 +- main/ZdisplaySSD1306.ino | 3 +- main/Zgateway2G.ino | 3 +- main/ZgatewayBLEConnect.ino | 14 +- main/ZgatewayBT.ino | 50 ++--- main/ZgatewayGFSunInverter.ino | 4 +- main/ZgatewayIR.ino | 2 +- main/ZgatewayLORA.ino | 7 +- main/ZgatewayPilight.ino | 8 +- main/ZgatewayRF.ino | 4 +- main/ZgatewayRF2.ino | 2 +- main/ZgatewayRFM69.ino | 2 +- main/ZgatewayRTL_433.ino | 4 +- main/ZgatewaySRFB.ino | 4 +- main/ZgatewayWeatherStation.ino | 10 +- main/ZmqttDiscovery.ino | 2 +- main/ZsensorADC.ino | 2 +- main/ZsensorAHTx0.ino | 2 +- main/ZsensorBH1750.ino | 2 +- main/ZsensorBME280.ino | 2 +- main/ZsensorC37_YL83_HMRD.ino | 2 +- main/ZsensorDHT.ino | 2 +- main/ZsensorDS1820.ino | 2 +- main/ZsensorGPIOInput.ino | 2 +- main/ZsensorHCSR04.ino | 3 +- main/ZsensorHCSR501.ino | 2 +- main/ZsensorHTU21.ino | 2 +- main/ZsensorINA226.ino | 2 +- main/ZsensorLM75.ino | 2 +- main/ZsensorMQ2.ino | 2 +- main/ZsensorRN8209.ino | 2 +- main/ZsensorSHTC3.ino | 2 +- main/ZsensorTEMT6000.ino | 2 +- main/ZsensorTSL2561.ino | 2 +- main/ZwebUI.ino | 2 +- main/config_BT.h | 1 + main/main.ino | 45 ++++- 46 files changed, 381 insertions(+), 92 deletions(-) create mode 100644 lib/esp32-bt-lib/LICENSE rename lib/{ => esp32-bt-lib}/README (100%) create mode 100644 lib/esp32-bt-lib/README.rst create mode 100644 lib/esp32-bt-lib/esp32/libbtdm_app.a diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 492881f320..826514ebed 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -90,6 +90,20 @@ jobs: run: | python -m pip install --upgrade pip pip install platformio + - name: Extract ESP32 platform version from platformio.ini + run: | + ESP32_VERSION=$(grep 'esp32_platform\s*=' platformio.ini | cut -d'@' -f2 | tr -d '[:space:]') + echo "ESP32_PLATFORM_VERSION=${ESP32_VERSION}" >> $GITHUB_ENV + - name: Trigger framework installation + run: platformio run -e esp32dev-all-test + - name: Replace libbtdm_app.a file + run: cp lib/esp32-bt-lib/esp32/libbtdm_app.a $HOME/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/ld/libbtdm_app.a + - name: Verify file replacement + run: | + echo "Listing the file at the target location:" + ls -ltr $HOME/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/ld/ + echo "Checking file checksum:" + md5sum $HOME/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/ld/libbtdm_app.a - name: Run PlatformIO run: platformio run -e ${{ matrix.environments }} - name: Upload Assets diff --git a/.github/workflows/build_and_docs_to_dev.yml b/.github/workflows/build_and_docs_to_dev.yml index 0369a045a2..8a9ed55544 100644 --- a/.github/workflows/build_and_docs_to_dev.yml +++ b/.github/workflows/build_and_docs_to_dev.yml @@ -28,6 +28,20 @@ jobs: sed -i "s/version_tag/${{ steps.short-sha.outputs.sha }}/g" main/User_config.h scripts/latest_version_dev.json sed -i "s/version_tag/DEVELOPMENT SHA:${{ steps.short-sha.outputs.sha }} TEST ONLY/g" docs/.vuepress/config.js sed -i "s|base: '/'|base: '/dev/'|g" docs/.vuepress/config.js + - name: Extract ESP32 platform version from platformio.ini + run: | + ESP32_VERSION=$(grep 'esp32_platform\s*=' platformio.ini | cut -d'@' -f2 | tr -d '[:space:]') + echo "ESP32_PLATFORM_VERSION=${ESP32_VERSION}" >> $GITHUB_ENV + - name: Trigger framework installation + run: platformio run -e esp32dev-all-test + - name: Replace libbtdm_app.a file + run: cp lib/esp32-bt-lib/esp32/libbtdm_app.a $HOME/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/ld/libbtdm_app.a + - name: Verify file replacement + run: | + echo "Listing the file at the target location:" + ls -ltr $HOME/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/ld/ + echo "Checking file checksum:" + md5sum $HOME/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/ld/libbtdm_app.a - name: Run PlatformIO run: | export PLATFORMIO_BUILD_FLAGS="'-DDEVELOPMENTOTA=true'" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 098d5b6566..62beb7b95f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,6 +20,20 @@ jobs: pip install platformio - name: Set version tag from git run: sed -i "s/version_tag/${GITHUB_REF#refs/tags/}/g" main/User_config.h scripts/latest_version.json + - name: Extract ESP32 platform version from platformio.ini + run: | + ESP32_VERSION=$(grep 'esp32_platform\s*=' platformio.ini | cut -d'@' -f2 | tr -d '[:space:]') + echo "ESP32_PLATFORM_VERSION=${ESP32_VERSION}" >> $GITHUB_ENV + - name: Trigger framework installation + run: platformio run -e esp32dev-all-test + - name: Replace libbtdm_app.a file + run: cp lib/esp32-bt-lib/esp32/libbtdm_app.a $HOME/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/ld/libbtdm_app.a + - name: Verify file replacement + run: | + echo "Listing the file at the target location:" + ls -ltr $HOME/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/ld/ + echo "Checking file checksum:" + md5sum $HOME/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/ld/libbtdm_app.a - name: Run PlatformIO run: platformio run - name: Prepare Release Assets diff --git a/.gitignore b/.gitignore index 5f4cfe5ec4..5e077451a8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ node_modules *.ps1 main/certs/private* -lib \ No newline at end of file +lib/* +!lib/esp32-bt-lib diff --git a/lib/esp32-bt-lib/LICENSE b/lib/esp32-bt-lib/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/lib/esp32-bt-lib/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/README b/lib/esp32-bt-lib/README similarity index 100% rename from lib/README rename to lib/esp32-bt-lib/README diff --git a/lib/esp32-bt-lib/README.rst b/lib/esp32-bt-lib/README.rst new file mode 100644 index 0000000000..c554199031 --- /dev/null +++ b/lib/esp32-bt-lib/README.rst @@ -0,0 +1,10 @@ +ESP32 BT/BLE Stack Libraries +==================== + +This repository contains binary libraries supporting the ESP32 RF subsystems. It is used as a submodule within `Espressif IoT Development Framework`_ (ESP-IDF). + +Files in this repository are Copyright (C) 2015-2016 Espressif Systems. + +These binary libraries are provided under the same license as the parent esp-idf project - the Apache License 2.0 as provided in the file LICENSE. (The license text refers to this as "Object" form.) + +.. _Espressif IoT Development Framework: https://github.com/espressif/esp-idf diff --git a/lib/esp32-bt-lib/esp32/libbtdm_app.a b/lib/esp32-bt-lib/esp32/libbtdm_app.a new file mode 100644 index 0000000000000000000000000000000000000000..698cc64d3627fc2b2fbf8b1895485c5ad41319f8 GIT binary patch literal 524222 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 # define isDiscovered(device) device->isDisc +/*--------------------Minimum freeHeap--------------------*/ +// Below this parameter we trigger a restart, this avoid stuck boards like seen in https://github.com/1technophile/OpenMQTTGateway/issues/1693 +# define MinimumMemory 40000 + /*----------------CONFIGURABLE PARAMETERS-----------------*/ struct SYSConfig_s { bool discovery; // HA discovery convention diff --git a/main/ZactuatorONOFF.ino b/main/ZactuatorONOFF.ino index 70067ade1f..540c2febec 100644 --- a/main/ZactuatorONOFF.ino +++ b/main/ZactuatorONOFF.ino @@ -304,6 +304,6 @@ void stateONOFFMeasures() { JsonObject ONOFFdata = jsonBuffer.to(); ONOFFdata["cmd"] = (int)digitalRead(ACTUATOR_ONOFF_GPIO); ONOFFdata["origin"] = subjectGTWONOFFtoMQTT; - enqueueJsonObject(ONOFFdata); + handleJsonEnqueue(ONOFFdata, QueueSemaphoreTimeOutTask); } #endif diff --git a/main/ZdisplaySSD1306.ino b/main/ZdisplaySSD1306.ino index 8b5b19999e..799690f093 100644 --- a/main/ZdisplaySSD1306.ino +++ b/main/ZdisplaySSD1306.ino @@ -467,7 +467,8 @@ String stateSSD1306Display() { DISPLAYdata["log-oled"] = (bool)logToOLEDDisplay; DISPLAYdata["json-oled"] = (bool)jsonDisplay; DISPLAYdata["origin"] = subjectSSD1306toMQTT; - enqueueJsonObject(DISPLAYdata); + handleJsonEnqueue(DISPLAYdata); + // apply Oled.display->setBrightness(round(displayBrightness * 2.55)); diff --git a/main/Zgateway2G.ino b/main/Zgateway2G.ino index df49cce6de..53530583dd 100644 --- a/main/Zgateway2G.ino +++ b/main/Zgateway2G.ino @@ -91,8 +91,7 @@ bool _2GtoMQTT() { A6l.deleteSMS(unreadSMSLocs[i]); // we delete the SMS received Log.trace(F("Adv data 2GtoMQTT" CR)); SMSdata["origin"] = subject2GtoMQTT; - enqueueJsonObject(SMSdata); - return true; + return handleJsonEnqueue(SMSdata); } return false; } diff --git a/main/ZgatewayBLEConnect.ino b/main/ZgatewayBLEConnect.ino index 4cbc05e41d..813ef2b510 100644 --- a/main/ZgatewayBLEConnect.ino +++ b/main/ZgatewayBLEConnect.ino @@ -121,7 +121,7 @@ bool zBLEConnect::processActions(std::vector& actions) { BLEdata["success"] = result; if (result || it.ttl <= 1) { buildTopicFromId(BLEdata, subjectBTtoMQTT); - enqueueJsonObject(BLEdata); + handleJsonEnqueue(BLEdata, QueueSemaphoreTimeOutTask); } } } @@ -161,7 +161,7 @@ void LYWSD03MMC_connect::notifyCB(NimBLERemoteCharacteristic* pChar, uint8_t* pD BLEdata["volt"] = (float)(((pData[4] * 256) + pData[3]) / 1000.0); BLEdata["batt"] = (float)(((((pData[4] * 256) + pData[3]) / 1000.0) - 2.1) * 100); buildTopicFromId(BLEdata, subjectBTtoMQTT); - enqueueJsonObject(BLEdata); + handleJsonEnqueue(BLEdata, QueueSemaphoreTimeOutTask); } else { Log.notice(F("Invalid notification data" CR)); return; @@ -226,7 +226,7 @@ void DT24_connect::notifyCB(NimBLERemoteCharacteristic* pChar, uint8_t* pData, s BLEdata["tempc"] = (float)(m_data[24] * 256) + m_data[25]; BLEdata["tempf"] = (float)(convertTemp_CtoF((m_data[24] * 256) + m_data[25])); buildTopicFromId(BLEdata, subjectBTtoMQTT); - enqueueJsonObject(BLEdata); + handleJsonEnqueue(BLEdata, QueueSemaphoreTimeOutTask); } else { Log.notice(F("Invalid notification data" CR)); return; @@ -303,7 +303,7 @@ void BM2_connect::notifyCB(NimBLERemoteCharacteristic* pChar, uint8_t* pData, si BLEdata["volt"] = volt; Log.trace(F("volt: %F" CR), volt); buildTopicFromId(BLEdata, subjectBTtoMQTT); - enqueueJsonObject(BLEdata); + handleJsonEnqueue(BLEdata, QueueSemaphoreTimeOutTask); } else { Log.notice(F("Invalid notification data" CR)); return; @@ -361,7 +361,7 @@ void HHCCJCY01HHCC_connect::publishData() { BLEdata["id"] = (char*)mac_address.c_str(); BLEdata["batt"] = (int)batteryValue; buildTopicFromId(BLEdata, subjectBTtoMQTT); - enqueueJsonObject(BLEdata); + handleJsonEnqueue(BLEdata, QueueSemaphoreTimeOutTask); } else { Log.notice(F("Failed getting characteristic" CR)); } @@ -393,7 +393,7 @@ void XMWSDJ04MMC_connect::notifyCB(NimBLERemoteCharacteristic* pChar, uint8_t* p BLEdata["volt"] = (float)((pData[4] | (pData[5] << 8)) / 1000.0); BLEdata["batt"] = (float)((((pData[4] | (pData[5] << 8)) / 1000.0) - 2.1) * 100); buildTopicFromId(BLEdata, subjectBTtoMQTT); - enqueueJsonObject(BLEdata); + handleJsonEnqueue(BLEdata, QueueSemaphoreTimeOutTask); } else { Log.notice(F("Invalid notification data" CR)); return; @@ -490,7 +490,7 @@ bool SBS1_connect::processActions(std::vector& actions) { BLEdata["id"] = it.addr; BLEdata["state"] = result ? it.value : it.value == "on" ? "off" : "on"; buildTopicFromId(BLEdata, subjectBTtoMQTT); - enqueueJsonObject(BLEdata); + handleJsonEnqueue(BLEdata, QueueSemaphoreTimeOutTask); } } } diff --git a/main/ZgatewayBT.ino b/main/ZgatewayBT.ino index e689410e6a..624ae0be15 100644 --- a/main/ZgatewayBT.ino +++ b/main/ZgatewayBT.ino @@ -103,23 +103,7 @@ void BTConfig_init() { BTConfig.ignoreWBlist = false; BTConfig.presenceAwayTimer = PresenceAwayTimer; BTConfig.movingTimer = MovingTimer; -} - -// Watchdog, if there was no change of BLE scanCount, restart the ESP -void btScanWDG() { - static unsigned long previousBtScanCount = 0; - static unsigned long lastBtScan = 0; - unsigned long now = millis(); - if (!ProcessLock && - previousBtScanCount == scanCount && - scanCount != 0 && - (now - lastBtScan > ((BTConfig.BLEinterval + BTConfig.scanDuration) < GeneralTimeOut ? GeneralTimeOut + 1000 : (BTConfig.BLEinterval + BTConfig.scanDuration)))) { - Log.error(F("BLE Scan watchdog triggered at : %ds" CR), lastBtScan / 1000); - ESPRestart(4); - } else { - previousBtScanCount = scanCount; - lastBtScan = now; - } + BTConfig.forcePassiveScan = false; } unsigned long timeBetweenConnect = 0; @@ -148,6 +132,7 @@ String stateBTMeasures(bool start) { jo["ignoreWBlist"] = BTConfig.ignoreWBlist; jo["presenceawaytimer"] = BTConfig.presenceAwayTimer; jo["movingtimer"] = BTConfig.movingTimer; + jo["forcepassivescan"] = BTConfig.forcePassiveScan; jo["bletaskstack"] = uxTaskGetStackHighWaterMark(xProcBLETaskHandle); jo["blecoretaskstack"] = uxTaskGetStackHighWaterMark(xCoreTaskHandle); @@ -160,7 +145,7 @@ String stateBTMeasures(bool start) { String output; serializeJson(jo, output); jo["origin"] = subjectBTtoMQTT; - enqueueJsonObject(jo); + handleJsonEnqueue(jo, QueueSemaphoreTimeOutTask); return (output); } @@ -224,6 +209,8 @@ void BTConfig_fromJson(JsonObject& BTdata, bool startup = false) { Config_update(BTdata, "presenceawaytimer", BTConfig.presenceAwayTimer); // Timer to trigger a device state as offline if not seen Config_update(BTdata, "movingtimer", BTConfig.movingTimer); + // Force passive scan + Config_update(BTdata, "forcepassivescan", BTConfig.forcePassiveScan); // MinRSSI set Config_update(BTdata, "minrssi", BTConfig.minRssi); // Send undecoded device data @@ -278,6 +265,7 @@ void BTConfig_fromJson(JsonObject& BTdata, bool startup = false) { jo["ignoreWBlist"] = BTConfig.ignoreWBlist; jo["presenceawaytimer"] = BTConfig.presenceAwayTimer; jo["movingtimer"] = BTConfig.movingTimer; + jo["forcepassivescan"] = BTConfig.forcePassiveScan; // Save config into NVS (non-volatile storage) String conf = ""; serializeJson(jsonBuffer, conf); @@ -418,7 +406,7 @@ void updateDevicesStatus() { BLEdata["id"] = p->macAdr; BLEdata["state"] = "offline"; buildTopicFromId(BLEdata, subjectBTtoMQTT); - enqueueJsonObject(BLEdata); + handleJsonEnqueue(BLEdata, QueueSemaphoreTimeOutTask); // We set the lastUpdate to 0 to avoid replublishing the offline state p->lastUpdate = 0; } @@ -432,7 +420,7 @@ void updateDevicesStatus() { BLEdata["id"] = p->macAdr; BLEdata["state"] = "offline"; buildTopicFromId(BLEdata, subjectBTtoMQTT); - enqueueJsonObject(BLEdata); + handleJsonEnqueue(BLEdata, QueueSemaphoreTimeOutTask); // We set the lastUpdate to 0 to avoid replublishing the offline state p->lastUpdate = 0; } @@ -668,7 +656,7 @@ void BLEscan() { BLEScan* pBLEScan = BLEDevice::getScan(); MyAdvertisedDeviceCallbacks myCallbacks; pBLEScan->setAdvertisedDeviceCallbacks(&myCallbacks); - if (millis() > (timeBetweenActive + BTConfig.intervalActiveScan) || BTConfig.intervalActiveScan == BTConfig.BLEinterval) { + if ((millis() > (timeBetweenActive + BTConfig.intervalActiveScan) || BTConfig.intervalActiveScan == BTConfig.BLEinterval) && !BTConfig.forcePassiveScan) { pBLEScan->setActiveScan(true); timeBetweenActive = millis(); } else { @@ -756,17 +744,18 @@ void BLEconnect() { void stopProcessing() { ProcessLock = true; // We stop the scan + Log.notice(F("Stopping BLE scan" CR)); BLEScan* pBLEScan = BLEDevice::getScan(); if (pBLEScan->isScanning()) { pBLEScan->stop(); } + Log.notice(F("Stopping BLE tasks" CR)); //Suspending, deleting tasks and stopping BT to free memory vTaskSuspend(xCoreTaskHandle); vTaskDelete(xCoreTaskHandle); vTaskSuspend(xProcBLETaskHandle); vTaskDelete(xProcBLETaskHandle); - if (BLEDevice::getInitialized()) BLEDevice::deinit(true); - Log.notice(F("BLE gateway stopped, free heap: %d" CR), ESP.getFreeHeap()); + Log.notice(F("BLE gateway stopped %T, free heap: %d" CR), ESP.getFreeHeap()); } void coreTask(void* pvParameters) { @@ -787,7 +776,7 @@ void coreTask(void* pvParameters) { timeBetweenConnect = millis(); BLEconnect(); } - dumpDevices(); + //dumpDevices(); Log.trace(F("CoreTask stack free: %u" CR), uxTaskGetStackHighWaterMark(xCoreTaskHandle)); xSemaphoreGive(semaphoreBLEOperation); } else { @@ -901,6 +890,7 @@ void setupBT() { Log.notice(F("Low Power Mode: %d" CR), lowpowermode); Log.notice(F("Presence Away Timer: %d" CR), BTConfig.presenceAwayTimer); Log.notice(F("Moving Timer: %d" CR), BTConfig.movingTimer); + Log.notice(F("Force passive scan: %T" CR), BTConfig.forcePassiveScan); atomic_init(&forceBTScan, 0); // in theory, we don't need this @@ -936,7 +926,7 @@ boolean valid_service_data(const char* data, int size) { void launchBTDiscovery(bool overrideDiscovery) { if (!overrideDiscovery && newDevices == 0) return; - if (xSemaphoreTake(semaphoreCreateOrUpdateDevice, pdMS_TO_TICKS(1000)) == pdFALSE) { + if (xSemaphoreTake(semaphoreCreateOrUpdateDevice, pdMS_TO_TICKS(QueueSemaphoreTimeOutTask)) == pdFALSE) { Log.error(F("Semaphore NOT taken" CR)); return; } @@ -1136,7 +1126,7 @@ void PublishDeviceData(JsonObject& BLEdata) { // If the device is not a sensor and pubOnlySensors is true we don't publish this payload if (!BTConfig.pubOnlySensors || BLEdata.containsKey("model") || BLEdata.containsKey("distance")) { // Identified device buildTopicFromId(BLEdata, subjectBTtoMQTT); - enqueueJsonObject(BLEdata); + handleJsonEnqueue(BLEdata, QueueSemaphoreTimeOutTask); } else { Log.notice(F("Not a sensor device filtered" CR)); return; @@ -1152,7 +1142,7 @@ void PublishDeviceData(JsonObject& BLEdata) { BLEdata["mac"] = BLEdata["id"]; BLEdata["id"] = BLEdata["uuid"]; } - enqueueJsonObject(BLEdata); + handleJsonEnqueue(BLEdata, QueueSemaphoreTimeOutTask); } else { Log.notice(F("Low rssi, device filtered" CR)); return; @@ -1298,7 +1288,7 @@ void immediateBTAction(void* pvParameters) { BLEdata["id"] = BLEactions.back().addr; BLEdata["success"] = false; buildTopicFromId(BLEdata, subjectBTtoMQTT); - enqueueJsonObject(BLEdata); + handleJsonEnqueue(BLEdata, QueueSemaphoreTimeOutTask); BLEactions.pop_back(); ProcessLock = false; } @@ -1397,8 +1387,8 @@ void MQTTtoBT(char* topicOri, JsonObject& BTdata) { // json object decoding WorBupdated |= updateWorB(BTdata, false); if (WorBupdated) { - if (xSemaphoreTake(semaphoreCreateOrUpdateDevice, pdMS_TO_TICKS(1000)) == pdTRUE) { - dumpDevices(); + if (xSemaphoreTake(semaphoreCreateOrUpdateDevice, pdMS_TO_TICKS(QueueSemaphoreTimeOutTask)) == pdTRUE) { + //dumpDevices(); xSemaphoreGive(semaphoreCreateOrUpdateDevice); } } diff --git a/main/ZgatewayGFSunInverter.ino b/main/ZgatewayGFSunInverter.ino index f9e339012c..16caa4eee1 100644 --- a/main/ZgatewayGFSunInverter.ino +++ b/main/ZgatewayGFSunInverter.ino @@ -59,7 +59,7 @@ void GFSunInverterDataHandler(GfSun2000Data data) { jdata["register"] = jregister; # endif jdata["origin"] = subjectRFtoMQTT; - enqueueJsonObject(jdata); + handleJsonEnqueue(jdata); } void GFSunInverterErrorHandler(int errorId, char* errorMessage) { @@ -72,7 +72,7 @@ void GFSunInverterErrorHandler(int errorId, char* errorMessage) { jdata["msg"] = errorMessage; jdata["id"] = errorId; jdata["origin"] = subjectRFtoMQTT; - enqueueJsonObject(jdata); + handleJsonEnqueue(jdata); } void setupGFSunInverter() { diff --git a/main/ZgatewayIR.ino b/main/ZgatewayIR.ino index 89f9b5eb1b..2882fcb9eb 100644 --- a/main/ZgatewayIR.ino +++ b/main/ZgatewayIR.ino @@ -169,7 +169,7 @@ void IRtoMQTT() { } else if (!isAduplicateSignal(MQTTvalue) && MQTTvalue != 0) { // conditions to avoid duplications of IR -->MQTT Log.trace(F("Adv data IRtoMQTT" CR)); IRdata["origin"] = subjectIRtoMQTT; - enqueueJsonObject(IRdata); + handleJsonEnqueue(IRdata); Log.trace(F("Store val: %D" CR), MQTTvalue); storeSignalValue(MQTTvalue); if (repeatIRwMQTT) { diff --git a/main/ZgatewayLORA.ino b/main/ZgatewayLORA.ino index f0416e99bb..0edacdba74 100644 --- a/main/ZgatewayLORA.ino +++ b/main/ZgatewayLORA.ino @@ -105,7 +105,7 @@ void createOrUpdateDeviceLORA(const char* id, const char* model, uint8_t flags) void launchLORADiscovery(bool overrideDiscovery) { if (!overrideDiscovery && newLORADevices == 0) return; - if (xSemaphoreTake(semaphorecreateOrUpdateDeviceLORA, pdMS_TO_TICKS(1000)) == pdFALSE) { + if (xSemaphoreTake(semaphorecreateOrUpdateDeviceLORA, pdMS_TO_TICKS(QueueSemaphoreTimeOutLoop)) == pdFALSE) { Log.error(F("[LORA] semaphorecreateOrUpdateDeviceLORA Semaphore NOT taken" CR)); return; } @@ -453,12 +453,11 @@ void LORAtoMQTT() { } else { LORAdataBuffer["origin"] = subjectLORAtoMQTT; } - enqueueJsonObject(LORAdata); - + handleJsonEnqueue(LORAdata); if (repeatLORAwMQTT) { Log.trace(F("Pub LORA for rpt" CR)); LORAdata["origin"] = subjectMQTTtoLORA; - enqueueJsonObject(LORAdata); + handleJsonEnqueue(LORAdata); } } } diff --git a/main/ZgatewayPilight.ino b/main/ZgatewayPilight.ino index 316c5ca753..563a8f4536 100644 --- a/main/ZgatewayPilight.ino +++ b/main/ZgatewayPilight.ino @@ -81,11 +81,11 @@ void pilightCallback(const String& protocol, const String& message, int status, RFPiLightdata["repeats"] = (int)repeats; RFPiLightdata["status"] = (int)status; RFPiLightdata["origin"] = subjectPilighttoMQTT; - enqueueJsonObject(RFPiLightdata); + handleJsonEnqueue(RFPiLightdata); if (repeatPilightwMQTT) { Log.trace(F("Pub Pilight for rpt" CR)); RFPiLightdata["origin"] = subjectMQTTtoPilight; - enqueueJsonObject(RFPiLightdata); + handleJsonEnqueue(RFPiLightdata); } } } @@ -108,7 +108,7 @@ void pilightRawCallback(const uint16_t* pulses, size_t length) { // Enqueue data RFPiLightdata["origin"] = subjectPilighttoMQTT; - enqueueJsonObject(RFPiLightdata); + handleJsonEnqueue(RFPiLightdata); } # endif @@ -273,7 +273,7 @@ void MQTTtoPilight(char* topicOri, JsonObject& Pilightdata) { if (msgLength > 0) { Log.trace(F("Adv data MQTTtoPilight push state via PilighttoMQTT" CR)); Pilightdata["origin"] = subjectGTWPilighttoMQTT; - enqueueJsonObject(Pilightdata); + handleJsonEnqueue(Pilightdata); success = true; } else { switch (msgLength) { diff --git a/main/ZgatewayRF.ino b/main/ZgatewayRF.ino index f5eeb8797d..a1cab918de 100644 --- a/main/ZgatewayRF.ino +++ b/main/ZgatewayRF.ino @@ -171,14 +171,14 @@ void RFtoMQTT() { RFtoMQTTdiscovery(MQTTvalue); # endif RFdata["origin"] = subjectRFtoMQTT; - enqueueJsonObject(RFdata); + handleJsonEnqueue(RFdata); // Casting "receivedSignal[o].value" to (unsigned long) because ArduinoLog doesn't support uint64_t for ESP's Log.trace(F("Store val: %u" CR), (unsigned long)MQTTvalue); storeSignalValue(MQTTvalue); if (repeatRFwMQTT) { Log.trace(F("Pub RF for rpt" CR)); RFdata["origin"] = subjectMQTTtoRF; - enqueueJsonObject(RFdata); + handleJsonEnqueue(RFdata); } } } diff --git a/main/ZgatewayRF2.ino b/main/ZgatewayRF2.ino index f10b78fad7..76c41871a5 100644 --- a/main/ZgatewayRF2.ino +++ b/main/ZgatewayRF2.ino @@ -133,7 +133,7 @@ void RF2toMQTT() { RF2toMQTTdiscovery(RF2data); # endif RF2data["origin"] = subjectRF2toMQTT; - enqueueJsonObject(RF2data); + handleJsonEnqueue(RF2data); } } diff --git a/main/ZgatewayRFM69.ino b/main/ZgatewayRFM69.ino index 998d4c37b9..c9aa0590ad 100644 --- a/main/ZgatewayRFM69.ino +++ b/main/ZgatewayRFM69.ino @@ -216,7 +216,7 @@ void MQTTtoRFM69(char* topicOri, JsonObject& RFM69data) { Log.notice(F(" OK " CR)); // Acknowledgement to the GTWRF topic RFM69data["origin"] = subjectGTWRFM69toMQTT; - enqueueJsonObject(RFM69data); + handleJsonEnqueue(RFM69data); } else { Log.error(F("MQTTtoRFM69 sending failed" CR)); } diff --git a/main/ZgatewayRTL_433.ino b/main/ZgatewayRTL_433.ino index ae87908a69..925c285ec9 100644 --- a/main/ZgatewayRTL_433.ino +++ b/main/ZgatewayRTL_433.ino @@ -108,7 +108,7 @@ void createOrUpdateDeviceRTL_433(const char* id, const char* model, uint8_t flag void launchRTL_433Discovery(bool overrideDiscovery) { if (!overrideDiscovery && newRTL_433Devices == 0) return; - if (xSemaphoreTake(semaphorecreateOrUpdateDeviceRTL_433, pdMS_TO_TICKS(1000)) == pdFALSE) { + if (xSemaphoreTake(semaphorecreateOrUpdateDeviceRTL_433, pdMS_TO_TICKS(QueueSemaphoreTimeOutLoop)) == pdFALSE) { Log.error(F("[rtl_433] semaphorecreateOrUpdateDeviceRTL_433 Semaphore NOT taken" CR)); return; } @@ -258,7 +258,7 @@ void rtl_433_Callback(char* message) { storeRTL_433Discovery(RFrtl_433_ESPdata, (char*)model.c_str(), (char*)uniqueid.c_str()); # endif RFrtl_433_ESPdata["origin"] = (char*)topic.c_str(); - enqueueJsonObject(RFrtl_433_ESPdata); + handleJsonEnqueue(RFrtl_433_ESPdata); storeSignalValue(MQTTvalue); pubOled((char*)topic.c_str(), RFrtl_433_ESPdata); } diff --git a/main/ZgatewaySRFB.ino b/main/ZgatewaySRFB.ino index cadfa32840..558fef16fa 100644 --- a/main/ZgatewaySRFB.ino +++ b/main/ZgatewaySRFB.ino @@ -121,13 +121,13 @@ void _rfbDecode() { if (!isAduplicateSignal(MQTTvalue) && MQTTvalue != 0) { // conditions to avoid duplications of RF -->MQTT Log.trace(F("Adv data SRFBtoMQTT" CR)); SRFBdata["origin"] = subjectSRFBtoMQTT; - enqueueJsonObject(SRFBdata); + handleJsonEnqueue(SRFBdata); Log.trace(F("Store val: %lu" CR), MQTTvalue); storeSignalValue(MQTTvalue); if (repeatSRFBwMQTT) { Log.trace(F("Publish SRFB for rpt" CR)); SRFBdata["origin"] = subjectMQTTtoSRFB; - enqueueJsonObject(SRFBdata); + handleJsonEnqueue(SRFBdata); } } _rfbAck(); diff --git a/main/ZgatewayWeatherStation.ino b/main/ZgatewayWeatherStation.ino index 2796d4cd24..e177aa21c5 100644 --- a/main/ZgatewayWeatherStation.ino +++ b/main/ZgatewayWeatherStation.ino @@ -41,7 +41,7 @@ void PairedDeviceAdded(byte newID) { RFdata["sensor"] = newID; RFdata["action"] = "paired"; RFdata["origin"] = subjectRFtoMQTT; - enqueueJsonObject(RFdata); + handleJsonEnqueue(RFdata); wsdr.pair(NULL, PairedDeviceAdded); } @@ -61,7 +61,7 @@ void sendWindSpeedData(byte id, float wind_speed, byte battery_status) { RFdata["wind_speed"] = wind_speed; RFdata["battery"] = bitRead(battery_status, 0) == 0 ? "OK" : "Low"; RFdata["origin"] = subjectRFtoMQTT; - enqueueJsonObject(RFdata); + handleJsonEnqueue(RFdata); Log.trace(F("Store wind speed val: %lu" CR), MQTTvalue); storeSignalValue(MQTTvalue); } @@ -76,7 +76,7 @@ void sendRainData(byte id, float rain_volume, byte battery_status) { RFdata["rain_volume"] = rain_volume; RFdata["battery"] = bitRead(battery_status, 1) == 0 ? "OK" : "Low"; RFdata["origin"] = subjectRFtoMQTT; - enqueueJsonObject(RFdata); + handleJsonEnqueue(RFdata); Log.trace(F("Store rain_volume: %lu" CR), MQTTvalue); storeSignalValue(MQTTvalue); } @@ -92,7 +92,7 @@ void sendWindData(byte id, int wind_direction, float wind_gust, byte battery_sta RFdata["wind_gust"] = wind_gust; RFdata["battery"] = bitRead(battery_status, 0) == 0 ? "OK" : "Low"; RFdata["origin"] = subjectRFtoMQTT; - enqueueJsonObject(RFdata); + handleJsonEnqueue(RFdata); Log.trace(F("Store wind data val: %lu" CR), MQTTvalue); storeSignalValue(MQTTvalue); } @@ -109,7 +109,7 @@ void sendTemperatureData(byte id, float temperature, int humidity, byte battery_ RFdata["humidity"] = humidity; RFdata["battery"] = bitRead(battery_status, 0) == 0 ? "OK" : "Low"; RFdata["origin"] = subjectRFtoMQTT; - enqueueJsonObject(RFdata); + handleJsonEnqueue(RFdata); Log.trace(F("Store temp val: %lu" CR), MQTTvalue); storeSignalValue(MQTTvalue); } diff --git a/main/ZmqttDiscovery.ino b/main/ZmqttDiscovery.ino index 3a5c386e22..f5a2886a0a 100644 --- a/main/ZmqttDiscovery.ino +++ b/main/ZmqttDiscovery.ino @@ -502,7 +502,7 @@ void pubMqttDiscovery() { "{\"discovery\":true,\"save\":true}", "{\"discovery\":false,\"save\":true}", "", //set,payload_on,payload_off,unit_of_meas, 0, //set off_delay Gateway_AnnouncementMsg, will_Message, true, subjectMQTTtoSYSset, //set,payload_avalaible,payload_not avalaible ,is a gateway entity, command topic - "", "", "", "", true, // device name, device manufacturer, device model, device MAC, retain, + "", "", "", "", false, // device name, device manufacturer, device model, device MAC, retain, stateClassNone, //State Class "false", "true" //state_off, state_on ); diff --git a/main/ZsensorADC.ino b/main/ZsensorADC.ino index 6c3d445bbc..00b4a68063 100644 --- a/main/ZsensorADC.ino +++ b/main/ZsensorADC.ino @@ -94,7 +94,7 @@ void MeasureADC() { ADCdata["mvolt_scaled"] = (int)voltage; // real scaled/calibrated value in mV # endif ADCdata["origin"] = ADCTOPIC; - enqueueJsonObject(ADCdata); + handleJsonEnqueue(ADCdata); persistedadc = val; } } diff --git a/main/ZsensorAHTx0.ino b/main/ZsensorAHTx0.ino index 5407fbaf9c..16af5ed273 100644 --- a/main/ZsensorAHTx0.ino +++ b/main/ZsensorAHTx0.ino @@ -104,7 +104,7 @@ void MeasureAHTTempHum() { Log.notice(F("Same Humidity. Don't send it" CR)); } AHTx0data["origin"] = AHTTOPIC; - enqueueJsonObject(AHTx0data); + handleJsonEnqueue(AHTx0data); } persisted_aht_tempc = ahtTempC.temperature; persisted_aht_hum = ahtHum.relative_humidity; diff --git a/main/ZsensorBH1750.ino b/main/ZsensorBH1750.ino index 41e31b8003..aca97bb309 100644 --- a/main/ZsensorBH1750.ino +++ b/main/ZsensorBH1750.ino @@ -101,7 +101,7 @@ void MeasureLightIntensity() { Log.trace(F("Same wattsm2 don't send it" CR)); } BH1750data["origin"] = subjectBH1750toMQTT; - enqueueJsonObject(BH1750data); + handleJsonEnqueue(BH1750data); } persistedll = Lux; persistedlf = ftcd; diff --git a/main/ZsensorBME280.ino b/main/ZsensorBME280.ino index 075d5c72d4..00887300a9 100644 --- a/main/ZsensorBME280.ino +++ b/main/ZsensorBME280.ino @@ -192,7 +192,7 @@ void MeasureTempHumAndPressure() { Log.trace(F("Same Altitude Feet don't send it" CR)); } BME280data["origin"] = BMETOPIC; - enqueueJsonObject(BME280data); + handleJsonEnqueue(BME280data); } persisted_bme_tempc = BmeTempC; diff --git a/main/ZsensorC37_YL83_HMRD.ino b/main/ZsensorC37_YL83_HMRD.ino index a6a58c13b6..b93addaee2 100644 --- a/main/ZsensorC37_YL83_HMRD.ino +++ b/main/ZsensorC37_YL83_HMRD.ino @@ -67,7 +67,7 @@ void MeasureC37_YL83_HMRDWater() { } if (C37_YL83_HMRDdata.size() > 0) { C37_YL83_HMRDdata["origin"] = C37_YL83_HMRD_TOPIC; - enqueueJsonObject(C37_YL83_HMRDdata); + handleJsonEnqueue(C37_YL83_HMRDdata); delay(10); # if defined(DEEP_SLEEP_IN_US) || defined(ESP32_EXT0_WAKE_PIN) if (sensorDigitalValue == 1) //No water detected, all good we can sleep diff --git a/main/ZsensorDHT.ino b/main/ZsensorDHT.ino index 37fe74a106..70c72c0278 100644 --- a/main/ZsensorDHT.ino +++ b/main/ZsensorDHT.ino @@ -69,7 +69,7 @@ void MeasureTempAndHum() { Log.trace(F("Same temp don't send it" CR)); } DHTdata["origin"] = DHTTOPIC; - enqueueJsonObject(DHTdata); + handleJsonEnqueue(DHTdata); } persistedh = h; persistedt = t; diff --git a/main/ZsensorDS1820.ino b/main/ZsensorDS1820.ino index 86c06323e9..4c55bc566a 100644 --- a/main/ZsensorDS1820.ino +++ b/main/ZsensorDS1820.ino @@ -158,7 +158,7 @@ void MeasureDS1820Temp() { } String origin = String(OW_TOPIC) + "/" + ds1820_addr[i]; DS1820data["origin"] = origin; - enqueueJsonObject(DS1820data); + handleJsonEnqueue(DS1820data); delay(10); # if defined(DEEP_SLEEP_IN_US) || defined(ESP32_EXT0_WAKE_PIN) ready_to_sleep = true; diff --git a/main/ZsensorGPIOInput.ino b/main/ZsensorGPIOInput.ino index 3c34c12243..41e9ef0283 100644 --- a/main/ZsensorGPIOInput.ino +++ b/main/ZsensorGPIOInput.ino @@ -94,7 +94,7 @@ void MeasureGPIOInput() { GPIOdata["gpio"] = "LOW"; } GPIOdata["origin"] = subjectGPIOInputtoMQTT; - enqueueJsonObject(GPIOdata); + handleJsonEnqueue(GPIOdata); # if defined(ZactuatorONOFF) && defined(ACTUATOR_TRIGGER) //Trigger the actuator if we are not at startup diff --git a/main/ZsensorHCSR04.ino b/main/ZsensorHCSR04.ino index 8db843621f..eed7840013 100644 --- a/main/ZsensorHCSR04.ino +++ b/main/ZsensorHCSR04.ino @@ -69,8 +69,7 @@ void MeasureDistance() { Log.trace(F("HC SR04 Distance hasn't changed" CR)); } distance = d; - HCSR04data["origin"] = subjectHCSR04; - enqueueJsonObject(HCSR04data); + handleJsonEnqueue(HCSR04data); } } } diff --git a/main/ZsensorHCSR501.ino b/main/ZsensorHCSR501.ino index 0af5950f01..984bd78486 100644 --- a/main/ZsensorHCSR501.ino +++ b/main/ZsensorHCSR501.ino @@ -65,7 +65,7 @@ void MeasureHCSR501() { digitalWrite(HCSR501_LED_NOTIFY_GPIO, pirState == HCSR501_LED_ON); # endif HCSR501data["origin"] = subjectHCSR501toMQTT; - enqueueJsonObject(HCSR501data); + handleJsonEnqueue(HCSR501data); } } #endif diff --git a/main/ZsensorHTU21.ino b/main/ZsensorHTU21.ino index 44dbb435c0..7b6445c4d2 100644 --- a/main/ZsensorHTU21.ino +++ b/main/ZsensorHTU21.ino @@ -101,7 +101,7 @@ void MeasureTempHum() { Log.notice(F("Same Humidity. Don't send it" CR)); } HTU21data["origin"] = HTUTOPIC; - enqueueJsonObject(HTU21data); + handleJsonEnqueue(HTU21data); } persisted_htu_tempc = HtuTempC; persisted_htu_hum = HtuHum; diff --git a/main/ZsensorINA226.ino b/main/ZsensorINA226.ino index 36932f41a3..ce2146eb03 100644 --- a/main/ZsensorINA226.ino +++ b/main/ZsensorINA226.ino @@ -73,7 +73,7 @@ void MeasureINA226() { INA226data["current"] = current; INA226data["power"] = power; INA226data["origin"] = subjectINA226toMQTT; - enqueueJsonObject(INA226data); + handleJsonEnqueue(INA226data); } } diff --git a/main/ZsensorLM75.ino b/main/ZsensorLM75.ino index 29d289a8d8..b30080a868 100644 --- a/main/ZsensorLM75.ino +++ b/main/ZsensorLM75.ino @@ -88,7 +88,7 @@ void MeasureTemp() { LM75data["tempc"] = (float)lm75TempC; LM75data["tempf"] = (float)lm75TempF; LM75data["origin"] = LM75TOPIC; - enqueueJsonObject(LM75data); + handleJsonEnqueue(LM75data); } else { Log.notice(F("Same Temp. Don't send it" CR)); } diff --git a/main/ZsensorMQ2.ino b/main/ZsensorMQ2.ino index 53e4401a3e..e3b00f01a6 100644 --- a/main/ZsensorMQ2.ino +++ b/main/ZsensorMQ2.ino @@ -67,7 +67,7 @@ void MeasureGasMQ2() { MQ2data["gas"] = analogRead(MQ2SENSORADCPIN); MQ2data["detected"] = digitalRead(MQ2SENSORDETECTPIN) == HIGH ? "false" : "true"; MQ2data["origin"] = subjectMQ2toMQTT; - enqueueJsonObject(MQ2data); + handleJsonEnqueue(MQ2data); } } #endif diff --git a/main/ZsensorRN8209.ino b/main/ZsensorRN8209.ino index 1b56282a19..61ad1a9cdc 100644 --- a/main/ZsensorRN8209.ino +++ b/main/ZsensorRN8209.ino @@ -91,7 +91,7 @@ void rn8209_loop(void* mode) { previousCurrent = current; if (RN8209data) { RN8209data["origin"] = subjectRN8209toMQTT; - enqueueJsonObject(RN8209data); + handleJsonEnqueue(RN8209data, QueueSemaphoreTimeOutTask); } } //esp_task_wdt_reset(); diff --git a/main/ZsensorSHTC3.ino b/main/ZsensorSHTC3.ino index 7deb25bb55..040551e706 100644 --- a/main/ZsensorSHTC3.ino +++ b/main/ZsensorSHTC3.ino @@ -61,7 +61,7 @@ void MeasureTempAndHum() { Log.trace(F("Same temp don't send it" CR)); } SHTC3data["origin"] = SHTC3TOPIC; - enqueueJsonObject(SHTC3data); + handleJsonEnqueue(SHTC3data); } persistedh = h; persistedt = t; diff --git a/main/ZsensorTEMT6000.ino b/main/ZsensorTEMT6000.ino index f639a09be6..a83e9be2cc 100644 --- a/main/ZsensorTEMT6000.ino +++ b/main/ZsensorTEMT6000.ino @@ -68,7 +68,7 @@ void MeasureLightIntensityTEMT6000() { TEMT6000data["ftcd"] = (float)(lux) / 10.764; TEMT6000data["wattsm2"] = (float)(lux) / 683.0; TEMT6000data["origin"] = subjectTEMT6000toMQTT; - enqueueJsonObject(TEMT6000data); + handleJsonEnqueue(TEMT6000data); } else { Log.trace(F("Same lux value, do not send" CR)); } diff --git a/main/ZsensorTSL2561.ino b/main/ZsensorTSL2561.ino index 2e35fe722a..c1063bee9e 100644 --- a/main/ZsensorTSL2561.ino +++ b/main/ZsensorTSL2561.ino @@ -105,7 +105,7 @@ void MeasureLightIntensityTSL2561() { TSL2561data["ftcd"] = (float)(event.light) / 10.764; TSL2561data["wattsm2"] = (float)(event.light) / 683.0; TSL2561data["origin"] = subjectTSL12561toMQTT; - enqueueJsonObject(TSL2561data); + handleJsonEnqueue(TSL2561data); } else { Log.trace(F("Same lux value, do not send" CR)); } diff --git a/main/ZwebUI.ino b/main/ZwebUI.ino index 3ba8fad57f..62c1206050 100644 --- a/main/ZwebUI.ino +++ b/main/ZwebUI.ino @@ -1589,7 +1589,7 @@ String stateWebUIStatus() { // WebUIdata["currentMessage"] = currentWebUIMessage; WebUIdata["origin"] = subjectWebUItoMQTT; - enqueueJsonObject(WebUIdata); + handleJsonEnqueue(WebUIdata); return output; } diff --git a/main/config_BT.h b/main/config_BT.h index 3857367f64..16ee27c1fc 100644 --- a/main/config_BT.h +++ b/main/config_BT.h @@ -165,6 +165,7 @@ struct BTConfig_s { bool ignoreWBlist; // Disable Whitelist & Blacklist unsigned long presenceAwayTimer; //Timer that trigger a tracker/PIR state as offline/off if not seen unsigned long movingTimer; //Timer that trigger a moving sensor state as offline if not seen + bool forcePassiveScan; //Force passive scan }; // Global struct to store live BT configuration data diff --git a/main/main.ino b/main/main.ino index 762b18d4b4..4908fc1d7a 100644 --- a/main/main.ino +++ b/main/main.ino @@ -92,6 +92,12 @@ struct JsonBundle { }; std::queue jsonQueue; + +# ifdef ESP32 +// Mutex to protect the queue +SemaphoreHandle_t xQueueMutex; +# endif + #endif StaticJsonDocument modulesBuffer; @@ -450,6 +456,30 @@ void enqueueJsonObject(const StaticJsonDocument& jsonDoc) { #endif } +#ifdef ESP32 +// Semaphore check before enqueueing a document +bool handleJsonEnqueue(const StaticJsonDocument& jsonDoc, int timeout) { + if (xSemaphoreTake(xQueueMutex, pdMS_TO_TICKS(timeout))) { + enqueueJsonObject(jsonDoc); + xSemaphoreGive(xQueueMutex); + return true; + } else { + Log.error(F("xQueueMutex not taken" CR)); + blockedMessages++; + return false; + } +} +#else +bool handleJsonEnqueue(const StaticJsonDocument& jsonDoc, int timeout) { + enqueueJsonObject(jsonDoc); +} +#endif + +// Semaphore check before enqueueing a document with default timeout QueueSemaphoreTimeOutLoop +bool handleJsonEnqueue(const StaticJsonDocument& jsonDoc) { + return handleJsonEnqueue(jsonDoc, QueueSemaphoreTimeOutLoop); +} + #if defined(ESP8266) || defined(ESP32) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__) /* @@ -1029,6 +1059,7 @@ void setup() { Serial.begin(SERIAL_BAUD, SERIAL_8N1, SERIAL_TX_ONLY); // enable on ESP8266 to free some pin # endif # elif ESP32 + xQueueMutex = xSemaphoreCreateMutex(); # if DEFAULT_LOW_POWER_MODE != -1 // don't check preferences value if low power mode is not activated preferences.begin(Gateway_Short_Name, false); if (preferences.isKey("lowpowermode")) { @@ -1477,6 +1508,7 @@ bool wifi_reconnect_bypass() { 5 - User requested reboot 6 - OTA Update 7 - Parameters changed + 8 - not enough memory to pursue */ #if defined(ESP8266) || defined(ESP32) void ESPRestart(byte reason) { @@ -2042,7 +2074,6 @@ void loop() { stateMeasures(); # ifdef ZgatewayBT stateBTMeasures(false); - btScanWDG(); # endif # ifdef ZactuatorONOFF stateONOFFMeasures(); @@ -2348,6 +2379,9 @@ String stateMeasures() { uint32_t freeMem; uint32_t minFreeMem; freeMem = ESP.getFreeHeap(); + if (freeMem < MinimumMemory) { + ESPRestart(8); + } SYSdata["freemem"] = freeMem; SYSdata["mqttport"] = mqtt_port; SYSdata["mqttsecure"] = mqtt_secure; @@ -2428,7 +2462,7 @@ String stateMeasures() { SYSdata["modules"] = modules; SYSdata["origin"] = subjectSYStoMQTT; - enqueueJsonObject(SYSdata); + handleJsonEnqueue(SYSdata); pubOled(subjectSYStoMQTT, SYSdata); char jsonChar[100]; @@ -2665,7 +2699,8 @@ bool checkForUpdates() { latestVersion = jsondata["latest_version"].as(); jsondata["origin"] = subjectRLStoMQTT; jsondata["retain"] = true; - enqueueJsonObject(jsondata); + handleJsonEnqueue(jsondata); + Log.trace(F("Update file found on server" CR)); return true; } else { @@ -2735,7 +2770,7 @@ void MQTTHttpsFWUpdate(char* topicOri, JsonObject& HttpsFwUpdateData) { StaticJsonDocument jsondata; jsondata["release_summary"] = "Update in progress ..."; jsondata["origin"] = subjectRLStoMQTT; - enqueueJsonObject(jsondata); + handleJsonEnqueue(jsondata); const char* ota_cert = HttpsFwUpdateData["server_cert"]; if (!ota_cert && !strstr(url, "http:")) { @@ -2803,7 +2838,7 @@ void MQTTHttpsFWUpdate(char* topicOri, JsonObject& HttpsFwUpdateData) { jsondata["release_summary"] = "Update success !"; jsondata["installed_version"] = latestVersion; jsondata["origin"] = subjectRLStoMQTT; - enqueueJsonObject(jsondata); + handleJsonEnqueue(jsondata); ota_server_cert = ota_cert; # ifndef ESPWifiManualSetup saveConfig();