@alteriom/painlessmesh 1.8.15 → 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 +61 -1
  3. package/CONTRIBUTING.md +79 -0
  4. package/README.md +69 -144
  5. package/docs/README.md +1 -0
  6. package/docs/api/shared-gateway.md +1207 -0
  7. package/examples/bridge_failover/README.md +81 -0
  8. package/examples/bridge_failover/bridge_failover.ino +35 -4
  9. package/examples/sharedGateway/README.md +235 -0
  10. package/examples/{meshCommandNode → sharedGateway}/platformio.ini +3 -2
  11. package/examples/sharedGateway/sharedGateway.ino +303 -0
  12. package/library.json +3 -22
  13. package/library.properties +1 -1
  14. package/package.json +3 -6
  15. package/src/arduino/wifi.hpp +342 -4
  16. package/src/painlessmesh/gateway.hpp +2120 -0
  17. package/src/painlessmesh/mesh.hpp +1034 -6
  18. package/src/painlessmesh/message_tracker.hpp +311 -0
  19. package/src/painlessmesh/protocol.hpp +6 -0
  20. package/DOCUMENTATION_INDEX.md +0 -146
  21. package/RELEASE_NOTES_1.8.15.md +0 -160
  22. package/RELEASE_READINESS_PLAN.md +0 -323
  23. package/TESTING_WITH_SIMULATOR.md +0 -259
  24. package/docs/API_DESIGN_GUIDELINES.md +0 -414
  25. package/docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md +0 -331
  26. package/docs/BOOLEAN_NAMING_CONVENTION.md +0 -235
  27. package/docs/BRIDGE_FAILOVER.md +0 -512
  28. package/docs/BRIDGE_HEALTH_MONITORING.md +0 -293
  29. package/docs/BRIDGE_INITIALIZATION_FALLBACK.md +0 -357
  30. package/docs/CHANNEL_SYNCHRONIZATION.md +0 -209
  31. package/docs/CREATE_MISSING_RELEASES.md +0 -321
  32. package/docs/DOCUMENTATION_MIGRATION_PLAN.md +0 -176
  33. package/docs/FAQ_VERSION_NUMBERS.md +0 -152
  34. package/docs/IMPLEMENTATION_PLAN_MESH_TOPOLOGY.md +0 -1062
  35. package/docs/MESH_TOPOLOGY_GUIDE.md +0 -992
  36. package/docs/MESH_TOPOLOGY_PROGRESS.md +0 -422
  37. package/docs/MQTT_BRIDGE_COMMANDS.md +0 -894
  38. package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +0 -324
  39. package/docs/MQTT_COMMAND_SCHEMA_PROPOSAL.md +0 -576
  40. package/docs/MQTT_SCHEMA_COMPLIANCE.md +0 -340
  41. package/docs/MQTT_SCHEMA_PROPOSALS.md +0 -446
  42. package/docs/MQTT_SCHEMA_REVIEW.md +0 -690
  43. package/docs/OTA_COMMANDS_REFERENCE.md +0 -554
  44. package/docs/PHASE1_GUIDE.md +0 -349
  45. package/docs/PHASE2_GUIDE.md +0 -543
  46. package/docs/QUICK_REFERENCE_VERSIONING.md +0 -127
  47. package/docs/RELEASE_AGENT_SUMMARY.md +0 -386
  48. package/docs/SCHEMA_VALIDATION_CHECKLIST.md +0 -222
  49. package/docs/SIMULATOR_TESTING.md +0 -408
  50. package/docs/VERSION_MANAGEMENT.md +0 -213
  51. package/docs/archive/DOCUSAURUS_DEPLOYMENT.md +0 -166
  52. package/docs/archive/FEATURE_PROPOSALS.md +0 -337
  53. package/docs/archive/LIBRARY_JSON_FIX.md +0 -98
  54. package/docs/archive/LIBRARY_STRUCTURE_FIX.md +0 -215
  55. package/docs/archive/PHASE1_IMPLEMENTATION.md +0 -325
  56. package/docs/archive/PHASE2_IMPLEMENTATION.md +0 -567
  57. package/docs/archive/RELEASE_SUMMARY.md +0 -173
  58. package/docs/archive/SCONS_BUILD_FIX.md +0 -313
  59. package/docs/archive/TRIGGER_RELEASE.md +0 -280
  60. package/docs/archive/VECTOR_INCLUDE_FIX.md +0 -129
  61. package/docs/archive/ota-and-status-enhancements.md +0 -911
  62. package/docs/archive/ota-status-architecture-diagrams.md +0 -658
  63. package/docs/archive/ota-status-quick-reference.md +0 -284
  64. package/docs/design/.gitkeep +0 -1
  65. package/docs/design/STATION_CREDENTIALS_DESIGN.md +0 -182
  66. package/docs/development/ARDUINO_COMPLIANCE_SUMMARY.md +0 -71
  67. package/docs/development/CODE_REFACTORING_RECOMMENDATIONS.md +0 -1011
  68. package/docs/development/DOCKER_TESTING.md +0 -196
  69. package/docs/development/PLATFORMIO_USAGE.md +0 -180
  70. package/docs/development/TESTING_SUMMARY.md +0 -126
  71. package/docs/development/contributing.md +0 -301
  72. package/docs/development/documentation.md +0 -583
  73. package/docs/features/DIAGNOSTICS_API.md +0 -534
  74. package/docs/implementation/BRIDGE_ARCHITECTURE_IMPLEMENTATION.md +0 -340
  75. package/docs/implementation/BRIDGE_HEALTH_MONITORING_IMPLEMENTATION.md +0 -213
  76. package/docs/implementation/BRIDGE_STATUS_FEATURE.md +0 -635
  77. package/docs/implementation/DIAGNOSTICS_API_IMPLEMENTATION.md +0 -232
  78. package/docs/implementation/IMPLEMENTATION_COMPLETE.md +0 -228
  79. package/docs/implementation/IMPLEMENTATION_NTP_TIME_SYNC.md +0 -325
  80. package/docs/implementation/IMPLEMENTATION_SUMMARY.md +0 -316
  81. package/docs/implementation/MESSAGE_QUEUE_IMPLEMENTATION.md +0 -405
  82. package/docs/implementation/MULTI_BRIDGE_IMPLEMENTATION.md +0 -520
  83. package/docs/implementation/NTP_TIME_SYNC_FEATURE.md +0 -392
  84. package/docs/improvements/FUTURE_PROPOSALS.md +0 -1016
  85. package/docs/improvements/IMPLEMENTATION_HISTORY.md +0 -1091
  86. package/docs/improvements/OTA_STATUS_ENHANCEMENTS.md +0 -709
  87. package/docs/improvements/README.md +0 -212
  88. package/docs/internal/CUSTOM_AGENT_ANALYSIS.md +0 -391
  89. package/docs/internal/ISSUE_65_VERIFICATION.md +0 -947
  90. package/docs/internal/ISSUE_66_CLOSURE.md +0 -249
  91. package/docs/internal/ISSUE_66_STATUS.md +0 -316
  92. package/docs/internal/PR_SUMMARY.md +0 -315
  93. package/docs/internal/REVIEW_SUMMARY.md +0 -332
  94. package/docs/multi-bridge-setup.md +0 -1025
  95. package/docs/platformio-publishing.md +0 -255
  96. package/docs/platformio-setup-summary.md +0 -121
  97. package/docs/releases/ANNOUNCEMENT_v1.8.6.md +0 -63
  98. package/docs/releases/ANNOUNCEMENT_v1.8.7.md +0 -113
  99. package/docs/releases/BRIDGE_STATUS_SELF_REGISTRATION_FIX.md +0 -221
  100. package/docs/releases/FEATURE_HISTORY.md +0 -543
  101. package/docs/releases/GITHUB_RELEASE_v1.8.6.md +0 -71
  102. package/docs/releases/GITHUB_RELEASE_v1.8.7.md +0 -90
  103. package/docs/releases/PATCH_v1.7.2.md +0 -262
  104. package/docs/releases/PATCH_v1.7.3.md +0 -262
  105. package/docs/releases/PATCH_v1.7.4.md +0 -219
  106. package/docs/releases/PHASE1_SUMMARY.md +0 -246
  107. package/docs/releases/PHASE2_SUMMARY.md +0 -499
  108. package/docs/releases/PUBLISH_v1.8.0_INSTRUCTIONS.md +0 -163
  109. package/docs/releases/QUICK_START_RELEASES.md +0 -113
  110. package/docs/releases/RELEASE_CHECKLIST_1.8.10.md +0 -331
  111. package/docs/releases/RELEASE_CHECKLIST_1.8.9.md +0 -207
  112. package/docs/releases/RELEASE_CHECKLIST_v1.7.4.md +0 -253
  113. package/docs/releases/RELEASE_CHECKLIST_v1.7.5.md +0 -315
  114. package/docs/releases/RELEASE_CHECKLIST_v1.7.6.md +0 -389
  115. package/docs/releases/RELEASE_CHECKLIST_v1.8.0.md +0 -331
  116. package/docs/releases/RELEASE_CHECKLIST_v1.8.2.md +0 -309
  117. package/docs/releases/RELEASE_NOTES_1.7.0.md +0 -539
  118. package/docs/releases/RELEASE_NOTES_1.8.10.md +0 -239
  119. package/docs/releases/RELEASE_NOTES_1.8.9.md +0 -213
  120. package/docs/releases/RELEASE_NOTES_v1.8.0.md +0 -685
  121. package/docs/releases/RELEASE_NOTES_v1.8.1.md +0 -221
  122. package/docs/releases/RELEASE_NOTES_v1.8.2.md +0 -421
  123. package/docs/releases/RELEASE_NOTES_v1.8.3.md +0 -292
  124. package/docs/releases/RELEASE_NOTES_v1.8.4.md +0 -277
  125. package/docs/releases/RELEASE_NOTES_v1.8.6.md +0 -205
  126. package/docs/releases/RELEASE_NOTES_v1.8.7.md +0 -184
  127. package/docs/releases/RELEASE_PLAN_v1.7.6.md +0 -816
  128. package/docs/releases/RELEASE_SUMMARY_1.8.10.md +0 -193
  129. package/docs/releases/RELEASE_SUMMARY_v1.7.4.md +0 -276
  130. package/docs/releases/RELEASE_SUMMARY_v1.7.5.md +0 -322
  131. package/docs/releases/RELEASE_SUMMARY_v1.7.6.md +0 -436
  132. package/docs/releases/RELEASE_SUMMARY_v1.7.7.md +0 -391
  133. package/docs/releases/RELEASE_SUMMARY_v1.7.8.md +0 -523
  134. package/docs/releases/RELEASE_SUMMARY_v1.7.9.md +0 -542
  135. package/docs/troubleshooting/ARDUINO_IDE_VERSION_FIX_SUMMARY.md +0 -229
  136. package/docs/troubleshooting/ARDUINO_LIBRARY_NAME_FIX.md +0 -197
  137. package/docs/troubleshooting/CRASH_QUICK_REF.md +0 -93
  138. package/docs/troubleshooting/ESP32_C6_COMPATIBILITY.md +0 -157
  139. package/docs/troubleshooting/FREERTOS_ASSERTION_FAILURE.md +0 -288
  140. package/docs/troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md +0 -267
  141. package/docs/troubleshooting/NPM_PUBLISHING_ISSUE_SUMMARY.md +0 -110
  142. package/docs/troubleshooting/PAINLESSMESH_V1.7.4_COMPILATION_ISSUES.md +0 -547
  143. package/docs/troubleshooting/QUICK_FIX_FREERTOS.md +0 -164
  144. package/docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md +0 -264
  145. package/docs/troubleshooting/common-architecture-mistakes.md +0 -438
  146. package/docs/troubleshooting/internet-access-faq.md +0 -299
  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 -108
  197. package/examples/multi_bridge/regular_node.ino +0 -141
  198. package/examples/multi_bridge/secondary_bridge.ino +0 -123
  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,113 +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
572
  - **[Common Issues](docs/troubleshooting/common-issues.md)** - Troubleshooting guide
599
- - **[Common Architecture Mistakes](docs/troubleshooting/common-architecture-mistakes.md)** - Design patterns and pitfalls
600
- - **[Version Numbers FAQ](docs/FAQ_VERSION_NUMBERS.md)** - Understanding version numbers in header files
601
- - **[Version Management Guide](docs/VERSION_MANAGEMENT.md)** - Complete versioning documentation
602
573
  - **[GitHub Issues](https://github.com/Alteriom/painlessMesh/issues)** - Bug reports and feature requests
603
574
  - **[Community Forum](https://groups.google.com/forum/#!forum/painlessmesh-user)** - Community support
604
575
  - **[API Documentation](http://painlessmesh.gitlab.io/painlessMesh/index.html)** - Generated API docs
605
576
 
606
577
  ## Development
607
578
 
608
- ### GitHub Copilot Integration (v1.8.1+)
609
-
610
- AlteriomPainlessMesh includes GitHub Copilot custom agent support for AI-assisted development:
611
-
612
- - **🤖 Release Agent** - AI assistant for release management and quality assurance
613
- - **📚 Enhanced Context** - Repository knowledge available to all Copilot users
614
- - **🎯 Enterprise Features** - Use `@release-agent` in Copilot Chat (Enterprise)
615
-
616
- **For GitHub Copilot Enterprise Users:**
617
- ```
618
- @release-agent How do I prepare a release?
619
- @release-agent Check version consistency
620
- @release-agent Validate release readiness
621
- ```
622
-
623
- **Configuration:** The custom agent is defined in `copilot-agents.json` at the repository root.
624
-
625
- **Documentation:** [Copilot Agent Setup](.github/COPILOT_AGENT_SETUP.md) | [Agent Index](.github/AGENTS_INDEX.md)
626
-
627
- ### Release Agent & Automation
628
-
629
- AlteriomPainlessMesh includes a comprehensive release automation system:
630
-
631
- - **📋 [Release Agent Documentation](.github/agents/release-agent.md)** - Complete release process specification
632
- - **🤖 Release Validation Script**: `./scripts/release-agent.sh` - Automated pre-release checks
633
- - **⚙️ CI/CD Integration**: Workflows validate every release automatically
634
-
635
- **Quick Release Validation:**
636
- ```bash
637
- ./scripts/release-agent.sh # Run all pre-release checks
638
- ```
639
-
640
- See [Release Agent Guide](.github/agents/README.md) for complete documentation.
641
-
642
579
  ### Building from Source
643
580
 
644
581
  ```bash
@@ -757,29 +694,17 @@ If you like the library please consider supporting its development. Your contrib
757
694
  - **[📁 File Structure](https://alteriom.github.io/painlessMesh/#/api/doxygen/files)** - Source code organization
758
695
  - **[❓ FAQ](https://alteriom.github.io/painlessMesh/#/troubleshooting/faq)** - Frequently asked questions
759
696
 
760
- **📖 Tutorials & Examples:**
761
-
762
- - **[Basic Examples](docs/tutorials/basic-examples.md)** - Essential patterns and techniques
763
- - **[Custom Packages](docs/tutorials/custom-packages.md)** - Type-safe message handling
764
- - **[Sensor Networks](docs/tutorials/sensor-networks.md)** - IoT sensor network patterns
765
-
766
- **🚀 Alteriom Extensions:**
767
-
768
- - **[Alteriom Overview](docs/alteriom/overview.md)** - Production-ready IoT packages
769
- - **[Sensor Packages](docs/alteriom/sensor-packages.md)** - Environmental monitoring
770
- - **[Command System](docs/alteriom/command-system.md)** - Device control and automation
771
-
772
- **🔧 Troubleshooting:**
697
+ **📖 Examples:**
773
698
 
774
- - **[Common Issues](docs/troubleshooting/common-issues.md)** - Solutions to frequent problems
775
- - **[FAQ](docs/troubleshooting/faq.md)** - Frequently asked questions
776
- - **[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
777
702
 
778
703
  **📋 Complete Documentation Index:** [docs/README.md](docs/README.md)
779
704
 
780
705
  ## painlessMesh API Summary
781
706
 
782
- 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.
783
708
 
784
709
  ```cpp
785
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