@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.
- package/BRIDGE_TO_INTERNET.md +229 -0
- package/CHANGELOG.md +89 -1
- package/CONTRIBUTING.md +79 -0
- package/README.md +70 -143
- package/docs/README.md +1 -0
- package/docs/api/shared-gateway.md +1207 -0
- package/docs/troubleshooting/common-issues.md +28 -0
- package/docs/troubleshooting/faq.md +113 -12
- package/examples/basic/test/simulator/CMakeLists.txt +40 -0
- package/examples/basic/test/simulator/README.md +149 -0
- package/examples/basic/test/simulator/firmware/basic_firmware.hpp +117 -0
- package/examples/basic/test/simulator/scenarios/basic_mesh_test.yaml +81 -0
- package/examples/bridge/bridge.ino +17 -4
- package/examples/bridge_failover/README.md +81 -0
- package/examples/bridge_failover/bridge_failover.ino +51 -6
- package/examples/sharedGateway/README.md +235 -0
- package/examples/{meshCommandNode → sharedGateway}/platformio.ini +3 -2
- package/examples/sharedGateway/sharedGateway.ino +303 -0
- package/library.json +3 -22
- package/library.properties +1 -1
- package/package.json +3 -3
- package/src/arduino/wifi.hpp +380 -13
- package/src/painlessmesh/gateway.hpp +2120 -0
- package/src/painlessmesh/mesh.hpp +1034 -6
- package/src/painlessmesh/message_tracker.hpp +311 -0
- package/src/painlessmesh/protocol.hpp +6 -0
- package/DOCUMENTATION_INDEX.md +0 -146
- package/docs/API_DESIGN_GUIDELINES.md +0 -414
- package/docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md +0 -331
- package/docs/BOOLEAN_NAMING_CONVENTION.md +0 -235
- package/docs/BRIDGE_FAILOVER.md +0 -512
- package/docs/BRIDGE_HEALTH_MONITORING.md +0 -293
- package/docs/CHANNEL_SYNCHRONIZATION.md +0 -209
- package/docs/CREATE_MISSING_RELEASES.md +0 -321
- package/docs/DOCUMENTATION_MIGRATION_PLAN.md +0 -176
- package/docs/FAQ_VERSION_NUMBERS.md +0 -152
- package/docs/IMPLEMENTATION_PLAN_MESH_TOPOLOGY.md +0 -1062
- package/docs/MESH_TOPOLOGY_GUIDE.md +0 -992
- package/docs/MESH_TOPOLOGY_PROGRESS.md +0 -422
- package/docs/MQTT_BRIDGE_COMMANDS.md +0 -894
- package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +0 -324
- package/docs/MQTT_COMMAND_SCHEMA_PROPOSAL.md +0 -576
- package/docs/MQTT_SCHEMA_COMPLIANCE.md +0 -340
- package/docs/MQTT_SCHEMA_PROPOSALS.md +0 -446
- package/docs/MQTT_SCHEMA_REVIEW.md +0 -690
- package/docs/OTA_COMMANDS_REFERENCE.md +0 -554
- package/docs/PHASE1_GUIDE.md +0 -349
- package/docs/PHASE2_GUIDE.md +0 -543
- package/docs/QUICK_REFERENCE_VERSIONING.md +0 -127
- package/docs/RELEASE_AGENT_SUMMARY.md +0 -386
- package/docs/SCHEMA_VALIDATION_CHECKLIST.md +0 -222
- package/docs/VERSION_MANAGEMENT.md +0 -213
- package/docs/archive/DOCUSAURUS_DEPLOYMENT.md +0 -166
- package/docs/archive/FEATURE_PROPOSALS.md +0 -337
- package/docs/archive/LIBRARY_JSON_FIX.md +0 -98
- package/docs/archive/LIBRARY_STRUCTURE_FIX.md +0 -215
- package/docs/archive/PHASE1_IMPLEMENTATION.md +0 -325
- package/docs/archive/PHASE2_IMPLEMENTATION.md +0 -567
- package/docs/archive/RELEASE_SUMMARY.md +0 -173
- package/docs/archive/SCONS_BUILD_FIX.md +0 -313
- package/docs/archive/TRIGGER_RELEASE.md +0 -280
- package/docs/archive/VECTOR_INCLUDE_FIX.md +0 -129
- package/docs/archive/ota-and-status-enhancements.md +0 -911
- package/docs/archive/ota-status-architecture-diagrams.md +0 -658
- package/docs/archive/ota-status-quick-reference.md +0 -284
- package/docs/design/.gitkeep +0 -1
- package/docs/design/STATION_CREDENTIALS_DESIGN.md +0 -182
- package/docs/development/ARDUINO_COMPLIANCE_SUMMARY.md +0 -71
- package/docs/development/CODE_REFACTORING_RECOMMENDATIONS.md +0 -1011
- package/docs/development/DOCKER_TESTING.md +0 -196
- package/docs/development/PLATFORMIO_USAGE.md +0 -180
- package/docs/development/TESTING_SUMMARY.md +0 -126
- package/docs/development/contributing.md +0 -301
- package/docs/development/documentation.md +0 -583
- package/docs/features/DIAGNOSTICS_API.md +0 -534
- package/docs/implementation/BRIDGE_ARCHITECTURE_IMPLEMENTATION.md +0 -340
- package/docs/implementation/BRIDGE_HEALTH_MONITORING_IMPLEMENTATION.md +0 -213
- package/docs/implementation/BRIDGE_STATUS_FEATURE.md +0 -635
- package/docs/implementation/DIAGNOSTICS_API_IMPLEMENTATION.md +0 -232
- package/docs/implementation/IMPLEMENTATION_COMPLETE.md +0 -228
- package/docs/implementation/IMPLEMENTATION_NTP_TIME_SYNC.md +0 -325
- package/docs/implementation/IMPLEMENTATION_SUMMARY.md +0 -316
- package/docs/implementation/MESSAGE_QUEUE_IMPLEMENTATION.md +0 -405
- package/docs/implementation/MULTI_BRIDGE_IMPLEMENTATION.md +0 -520
- package/docs/implementation/NTP_TIME_SYNC_FEATURE.md +0 -392
- package/docs/improvements/FUTURE_PROPOSALS.md +0 -1016
- package/docs/improvements/IMPLEMENTATION_HISTORY.md +0 -1091
- package/docs/improvements/OTA_STATUS_ENHANCEMENTS.md +0 -709
- package/docs/improvements/README.md +0 -212
- package/docs/internal/CUSTOM_AGENT_ANALYSIS.md +0 -391
- package/docs/internal/ISSUE_65_VERIFICATION.md +0 -947
- package/docs/internal/ISSUE_66_CLOSURE.md +0 -249
- package/docs/internal/ISSUE_66_STATUS.md +0 -316
- package/docs/internal/PR_SUMMARY.md +0 -315
- package/docs/internal/REVIEW_SUMMARY.md +0 -332
- package/docs/multi-bridge-setup.md +0 -1025
- package/docs/platformio-publishing.md +0 -255
- package/docs/platformio-setup-summary.md +0 -121
- package/docs/releases/ANNOUNCEMENT_v1.8.6.md +0 -63
- package/docs/releases/ANNOUNCEMENT_v1.8.7.md +0 -113
- package/docs/releases/BRIDGE_STATUS_SELF_REGISTRATION_FIX.md +0 -221
- package/docs/releases/FEATURE_HISTORY.md +0 -543
- package/docs/releases/GITHUB_RELEASE_v1.8.6.md +0 -71
- package/docs/releases/GITHUB_RELEASE_v1.8.7.md +0 -90
- package/docs/releases/PATCH_v1.7.2.md +0 -262
- package/docs/releases/PATCH_v1.7.3.md +0 -262
- package/docs/releases/PATCH_v1.7.4.md +0 -219
- package/docs/releases/PHASE1_SUMMARY.md +0 -246
- package/docs/releases/PHASE2_SUMMARY.md +0 -499
- package/docs/releases/PUBLISH_v1.8.0_INSTRUCTIONS.md +0 -163
- package/docs/releases/QUICK_START_RELEASES.md +0 -113
- package/docs/releases/RELEASE_CHECKLIST_1.8.10.md +0 -331
- package/docs/releases/RELEASE_CHECKLIST_1.8.9.md +0 -207
- package/docs/releases/RELEASE_CHECKLIST_v1.7.4.md +0 -253
- package/docs/releases/RELEASE_CHECKLIST_v1.7.5.md +0 -315
- package/docs/releases/RELEASE_CHECKLIST_v1.7.6.md +0 -389
- package/docs/releases/RELEASE_CHECKLIST_v1.8.0.md +0 -331
- package/docs/releases/RELEASE_CHECKLIST_v1.8.2.md +0 -309
- package/docs/releases/RELEASE_NOTES_1.7.0.md +0 -539
- package/docs/releases/RELEASE_NOTES_1.8.10.md +0 -239
- package/docs/releases/RELEASE_NOTES_1.8.9.md +0 -213
- package/docs/releases/RELEASE_NOTES_v1.8.0.md +0 -685
- package/docs/releases/RELEASE_NOTES_v1.8.1.md +0 -221
- package/docs/releases/RELEASE_NOTES_v1.8.2.md +0 -421
- package/docs/releases/RELEASE_NOTES_v1.8.3.md +0 -292
- package/docs/releases/RELEASE_NOTES_v1.8.4.md +0 -277
- package/docs/releases/RELEASE_NOTES_v1.8.6.md +0 -205
- package/docs/releases/RELEASE_NOTES_v1.8.7.md +0 -184
- package/docs/releases/RELEASE_PLAN_v1.7.6.md +0 -816
- package/docs/releases/RELEASE_SUMMARY_1.8.10.md +0 -193
- package/docs/releases/RELEASE_SUMMARY_v1.7.4.md +0 -276
- package/docs/releases/RELEASE_SUMMARY_v1.7.5.md +0 -322
- package/docs/releases/RELEASE_SUMMARY_v1.7.6.md +0 -436
- package/docs/releases/RELEASE_SUMMARY_v1.7.7.md +0 -391
- package/docs/releases/RELEASE_SUMMARY_v1.7.8.md +0 -523
- package/docs/releases/RELEASE_SUMMARY_v1.7.9.md +0 -542
- package/docs/troubleshooting/ARDUINO_IDE_VERSION_FIX_SUMMARY.md +0 -229
- package/docs/troubleshooting/ARDUINO_LIBRARY_NAME_FIX.md +0 -197
- package/docs/troubleshooting/CRASH_QUICK_REF.md +0 -93
- package/docs/troubleshooting/ESP32_C6_COMPATIBILITY.md +0 -157
- package/docs/troubleshooting/FREERTOS_ASSERTION_FAILURE.md +0 -288
- package/docs/troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md +0 -267
- package/docs/troubleshooting/NPM_PUBLISHING_ISSUE_SUMMARY.md +0 -110
- package/docs/troubleshooting/PAINLESSMESH_V1.7.4_COMPILATION_ISSUES.md +0 -547
- package/docs/troubleshooting/QUICK_FIX_FREERTOS.md +0 -164
- package/docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md +0 -264
- package/docs/troubleshooting/station-reconnection-issues.md +0 -172
- package/docs/v1.7.7_MQTT_IMPROVEMENTS.md +0 -794
- package/docs/wiki/API-Reference.md +0 -246
- package/docs/wiki/Complete-Documentation.md +0 -123
- package/examples/alteriomImproved/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomImproved/improved_sensor_node.ino +0 -248
- package/examples/alteriomImproved/platformio.ini +0 -32
- package/examples/alteriomMetricsHealth/alteriom_sensor_package.hpp +0 -796
- package/examples/alteriomMetricsHealth/metrics_health_node.ino +0 -429
- package/examples/alteriomMetricsHealth/platformio.ini +0 -26
- package/examples/alteriomPhase1/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomPhase1/phase1_features.ino +0 -242
- package/examples/alteriomPhase1/platformio.ini +0 -26
- package/examples/alteriomPhase2/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomPhase2/phase2_features.ino +0 -186
- package/examples/alteriomPhase2/platformio.ini +0 -26
- package/examples/alteriomSensorNode/alteriom_sensor_node.ino +0 -186
- package/examples/alteriomSensorNode/alteriom_sensor_package.hpp +0 -1227
- package/examples/alteriomSensorNode/platformio.ini +0 -26
- package/examples/bridge/alteriom_sensor_package.hpp +0 -1170
- package/examples/bridge/bridge_health_monitoring_example.ino +0 -188
- package/examples/bridge/enhanced_mqtt_bridge.hpp +0 -610
- package/examples/bridge/enhanced_mqtt_bridge_example.ino +0 -226
- package/examples/bridge/mesh_event_publisher.hpp +0 -253
- package/examples/bridge/mesh_topology_reporter.hpp +0 -303
- package/examples/bridge/mqtt_command_bridge.hpp +0 -459
- package/examples/bridge/mqtt_status_bridge.hpp +0 -519
- package/examples/bridgeAwareSensorNode/alteriom_sensor_package.hpp +0 -1227
- package/examples/bridgeAwareSensorNode/bridgeAwareSensorNode.ino +0 -342
- package/examples/bridgeAwareSensorNode/platformio.ini +0 -26
- package/examples/diagnosticsExample/diagnosticsExample.ino +0 -171
- package/examples/diagnosticsExample/platformio.ini +0 -26
- package/examples/echoNode/echoNode.ino +0 -33
- package/examples/echoNode/platformio.ini +0 -26
- package/examples/meshCommandNode/alteriom_sensor_package.hpp +0 -235
- package/examples/meshCommandNode/meshCommandNode.ino +0 -265
- package/examples/mqttCommandBridge/alteriom_sensor_package.hpp +0 -235
- package/examples/mqttCommandBridge/mesh_event_publisher.hpp +0 -253
- package/examples/mqttCommandBridge/mesh_topology_reporter.hpp +0 -303
- package/examples/mqttCommandBridge/mqttCommandBridge.ino +0 -254
- package/examples/mqttCommandBridge/mqtt_command_bridge.hpp +0 -462
- package/examples/mqttCommandBridge/platformio.ini +0 -27
- package/examples/mqttStatusBridge/mqttStatusBridge.ino +0 -218
- package/examples/mqttStatusBridge/mqtt_status_bridge.hpp +0 -522
- package/examples/mqttStatusBridge/platformio.ini +0 -27
- package/examples/mqttTopologyTest/README.md +0 -467
- package/examples/mqttTopologyTest/mqttTopologyTest.ino +0 -754
- package/examples/mqttTopologyTest/platformio.ini +0 -27
- package/examples/multi_bridge/README.md +0 -346
- package/examples/multi_bridge/primary_bridge.ino +0 -96
- package/examples/multi_bridge/regular_node.ino +0 -141
- package/examples/multi_bridge/secondary_bridge.ino +0 -111
- package/examples/ntpTimeSyncBridge/alteriom_sensor_package.hpp +0 -1383
- package/examples/ntpTimeSyncBridge/ntpTimeSyncBridge.ino +0 -86
- package/examples/ntpTimeSyncNode/alteriom_sensor_package.hpp +0 -1383
- package/examples/ntpTimeSyncNode/ntpTimeSyncNode.ino +0 -109
- package/examples/queued_alarms/README.md +0 -390
- package/examples/queued_alarms/queued_alarms.ino +0 -265
- package/examples/routing_demo/README.md +0 -172
- package/examples/routing_demo/routing_demo.ino +0 -102
- package/examples/rtcIntegration/README.md +0 -294
- 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)** |
|
|
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
|
[](https://github.com/Alteriom/painlessMesh/actions/workflows/ci.yml)
|
|
8
10
|
[](https://github.com/Alteriom/painlessMesh/actions/workflows/docs.yml)
|
|
9
11
|
[](https://github.com/Alteriom/painlessMesh/actions/workflows/release.yml)
|
|
10
12
|
[](https://github.com/Alteriom/painlessMesh/releases)
|
|
11
13
|
[](https://www.npmjs.com/package/@alteriom/painlessmesh)
|
|
12
|
-
[](https://registry.platformio.org/libraries/alteriom/AlteriomPainlessMesh)
|
|
13
15
|
[](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 [
|
|
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 [
|
|
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 [
|
|
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 [
|
|
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
|
-
|
|
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
|
|
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
|
|
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:
|
|
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.
|
|
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
|
-
|
|
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
|
-
**
|
|
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
|
-
|
|
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
|
-
- **[
|
|
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
|
-
**📖
|
|
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
|
-
- **[
|
|
773
|
-
- **[
|
|
774
|
-
- **[
|
|
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.
|
|
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
|