@alteriom/painlessmesh 1.8.14 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/BRIDGE_TO_INTERNET.md +229 -0
  2. package/CHANGELOG.md +89 -1
  3. package/CONTRIBUTING.md +79 -0
  4. package/README.md +70 -143
  5. package/docs/README.md +1 -0
  6. package/docs/api/shared-gateway.md +1207 -0
  7. package/docs/troubleshooting/common-issues.md +28 -0
  8. package/docs/troubleshooting/faq.md +113 -12
  9. package/examples/basic/test/simulator/CMakeLists.txt +40 -0
  10. package/examples/basic/test/simulator/README.md +149 -0
  11. package/examples/basic/test/simulator/firmware/basic_firmware.hpp +117 -0
  12. package/examples/basic/test/simulator/scenarios/basic_mesh_test.yaml +81 -0
  13. package/examples/bridge/bridge.ino +17 -4
  14. package/examples/bridge_failover/README.md +81 -0
  15. package/examples/bridge_failover/bridge_failover.ino +51 -6
  16. package/examples/sharedGateway/README.md +235 -0
  17. package/examples/{meshCommandNode → sharedGateway}/platformio.ini +3 -2
  18. package/examples/sharedGateway/sharedGateway.ino +303 -0
  19. package/library.json +3 -22
  20. package/library.properties +1 -1
  21. package/package.json +3 -3
  22. package/src/arduino/wifi.hpp +380 -13
  23. package/src/painlessmesh/gateway.hpp +2120 -0
  24. package/src/painlessmesh/mesh.hpp +1034 -6
  25. package/src/painlessmesh/message_tracker.hpp +311 -0
  26. package/src/painlessmesh/protocol.hpp +6 -0
  27. package/DOCUMENTATION_INDEX.md +0 -146
  28. package/docs/API_DESIGN_GUIDELINES.md +0 -414
  29. package/docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md +0 -331
  30. package/docs/BOOLEAN_NAMING_CONVENTION.md +0 -235
  31. package/docs/BRIDGE_FAILOVER.md +0 -512
  32. package/docs/BRIDGE_HEALTH_MONITORING.md +0 -293
  33. package/docs/CHANNEL_SYNCHRONIZATION.md +0 -209
  34. package/docs/CREATE_MISSING_RELEASES.md +0 -321
  35. package/docs/DOCUMENTATION_MIGRATION_PLAN.md +0 -176
  36. package/docs/FAQ_VERSION_NUMBERS.md +0 -152
  37. package/docs/IMPLEMENTATION_PLAN_MESH_TOPOLOGY.md +0 -1062
  38. package/docs/MESH_TOPOLOGY_GUIDE.md +0 -992
  39. package/docs/MESH_TOPOLOGY_PROGRESS.md +0 -422
  40. package/docs/MQTT_BRIDGE_COMMANDS.md +0 -894
  41. package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +0 -324
  42. package/docs/MQTT_COMMAND_SCHEMA_PROPOSAL.md +0 -576
  43. package/docs/MQTT_SCHEMA_COMPLIANCE.md +0 -340
  44. package/docs/MQTT_SCHEMA_PROPOSALS.md +0 -446
  45. package/docs/MQTT_SCHEMA_REVIEW.md +0 -690
  46. package/docs/OTA_COMMANDS_REFERENCE.md +0 -554
  47. package/docs/PHASE1_GUIDE.md +0 -349
  48. package/docs/PHASE2_GUIDE.md +0 -543
  49. package/docs/QUICK_REFERENCE_VERSIONING.md +0 -127
  50. package/docs/RELEASE_AGENT_SUMMARY.md +0 -386
  51. package/docs/SCHEMA_VALIDATION_CHECKLIST.md +0 -222
  52. package/docs/VERSION_MANAGEMENT.md +0 -213
  53. package/docs/archive/DOCUSAURUS_DEPLOYMENT.md +0 -166
  54. package/docs/archive/FEATURE_PROPOSALS.md +0 -337
  55. package/docs/archive/LIBRARY_JSON_FIX.md +0 -98
  56. package/docs/archive/LIBRARY_STRUCTURE_FIX.md +0 -215
  57. package/docs/archive/PHASE1_IMPLEMENTATION.md +0 -325
  58. package/docs/archive/PHASE2_IMPLEMENTATION.md +0 -567
  59. package/docs/archive/RELEASE_SUMMARY.md +0 -173
  60. package/docs/archive/SCONS_BUILD_FIX.md +0 -313
  61. package/docs/archive/TRIGGER_RELEASE.md +0 -280
  62. package/docs/archive/VECTOR_INCLUDE_FIX.md +0 -129
  63. package/docs/archive/ota-and-status-enhancements.md +0 -911
  64. package/docs/archive/ota-status-architecture-diagrams.md +0 -658
  65. package/docs/archive/ota-status-quick-reference.md +0 -284
  66. package/docs/design/.gitkeep +0 -1
  67. package/docs/design/STATION_CREDENTIALS_DESIGN.md +0 -182
  68. package/docs/development/ARDUINO_COMPLIANCE_SUMMARY.md +0 -71
  69. package/docs/development/CODE_REFACTORING_RECOMMENDATIONS.md +0 -1011
  70. package/docs/development/DOCKER_TESTING.md +0 -196
  71. package/docs/development/PLATFORMIO_USAGE.md +0 -180
  72. package/docs/development/TESTING_SUMMARY.md +0 -126
  73. package/docs/development/contributing.md +0 -301
  74. package/docs/development/documentation.md +0 -583
  75. package/docs/features/DIAGNOSTICS_API.md +0 -534
  76. package/docs/implementation/BRIDGE_ARCHITECTURE_IMPLEMENTATION.md +0 -340
  77. package/docs/implementation/BRIDGE_HEALTH_MONITORING_IMPLEMENTATION.md +0 -213
  78. package/docs/implementation/BRIDGE_STATUS_FEATURE.md +0 -635
  79. package/docs/implementation/DIAGNOSTICS_API_IMPLEMENTATION.md +0 -232
  80. package/docs/implementation/IMPLEMENTATION_COMPLETE.md +0 -228
  81. package/docs/implementation/IMPLEMENTATION_NTP_TIME_SYNC.md +0 -325
  82. package/docs/implementation/IMPLEMENTATION_SUMMARY.md +0 -316
  83. package/docs/implementation/MESSAGE_QUEUE_IMPLEMENTATION.md +0 -405
  84. package/docs/implementation/MULTI_BRIDGE_IMPLEMENTATION.md +0 -520
  85. package/docs/implementation/NTP_TIME_SYNC_FEATURE.md +0 -392
  86. package/docs/improvements/FUTURE_PROPOSALS.md +0 -1016
  87. package/docs/improvements/IMPLEMENTATION_HISTORY.md +0 -1091
  88. package/docs/improvements/OTA_STATUS_ENHANCEMENTS.md +0 -709
  89. package/docs/improvements/README.md +0 -212
  90. package/docs/internal/CUSTOM_AGENT_ANALYSIS.md +0 -391
  91. package/docs/internal/ISSUE_65_VERIFICATION.md +0 -947
  92. package/docs/internal/ISSUE_66_CLOSURE.md +0 -249
  93. package/docs/internal/ISSUE_66_STATUS.md +0 -316
  94. package/docs/internal/PR_SUMMARY.md +0 -315
  95. package/docs/internal/REVIEW_SUMMARY.md +0 -332
  96. package/docs/multi-bridge-setup.md +0 -1025
  97. package/docs/platformio-publishing.md +0 -255
  98. package/docs/platformio-setup-summary.md +0 -121
  99. package/docs/releases/ANNOUNCEMENT_v1.8.6.md +0 -63
  100. package/docs/releases/ANNOUNCEMENT_v1.8.7.md +0 -113
  101. package/docs/releases/BRIDGE_STATUS_SELF_REGISTRATION_FIX.md +0 -221
  102. package/docs/releases/FEATURE_HISTORY.md +0 -543
  103. package/docs/releases/GITHUB_RELEASE_v1.8.6.md +0 -71
  104. package/docs/releases/GITHUB_RELEASE_v1.8.7.md +0 -90
  105. package/docs/releases/PATCH_v1.7.2.md +0 -262
  106. package/docs/releases/PATCH_v1.7.3.md +0 -262
  107. package/docs/releases/PATCH_v1.7.4.md +0 -219
  108. package/docs/releases/PHASE1_SUMMARY.md +0 -246
  109. package/docs/releases/PHASE2_SUMMARY.md +0 -499
  110. package/docs/releases/PUBLISH_v1.8.0_INSTRUCTIONS.md +0 -163
  111. package/docs/releases/QUICK_START_RELEASES.md +0 -113
  112. package/docs/releases/RELEASE_CHECKLIST_1.8.10.md +0 -331
  113. package/docs/releases/RELEASE_CHECKLIST_1.8.9.md +0 -207
  114. package/docs/releases/RELEASE_CHECKLIST_v1.7.4.md +0 -253
  115. package/docs/releases/RELEASE_CHECKLIST_v1.7.5.md +0 -315
  116. package/docs/releases/RELEASE_CHECKLIST_v1.7.6.md +0 -389
  117. package/docs/releases/RELEASE_CHECKLIST_v1.8.0.md +0 -331
  118. package/docs/releases/RELEASE_CHECKLIST_v1.8.2.md +0 -309
  119. package/docs/releases/RELEASE_NOTES_1.7.0.md +0 -539
  120. package/docs/releases/RELEASE_NOTES_1.8.10.md +0 -239
  121. package/docs/releases/RELEASE_NOTES_1.8.9.md +0 -213
  122. package/docs/releases/RELEASE_NOTES_v1.8.0.md +0 -685
  123. package/docs/releases/RELEASE_NOTES_v1.8.1.md +0 -221
  124. package/docs/releases/RELEASE_NOTES_v1.8.2.md +0 -421
  125. package/docs/releases/RELEASE_NOTES_v1.8.3.md +0 -292
  126. package/docs/releases/RELEASE_NOTES_v1.8.4.md +0 -277
  127. package/docs/releases/RELEASE_NOTES_v1.8.6.md +0 -205
  128. package/docs/releases/RELEASE_NOTES_v1.8.7.md +0 -184
  129. package/docs/releases/RELEASE_PLAN_v1.7.6.md +0 -816
  130. package/docs/releases/RELEASE_SUMMARY_1.8.10.md +0 -193
  131. package/docs/releases/RELEASE_SUMMARY_v1.7.4.md +0 -276
  132. package/docs/releases/RELEASE_SUMMARY_v1.7.5.md +0 -322
  133. package/docs/releases/RELEASE_SUMMARY_v1.7.6.md +0 -436
  134. package/docs/releases/RELEASE_SUMMARY_v1.7.7.md +0 -391
  135. package/docs/releases/RELEASE_SUMMARY_v1.7.8.md +0 -523
  136. package/docs/releases/RELEASE_SUMMARY_v1.7.9.md +0 -542
  137. package/docs/troubleshooting/ARDUINO_IDE_VERSION_FIX_SUMMARY.md +0 -229
  138. package/docs/troubleshooting/ARDUINO_LIBRARY_NAME_FIX.md +0 -197
  139. package/docs/troubleshooting/CRASH_QUICK_REF.md +0 -93
  140. package/docs/troubleshooting/ESP32_C6_COMPATIBILITY.md +0 -157
  141. package/docs/troubleshooting/FREERTOS_ASSERTION_FAILURE.md +0 -288
  142. package/docs/troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md +0 -267
  143. package/docs/troubleshooting/NPM_PUBLISHING_ISSUE_SUMMARY.md +0 -110
  144. package/docs/troubleshooting/PAINLESSMESH_V1.7.4_COMPILATION_ISSUES.md +0 -547
  145. package/docs/troubleshooting/QUICK_FIX_FREERTOS.md +0 -164
  146. package/docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md +0 -264
  147. package/docs/troubleshooting/station-reconnection-issues.md +0 -172
  148. package/docs/v1.7.7_MQTT_IMPROVEMENTS.md +0 -794
  149. package/docs/wiki/API-Reference.md +0 -246
  150. package/docs/wiki/Complete-Documentation.md +0 -123
  151. package/examples/alteriomImproved/alteriom_sensor_package.hpp +0 -224
  152. package/examples/alteriomImproved/improved_sensor_node.ino +0 -248
  153. package/examples/alteriomImproved/platformio.ini +0 -32
  154. package/examples/alteriomMetricsHealth/alteriom_sensor_package.hpp +0 -796
  155. package/examples/alteriomMetricsHealth/metrics_health_node.ino +0 -429
  156. package/examples/alteriomMetricsHealth/platformio.ini +0 -26
  157. package/examples/alteriomPhase1/alteriom_sensor_package.hpp +0 -224
  158. package/examples/alteriomPhase1/phase1_features.ino +0 -242
  159. package/examples/alteriomPhase1/platformio.ini +0 -26
  160. package/examples/alteriomPhase2/alteriom_sensor_package.hpp +0 -224
  161. package/examples/alteriomPhase2/phase2_features.ino +0 -186
  162. package/examples/alteriomPhase2/platformio.ini +0 -26
  163. package/examples/alteriomSensorNode/alteriom_sensor_node.ino +0 -186
  164. package/examples/alteriomSensorNode/alteriom_sensor_package.hpp +0 -1227
  165. package/examples/alteriomSensorNode/platformio.ini +0 -26
  166. package/examples/bridge/alteriom_sensor_package.hpp +0 -1170
  167. package/examples/bridge/bridge_health_monitoring_example.ino +0 -188
  168. package/examples/bridge/enhanced_mqtt_bridge.hpp +0 -610
  169. package/examples/bridge/enhanced_mqtt_bridge_example.ino +0 -226
  170. package/examples/bridge/mesh_event_publisher.hpp +0 -253
  171. package/examples/bridge/mesh_topology_reporter.hpp +0 -303
  172. package/examples/bridge/mqtt_command_bridge.hpp +0 -459
  173. package/examples/bridge/mqtt_status_bridge.hpp +0 -519
  174. package/examples/bridgeAwareSensorNode/alteriom_sensor_package.hpp +0 -1227
  175. package/examples/bridgeAwareSensorNode/bridgeAwareSensorNode.ino +0 -342
  176. package/examples/bridgeAwareSensorNode/platformio.ini +0 -26
  177. package/examples/diagnosticsExample/diagnosticsExample.ino +0 -171
  178. package/examples/diagnosticsExample/platformio.ini +0 -26
  179. package/examples/echoNode/echoNode.ino +0 -33
  180. package/examples/echoNode/platformio.ini +0 -26
  181. package/examples/meshCommandNode/alteriom_sensor_package.hpp +0 -235
  182. package/examples/meshCommandNode/meshCommandNode.ino +0 -265
  183. package/examples/mqttCommandBridge/alteriom_sensor_package.hpp +0 -235
  184. package/examples/mqttCommandBridge/mesh_event_publisher.hpp +0 -253
  185. package/examples/mqttCommandBridge/mesh_topology_reporter.hpp +0 -303
  186. package/examples/mqttCommandBridge/mqttCommandBridge.ino +0 -254
  187. package/examples/mqttCommandBridge/mqtt_command_bridge.hpp +0 -462
  188. package/examples/mqttCommandBridge/platformio.ini +0 -27
  189. package/examples/mqttStatusBridge/mqttStatusBridge.ino +0 -218
  190. package/examples/mqttStatusBridge/mqtt_status_bridge.hpp +0 -522
  191. package/examples/mqttStatusBridge/platformio.ini +0 -27
  192. package/examples/mqttTopologyTest/README.md +0 -467
  193. package/examples/mqttTopologyTest/mqttTopologyTest.ino +0 -754
  194. package/examples/mqttTopologyTest/platformio.ini +0 -27
  195. package/examples/multi_bridge/README.md +0 -346
  196. package/examples/multi_bridge/primary_bridge.ino +0 -96
  197. package/examples/multi_bridge/regular_node.ino +0 -141
  198. package/examples/multi_bridge/secondary_bridge.ino +0 -111
  199. package/examples/ntpTimeSyncBridge/alteriom_sensor_package.hpp +0 -1383
  200. package/examples/ntpTimeSyncBridge/ntpTimeSyncBridge.ino +0 -86
  201. package/examples/ntpTimeSyncNode/alteriom_sensor_package.hpp +0 -1383
  202. package/examples/ntpTimeSyncNode/ntpTimeSyncNode.ino +0 -109
  203. package/examples/queued_alarms/README.md +0 -390
  204. package/examples/queued_alarms/queued_alarms.ino +0 -265
  205. package/examples/routing_demo/README.md +0 -172
  206. package/examples/routing_demo/routing_demo.ino +0 -102
  207. package/examples/rtcIntegration/README.md +0 -294
  208. package/examples/rtcIntegration/rtcIntegration.ino +0 -210
package/README.md CHANGED
@@ -1,15 +1,17 @@
1
1
  # AlteriomPainlessMesh
2
2
 
3
- > **📚 [Complete Documentation](https://alteriom.github.io/painlessMesh/)** | **📖 [API Reference](https://alteriom.github.io/painlessMesh/#/api/doxygen)** | **🎯 [Examples](https://alteriom.github.io/painlessMesh/#/tutorials/basic-examples)** | **🗂️ [Documentation Index](DOCUMENTATION_INDEX.md)**
3
+ > **📚 [Complete Documentation](https://alteriom.github.io/painlessMesh/)** | **📖 [API Reference](https://alteriom.github.io/painlessMesh/#/api/doxygen)** | **🎯 [Examples](https://alteriom.github.io/painlessMesh/#/tutorials/basic-examples)** | **📋 [Changelog](CHANGELOG.md)**
4
4
 
5
5
  <div align="center">
6
6
 
7
+ **Version 1.9.0** - Major update with improved bridge detection, consolidated examples, and cleaned documentation
8
+
7
9
  [![CI/CD Pipeline](https://github.com/Alteriom/painlessMesh/actions/workflows/ci.yml/badge.svg)](https://github.com/Alteriom/painlessMesh/actions/workflows/ci.yml)
8
10
  [![Documentation](https://github.com/Alteriom/painlessMesh/actions/workflows/docs.yml/badge.svg)](https://github.com/Alteriom/painlessMesh/actions/workflows/docs.yml)
9
11
  [![Release](https://github.com/Alteriom/painlessMesh/actions/workflows/release.yml/badge.svg)](https://github.com/Alteriom/painlessMesh/actions/workflows/release.yml)
10
12
  [![GitHub release](https://img.shields.io/github/v/release/Alteriom/painlessMesh?label=version)](https://github.com/Alteriom/painlessMesh/releases)
11
13
  [![NPM Version](https://img.shields.io/npm/v/@alteriom/painlessmesh?label=npm)](https://www.npmjs.com/package/@alteriom/painlessmesh)
12
- [![PlatformIO Registry](https://badges.registry.platformio.org/packages/alteriom/library/painlessMesh.svg)](https://registry.platformio.org/libraries/alteriom/painlessMesh)
14
+ [![PlatformIO Registry](https://badges.registry.platformio.org/packages/alteriom/library/AlteriomPainlessMesh.svg)](https://registry.platformio.org/libraries/alteriom/AlteriomPainlessMesh)
13
15
  [![Arduino Library Manager](https://img.shields.io/badge/Arduino-Library%20Manager-blue.svg)](https://www.arduino.cc/reference/en/libraries/alteriompainlessmesh/)
14
16
 
15
17
  </div>
@@ -141,7 +143,7 @@ All packages provide type-safe serialization, automatic JSON conversion, and mes
141
143
  - 🎯 **Production Ready** - Enterprise IoT and commercial deployments
142
144
  - ⚙️ **Fully Configurable** - Adjustable intervals and feature toggles
143
145
 
144
- See [Phase 2 Guide](docs/PHASE2_GUIDE.md) for complete documentation.
146
+ See [BRIDGE_TO_INTERNET.md](BRIDGE_TO_INTERNET.md) for complete documentation.
145
147
 
146
148
  #### 🔄 Automatic Bridge Failover (v1.8.0)
147
149
 
@@ -173,7 +175,7 @@ void bridgeRoleCallback(bool isBridge, String reason) {
173
175
  }
174
176
  ```
175
177
 
176
- See [Bridge Failover Guide](docs/BRIDGE_FAILOVER.md) and [bridge_failover example](examples/bridge_failover/) for complete documentation.
178
+ See [bridge_failover example](examples/bridge_failover/) for complete documentation.
177
179
 
178
180
  #### 🌉 Multi-Bridge Coordination (v1.8.2)
179
181
 
@@ -207,7 +209,7 @@ mesh.setBridgeSelectionStrategy(ROUND_ROBIN);
207
209
  mesh.onBridgeCoordination(&bridgeCoordinationCallback);
208
210
  ```
209
211
 
210
- See [Multi-Bridge Implementation](docs/implementation/MULTI_BRIDGE_IMPLEMENTATION.md), [Issue #65 Verification](docs/internal/ISSUE_65_VERIFICATION.md), and [examples/multi_bridge/](examples/multi_bridge/) for complete documentation.
212
+ See [BRIDGE_TO_INTERNET.md](BRIDGE_TO_INTERNET.md) for multi-bridge documentation.
211
213
 
212
214
  #### 📬 Message Queue for Offline Mode (v1.8.2)
213
215
 
@@ -242,7 +244,50 @@ mesh.onQueueFull(&queueFullCallback);
242
244
  mesh.onQueueFlushed(&queueFlushedCallback);
243
245
  ```
244
246
 
245
- See [Message Queue Implementation](docs/implementation/MESSAGE_QUEUE_IMPLEMENTATION.md), [Issue #66 Closure](docs/internal/ISSUE_66_CLOSURE.md), and [examples/queued_alarms/](examples/queued_alarms/) for complete documentation.
247
+ See [BRIDGE_TO_INTERNET.md](BRIDGE_TO_INTERNET.md) for message queue documentation.
248
+
249
+ #### 🌐 Shared Gateway Mode (v1.9.0+)
250
+
251
+ **All Nodes as Internet Gateways with Automatic Failover**
252
+
253
+ - 🌍 **Universal Internet Access** - All nodes connect to the same router and can send to Internet
254
+ - 🔄 **Instant Failover** - Near-instant relay through mesh when local Internet fails
255
+ - ⚡ **No Single Point of Failure** - Any node can serve as gateway, eliminating bridge dependency
256
+ - 🎯 **Automatic Gateway Election** - RSSI-based election determines primary gateway
257
+ - 🛡️ **Duplicate Prevention** - Built-in deduplication prevents multiple deliveries
258
+ - 📊 **Delivery Confirmation** - Acknowledgment system confirms Internet delivery
259
+
260
+ **Use Cases:**
261
+ - Fish farm monitoring where any node can send critical O₂ alarms
262
+ - Industrial sensor networks with redundant Internet paths
263
+ - Smart building systems with resilient cloud connectivity
264
+ - Remote monitoring stations with shared WiFi infrastructure
265
+
266
+ **Example:**
267
+ ```cpp
268
+ // Initialize all nodes as shared gateways
269
+ bool success = mesh.initAsSharedGateway(
270
+ MESH_PREFIX, MESH_PASSWORD,
271
+ ROUTER_SSID, ROUTER_PASSWORD,
272
+ &userScheduler, MESH_PORT
273
+ );
274
+
275
+ // Send data with automatic failover
276
+ mesh.sendToInternet(
277
+ "https://api.example.com/data",
278
+ sensorJson,
279
+ [](bool success, uint16_t status, String error) {
280
+ Serial.printf("Delivery: %s\n", success ? "OK" : error.c_str());
281
+ }
282
+ );
283
+
284
+ // Monitor gateway changes
285
+ mesh.onGatewayChanged([](uint32_t newGateway) {
286
+ Serial.printf("Primary gateway: %u\n", newGateway);
287
+ });
288
+ ```
289
+
290
+ See [sharedGateway example](examples/sharedGateway/) for complete documentation.
246
291
 
247
292
  #### MQTT Bridge Commands
248
293
 
@@ -255,12 +300,11 @@ The MQTT bridge enables bidirectional communication between MQTT brokers and mes
255
300
 
256
301
  **Documentation:**
257
302
 
258
- - 📖 [MQTT Bridge Commands Reference](docs/MQTT_BRIDGE_COMMANDS.md) - Complete command API documentation
259
- - 🔧 [OTA Commands Reference](docs/OTA_COMMANDS_REFERENCE.md) - Over-the-air firmware updates
303
+ See [mqttBridge example](examples/mqttBridge/) for MQTT integration.
260
304
 
261
305
  **Examples:**
262
306
 
263
- - 🌉 [MQTT Command Bridge](examples/mqttCommandBridge/mqttCommandBridge.ino) - Gateway bridge with bidirectional MQTT-mesh routing
307
+ - 🌉 [MQTT Bridge](examples/mqttBridge/mqttBridge.ino) - Gateway bridge with bidirectional MQTT-mesh routing
264
308
  - 📡 [Alteriom Sensor Node](examples/alteriom/alteriom.ino) - Example node using SensorPackage, CommandPackage, and StatusPackage
265
309
 
266
310
  ### 🌐 Core Features
@@ -294,11 +338,6 @@ painlessMesh does not create a TCP/IP network of nodes. Rather each of the nodes
294
338
 
295
339
  ### Arduino Library Manager
296
340
 
297
- > **✅ FIXED**: Library name restored to match Arduino Library Manager registry.
298
- > **Status**: New releases (v1.8.3+) will now be indexed automatically within 24-48 hours.
299
- > **Issue**: Versions v1.7.0-v1.8.1 had incorrect library name and were not indexed.
300
- > See [Arduino Library Manager Documentation](docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md) for details.
301
-
302
341
  **Once registered**, installation will be available via Arduino IDE:
303
342
 
304
343
  1. Open Arduino IDE
@@ -313,26 +352,12 @@ The library includes the header file `AlteriomPainlessMesh.h` which provides acc
313
352
  **Option 1: Download ZIP from GitHub Release**
314
353
 
315
354
  1. Go to [Releases](https://github.com/Alteriom/painlessMesh/releases/latest)
316
- 2. Download `painlessMesh-v1.8.3.zip` (or latest version)
355
+ 2. Download the latest release ZIP file
317
356
  3. In Arduino IDE: **Sketch** → **Include Library** → **Add .ZIP Library...**
318
357
  4. Select the downloaded ZIP file
319
358
  5. Restart Arduino IDE
320
359
 
321
- **Option 2: Create ZIP from Repository**
322
-
323
- If you need to create a ZIP file from source (e.g., for testing unreleased versions):
324
-
325
- ```bash
326
- # Clone and create ZIP
327
- git clone https://github.com/Alteriom/painlessMesh.git
328
- cd painlessMesh
329
- ./scripts/create-arduino-zip.sh
330
-
331
- # Output: dist/painlessMesh-vX.X.X.zip
332
- # Import this ZIP in Arduino IDE
333
- ```
334
-
335
- **Option 3: Git Clone**
360
+ **Option 2: Git Clone**
336
361
 
337
362
  ```bash
338
363
  cd ~/Arduino/libraries/
@@ -340,8 +365,6 @@ git clone https://github.com/Alteriom/painlessMesh.git AlteriomPainlessMesh
340
365
  # Restart Arduino IDE
341
366
  ```
342
367
 
343
- 📖 **Detailed Guide**: See [Manual Arduino IDE Installation](docs/getting-started/arduino-manual-install.md) for complete instructions, troubleshooting, and ZIP creation details.
344
-
345
368
  ### PlatformIO
346
369
 
347
370
  `painlessMesh` is included in both the Arduino Library Manager and the platformio library registry and can easily be installed via either of those methods.
@@ -357,8 +380,6 @@ painlessMesh makes use of the following libraries, which can be installed throug
357
380
 
358
381
  If platformio is used to install the library, then the dependencies will be installed automatically.
359
382
 
360
- > **⚠️ ESP32-C6 Users:** If you experience crashes with `tcp_alloc` errors, you need AsyncTCP v3.3.0+ with LWIP locking support. Use the [ESP32Async/AsyncTCP](https://github.com/ESP32Async/AsyncTCP) library or see the [ESP32-C6 Compatibility Guide](docs/troubleshooting/ESP32_C6_COMPATIBILITY.md) for details.
361
-
362
383
  ## Quick Start with Alteriom Packages
363
384
 
364
385
  ### Basic Sensor Node
@@ -532,111 +553,29 @@ These are the message types used by applications built on painlessMesh:
532
553
  - **Event Coordination** - Synchronized displays, distributed processing
533
554
  - **Bridge Networks** - Connect mesh to WiFi/Internet/MQTT - [📖 Bridge Guide](BRIDGE_TO_INTERNET.md)
534
555
 
535
- ## Latest Release: v1.8.4 (November 12, 2025)
536
-
537
- **Bridge Discovery Timing Fix for Instant Node Discovery**:
538
-
539
- - 🚀 **Instant Bridge Discovery** - Bridge nodes now discoverable in <1 second (was up to 30 seconds)
540
- - 🔧 **Immediate Status Broadcast** - Bridge sends status immediately on initialization
541
- - 🔗 **Connection-Triggered Broadcast** - Status broadcast when new nodes join mesh
542
- - ✅ **Fixes "No Primary Bridge Available"** - Eliminates discovery delays in bridge_failover example
543
- - 🔧 **100% Backward Compatible** - No breaking changes, enhanced timing only
544
-
545
- **[📋 Full Release Notes](docs/releases/RELEASE_NOTES_v1.8.4.md)** | **[📋 Full CHANGELOG](CHANGELOG.md)**
546
-
547
- ## Previous Release: v1.8.3 (November 11, 2025)
548
-
549
- **ZIP File Integrity Fix for Arduino IDE Installation**:
556
+ ## Latest Release: v1.9.0 (November 30, 2025)
550
557
 
551
- - 🐛 **Critical Bug Fix** - Resolved Arduino IDE installation crashes caused by symlink in release archives
552
- - 📦 **Clean ZIP Packages** - 50% smaller packages (420K) with only essential files
553
- - 📝 **Version Documentation** - Added version timestamp to main header file
554
- - ✅ **Verified Installation** - Tested and working in Arduino IDE "Add .ZIP Library"
555
- - 🔧 **100% Backward Compatible** - No code changes, packaging fix only
558
+ **Major Update: Improved Bridge Detection, Consolidated Examples & Documentation**
556
559
 
557
- **[📋 Full Release Notes](docs/releases/RELEASE_NOTES_v1.8.3.md)**
560
+ - 🔍 **Mesh Connectivity Detection** - New `hasActiveMeshConnections()` and `getLastKnownBridge()` APIs
561
+ - 🌉 **Improved Bridge Detection** - `getPrimaryBridge()` returns last known bridge when disconnected
562
+ - ⚡ **Election Guard** - Skip election trigger when node is disconnected from mesh
563
+ - 📦 **Consolidated Examples** - Reduced from 32 to 14 essential examples
564
+ - 📚 **Cleaned Documentation** - Removed obsolete docs, kept only essentials
565
+ - ⚙️ **Configurable Election Timing** - Prevent split-brain with `setElectionStartupDelay()` and `setElectionRandomDelay()`
558
566
 
559
- ## Previous Release: v1.8.2 (November 11, 2025)
560
-
561
- **Multi-Bridge Coordination & Message Queue for Critical Systems**:
562
-
563
- - 🌉 **Multi-Bridge Load Balancing** - Enterprise-grade coordination for geographic redundancy and traffic distribution
564
- - 📬 **Message Queue for Offline Mode** - Zero data loss during Internet outages with priority-based queuing
565
- - ⚖️ **Three Load Balancing Strategies** - Priority-Based, Round-Robin, Best Signal (RSSI)
566
- - 🛡️ **Production Ready** - Battle-tested features for critical deployments (Issues #65 & #66)
567
- - 📊 **230+ New Test Assertions** - Comprehensive test coverage for both features
568
-
569
- **[📋 Full Release Notes](docs/releases/RELEASE_NOTES_v1.8.2.md)**
570
-
571
- ## Previous Release: v1.8.1 (November 10, 2025)
572
-
573
- **GitHub Copilot Integration & Developer Experience**:
574
-
575
- - 🤖 **GitHub Copilot Custom Agent** - AI-assisted release management with `@release-agent`
576
- - 📚 **Enhanced Developer Context** - Improved repository context for all Copilot users
577
- - ✅ **Release Automation** - 21+ automated validation checks for quality assurance
578
- - 🔧 **Zero Breaking Changes** - Purely additive developer experience improvements
579
- - 📖 **Complete Documentation** - Agent setup guides and knowledge sources
580
-
581
- **[📋 Full Release Notes](docs/releases/RELEASE_NOTES_v1.8.1.md)**
582
-
583
- ## Previous Release: v1.8.0 (November 9, 2025)
584
-
585
- **Bridge-Centric Architecture & Comprehensive Monitoring**:
586
-
587
- - ✅ **Bridge Auto-Detection** - One-line bridge setup with automatic channel detection
588
- - 📊 **Diagnostics API** - Comprehensive monitoring and debugging tools
589
- - 🕐 **RTC Integration** - Hardware RTC support for offline timekeeping
590
- - 🔄 **Bridge Failover** - Automatic bridge election and high availability
591
- - ⚡ **Production Ready** - All features tested, documented, and backward compatible
592
-
593
- **[📋 Full Release Notes](docs/releases/RELEASE_NOTES_v1.8.0.md)**
567
+ **[📋 Full CHANGELOG](CHANGELOG.md)**
594
568
 
595
569
  ## Getting Help
596
570
 
597
571
  - **[FAQ](docs/troubleshooting/faq.md)** - Common questions and solutions
598
- - **[Version Numbers FAQ](docs/FAQ_VERSION_NUMBERS.md)** - Understanding version numbers in header files
599
- - **[Version Management Guide](docs/VERSION_MANAGEMENT.md)** - Complete versioning documentation
572
+ - **[Common Issues](docs/troubleshooting/common-issues.md)** - Troubleshooting guide
600
573
  - **[GitHub Issues](https://github.com/Alteriom/painlessMesh/issues)** - Bug reports and feature requests
601
574
  - **[Community Forum](https://groups.google.com/forum/#!forum/painlessmesh-user)** - Community support
602
575
  - **[API Documentation](http://painlessmesh.gitlab.io/painlessMesh/index.html)** - Generated API docs
603
576
 
604
577
  ## Development
605
578
 
606
- ### GitHub Copilot Integration (v1.8.1+)
607
-
608
- AlteriomPainlessMesh includes GitHub Copilot custom agent support for AI-assisted development:
609
-
610
- - **🤖 Release Agent** - AI assistant for release management and quality assurance
611
- - **📚 Enhanced Context** - Repository knowledge available to all Copilot users
612
- - **🎯 Enterprise Features** - Use `@release-agent` in Copilot Chat (Enterprise)
613
-
614
- **For GitHub Copilot Enterprise Users:**
615
- ```
616
- @release-agent How do I prepare a release?
617
- @release-agent Check version consistency
618
- @release-agent Validate release readiness
619
- ```
620
-
621
- **Configuration:** The custom agent is defined in `copilot-agents.json` at the repository root.
622
-
623
- **Documentation:** [Copilot Agent Setup](.github/COPILOT_AGENT_SETUP.md) | [Agent Index](.github/AGENTS_INDEX.md)
624
-
625
- ### Release Agent & Automation
626
-
627
- AlteriomPainlessMesh includes a comprehensive release automation system:
628
-
629
- - **📋 [Release Agent Documentation](.github/agents/release-agent.md)** - Complete release process specification
630
- - **🤖 Release Validation Script**: `./scripts/release-agent.sh` - Automated pre-release checks
631
- - **⚙️ CI/CD Integration**: Workflows validate every release automatically
632
-
633
- **Quick Release Validation:**
634
- ```bash
635
- ./scripts/release-agent.sh # Run all pre-release checks
636
- ```
637
-
638
- See [Release Agent Guide](.github/agents/README.md) for complete documentation.
639
-
640
579
  ### Building from Source
641
580
 
642
581
  ```bash
@@ -755,29 +694,17 @@ If you like the library please consider supporting its development. Your contrib
755
694
  - **[📁 File Structure](https://alteriom.github.io/painlessMesh/#/api/doxygen/files)** - Source code organization
756
695
  - **[❓ FAQ](https://alteriom.github.io/painlessMesh/#/troubleshooting/faq)** - Frequently asked questions
757
696
 
758
- **📖 Tutorials & Examples:**
759
-
760
- - **[Basic Examples](docs/tutorials/basic-examples.md)** - Essential patterns and techniques
761
- - **[Custom Packages](docs/tutorials/custom-packages.md)** - Type-safe message handling
762
- - **[Sensor Networks](docs/tutorials/sensor-networks.md)** - IoT sensor network patterns
763
-
764
- **🚀 Alteriom Extensions:**
765
-
766
- - **[Alteriom Overview](docs/alteriom/overview.md)** - Production-ready IoT packages
767
- - **[Sensor Packages](docs/alteriom/sensor-packages.md)** - Environmental monitoring
768
- - **[Command System](docs/alteriom/command-system.md)** - Device control and automation
769
-
770
- **🔧 Troubleshooting:**
697
+ **📖 Examples:**
771
698
 
772
- - **[Common Issues](docs/troubleshooting/common-issues.md)** - Solutions to frequent problems
773
- - **[FAQ](docs/troubleshooting/faq.md)** - Frequently asked questions
774
- - **[Debugging Guide](docs/troubleshooting/debugging.md)** - Tools and techniques
699
+ - **[Basic Example](examples/basic/basic.ino)** - Essential patterns and techniques
700
+ - **[Alteriom Sensor Node](examples/alteriom/alteriom.ino)** - IoT sensor packages
701
+ - **[Bridge Example](examples/bridge/bridge.ino)** - Connect mesh to Internet
775
702
 
776
703
  **📋 Complete Documentation Index:** [docs/README.md](docs/README.md)
777
704
 
778
705
  ## painlessMesh API Summary
779
706
 
780
- Here's a quick API overview. **For complete documentation, see [Core API Reference](docs/api/core-api.md)**
707
+ Here's a quick API overview.
781
708
 
782
709
  ```cpp
783
710
  #include "painlessMesh.h"
package/docs/README.md CHANGED
@@ -27,6 +27,7 @@ Welcome to the comprehensive documentation for the Alteriom fork of painlessMesh
27
27
  ### API Reference
28
28
 
29
29
  - [Core API](api/core-api.md) - Main painlessMesh class methods
30
+ - [Shared Gateway API](api/shared-gateway.md) - Shared Gateway Mode reference (v1.9.0+)
30
31
  - [Plugin API](api/plugin-api.md) - Creating custom packages and plugins
31
32
  - [Configuration](api/configuration.md) - Configuration options and constants
32
33
  - [Callbacks](api/callbacks.md) - Event handling and callbacks