Commit Graph

380 Commits

Author SHA1 Message Date
Alessandro Staniscia
98481c5145 [SITE] Renew the web board presentation and the ESP32 web upload + [SYS] Security checks (#2277)
* Refactor GitHub Actions workflows for build, documentation, and linting

- Consolidated build logic into reusable workflows (`task-build.yml` and `task-docs.yml`) to reduce duplication across multiple workflows.
- Introduced `environments.json` to centralize the list of PlatformIO build environments, improving maintainability and clarity.
- Updated `build.yml` and `build_and_docs_to_dev.yml` to utilize the new reusable workflows and environment definitions.
- Enhanced `release.yml` to streamline the release process and integrate documentation generation.
- Created reusable linting workflow (`task-lint.yml`) to standardize code formatting checks across the repository.
- Simplified manual documentation workflow by leveraging the new reusable documentation workflow.
- Improved artifact management and retention policies across workflows.
- Updated dependencies and versions in workflows to ensure compatibility and performance.

CI/CD pipeline agnostic of Workflow Engine and integrated on github actions

- Implemented ci.sh for orchestrating the complete build pipeline.
- Created ci_00_config.sh for centralized configuration of build scripts.
- Created ci_build_firmware.sh for building firmware for specified PlatformIO environments.
- Created ci_prepare_artifacts.sh for preparing firmware artifacts for upload or deployment.
- Created ci_set_version.sh for updating version tags in firmware configuration files.
- Created ci_build.sh to orchestrate the complete build pipeline.
- Created ci_qa.sh for code linting and formatting checks using clang-format.
- Created ci_site.sh for building and deploying VuePress documentation with version management.
- Implemented checks for required tools and dependencies in the new scripts.
- Improved internal scripts for better error handling and logging.

UPDATE the web installer manifest generation and update documentation structure
- Enhanced ci_list-env.sh to list environments from a JSON file.
- Replaced  common_wu.py and gen_wu.py scripts with new npm scripts for site generation and previewing on docsgen/gen_wu.js
- Replaced  generate_board_docs.py with docsgen/generated_board_docs.js
- Added new npm scripts for integration of site generation on build phase.
- Created preview_site.js to serve locally generated site over HTTPS with improved error handling.
- Added new CI environments for CI builds in environments.json.
- Deleted lint.yml as part of workflow cleanup.
- Enhanced task-build.yml to include linting as a job and added support for specifying PlatformIO version.
- Improved task-docs.yml to handle versioning more effectively and added clean option.

Enhance documentation
- ADD CLEAR Mark of development version of site
- Updated README.md to include detailed workflow dependencies and relationships using mermaid diagrams.
- Improved development.md with a quick checklist for contributors and clarified the code style guide.
- Enhanced quick_start.md with tips for contributors and streamlined the workflow explanation.

LINT FIX
- Refined User_config.h for better formatting consistency.
- Adjusted blufi.cpp and gatewayBT.cpp for improved code readability and consistency in formatting.
- Updated gatewaySERIAL.cpp and mqttDiscovery.cpp to enhance logging error messages.
- Improved sensorDS1820.cpp for better logging of device information.

Add security scan workflows for vulnerability detection

Add SBOM generation and upload to release workflow; update security scan summary handling

Add shellcheck suppor + FIX shellcheck warning

Enhance documentation for CI/CD scripts and workflows, adding details for security scanning and SBOM generation processes

Fix formatting and alignment in BLE connection handling

Reviewed the full web board presentation and the ESP32 web upload. The project uses a modern pattern where data is divided from the presentation layer.

- Removed the `generate_board_docs` script.
- Updated the `gen_wu` script in order to generate `boards-info.json`: the fail that containe all information about the configuration
- Created and isolate the file `boards-info.js` to streamline the parsing of PlatformIO dependencies, modules, environments and improve the handling of library information.
- Introduced vuepress component `BoardEnvironmentTable.vue` that render `boards-info.json` as UI card component
- Introduced vuepress component `FlashEnvironmentSelector.vue` that render a selectred environment from  `boards-info.json` and provide esp-web-upload feature on it
- Introduced a new board page `board-selector.md` for improved firmware selection.
- Updated `web-install.md` to enhance the firmware upload process, including a new board environment table.
- Enhanced custom descriptions in `environments.ini` to include HTML links for better user guidance and board image link

Add CC1101 initialization improvements and logging enhancements
Add installation step for PlatformIO dependencies in documentation workflow

Remove ci_set_version.sh script and associated versioning functionality

* Fix comment provisined

Fix PlatformIO version input reference in documentation workflow

Remove outdated Squeezelite-ESP32 installer documentation
2026-03-09 07:47:30 -05:00
Ryan Powell
75f9d30919 [SYS] Update to Arduino 3.3.3 and use custom libs (#2248)
* Update Arduino core to v3.3.2 and use custom Arduino libs

* Update Python version and install uv in build.yml (#2247)

Updated Python version and added uv installation step.

---------

Co-authored-by: Ryan Powell <ryan@nable-embedded.io>

* fix builds

* Update scripts/add_c_flags.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fetch archives instead of cloning libraries

* Update to Arduino 3.3.3

---------

Co-authored-by: h2zero <powellperalata@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-10 07:36:09 -06:00
Peter Lambrechtsen
2d29ee4524 [BLE] Add support for decrypting PVVX, BTHome v2 and Victron BLE frames (#2219)
* Changing WebUI to include display device name, and change it to select drop down rather than checkbox

* Fix mqttDiscovery to require WebUI and ESP32 for displayDeviceName

* Fix mqttDiscovery to require WebUI and ESP32 and ESP8266 for displayDeviceName and ForceDeviceName

* Changing WebUI to include display device name, and change it to select drop down rather than checkbox

* Fixes for WebUI and BT for supporting custom setting Display name

* Fixes for WebUI and BT for supporting custom setting Display name

* Move DISPLAY_DEVICE_NAME to User_config.h

* Update docs to include change for Display temperature

* Update docs to include change for Display temperature

* Fix minor cosmetic bug where devices were not linking in HA to the gateway using via_device as it should be the gateway mac address not name

* Add support for decrypting BTHome v2 frames

* Add support for decrypting BTHome v2 frames

* Add support for decrypting BTHome v2 frames

* BTHome fix issue with theengs-plug

* BTHome fix issue with theengs-plug

* Adding support for all BLE encrypted methods, support in UI and gatewayBT for specific MACAddress AES Keys

* Fix lint

* Fix build issue with theengs-bridge-v11 and esp32dev-all-test and revert the documentation to Units of measurement displayed

* Revert docs

* Revert displayDeviceName and Units of measurement

* Revert displayDeviceName and Units of measurement

* Revert displayDeviceName and Units of measurement

* Revert minor typo

* Revert minor typo

* Revert minor typo

* Bug in Victron as nonce should be 16 bytes

* Shortened the client side javascript for BLE key validation that is commented out due to image constrains on theengs-bridge-v11
2025-08-06 19:59:33 -05:00
jaal2001
f634f1f204 [DOCS] Update binaries.md for the use with Mac (#2203)
The baud rate seems to a common problem, so this may be a nice hint to Apple users.
2025-06-22 06:25:39 -05:00
DigiH
a4ba937553 [DOCS] image optimisation (#2192) 2025-05-21 16:30:29 +02:00
Florian
bb135aa0bf [DOCS] Remove hits (#2175) 2025-04-09 05:36:23 -05:00
peshovec
7f542c8347 [RF] ZgatewatPilight: toggle RawEnabled only if Pilight is active receiver (#2159) 2025-03-07 16:48:15 -06: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
Northern Man
3db54b4266 Update to rtl_433_esp - for testing of the integrated package (#2125) 2024-12-18 07:55:14 -06:00
benzok
312b4bcf17 [DISC] Whitelist immediate change (#2133)
* When updating a device from UNKNOWN force a new scan

* update the sensorModel_id and handle if white-list is updated

* Restore unduly deleted documentation
2024-12-18 07:53:32 -06:00
Florian
921488359e [BT] Fix BT command triggering a stack trace due to conflict (#2104)
related to the vector between BLE scanning and BLE control

Co-authored-by: Florian <1technophile@users.noreply.github.com>
2024-11-12 08:26:15 -06:00
DigiH
044182460c [DOCS] SwitchBot Curtain clarification & device tracker updates (#2096)
• SwitchBot Curtain clarification, as these commands work with all three - original, 2 and 3 - versions of the SwitchBot Curtain.

• Device tracker updates.
2024-11-03 18:06:51 +01:00
DigiH
67e50642dd [BT] Device Tracker sync across gateways (#2094)
Device Tracker sync across gateways - OpenMQTTGateway & Theengs Gateway
2024-10-28 11:25:38 -05:00
peshovec
c98ac731b4 [DOCS] RF Gateway receiver mode change, HA integration example to view/change the RF mode (#2072)
* Update rf.md

* Update home_assistant.md
2024-10-04 17:04:01 -05:00
Florian
3187ed6154 [SERIAL] Enable SERIAL to X communication (#2068)
Add Serial as a communication layer so as to transmit data to/from serial
Enable discovery of BT sensors through serial
Add serial heartbeat

Change discovery principle for interval and intervalacts, keep them always discovered and deactivate adaptivescan when changed. Instead of removing their discovery when adaptive scan is activated

Increase JSON_MSG_BUFFER_MAX as we are now using const char* and it requires more memory for Arduino Json Deserialization

Co-authored-by: Florian <1technophile@users.noreply.github.com>
2024-09-26 06:55:26 -05:00
Northern Man
6fa725d633 [DOCS] Touch Blanking Docs (#2067) 2024-09-24 16:56:31 -05:00
Florian
435b8ca3d9 [LED] Refactor LED handling (#2051)
Refactor LED handling into a library
Use a task instead of relying on the loop for precise timing

Co-authored-by: Florian <1technophile@users.noreply.github.com>
2024-09-13 09:55:56 -05:00
Florian
00fe36f426 [BT] Add Switchbot curtain (#2049)
Add SB curtain commands and add stop to SB tilt

Co-authored-by: Florian <1technophile@users.noreply.github.com>
2024-09-05 08:54:53 -05:00
Florian
5492e334dc [SERIAL] Add the capability send info to Serial instead of/added MQTT (#2030)
* [SERIAL] Add the capability send info to Serial instead of/added MQTT

Add the capability to send json data to Serial as a communication layer, added/instead of MQTT

* Use delay rather than vTaskDelay

---------

Co-authored-by: Florian <1technophile@users.noreply.github.com>
2024-08-27 13:23:42 -05:00
Florian
f9a5c6961a [SYS][BREAKING] Add gateway states, Offline mode and refactor sleep (#2020)
Gaterway states to improve LED management
Make the sleep function accessible outside BT
BREAKING remove sleep for ESP8266
BREAKING lowpowermode API changed to powermode and new mode definition

Co-authored-by: Florian <1technophile@users.noreply.github.com>
2024-08-23 16:55:04 -05:00
puterboy
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
b0cf3c1dc7 [BT][BREAKING] Change Switchbot API and add new commands (#2003)
Co-authored-by: Florian <1technophile@users.noreply.github.com>
2024-08-22 13:04:52 -05:00
Florian
8a28bb2cf8 [SERIAL][BREAKING] RS232 change to SERIAL GATEWAY (#2008)
Make the RS232 more generic by converting it to a Serial Gateway
Add the capability to decode BLE data coming through Serial
2024-08-16 11:23:39 -05:00
Florian
25c3da7ee9 [DOCS] Fix image path (#2006)
* [DOCS] Fix image path

Those images are directly stored into the assets directory now for optimization purposes

* Add back the images
2024-08-15 18:52:00 -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
Florian
4ec577d6af [BT] Switchbot Bot control fix (#2001)
* Fix Canary stack trace error during connection attempt

* Fix discovery

* Fix documentation tip
2024-08-13 13:23:59 -05:00
Florian
ad74cf9c3c [DOCS] Adaptive scan condition to change intervals (#1999)
Co-authored-by: Florian <1technophile@users.noreply.github.com>
2024-08-12 19:31:21 -05:00
Grégoire Seux
c911ec08dc [DOCS] Fix capitalization of rssithreshold in documentation (#1993)
See 8537b7498d/main/ZcommonRF.ino (L208)
2024-07-30 12:48:40 -05:00
Michał Leśniewski
9257433a50 [SYS] Use PicoMQTT for MQTT communication (#1954)
* Update Arduino core for selected configurations

* Use PicoMQTT for MQTT communication
2024-07-03 11:39:58 -05:00
Florian
0db67f75aa [SYS] Add connection fallback capability (#1950)
This feature enable to rotate among the connection parameters index to find a valid one when the current MQTT connection is not working
2024-05-22 05:48:48 -05:00
Florian
f98474bed0 [SYS] Multiple connections management (#1947)
Enable the management of different connections at runtime with a set of certs for each.
Add parameters to the WiFi Manager onboarding, client certificates, and certificate validation
2024-05-20 09:30:49 -05:00
DigiH
f27855527e [DOCS] RETAIN option clarification only for white/black-list (#1937) 2024-04-25 07:11:28 -05:00
DigiH
115a17cbcc [BT] Prevent intervalacts from being lower than interval (#1932)
Prevent intervalacts from being lower than interval to avoid untrue non-sensical intervalacts values.
2024-04-17 08:32:27 -05:00
Florian
2065d57e11 [BOARDS] Remove Arduino boards (#1929) 2024-04-10 15:48:05 -05:00
Florian
0929fa23a8 [DOCS] Remove Arduino IDE support (#1928) 2024-04-10 13:15:16 -05:00
DigiH
a52296a97d [DOCS] BLE compatible devices clarification (#1921)
BLE compatible devices clarification and link to listing
2024-04-08 10:18:20 -05:00
Florian
a845d772f9 [DOCS] Fix image sizing and path (#1926) 2024-04-08 07:18:52 -05:00
Florian
6c62858093 [DOCS] Page speed optimizations (#1922)
* [DOCS] Page speed optimizations

* Fix img path
2024-04-04 11:38:41 -05:00
Max Nowack
91b7d53cdd [SOMFY] fix frequency in documentation (#1898) 2024-02-14 16:47:09 -06:00
Florian
7a3fae61e2 [DOCS] Optim first image size (#1894) 2024-02-07 19:52:38 -06:00
Florian
29ecda720b [DOCS} Add alt texts to images on the first page (#1893) 2024-02-07 19:46:06 -06:00
Florian
a2d3951532 [DOCS] Optim config (#1892) 2024-02-07 16:48:06 -06:00
Florian
11b8990564 [DOCS] Optimize landing page loading (#1890) 2024-02-07 16:47:36 -06:00
DigiH
60a571ebb2 [BT] Device Tracker & Presence separation and clarification (#1880) 2024-02-01 21:21:29 +01:00
Florian
fbc8ed7e92 [DOCS] Search optimization (#1886) 2024-01-31 14:54:59 -06:00
simowilso
33d7e6feba [DOCS] Update home_assistant.md (#1884)
Couple of minor formatting changes, and extra info around HASS auto discovery. (When I fully understand it all better myself I'm happy to have a go at adding further info)
2024-01-29 16:11:30 -06:00
DigiH
491111ff31 [BT] presence publishing fix independent of pubOnlySensors (#1883) 2024-01-29 07:15:03 -06:00
Florian
ef07a339ab [SYS] Avoid logging sensitive information on serial (#1879)
WiFi Manager log level to Notify
Remove MQTT information to serial
Remove system information to serial when changing with WebUI
2024-01-27 17:32:29 -06:00
Florian
13f5704a23 [DOCS] Auto-discovery timer add (#1876) 2024-01-22 16:49:24 -06:00