@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
@@ -1,239 +0,0 @@
1
- # Release Notes: v1.8.10
2
-
3
- **Release Date**: November 18, 2025
4
- **Type**: Patch Release (Bug Fix)
5
-
6
- ---
7
-
8
- ## ๐ŸŽฏ Overview
9
-
10
- Version 1.8.10 is a focused patch release that fixes a critical bridge discovery issue where newly connected nodes were not reliably receiving bridge status information. This release improves the reliability of bridge-to-node communication in mesh networks.
11
-
12
- ---
13
-
14
- ## ๐Ÿ› Bug Fixes
15
-
16
- ### Bridge Status Discovery - Direct Messaging
17
-
18
- **Issue**: Newly connected nodes were not reliably receiving bridge status broadcasts, causing delays or failures in bridge discovery.
19
-
20
- **Root Cause Analysis**:
21
- - Broadcast messages (`routing=2`) were not reaching newly connected nodes consistently
22
- - Time synchronization (NTP) operations were interfering with bridge discovery timing
23
- - Broadcast routing tables may not be fully established immediately after a node connects to the mesh
24
- - This led to nodes reporting "No primary bridge available" despite bridges being active
25
-
26
- **Solution Implemented**:
27
- - Changed bridge status delivery mechanism from broadcast to direct single message
28
- - Bridge now sends status directly to newly connected nodes using `sendSingle()` (routing=1)
29
- - Minimal 500ms delay added for connection stability before sending status
30
- - Direct targeted delivery ensures the message reaches the new node reliably
31
- - Time sync operations no longer interfere with critical bridge discovery
32
-
33
- **Technical Details**:
34
- - **File Modified**: `src/arduino/wifi.hpp`
35
- - **Location**: Line ~809 in `initBridgeStatusBroadcast()`
36
- - **Change**: Modified `newConnectionCallback` to use `sendSingle(nodeId, ...)` instead of `sendBroadcast(...)`
37
- - **Routing Mode**: Changed from `routing=2` (broadcast) to `routing=1` (single destination)
38
-
39
- **Impact**:
40
- - โœ… Nodes discover bridges immediately (within 500ms) after connecting
41
- - โœ… Eliminates "No primary bridge available" errors for newly connected nodes
42
- - โœ… More reliable mesh network initialization
43
- - โœ… Better handling of nodes joining/rejoining the mesh
44
- - โœ… Reduced dependency on broadcast routing table convergence
45
-
46
- **Backward Compatibility**:
47
- - โœ… No API changes
48
- - โœ… Internal delivery mechanism improved
49
- - โœ… All existing code continues to work without modification
50
- - โœ… No breaking changes to bridge status packet format
51
-
52
- **Related Issues**:
53
- - Resolves GitHub issue #135 "The latest fix does not work"
54
-
55
- ---
56
-
57
- ## ๐Ÿ“ฆ What's Included
58
-
59
- ### Core Changes
60
- - **Bridge Discovery**: Enhanced reliability for newly connected nodes
61
- - **Message Delivery**: Direct messaging replaces broadcast for critical status updates
62
- - **Connection Stability**: Added minimal delay for connection stabilization
63
-
64
- ### Files Modified
65
- - `src/arduino/wifi.hpp` - Bridge status delivery mechanism
66
- - `library.properties` - Version update to 1.8.10
67
- - `library.json` - Version update to 1.8.10
68
- - `package.json` - Version update to 1.8.10
69
- - `src/painlessMesh.h` - Header version and date update
70
- - `src/AlteriomPainlessMesh.h` - Version defines update
71
- - `CHANGELOG.md` - Release entry added
72
-
73
- ---
74
-
75
- ## ๐Ÿš€ Upgrade Guide
76
-
77
- ### Installation
78
-
79
- **Arduino Library Manager**:
80
- ```
81
- Search for "Alteriom PainlessMesh" and update to v1.8.10
82
- ```
83
-
84
- **PlatformIO**:
85
- ```ini
86
- lib_deps = alteriom/AlteriomPainlessMesh@^1.8.10
87
- ```
88
-
89
- **NPM**:
90
- ```bash
91
- npm install @alteriom/painlessmesh@1.8.10
92
- ```
93
-
94
- ### Migration from v1.8.9
95
-
96
- **No changes required!** This is a drop-in replacement for v1.8.9.
97
-
98
- - โœ… All existing bridge code works unchanged
99
- - โœ… All existing node code works unchanged
100
- - โœ… No API modifications
101
- - โœ… No configuration changes needed
102
-
103
- Simply update the library version and redeploy.
104
-
105
- ---
106
-
107
- ## ๐Ÿงช Testing Recommendations
108
-
109
- After upgrading to v1.8.10, test these scenarios:
110
-
111
- ### 1. **New Node Connection Test**
112
- ```cpp
113
- // Expected behavior:
114
- // - Node connects to mesh
115
- // - Receives bridge status within 500ms
116
- // - No "No primary bridge available" errors
117
- ```
118
-
119
- ### 2. **Bridge Discovery Test**
120
- ```cpp
121
- // Expected behavior:
122
- // - Multiple nodes connecting simultaneously
123
- // - All nodes discover bridge reliably
124
- // - Fast discovery regardless of NTP sync activity
125
- ```
126
-
127
- ### 3. **Bridge Failover Test**
128
- ```cpp
129
- // Expected behavior:
130
- // - Bridge disconnects
131
- // - New bridge elected
132
- // - All nodes discover new bridge within 500ms
133
- ```
134
-
135
- ### 4. **Network Rejoin Test**
136
- ```cpp
137
- // Expected behavior:
138
- // - Node loses connection and reconnects
139
- // - Bridge status received immediately on rejoin
140
- // - No discovery delays
141
- ```
142
-
143
- ---
144
-
145
- ## ๐ŸŽฏ Recommendations
146
-
147
- ### Who Should Upgrade
148
-
149
- **Immediate Upgrade Recommended**:
150
- - โœ… Systems with frequent node connections/disconnections
151
- - โœ… Networks experiencing bridge discovery delays
152
- - โœ… Deployments with NTP time synchronization enabled
153
- - โœ… Multi-bridge mesh networks
154
- - โœ… Production systems requiring fast startup
155
-
156
- **Can Upgrade at Convenience**:
157
- - Networks with stable connections and infrequent joins
158
- - Single-bridge setups without time sync
159
- - Development/testing environments
160
-
161
- ### Deployment Strategy
162
-
163
- **Low-Risk Deployment**:
164
- 1. Test in development environment first
165
- 2. Deploy to one bridge node
166
- 3. Monitor for 24 hours
167
- 4. Roll out to remaining nodes
168
-
169
- **Zero-Downtime Deployment**:
170
- - Bridge nodes can be updated one at a time
171
- - Regular nodes can be updated in batches
172
- - No mesh network restart required
173
-
174
- ---
175
-
176
- ## ๐Ÿ“Š Performance Characteristics
177
-
178
- ### Resource Usage
179
- - **Memory Impact**: Negligible (no additional allocations)
180
- - **CPU Impact**: Minimal (one additional `sendSingle()` per connection)
181
- - **Network Traffic**: Slightly reduced (targeted delivery vs broadcast)
182
-
183
- ### Timing Improvements
184
- - **Before v1.8.10**: Bridge discovery could take up to 30 seconds (periodic broadcast interval)
185
- - **After v1.8.10**: Bridge discovery within 500ms of connection
186
-
187
- ### Network Efficiency
188
- - **Broadcast Method**: Message sent to all nodes (even if not needed)
189
- - **Direct Method**: Message sent only to newly connected node (more efficient)
190
-
191
- ---
192
-
193
- ## ๐Ÿ” Known Issues
194
-
195
- ### None
196
-
197
- This release has no known issues. The fix has been tested and validated.
198
-
199
- ### Reporting Issues
200
-
201
- If you encounter any problems with v1.8.10, please report them:
202
- - **GitHub Issues**: https://github.com/Alteriom/painlessMesh/issues
203
- - **Include**: Library version, platform (ESP32/ESP8266), and detailed description
204
- - **Attach**: Serial logs and minimal reproduction code if possible
205
-
206
- ---
207
-
208
- ## ๐Ÿ™ Acknowledgments
209
-
210
- Special thanks to the community members who reported and helped diagnose the bridge discovery issue, particularly:
211
- - GitHub user who reported issue #135
212
-
213
- ---
214
-
215
- ## ๐Ÿ“š Additional Resources
216
-
217
- - **Documentation**: https://alteriom.github.io/painlessMesh/
218
- - **API Reference**: https://alteriom.github.io/painlessMesh/#/api/doxygen
219
- - **Examples**: https://alteriom.github.io/painlessMesh/#/tutorials/basic-examples
220
- - **Bridge Failover Guide**: `examples/bridge_failover/README.md`
221
- - **Changelog**: `CHANGELOG.md`
222
- - **Release Guide**: `RELEASE_GUIDE.md`
223
-
224
- ---
225
-
226
- ## ๐Ÿ”œ Coming in Future Releases
227
-
228
- Stay tuned for upcoming features:
229
- - Enhanced bridge load balancing
230
- - Advanced mesh diagnostics
231
- - Additional monitoring packages
232
- - Performance optimizations
233
-
234
- ---
235
-
236
- **Released**: November 18, 2025
237
- **Version**: 1.8.10
238
- **Type**: Patch (Bug Fix)
239
- **Compatibility**: 100% backward compatible with v1.8.9
@@ -1,213 +0,0 @@
1
- # Release Notes: painlessMesh v1.8.9
2
-
3
- **Release Date**: November 12, 2025
4
- **GitHub**: [Alteriom/painlessMesh](https://github.com/Alteriom/painlessMesh)
5
- **Tag**: v1.8.9
6
-
7
- ---
8
-
9
- ## ๐ŸŽฏ Summary
10
-
11
- Version 1.8.9 fixes critical bridge self-registration issues that prevented bridge nodes from properly tracking themselves in status broadcasts and coordination messages. This resolves the "Known bridges: 0" error reported by @woodlist and improves multi-bridge coordination reliability.
12
-
13
- ---
14
-
15
- ## ๐Ÿ› Critical Fixes
16
-
17
- ### Bridge Self-Registration (Type 610 & 613)
18
-
19
- **Problem**: Bridge nodes were not tracking themselves in their own bridge lists and coordination maps, causing:
20
- - Bridge reporting "Known bridges: 0" despite being active
21
- - "No primary bridge available!" errors
22
- - Multi-bridge priority selection failures
23
-
24
- **Root Cause**: Mesh networks don't loop broadcasts back to sender by design. Nodes receive broadcasts from others but not their own messages, requiring explicit local state management.
25
-
26
- **Solutions Implemented**:
27
-
28
- #### 1. Bridge Status Broadcasting (Type 610)
29
- - Added immediate self-registration in `initBridgeStatusBroadcast()` (line ~746)
30
- - Bridge calls `updateBridgeStatus()` with own nodeId right after initialization
31
- - Added self-update in `sendBridgeStatus()` (line ~1192)
32
- - Bridge updates own status before each broadcast
33
- - **Result**: Bridge now appears in its own `knownBridges` list from the start
34
-
35
- #### 2. Bridge Coordination (Type 613)
36
- - Added self-registration in `initBridgeCoordination()` (line ~803)
37
- - Bridge adds own priority: `bridgePriorities[this->nodeId] = bridgePriority`
38
- - Added priority self-update in `sendBridgeCoordination()` (line ~869)
39
- - Bridge updates own priority before each broadcast
40
- - **Result**: Primary bridge selection works correctly with all bridge priorities
41
-
42
- **Impact**:
43
- - โœ… Bridge correctly reports "Known bridges: 1" (or more)
44
- - โœ… Multi-bridge setups properly select primary bridge
45
- - โœ… Bridge failover more reliable with complete tracking
46
- - โœ… Self-tracking pattern consistent across periodic broadcasts
47
-
48
- **Files Modified**: `src/arduino/wifi.hpp`
49
-
50
- ---
51
-
52
- ## ๐Ÿ”ง Build System
53
-
54
- ### Docker Compiler Change
55
- - Switched from clang++ to g++ in Dockerfile
56
- - Resolves template instantiation crashes during Docker builds
57
- - Build verification confirms successful compilation
58
-
59
- **Files Modified**: `Dockerfile`
60
-
61
- ---
62
-
63
- ## ๐Ÿ“š Documentation
64
-
65
- ### Comprehensive Broadcast Analysis
66
- Added `COMPREHENSIVE_BROADCAST_ANALYSIS.md` with:
67
- - Full analysis of all 4 broadcast message types (610, 611, 612, 613)
68
- - Self-tracking requirements for Type 610 (STATUS) and 613 (COORDINATION)
69
- - Confirmation that Type 611 (ELECTION) already implements correct pattern
70
- - Confirmation that Type 612 (TAKEOVER) doesn't require self-tracking
71
- - Pattern guidelines for future broadcast implementations
72
-
73
- ---
74
-
75
- ## ๐Ÿ”ฌ Technical Details
76
-
77
- ### Broadcast Message Types Analyzed
78
-
79
- | Type | Name | Purpose | Self-Tracking | Status |
80
- |------|------|---------|---------------|---------|
81
- | 610 | BRIDGE_STATUS | Periodic health heartbeat | โœ… Required | โœ… Fixed |
82
- | 611 | BRIDGE_ELECTION | Candidate announcement | โœ… Required | โœ… Already correct |
83
- | 612 | BRIDGE_TAKEOVER | Role change notification | โŒ Not needed | โœ… No issue |
84
- | 613 | BRIDGE_COORDINATION | Priority broadcasting | โœ… Required | โœ… Fixed |
85
-
86
- ### Before vs After
87
-
88
- **Before Fix**:
89
- ```
90
- Bridge Node Output:
91
- Known bridges: 0
92
- No primary bridge available!
93
- Bridge priority: (missing from map)
94
- ```
95
-
96
- **After Fix**:
97
- ```
98
- Bridge Node Output:
99
- Known bridges: 1
100
- Primary bridge: 123456 (this node)
101
- Bridge priority: 100 (correctly tracked)
102
- ```
103
-
104
- ---
105
-
106
- ## ๐Ÿš€ Upgrade Instructions
107
-
108
- ### For Existing Users
109
-
110
- 1. **Update Library**:
111
- ```bash
112
- # Arduino Library Manager
113
- Update "Alteriom PainlessMesh" to v1.8.9
114
-
115
- # PlatformIO
116
- lib_deps = AlteriomPainlessMesh@^1.8.9
117
-
118
- # NPM
119
- npm install @alteriom/painlessmesh@1.8.9
120
- ```
121
-
122
- 2. **Rebuild and Deploy**:
123
- - No code changes required in your sketches
124
- - Fixes are automatic in the library
125
- - Rebuild and upload to all bridge nodes
126
-
127
- 3. **Verify Fix**:
128
- - Enable logging: `mesh.setDebugMsgTypes(ERROR | CONNECTION)`
129
- - Check bridge status: `mesh.getBridges()` should return count >= 1
130
- - Bridge node should log "Known bridges: 1" or more
131
-
132
- ### Breaking Changes
133
- **None** - This release is fully backward compatible.
134
-
135
- ---
136
-
137
- ## ๐Ÿงช Testing
138
-
139
- ### Validation Performed
140
- - โœ… Standalone compilation test with g++
141
- - โœ… Code review of all 4 broadcast message types
142
- - โœ… Pattern validation across entire codebase
143
- - โœ… Version consistency check across all package files
144
-
145
- ### Recommended Testing
146
- After upgrading, test these scenarios:
147
-
148
- 1. **Single Bridge**: Deploy and verify bridge reports "Known bridges: 1"
149
- 2. **Multi-Bridge**: Verify primary selection works with all priorities tracked
150
- 3. **Failover**: Disconnect primary bridge, verify secondary promotion works
151
- 4. **Auto-Election**: Test election with no pre-designated bridge
152
-
153
- ---
154
-
155
- ## ๐Ÿ“– Related Issues
156
-
157
- - Resolves: @woodlist GitHub issue - "Known bridges: 0" despite active bridge
158
- - Related: Bridge failover improvements (v1.8.6)
159
- - Related: Bridge discovery timing (v1.8.4)
160
-
161
- ---
162
-
163
- ## ๐Ÿ“ฆ Version Information
164
-
165
- ### Updated Files
166
- - โœ… `library.properties` โ†’ 1.8.9
167
- - โœ… `library.json` โ†’ 1.8.9
168
- - โœ… `package.json` โ†’ 1.8.9
169
- - โœ… `src/painlessMesh.h` โ†’ 1.8.9
170
- - โœ… `src/AlteriomPainlessMesh.h` โ†’ 1.8.9
171
- - โœ… `CHANGELOG.md` โ†’ Entry added for 1.8.9
172
-
173
- ### Package Hashes
174
- Will be generated automatically during release process.
175
-
176
- ---
177
-
178
- ## ๐Ÿ‘ฅ Contributors
179
-
180
- - **Alteriom Team** - Core development and maintenance
181
- - **@woodlist** - Issue reporting and testing
182
- - **GitHub Copilot** - Code analysis and documentation
183
-
184
- ---
185
-
186
- ## ๐Ÿ“ Next Steps
187
-
188
- 1. **Create Git Tag**: `git tag -a v1.8.9 -m "release: v1.8.9 - Bridge self-registration fixes"`
189
- 2. **Push Tag**: `git push origin v1.8.9`
190
- 3. **GitHub Release**: Create release from tag with these notes
191
- 4. **Publish Packages**:
192
- - Arduino Library Manager (automatic)
193
- - PlatformIO (automatic)
194
- - NPM: `npm publish`
195
-
196
- ---
197
-
198
- ## ๐Ÿ“„ License
199
-
200
- LGPL-3.0 - See [LICENSE](LICENSE) file for details
201
-
202
- ---
203
-
204
- ## ๐Ÿ”— Links
205
-
206
- - **Repository**: https://github.com/Alteriom/painlessMesh
207
- - **Documentation**: https://alteriom.github.io/painlessMesh/
208
- - **Issues**: https://github.com/Alteriom/painlessMesh/issues
209
- - **NPM Package**: https://www.npmjs.com/package/@alteriom/painlessmesh
210
-
211
- ---
212
-
213
- *For detailed technical analysis, see [COMPREHENSIVE_BROADCAST_ANALYSIS.md](COMPREHENSIVE_BROADCAST_ANALYSIS.md)*